TP1 M3

 

TP 1 M3


Percobaan I

UART - Button & LED

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

2. Hardware dan Diagram Blok [Kembali]

    1. Arduino Uno

    2. Dip Switch

    3. LED

    4. Power supply

    5. Ground

    6. Resistor


Diagram Blok:







Rangkaian Simulasi.

Prinsip Kerja:

    Pada percobaan 1 kondisi 3 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. Selain itu pada rangkaian ini menggunakan dip switch sebagai inputan dan outputnya berupa led.
        Pada arduino master, data yang dikirimkan adalah representasi digital dari posisi switch dengan 8 switch dalam pull-up. Dimana jika semua switch pull up mengaktifkan 3 led dan jika 4 switch pull up  mengaktifkan running led. Arduino Master mengirimkan instruksi digital melalui UART, dan Arduino slave menerjemahkan instruksi tersebut untuk menyalakan LED sesuai dengan pola yang telah ditentukan. Dimana Data dari arduino master dikirim melalui pin Tx (transmit) menuju pin Rx (receive) pada arduino slave dengan jalur komunikasi serial (UART). Pada arduino slave, data yang diterima dari master melalui pin Rx diubah menjadi nilai digital 1 atau 0 untuk menghidupkan LED. 
 
  • Arduino Master
  • Arduino Slave

    Listing Program:
  • Arduino Master 
int sw[] = {2,3,4,5,6,7}; // Pin untuk switch
int i, sw_on;

void setup() {
  Serial.begin(9600);
  for(i=0; i<6; i++){
    pinMode(sw[i], INPUT_PULLUP); // Mengatur semua switch sebagai input pull-up
  }
}

void penjumlahan(){
  sw_on = 0;
  for(i=0; i<6; i++){
    sw_on += digitalRead(sw[i]);
  }
}

void loop() {
  penjumlahan();
  if (sw_on == 6){ // Jika semua switch aktif
    Serial.write('A');
  }
  else if (sw_on == 5){ // Jika ada 5 switch aktif
    Serial.write('B');
  }
  else{
    Serial.write('a');
  }
}

  • Arduino Slave
int led[] = {2,3,4,5,6,7,10,11}; // Pin untuk LED
int i;

void setup() {
  Serial.begin(9600);
  for(i=0; i<8; i++){
    pinMode(led[i], OUTPUT);
  }
}

void loop() {
  if (Serial.available()){
    char message = Serial.read();
    if (message == 'A'){ // Jika semua switch aktif
      for(i=0; i<3; i++){
        digitalWrite(led[i], HIGH); // Mengaktifkan semua LED dari 0-2
      }
    }
    else if (message == 'B'){ // Jika ada 5 switch aktif
      for(i=0; i<8; i++){
        digitalWrite(led[i], HIGH); // Mengaktifkan running LED dari 2-6
        delay(100);
        digitalWrite(led[i], LOW);
      }
    }
    else if (message == 'a'){ // Jika tidak ada switch aktif
      for(i=0; i<6; i++){
        digitalWrite(led[i], LOW);
      }
    }
  }
}

5. Kondisi [Kembali]

   Semua switch dalam kondisi pull-up, semua switch mengaktifkan 3 led sementara 5 switch mengaktifkan running led dari ke dua hingga ke 6

᭒ HTML↠ klik disini
᭒ Rangkaian Simulasi ↠ klik disini
᭒ Video Simulasi ↠ klik disini
᭒ Listing Program Master ↠ klik disini
᭒ Listing Program Slave ↠ klik disini

















Komentar

Postingan populer dari blog ini

Cover

Cover uP dan uC