Tugas Pendahuluan 1

Percobaan 5 Kondisi 1

PERCOBAAN1
KOMUNIKASI UART MENGGUNAKAN ARDUINO

1. Prosedur [Kembali]

1. Rangkai komponen sesuai percobaan dan kondisi yang dipilih. 2. Buat program menggunakan Arduino IDE. 3. Transfer program yang telah dibuat ke Arduino yang ada di Proteus. 4. Uji coba program di simulasi sesuai dengan kondisi yang diinginkan. 5. Proses selesai setelah uji coba berhasil dilakukan.

2. Hardware dan Diagram Blok [Kembali]

a. Hardware
1. Modul Arduino Uno


spesifikasi: 





3. LED



4. Dipswitch
spesifikasi:



b. diagram blok


3. Rangkaian Simulasi dan Prinsip Kerja [Kembali]

Gambar Rangkaian : 


PRINSIP KERJA

    Master :
Arduino master berfungsi sebagai kontrol imputan dari dipswitch dan mengirimkan pesan komunikasi data ke Arduino slave sesuai dengan kondisi. Delapan tombol switch yang terhubung ke pin input Arduino master diatur  sehingga empat di antaranya dalam keadaan pull-down dan empat lainnya dalam keadaan pull-up. Dengan cara ini, masing-masing tombol switch dapat menentukan logika 1 atau 0 pada pin input. Arduino master secara terus-menerus memeriksa kondisi tombol menggunakan fungsi `digitalRead()` untuk setiap pin input. Apabila kondisi tombol memenuhi syarat yang ditetapkan untuk mengaktifkan LED berjalan (dua switch pull-down dan satu switch pull-up), Arduino master mengirimkan pesan 'r' melalui komunikasi serial. Jika kondisi tombol memenuhi syarat untuk mengaktifkan LED berkedip (tiga switch pull-down dan empat switch pull-up), Arduino master mengirimkan pesan 'b' melalui komunikasi serial.

Slave : 
Di sisi Arduino slave, fungsinya adalah menerima pesan dari Arduino master dan mengatur LED sesuai dengan pesan yang diterima. Ada delapan LED yang terhubung ke pin output Arduino slave yang akan dikendalikan berdasarkan pesan yang diterima. Arduino slave terus memantau komunikasi serial untuk menerima pesan baru dari Arduino master. Saat pesan 'r' diterima, Arduino slave akan mengaktifkan running LED dengan mengatur setiap LED untuk menyala dan mematikan secara berurutan. Sebaliknya, saat pesan 'b' diterima, Arduino slave akan mengaktifkan blinking LED dengan membuat LED berkedip bergantian antara nyala dan mati. Dengan cara ini, Arduino master dan slave dapat saling berkomunikasi dan mengendalikan LED sesuai dengan status tombol yang ditekan pada Arduino master, memberikan respons melalui LED.

4. Flowchart dan Listing Program [Kembali]

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

} Slave:
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

5. Kondisi [Kembali]

Kondisi  : Percobaan 1 Kondisi 5

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

6. Video Simulasi [Kembali]


7. Link Download [Kembali]

Download Simulasi Rangkaian Klik disini
Download HTML Klik disini
Download Video Simulasi Klik disini
Download Listing Code Klik disini
Download Datasheet ARDUINO UNO klik disini
Download Datasheet Dipswitch  klik disini
Download Datasheet LED klik disini


















Tidak ada komentar:

Posting Komentar

Modul 1

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