M3 - Tugas Pendahuluan 1




Tugas Pendahuluan 1 Modul 3
(Percobaan 1 Kondisi 4)

1. Prosedur
[Kembali]

1. Rangkai rangkaian di proteus sesuai dengan kondisi percobaan.
2. Tulis program untuk arduino di software Arduino IDE.
3. Compile program tadi, lalu upload ke dalam arduino.
4. Setelah program selesai di upload, jalankan simulasi rangkaian pada proteus.


2. Hardware dan Diagram Blok [Kembali]

Hardware :

a) Modul Arduino 


b) ESP32 


c) Dipswitch 


d) LED 
e) Seven Segment


Diagram Blok:





3. Rangkaian Simulasi dan Prinsip Kerja [Kembali]

Rangkaian Simulasi :



Prinsip Kerja :

Pada bagian "master", tombol-tombol yang terhubung berfungsi sebagai input yang terhubung ke pin digital Arduino. Ketika tombol ditekan, Arduino membaca statusnya dan menggunakan protokol UART untuk mengirimkan data yang merepresentasikan tombol yang ditekan ke perangkat "slave". Di sisi "slave", mikrokontroler menerima data dari master melalui UART. Data ini diterjemahkan untuk mengontrol LED yang terhubung ke pin digital Arduino. Ketika master mendeteksi tiga tombol atau lebih ditekan, sinyal khusus dikirim ke slave melalui UART untuk memicu efek kedipan pada tiga LED pertama.

Jadi, dalam rangkaian ini, komunikasi antara master dan slave dilakukan melalui protokol UART, yang memungkinkan pengiriman data serial yang mewakili instruksi dari master ke slave. Ini memungkinkan sistem untuk merespons input pengguna pada perangkat master dengan mengontrol LED pada perangkat slave sesuai dengan instruksi yang diterima.

 
4. Flowchart dan Listing Program [Kembali]

Flowchart :



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

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() {
  b8 = digitalRead(DS8);
  b7 = digitalRead(DS7);
  b6 = digitalRead(DS6);
  b5 = digitalRead(DS5);
  b4 = digitalRead(DS4);
  b3 = digitalRead(DS3);
  b2 = digitalRead(DS2);
  b1 = digitalRead(DS1);

  int activeCount = 0;
  if (b8 == LOW) activeCount++;
  if (b7 == LOW) activeCount++;
  if (b6 == LOW) activeCount++;
  if (b5 == LOW) activeCount++;
  if (b4 == LOW) activeCount++;
  if (b3 == LOW) activeCount++;
  if (b2 == LOW) activeCount++;
  if (b1 == LOW) activeCount++;

  if (activeCount == 1) {
    for (int i = 1; i <= 8; i++) {
      Serial.write(i + '0'); // send the number as a character
      delay(100); // delay between each LED activation
    }
  } else if (activeCount == 3) {
    for (int i = 0; i < 3; i++) {
      Serial.write('B'); // sending 'B' to indicate blinking
    }
    delay(500); // delay between each set of blinking
  }

  delay(20);
}

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

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' && message <= '8') {
      int ledIndex = message - '1'; // convert character to LED index
      digitalWrite(led[ledIndex], HIGH); // turn on the corresponding LED
      delay(100); // delay for LED on time
      digitalWrite(led[ledIndex], LOW); // turn off the LED
    } else if (message == 'B') {
      // Blinking first 3 LEDs
      for (int i = 0; i < 3; i++) {
        digitalWrite(led[i], HIGH); // turn on LED
      }
      delay(50); // delay for LED on time
      for (int i = 0; i < 3; i++) {
        digitalWrite(led[i], LOW); // turn off LED
      }
      delay(50); // delay for LED off time
    }
  }
}

5. Kondisi [Kembali]

Percobaan 1 Kondisi 4 (Komunikasi UART dengan Arduino)
"Semua Switch dalam kondisi Pull-up, 1 swtich aktif mengaktifkan running LED dari led 1 hingga 8 sementara 3 switch aktif mengaktifkan blinking led pada 3 led"

6. Video Simulasi [Kembali]




7. Download File [Kembali]

File Rangkaian klik disini
Video Percobaan klik disini
Listing Program klik disini
Datasheet Arduino klik disini
Datasheet Button klik disini
Datasheet Led klik disini
Datasheet Resistor klik disini

Tidak ada komentar:

Posting Komentar