Egi Rahman 2110952042

.

MODUL 3 TUGAS PENDAHULUAN 1




Tugas Pendahuluan Modul 3
Percobaan 1 Kondisi 7
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: 
2. LED 





3. LCD



spesifikasi:

Tampilan 2 baris @ 16 karakter, 5 x 8 pixel
Display controller: HD44780 (standar industri LCD)
Dilengkapi lampu latar warna biru/hijau/kuning
Sudut pandang lebar dengan tingkat kontras yang dapat diatur dan terlihat jelas
Tegangan kerja: 5V DC
Dimensi modul: 80 x 36 x 12 mm
Dimensi layar tampilan: 64,5 mm x 16 mm

4. Dipswitch
spesifikasi:



b. diagram blok

3. Rangkaian Simulasi dan Prinsip Kerja [Kembali]



C. Prinsip Kerja
Master:
    Pad rangkaian  di atas merupakan perocbaan Komunikasi UART. Arduino yang diatas  bertindak sebagai master dalam sebuah sistem yang menggunakan beberapa tombol sebagai input. Setiap tombol dihubungkan ke pin digital pada Arduino dan masing-masing tombol memiliki aksi yang berbeda saat ditekan. yang mana pada pin DS1 sampai dengan DS4 merukanan tombol atau switch PULL DOWN dan DS5 sampai DS8 merupakan switch  PULL UP Saat program berjalan, Arduino akan terus memeriksa status setiap tombol dengan menggunakan fungsi digitalRead(). Jika sebuah tombol ditekan, Arduino akan mengirimkan karakter yang sesuai melalui koneksi serial (UART) dengan menggunakan fungsi Serial.write(). Karakter yang dikirimkan akan sesuai dengan tombol yang ditekan, dan akan dibaca oleh perangkat  arduino lain yang terhubung dengan Arduino melalui koneksi serial. Dalam simulasi pada Proteus ini ,jika  menekan 3 switch pull-down dan 4 switch pull up akan mengirimkan data ke slave ardunio dan nantinya mengaktifkan running led, dan jika 3 switch pull down dan 0 switch pull UP akan mengiriimkan kondisi ini ke slave arduino dan nantinya akan 9 mengaktifkan blinking led

Slave:
    Pada arduino yang kedua betinda sebagai Slave dimana  nantinya akan menerima inputan dari Arduino master dan mengeluarkan output berupa LED.Prinsip kerja rangkaian  di atas adalah untuk mengontrol LED-LED yang terhubung ke pin Arduino berdasarkan status tombol-tombol yang terhubung ke pin digital lainnya. Pada setup(), pin-pin yang terhubung ke tombol-tombol diatur sebagai input dengan resistansi pull-up atau pull-down sesuai dengan kondisi. Pada loop(), program akan terus memeriksa status tombol-tombol tersebut. Jika kondisi tertentu terpenuhi, seperti empat tombol dalam kondisi pull-down atau tidak ada tombol dalam kondisi pull-up yang ditekan, maka program akan menjalankan aksi tertentu. Misalnya, untuk kondisi pull-down empat tombol, program akan menyalakan LED secara berurutan (running LED), sementara untuk kondisi ketika tidak ada tombol pull-down atau pull-up yang ditekan, program akan membuat LED-LED tertentu berkedip (blinking LED). Jika tidak ada kondisi yang terpenuhi, maka semua LED akan dimatikan. Dengan demikian, prinsip kerja rangkaian  tersebut adalah memantau status tombol-tombol dan mengatur tindakan yang sesuai terhadap LED-LED yang terhubung.


4. Flowcharth dan Listing Program [Kembali]

a. Flowcharth

A. MASTER




B. SLAVE




b. Listing Program


                                                                        _____Master:________

//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

