TP 1 M3

 [KEMBALI KE MENU SEBELUMNYA]


DAFTAR ISI
1. Prosedur
2. Hardware dan Diagram Blok
3. Rangkaian Simulasi dan Prinsip Kerja
4. Flowchart dan Listing Program
5. Kondisi
6. Video Simulasi
7. Download File

Percobaan I Kondisi 6

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:




Prinsip Kerja:

    Pada percobaan 1 kondisi 6, dua arduino digunakan, satu sebagai master dan satu lagi sebagai slave. Master berfungsi sebagai pengirim data dan penerima data, dan slave berfungsi sebagai pengendali penggerak. Kedua perangkat berkomunikasi melalui antarmuka komunikasi serial yang dikenal sebagai UART. Rangkaian ini juga menggunakan dip switch sebagai inputan dan led sebagai outputnya.
        Pada arduino master, data yang dikirimkan adalah representasi digital dari posisi tombol dengan empat tombol pull-down dan empat tombol pull-up. Ini berarti bahwa satu tombol pull-down dan empat tombol pull up mengaktifkan lampu jalan dan empat tombol pull down dan satu tombol pull up mengaktifkan lampu blinking. Arduino Master mengirimkan instruksi digital melalui UART, dan Arduino slave menerjemahkan instruksi tersebut untuk menyalakan LED sesuai pola yang telah ditentukan. Di sini, data dikirim dari arduino master ke pin Tx dan diterima oleh arduino slave melalui jalur komunikasi serial (UART). Data yang diterima dari arduino slave melalui pin Rx diubah menjadi nilai digital 1 atau 0 sehingga LED dapat dihidupkan. 



 
  • 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


Ujian Tengah Semester - Soal 3