Laporan Akhir 1 Modul 3


Percobaan 1

Komunikasi UART Menggunakan Arduino


1. Prosedur [Kembali]

  • Rangkailah seperti rangkaian berikut
  • Buka Arduino IDE dan masukan listing program
  • Upload program master dan slave ke arduino
  • Amati keluarannya



Gambar 1. Rangkaian Hardware
 

   1. Arduino Uno

    2. DIP Switch

    3. LED



    4. Kabel jumper

    5. Breadboard


   


Diagram Blok:



  •         Pada percobaan ini, dua Arduino saling berkomunikasi menggunakan UART, dimana dipswitch berfungsi sebagai input dan LED sebagai output. Saat dipswitch ditekan, yang berperan sebagai pulldown, Arduino master menerima perintah dan kemudian mengirimkannya ke Arduino slave melalui jalur komunikasi serial dari pin Tx (transmit) ke pin Rx (receive). Arduino slave kemudian mengonversi data yang diterima dari pin Rx menjadi sinyal digital (1 atau 0) untuk mengaktifkan LED. Instruksi digital dikirim oleh master melalui UART dan diinterpretasikan oleh slave untuk menyalakan LED sesuai dengan pola yang ditetapkan.
     
Flowchart:
        Master
         Slave

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 tombol yang ditekan if (b8 == LOW) { Serial.write('8'); } else if (b7 == LOW) { Serial.write('7'); } else if (b6 == LOW) { Serial.write('6'); } else if (b5 == LOW) { Serial.write('5'); } else if (b4 == LOW) { Serial.write('4'); } else if (b3 == LOW) { Serial.write('3'); } else if (b2 == LOW) { Serial.write('2'); } else if (b1 == LOW) { Serial.write('1'); } 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 == '1') { digitalWrite(led[0], 1); } else if (message == '2') { digitalWrite(led[1], 1); } else if (message == '3') { digitalWrite(led[2], 1); } else if (message == '4') { digitalWrite(led[3], 1); } else if (message == '5') { digitalWrite(led[4], 1); } else if (message == '6') { digitalWrite(led[5], 1); } else if (message == '7') { digitalWrite(led[6], 1); } else if (message == '8') { digitalWrite(led[7], 1); } } delay(20); digitalWrite(led[0], 0); digitalWrite(led[1], 0); digitalWrite(led[2], 0); digitalWrite(led[3], 0); digitalWrite(led[4], 0); digitalWrite(led[5], 0); digitalWrite(led[6], 0); digitalWrite(led[7], 0); }

6. Kondisi [Kembali]

    Kondisi percobaan 1 sesuai modul 3

7. Download File [Kembali]

᭒ HTML↠ klik disini
᭒ Gambar Rangkaian ↠ klik disini
᭒ Video Demo ↠ klik disini
᭒ Listing Program ↠ klik disini
᭒ Datasheet Arduino ↠ klik disini
᭒ Datasheets Motor Stepper ↠ klik disini
᭒ Datasheets Push Button ↠ klik disini
᭒ Datasheest ULN2003A ↠ klik disini