LAPORAN AKHIR 1

 



Percobaan 1

 Komunikasi UART Menggunakan Arduino


1. Foto Hardware dan Diagram Blok [Kembali]

       
  1. Arduino Uno



        2. Push Button




      3. LED



     

Diagram Blok:



2. Prosedur Percobaan  [Kembali]

Rangkai semua komponen 
+ Buka Arduino IDE dan masukan listing Program
+ Upload program ke arduino
+ jalankan program pada simulasi dan cobakan dengan modul




Prinsip Kerja

Dalam sistem ini, terdapat dua Arduino yang berperan sebagai master dan slave. Arduino master bertugas mengirimkan data, sedangkan Arduino slave bertindak sebagai penerima data dan mengontrol LED. Keduanya berkomunikasi melalui UART, antarmuka komunikasi serial yang memungkinkan interaksi antar-perangkat.

Pada Arduino master, jika switch aktif, data yang dikirimkan adalah 1 (tinggi), jika tidak, data yang dikirimkan adalah 0 (rendah). Data tersebut dikirim melalui pin TX pada master ke pin RX pada slave melalui jalur UART. 

Di Arduino slave, data yang diterima dari master diinterpretasikan sebagai nilai digital 1 atau 0. Nilai tersebut menentukan LED mana yang akan menyala. Jika nilai yang diterima adalah 1, maka LED tertentu akan dinyalakan. Untuk menyalakan LED berikutnya, tombol sebelumnya juga harus ditekan secara bersamaan. slave mengikuti instruksi tersebut untuk menyalakan LED yang dikendalikan oleh master

4. Flowchart dan Listing Program [Kembali]

Master Arduino:



Slave Arduino: 





Listing Program:

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);
}


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);
}


5. Kondisi [Kembali]

Ketika botton 1 di tekan maka akan menghidupkan led 1, untuk menghidupkan led selanjutnya maka button sebelumnya juga harus di tekan secara bersamaan, begitu seterusnya sampai lampu ke 8.


    










Tidak ada komentar:

Posting Komentar

  Bahan Presentasi Untuk Matakuliah Sistem Digital 2023 OLEH: Putri Balqis Ravina Balva 2110953024 Dosen Pengampu: Darwison,MT Referensi: a....