Minggu, 28 April 2024

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 6 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 4 switch dalam pull-down & 4 switch dalam pull-up. Dimana jika 1 switch pull-down dan 4 switch pull up mengaktifkan running led dan jika 4 switch pull down dan 1 switch pull up mengaktifkan blinking 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 dip[] = {2, 3, 4, 5, 6, 7, 8, 9};
int dipvalue[8] = {}; // Inisialisasi array untuk menyimpan nilai saklar

void setup() {
  Serial.begin(9600);

  // Atur pin-pin saklar sebagai input
  for (int i = 0; i < 4; i++) {
    pinMode(dip[i], INPUT_PULLUP); // Saklar yang ditarik ke atas
  }
  for (int i = 4; i < 8; i++) {
    pinMode(dip[i], INPUT); // Saklar yang ditarik ke bawah
  }
}

void loop() {
  int activeSwitchesPullUp = 0;
  int activeSwitchesPullDown = 0;

  // Membaca status saklar dan menghitung berapa yang aktif
  for (int i = 0; i < 4; i++) {
    dipvalue[i] = digitalRead(dip[i]);
    if (dipvalue[i] == HIGH) {
      activeSwitchesPullUp++;
    }
  }
  for (int i = 4; i < 8; i++) {
    dipvalue[i] = digitalRead(dip[i]);
    if (dipvalue[i] == HIGH) {
      activeSwitchesPullDown++;
    }
  }
  Serial.print(activeSwitchesPullUp); 
  Serial.print(activeSwitchesPullDown); 
  // Menentukan pesan yang akan dikirimkan berdasarkan saklar yang aktif
  if (activeSwitchesPullUp == 4 && activeSwitchesPullDown == 1) {
    Serial.write('A');
  }
  else if (activeSwitchesPullUp == 1 && activeSwitchesPullDown == 4) {
    Serial.write('B');
  }
  else {
    Serial.write('C');
  }

  delay(20); // Delay untuk stabilisasi
}

  • Arduino Slave

// SLAVE

int led[] = {2, 3, 4, 5, 6, 7, 8, 9};

char message;

char previous_message = '\0';


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 == 'A') {

      for (int i = 0; i < 8; i++) {

        digitalWrite(led[i], HIGH); // Mengaktifkan running LED dari 3-7

        delay(50);

        digitalWrite(led[i], LOW);

      }

    }

    else if (message == 'B') {

        digitalWrite(led[2], HIGH);

        delay(50); // Tunggu selama 1 detik

        // Matikan LED

        digitalWrite(led[2], LOW);

        delay(50); // Tunggu selama 1 detik lagi

    }

  }

  delay(20); // Adjust the delay time as needed

}

5. Kondisi [Kembali]

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

᭒ HTML↠ klik disini
Rangkaian Simulasi ↠ klik disini
᭒ Gambar Simulasi ↠ klik disini
᭒ Video Simulasi ↠ klik disini
᭒ Listing Program ↠ klik disini


Tidak ada komentar:

Posting Komentar

MODUL 4

Smart Parking Area [KEMBALI KE MENU SEBELUMNYA] DAFTAR ISI 1. Pendahuluan 2. Tujuan 3. Alat dan Bahan 4. Dasar Teori 5. ...