Laporan Akhir Modul III Percobaan 1

 



Percobaan 1
Komunikasi UART Menggunakan Arduino 

1. Prosedur [Kembali]

  • Rangkai semua komponen 
  • Buat program di aplikasi arduino IDE
  • Setelah selesai masukkan program ke arduino 
  • Jalankan program pada simulasi dan cobakan dengan modul
  • Lihat hasil LED apakah sesuai dengan warna switch yang ditekan

1.) Push Button


2.) Arduino UNO


3.) LED



  • Diagram Blok




  • Rangkaian Simulasi


  • Prinsip Kerja
       Pada rangkaian ini digunakan dua buahArduino Uno (Atmega328) yang masing-masing akan berperan sebagai Slave dan Masternya. Dimana Arduino yang berperan sebagai master akan terhubung dengan input berupa push button sebanyak delapan buah yang nanti akan memberikan perintah/instruksi yang telah dituliskan pada program Arduino IDE, perintah tersebut nantinya akan akan tersampaikan ke Arduino yang berperan sebagai Slave yang terhubung dengan Output berupa LED sebanyak delapan buah.

       Dimana ketika push button pertama ditekan maka lampu LED paling ujung (paling ujung kanan pada gambar) akan menyala, begitu juga seterusnya untuk masing-masing push button akan terkoneksi ke satu buah LED secara berurutan.

     Jenis komunikasi data yang digunakan oleh Arduino adalah UART
  • Flowchart
(flowchart master)



(flowchart 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);
pinMode(DS2, INPUT);
pinMode(DS3, INPUT);
 pinMode(DS4, INPUT);
  pinMode(DS5, INPUT);
  pinMode(DS6, INPUT);
  pinMode(DS7, INPUT);
  pinMode(DS8, INPUT);
}
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 == HIGH)
    {
      Serial.write('8');
    }
  else if (b7 == HIGH)
    {
      Serial.write('7');
    }
  else if (b6 == HIGH)
    {
      Serial.write('6');
    }
  else if (b5 == HIGH)
    {
      Serial.write('5');
    }
  else if (b4 == HIGH)
    {
      Serial.write('4');
    }
  else if (b3 == HIGH)
    {
      Serial.write('3');
    }
  else if (b2 == HIGH)
    {
      Serial.write('2');
    }
  else if (b1 == HIGH)
    {
      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], 0);
    }
    else if (message == '2')
    {
      digitalWrite(led[1], 0);
    }
    else if (message == '3')
    {
      digitalWrite(led[2], 0);
    }
    else if (message == '4')
    {
      digitalWrite(led[3], 0);
    }
    else if (message == '5')
    {
      digitalWrite(led[4], 0);
    }
    else if (message == '6')
    {
      digitalWrite(led[5], 0);
    }
    else if (message == '7')
    {
      digitalWrite(led[6], 0);
    }
    else if (message == '8')
    {
      digitalWrite(led[7], 0);
    }
}
delay(20);
digitalWrite(led[0], 1);
digitalWrite(led[1], 1);
digitalWrite(led[2], 1);
digitalWrite(led[3], 1);
digitalWrite(led[4], 1);
digitalWrite(led[5], 1);
digitalWrite(led[6], 1);
digitalWrite(led[7], 1);
}


6. Kondisi dan Analisa [Kembali]





Download Datasheet Arduino

Download Datasheet Push Button

Download Datasheet LED


Komentar