Selasa, 02 April 2024

Laporan Akhir 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

  • Hardware
 
  • Diagram Blok


  • Rangkaian Simulasi

 

  • Prinsip Kerja
Pada percobaan 1, komponen utama yang digunakan adalah push button sebagai input, arduino uno sebagai mikrokontroler, dan LED sebagai output. Terdapat 2 arduino uno yang digunakan pada rangkaian ini yang masing-masingnya bertindak sebagai arduino master dan arduino slave. Arduni master terhubung pada input dan bertanggung jawab untuk mengirim data, sementara arduino slave terhubung pada output dan bertanggung jawab untuk menerima data.
 
Percobaan 1 ini mensimulasikan komunikasi Universal Asynchronus Receiver Transmitter (UART), yaitu protokol pengiriman data secara serial dan asinkronus menggunakan pin Tx dan Rx dengan boudrate yang sama. Artinya, pada komunikasi UART data dikirim satu per satu, yaitu dengan urutan idle, start bit, LSB sampai MSB data, parity bit, dan stop bit. Pengiriman ini tidak bergantung pada siklus clock, sehingga digolongkan pada jenis komunikasi asinkronus. Untuk mengirim data ini, pada rangakain, pin Tx arduino master harus terhubung dengan pin Rx arduino slave, sementara pin Rx ardino master terhubung dengan pin Tx arduino slave, dengan syarat kedua pin ini dihubungkan setelah program terupload. Selain itu, UART merupakan komunikasi jenis full duplex, artinya dapat mengirim dan menerima data secara bersamaan.

Jika input diberikan atau push button ditekan, maka sinyal input akan diteruskan ke arduino master untuk dikirim. Kemudian, arduino slave akan menerima sinyal tersebut dan meneruskannya pada output. Saat sebuah push button ditekan, maka nyala LED akan berpindah ke LED sebelumnya, dengan syarat push button harus ditekan secara berurutan. Kondisi ini diperoleh melalui program atau instruksi yang diberikan dan dijalankan pada arduino master dan arduino slave. Program tertera pada bagian 4 (Flowchart dan Listing Program).

  • Flowchart
Arduino Master

Arduino 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]

Saat sebuah push button ditekan, maka nyala LED akan berpindah ke LED sebelumnya, dengan syarat push button harus ditekan secara berurutan.


7. Download File [Kembali]

HTML klik disini

Gambar Hardware  klik disini

Gambar Simulasi  klik disini

Video Demo  klik disini

Listring Program  klik disini

Entri yang Diunggulkan

Modul 4

[KEMBALI KE MENU SEBELUMNYA] DAFTAR ISI 1. Tujuan Perancangan 2. Komponen 3. Dasar Teori 4. Listing Program 5. Flowchart...