Tugas Pendahuluan 1 M3

 



Percobaan I

 Komunikasi UART Menggunakan Arduino

1. Foto Hardware dan Diagram Blok [Kembali]

        1. Arduino Uno


        2. LED




      3. DIP Switch
               




        4. Resistor

       5. Power Supply


     6. Ground




Diagram Blok:




2. Prosedur Percobaan  [Kembali]

Rangkai semua komponen 
+ buat program di aplikasi arduino IDE
+ setelah selesai masukkan program ke arduino 
+ jalankan program pada simulasi dan cobakan dengan modul




Prinsip Kerja

    Pada rangkaian ini terdapat 2 arduino yaitu master dan slave.  Master bertindak sebagai pengirim data, sementara slave sebagai penerima data dan pengendali LED.  Keduanya berkomunikasi melalui UART (Universal Asynchronous Receiver Transmitter), antarmuka komunikasi serial yang memungkinkan dua perangkat untuk berkomunikasi satu sama lain.

    Di pihak master, data yang dikirim adalah representasi digital dari keadaan switch.  Jika 2 switch pull down dan 1 switch pull-up aktif , data yang dikirim adalah karakter 'A', sedangkan jika 3 switch pull down dan 4 switch pull-up aktif, data yang dikirim adalah karakter 'B'. Data ini dikirim melalui pin TX (transmit) pada master menuju pin RX (receive) pada slave lewat jalur komunikasi serial.

    Sementara di pihak slave, data yang diterima dari master melalui pin RX diubah menjadi nilai digital 1 atau 0. Nilai inilah yang kemudian menentukan LED mana yang akan menyala. Pada program diatur bahwa jika pesan yang diterima adalah 'A', maka LED akan running dari LED 8 bergiliran hingga LED 1 menyala. Sedangkan jika pesan yang diterima adalah 'B', mak LED akan blinked salah satu LED atau semua LED 

    Dengan demikian, rangkaian ini memungkinkan master untuk mengontrol LED pada slave dari jarak jauh.  Master mengirimkan instruksi digital melalui UART, dan slave menerjemahkan instruksi tersebut untuk menyalakan LED sesuai dengan pola yang telah ditentukan.

4. Flowchart dan Listing Program [Kembali]

Master Arduino:


Slave Arduino: 

Listing Program:

Master

#define DS1 2
#define DS2 3
#define DS3 4
#define DS4 5
#define DS5 6
#define DS6 7
#define DS7 8
#define DS8 9

bool b1, b2, b3, b4, b5, b6, b7, b8;

void setup() {
  Serial.begin(9600);
  pinMode(DS1, INPUT_PULLUP);
  pinMode(DS2, INPUT_PULLUP);
  pinMode(DS3, INPUT_PULLUP);
  pinMode(DS4, INPUT_PULLUP);
  pinMode(DS5, INPUT_PULLUP);
  pinMode(DS6, INPUT_PULLUP);
  pinMode(DS7, INPUT_PULLUP);
  pinMode(DS8, INPUT_PULLUP);
}

void loop() {
  int b8 = digitalRead(DS8);
  int b7 = digitalRead(DS7);
  int b6 = digitalRead(DS6);
  int b5 = digitalRead(DS5);
  int b4 = digitalRead(DS4);
  int b3 = digitalRead(DS3);
  int b2 = digitalRead(DS2);
  int b1 = digitalRead(DS1);

  // Hidupkan LED sesuai dengan kondisi tombol yang ditekan
  if (b8 == HIGH && b7 == LOW && b6 == LOW && b5 == LOW &&
      b4 == LOW && b3 ==LOW && b2 == HIGH && b1 == HIGH) {
    // Mengaktifkan running LED
    Serial.write('r');
  } else if (b8 == HIGH && b7 == HIGH && b6 == HIGH && b5 == HIGH &&
             b4 == LOW && b3 == LOW && b2 == LOW && b1 == HIGH) {
    // Mengaktifkan blinking LED
    Serial.write('b');
  }
  delay(20);
}

Slave

int led[] = {2, 3, 4, 5, 6, 7, 8, 9};
char message;

void setup() {
  Serial.begin(9600);
  for (int i = 0; i < 8; i++) {
    pinMode(led[i], OUTPUT);
  }
}

void loop() {
  if (Serial.available()) {
    message = Serial.read();

    if (message == 'r') {
      // Mengaktifkan running LED
      for (int i = 0; i < 8; i++) {
        digitalWrite(led[i], HIGH);
        delay(100);
        digitalWrite(led[i], LOW);
      }
    } else if (message == 'b') {
      // Mengaktifkan blinking LED
      for (int i = 0; i < 8; i++) {
        digitalWrite(led[i], HIGH);
      }
      delay(500);
      for (int i = 0; i < 8; i++) {
        digitalWrite(led[i], LOW);
      }
      delay(500);
    }
  }
}

5. Kondisi [Kembali]

    Pada kondisi 5 dari percobaan 1, 4 switch dalam keadaan pull down & 4 switch dalam keadaan pull-up, 2switch pull down dan 1 switch pull-up mengaktifkan running led, 3 switch pull down dan 4 switch pull up mengaktifkan blinking led.











Tidak ada komentar:

Posting Komentar

Cover Sisdig

  Bahan Presentasi Untuk Matakuliah Sistem Digital 2023 OLEH: Marsanda Nabilla 2110953014 Dosen Pengampu: Darwison,MT Referensi: a. Anil K. ...