Percobaan I
Komunikasi UART Menggunakan Arduino
1. Prosedur [Kembali]
- Rangkailah seperti rangkaian berikut
- Buka Arduino IDE dan masukan listing program
- Upload program ke arduino
- Variasikan kondisi switch dan amati keluarannya pada LED
Gambar 1. Rangkaian Hardware
1. Arduino Uno
3. LED
4. Kabel jumper
Diagram Blok:
Gambar 1. Rangkaian Simulasi. Prinsip Kerja: Pada rangkaian percobaan 1 ini menggunakan dua arduino yaitu sebagai master dan slave. Dimana master bertindak sebagai pengirim data dan slave sebagai penerima data dan pengendali led. Kedua arduino berkomunikasi melalui UART (Universal Asynchronous Receiver Transmitter), antarmuka komunikasi serial yang memungkinkan dua perangkat untuk berkomunikasi satu sama lain. Pada arduino master, data yang dikirimkan adalah representasi digital dari posisi switch. Dimana led akan menyala sesuai posisi switch yang diaktifkan, ketika switch 1 on maka led 1 menyala. Data dari arduino master dikirim melalui pin Tx (transmit) menuju pin Rx (receive) pada arduino slave dengan jalur komunikasi serial. Pada arduino slave, data yang diterima dari master melalui pin Rx diubah menjadi nilai digital 1 atau 0 untuk menghidupkan LED. 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]
Flowchart:
- Arduino Master
- Arduino Slave
Listing Program:
- Arduino Master
//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); }
- Arduino Slave
//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);}
Kondisi percobaan 1 sesuai modul 3
᭒ HTML↠ klik disini
᭒ Gambar Rangkaian ↠ klik disini
᭒ Video Demo ↠ klik disini
᭒ Listing Program ↠ klik disini
᭒ Video Demo ↠ klik disini
᭒ Listing Program ↠ klik disini
᭒ Download Datasheet ARDUINO UNO ↠ klik disini
᭒ Download Datasheet LED ↠ klik disini
᭒ Donwload Datasheet Switch ↠ Klik disini
Tidak ada komentar:
Posting Komentar