void setup() 
  Serial.begin(9600);
  pinMode(DS1, INPUT_PULLUP); 
  pinMode(DS2, INPUT_PULLUP);
  pinMode(DS3, INPUT_PULLUP); 
  pinMode(DS4, INPUT_PULLUP); 
  pinMode(DS5, INPUT); 
  pinMode(DS6, INPUT); 
  pinMode(DS7, INPUT); 
  pinMode(DS8, INPUT); 
}

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 tombol yang ditekan
  if (b8 ==   LOW)
  {
    Serial.write('8');
  }
  else if (b7 == LOW)
  {
    Serial.write('7');
  }
  else if (b6 == LOW)
  {
    Serial.write('6');
  }
  else if (b5 == LOW)
  {
    Serial.write('5');
  }
  else if (b4 == HIGH)
  {
    Serial.write('4');
  }
  else if (b3 == LOW)
  {
    Serial.write('3');
  }
  else if (b2 == LOW)
  {
    Serial.write('2');
  }
  else if (b1 == LOW)
  {
    Serial.write('1');
  }
  delay(20);


                                                                            ____Slave:____
    
#define DS1 2 
#define DS2 3
#define DS3 4
#define DS4 5
#define DS5 6
#define DS6 7
#define DS7 8
#define DS8 9

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

void setup() {
  Serial.begin(9600);
  for (int i = 0; i < 8; i++) {
    pinMode(led[i], OUTPUT);
  }
  pinMode(DS1, INPUT);  // Switch pull-down
  pinMode(DS2, INPUT);  // Switch pull-down
  pinMode(DS3, INPUT);  // Switch pull-down
  pinMode(DS4, INPUT);  // Switch pull-up
  pinMode(DS5, INPUT);  // Switch pull-down
  pinMode(DS6, INPUT);  // Switch pull-up
  pinMode(DS7, INPUT);  // Switch pull-up
  pinMode(DS8, INPUT);  // Switch pull-up
}

void loop() {
  bool pull_down_4 = digitalRead(DS1) == LOW && digitalRead(DS2) == LOW && digitalRead(DS3) == LOW && digitalRead(DS5) == LOW;
  bool pull_up_4 = digitalRead(DS4) == HIGH && digitalRead(DS6) == HIGH && digitalRead(DS7) == HIGH && digitalRead(DS8) == HIGH;

  if (pull_down_4 && !pull_up_4) {
    // Turn off all LEDs first
    for (int i = 2; i <= 9; i++) {
      digitalWrite(led[i], LOW);
    }
    // Running LEDs
    for (int i = 2; i <= 6; i++) {
      digitalWrite(led[i], HIGH);
      delay(100); // Adjust the delay time as needed for the running LED effect
      digitalWrite(led[i], LOW);
    }
  } else if (!pull_down_4 && !pull_up_4) {
    // Turn off all LEDs first
    for (int i = 2; i <= 9; i++) {
      digitalWrite(led[i], LOW);
    }
    // Blinking LEDs
    for (int j = 5; j <= 9; j++) { // Blink LEDs 5, 6, 7, 8, 9
      digitalWrite(led[j], HIGH);
    }
    delay(500); // LEDs on for 500ms
    for (int j = 5; j <= 9; j++) { // Blink LEDs 5, 6, 7, 8, 9
      digitalWrite(led[j], LOW);
    }
    delay(500); // LEDs off for 500ms
  } else {
    // Turn off all LEDs if no condition is met
    for (int i = 2; i <= 9; i++) { // Iterate over LEDs 2 to 9
      digitalWrite(led[i], LOW);
    }
  }

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

5. Kondisi [Kembali]

    Percobaan 1 Kondisi 5

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


5. Video Simulasi [Kembali]



7. Download File [Kembali]
Download HMTL Klik disini
Download Simulasi Rangkaian Klik disini
Download Program Klik disini
Download Video Simulasi Klik disini
Download Datasheet ARDUINO UNO klik disini
Download Datasheet Dipswitch  klik disini
Download Datasheet LED klik disini








0 komentar:

Posting Komentar

Blogger news

Blogger templates