Senin, 29 April 2024

Tugas Pendahuluan 1 - Modul 3




Percobaan 1 Kondisi 6

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

1. Prosedur
[Kembali]
  • Rangkailah semua komponen 
  • Buat program di aplikasi arduino IDE
  • Setelah selesai, masukkan program ke arduino 
  • Jalankan program pada simulasi dan lakukan sesuai kondisi
2. Hardware dan diagram blok [Kembali]
      a. hardware
                 


                                                  
1. Arduino Uno
2. Dipswitch_4
3. LED
4. Resistor

            b. Digram Blok






3. Rangkaian Simulasi dan Prinsip kerja [Kembali]
Gambar Rangkaian Sebelum Disimulasikan
                                    

Gambar Rangkaian Setelah Disimulasikan


                                        
PRINSIP KERJA
    Pada percobaan 1 Kondisi 6, Rangkaian ini merupakan rangkaian dengan jenin komunikasi UART Menggunakan Arduino. Pada rangkaian ini, Arduino yang berperan sebagai master membaca kondisi dari 8 tombol (DS1 hingga DS8) yang terhubung sebagai input. Setiap tombol diasumsikan sebagai saklar digital yang ketika ditekan akan memberikan sinyal LOW. Pada loop utama, Arduino master membaca status masing-masing tombol dan mengirimkan karakter 'r' ke Arduino slave jika tombol tertentu ditekan sesuai dengan kondisi yang ditentukan. Karakter 'r' menandakan untuk mengaktifkan running LED. Begitu pula, karakter 'b' akan dikirim jika kondisi tombol memicu pengiriman sinyal tersebut, menandakan untuk mengaktifkan blinking LED. 

Pada Arduino slave, ketika karakter diterima melalui komunikasi serial, perangkat akan memeriksa karakter tersebut. Jika karakter yang diterima adalah 'r', maka LED akan berjalan satu per satu dengan kecepatan tertentu. Sedangkan jika karakter yang diterima adalah 'b', LED akan berkedip dengan interval tertentu. Rangkaian ini mengimplementasikan komunikasi dua arah antara Arduino master dan slave melalui komunikasi serial, di mana master mengirimkan instruksi dan slave mengambil tindakan sesuai instruksi yang diterima.

Kondisi rangkaian yang dibutuhkan adalah memastikan bahwa kedua Arduino terhubung secara fisik dengan benar, bahwa pin input dari tombol pada Arduino master terhubung dengan pin output pada Arduino slave yang mengendalikan LED, dan bahwa komunikasi serial antara keduanya berjalan pada kecepatan yang sama (9600 bps dalam hal ini) untuk memastikan komunikasi yang berhasil.
4. FlowChart [Kembali]


a. Listing Program 

Master Arduino

#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 kondisi tombol yang ditekan
  if (b8 == HIGH && b7 == HIGH && b6 == HIGH && b5 == HIGH &&
      b4 == LOW && b3 == HIGH && b2 == HIGH && b1 == HIGH) {
    // Mengaktifkan running LED
    Serial.write('r');
  } else if (b8 == HIGH && b7 == LOW && b6 == LOW && b5 == LOW &&
             b4 == LOW && b3 == LOW && b2 == LOW && b1 == LOW) {
    // Mengaktifkan blinking LED
    Serial.write('b');
  }
  delay(20);
}

Slave Arduino

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 == 'r') {
      // Mengaktifkan running LED
      for (int i = 0; i < 8; i++) {
        digitalWrite(led[i], HIGH);
        delay(100);
        digitalWrite(led[i], LOW);
      }
    } else if (message == 'b') {
      // Mengaktifkan blinking LED
      for (int i = 0; i < 8; i++) {
        digitalWrite(led[i], HIGH);
      }
      delay(500);
      for (int i = 0; i < 8; i++) {
        digitalWrite(led[i], LOW);
      }
      delay(500);
    }
  }
}

b. Flowchart


Master Arduino

Slave Arduino


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

6. Video Simulasi [Kembali]
                                           

  

7. Download File [Kembali]

Rangkaian Simulasi klik disini
Video Simulasi klik disini
Listing Program Master Arduino klik disini
Listing Program Slave Arduino klik disini
Datasheet Arduino klik disini
Download datasheet LED  klik disini


Tidak ada komentar:

Posting Komentar

MODUL 4

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