Tugas Pendahuluan 1 (M3)

[KEMBALI KE MENU SEBELUMNYA]

Percobaan I Kondisi 5
Komunikasi UART Menggunakan Arduino

1. Prosedur Percobaan  [Kembali]

Rangkai semua komponen 
+ buat program di aplikasi arduino IDE
+ setelah selesai masukkan program ke arduino 
+ jalankan program pada simulasi dan cobakan dengan modul

2. Foto Hardware dan Diagram Blok [Kembali]

Hardware   

1. Arduino Uno


        2. LED




      3. DIP Switch



        4. Resistor

       5. Power Supply


     6. Ground


Diagram Blok:




Rangkaian Simulasi
 



Prinsip Kerja
Pada Arduino master bertugas untuk membaca inputan dari dipswitch dan pengiriman pesan ke Arduino slave berdasarkan kondisi tersebut. Delapan tombol switch yang terhubung ke pin input Arduino master diatur sedemikian rupa sehingga empat di antaranya dalam kondisi pull-down dan empat lainnya dalam kondisi pull-up. Dengan cara ini, setiap tombol switch dapat menentukan logika 1 atau 0 pada pin input. Arduino master terus-menerus membaca kondisi tombol menggunakan fungsi digitalRead() untuk setiap pin input. Jika kondisi tombol memenuhi kriteria yang ditentukan untuk mengaktifkan running LED (dua switch pull-down dan satu switch pull-up), Arduino master mengirimkan pesan 'r' melalui komunikasi serial. Jika kondisi tombol memenuhi kriteria untuk mengaktifkan blinking LED (tiga switch pull-down dan empat switch pull-up), Arduino master mengirimkan pesan 'b' melalui komunikasi serial.

Pada Arduino slave memiliki tugas untuk menerima pesan dari Arduino master dan mengendalikan LED sesuai dengan pesan yang diterima. Delapan LED yang terhubung ke pin output Arduino slave akan dikontrol berdasarkan pesan yang diterima. Arduino slave terus memantau komunikasi serial untuk menerima pesan baru dari Arduino master. Ketika pesan 'r' diterima, Arduino slave akan mengaktifkan running LED dengan cara menyala dan mematikan setiap LED secara berurutan. Sebaliknya, ketika pesan 'b' diterima, Arduino slave akan mengaktifkan blinking LED dengan membuat LED berkedip secara bergantian antara nyala dan mati. Dengan cara ini, Arduino master dan slave dapat berkomunikasi dan mengontrol LED sesuai dengan kondisi tombol yang ditekan pada Arduino master, memberikan respons melalui LED.

Flowchart
 
Master

http://www.plantuml.com/plantuml/png/dP3DYeCm58NtUOgxqcGpZCxFm8WWZCk1Gbrq7VHQBqsZn2lIjs_KkiYgq5No7GvV3Yb6rewdgn7hHL0BigmIo7FuFvmWYg2iqe0-0leCw2kWxu1-7gI0ExGWsKse1C1lXOwqUPiTCSeuYLKcq8puqfBd_dJtWsorFvH0sr0h70weUUaVKJVGq9bO6o0xJ3ncI_xNONs1klTrfjvkOI1NQrIYqJUPldlQf31tP71VLFZt_7_V0G00 
 Slave
 http://www.plantuml.com/plantuml/png/XS-zJiKm30NWFKznjfiiY5PYeQfKYR8n0IzWg4CZt83o0-hRqxHXwN8t9pgVvJF4H27bHTG-A6UXNpWuaXlw8IVq9goDGPhPGwUGsIZW_fbfmi8nqWTt2YYiFj7tk3INCzdGQmuUNnvFZoFkYcA9V9RjDTc0_BHFxRx3JywMaqOMMdLxQyfl5TQ2H4euTkf81lvcIYNoCFFx9uwog6MTkBHsDOJVsGd_7p9iFY_o1m00

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

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

5. Kondisi [Kembali]

4 switch dalam pull-down & 4 switch dalam pull-up, 2 switch pull-down dan 1 switch pull up mengaktifkan running led,3 switch pull down dan 4 switch pull up mengaktifkan blinking led


    Download HTML
    Download Rangkaian
    
Download Program
    
Download Video Simulasi
    Download Datasheet SW-SPDT
    Download Datasheet Resistor
    
Download Datasheet Arduino Uno
    
Download Datasheet LED

Tidak ada komentar:

Posting Komentar

BAHAN PRESENTASI UNTUK PRAKTIKUM uP & uC 2023 Oleh : Farrel Luis Fadhlika NIM. 2110952049   Dosen Pengampu : Dr. Darwison, S. T., M. T. ...