LA M1 Percobaan 6



Modul 1
Percobaan 6

1. Prosedur
[Kembali]
1. Susunlah komponen sesuai dengan eksperimen dan opsi yang telah dipilih.
2. Sintesiskan kode menggunakan Arduino IDE.
3. Pindahkan program yang telah disusun ke dalam Arduino Uno.
4. Lakukan pengujian program pada rangkaian eksperimen sesuai dengan preferensi yang diinginkan.
5. Langkah penyelesaian dilakukan setelah berhasil menguji program secara efektif pada rangkaian yang dipilih.

2. Hardware dan Diagram Blok [Kembali]
a. Hardware
1. arduino uno

2. Push Button


3. LCD

B. blok diagram


3. Rangkaian Percobaan dan Prinsip Kerja [Kembali]
a. Rangkaian Percobaan

Rangkaian ini merupakan implementasi penggunaan push button (tombol tekan) sebagai input dan Liquid Crystal Display (LCD) sebagai output pada Arduino. Pada setup(), pin-pin yang terhubung dengan push button diatur sebagai input, dan inisialisasi LCD menggunakan library LiquidCrystal.h  dilakukan dengan menentukan pin untuk koneksi (rs, en, d4, d5, d6, d7). Dalam loop(), setiap push button dibaca menggunakan digitalRead() dan statusnya disimpan dalam variabel boolean. Berdasarkan kombinasi push button yang ditekan, Arduino akan menampilkan teks yang sesuai pada LCD. misalnya, hanya Button1 yang ditekan (HIGH) dan semua push button lainnya tidak ditekan (LOW), maka kondisi "Button1==HIGH & Button2==LOW & Button3==LOW & Button4==LOW & Button5==LOW & Button6==LOW & Button7==LOW & Button8==LOW" akan terpenuhi. Kondisi ini menghasilkan output pada LCD dengan teks "Merah". Hal ini karena setiap kondisi if-else mengatur LCD untuk menampilkan teks tertentu saat kombinasi push button yang diperiksa sesuai dengan kondisi yang ditentukan. Sehingga, munculnya teks "Merah" pada LCD menunjukkan bahwa hanya Button1 yang ditekan pada saat itu. Jika tidak ada push button yang ditekan, pesan "Silahkan Tekan Salah Satu SW" akan muncul, dan jika terjadi kesalahan, pesan "Error" akan ditampilkan. Delay() digunakan untuk memberikan penundaan agar tampilan tidak berubah terlalu cepat.



4. Flowcharth dan Listing program[Kembali]


b. Listing Program
#include <LiquidCrystal.h>
#define PB1 A0
#define PB2 A1
#define PB3 A2
#define PB4 A3
#define PB5 A4
#define PB6 A5
#define PB7 12
#define PB8 13

const int rs = 11, en = 10, d4 = 6, d5 = 5, d6 = 4, d7 = 3;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);

bool Button1,Button2,Button3,Button4,Button5,Button6,Button7,Button8;

void setup() {
  Serial.begin(9600);
  lcd.begin(16,2); 

  pinMode(PB1, INPUT);
  pinMode(PB2, INPUT);
  pinMode(PB3, INPUT);
  pinMode(PB4, INPUT);
  pinMode(PB5, INPUT);
  pinMode(PB6, INPUT);
  pinMode(PB7, INPUT);
  pinMode(PB8, INPUT);

}

void loop() {

  Button1 = digitalRead(PB1);
  Button2 = digitalRead(PB2);
  Button3 = digitalRead(PB3);
  Button4 = digitalRead(PB4);
  Button5 = digitalRead(PB5);
  Button6 = digitalRead(PB6);
  Button7 = digitalRead(PB7);
  Button8 = digitalRead(PB8); 

  if(Button1==HIGH & Button2==LOW & Button3==LOW & Button4==LOW & Button5==LOW &
Button6==LOW & Button7==LOW & Button8==LOW){
   lcd.clear();
   lcd.setCursor(0, 0);
   lcd.print("Merah");
  }
  else if(Button2==HIGH & Button1==LOW & Button3==LOW & Button4==LOW & Button5==LOW
& Button6==LOW & Button7==LOW & Button8==LOW){
   lcd.clear();
   lcd.setCursor(0, 0);
   lcd.print("Kuning");
  }
  else if(Button3==HIGH & Button2==LOW & Button1==LOW & Button4==LOW & Button5==LOW
& Button6==LOW & Button7==LOW & Button8==LOW){
   lcd.clear();
   lcd.setCursor(0, 0);
   lcd.print("Hijau");
  }
  else if(Button4==HIGH & Button2==LOW & Button3==LOW & Button1==LOW & Button5==LOW
& Button6==LOW & Button7==LOW & Button8==LOW){
   lcd.clear();
   lcd.setCursor(0, 0);
   lcd.print("Biru");
  }
  else if(Button5==HIGH & Button2==LOW & Button3==LOW & Button4==LOW & Button1==LOW 
& Button6==LOW & Button7==LOW & Button8==LOW){
   lcd.clear();
   lcd.setCursor(0, 1);
   lcd.print("Merah");
  }
  else if(Button6==HIGH & Button2==LOW & Button3==LOW & Button4==LOW & Button5==LOW
& Button1==LOW & Button7==LOW & Button8==LOW){
   lcd.clear();
   lcd.setCursor(0, 1);
   lcd.print("Hijau");
  }
  else if(Button7==HIGH & Button2==LOW & Button3==LOW & Button4==LOW & Button5==LOW
& Button6==LOW & Button1==LOW & Button8==LOW){
   lcd.clear();
   lcd.setCursor(0, 1);
   lcd.print("Biru");
  }
  else if(Button8==HIGH & Button2==LOW & Button3==LOW & Button4==LOW & Button5==LOW
& Button6==LOW & Button7==LOW & Button1==LOW){
   lcd.clear();
   lcd.setCursor(0, 1);
   lcd.print("Putih");
  }
  else if(Button1==LOW & Button2==LOW & Button3==LOW & Button5==LOW & Button5==LOW
& Button6==LOW & Button7==LOW & Button8==LOW){
  lcd.clear();
  lcd.setCursor(0, 0);
  lcd.print("Silahkan Tekan");
  lcd.setCursor(0, 1);
  lcd.print("Salah Satu SW");
  }
  else{
   lcd.clear();
   lcd.setCursor(0, 0);
   lcd.print("Error");
  }
  delay(100); // Tambahkan penundaan agar tampilan tidak berubah terlalu cepat
}


5. Kondisi [Kembali]
Modul 1 Percobaan 6 8x Switch SPDT DAN LCD

6. Video Demo [Kembali]

1. Jelaskan bagaimana LCD dapat menampilkan display berdasarkan inputnya

Jawab:

Pada program ini, push button digunakan sebagai input yang diatur dalam setup() menggunakan pinMode(PBx, INPUT), sementara LCD berfungsi sebagai output dan dikontrol menggunakan objek dari library LiquidCrystal. Pengaturan tampilan pada LCD dilakukan dengan lcd.setCursor() dan lcd.print() untuk menampilkan teks yang sesuai dengan kombinasi push button yang ditekan. Input push button dibaca menggunakan digitalRead(). Seperti pada percobaan 6, Ketika push button putih ditekan, maka push button akan memberikan input high pada pin 13, maka LCD akan menampilkan "Putih" diposisi 0, 1 di LCD. Jika tidak ada tombol yang ditekan, pesan "Silahkan Tekan Salah Satu SW" akan muncul, dan jika terjadi kesalahan, pesan "Error" akan ditampilkan.

2. Jelaskan input dan output pada rangkaian Arduino

Input: Push Button 
Push button dihubungkan pada pin A0-A5dan 12 & 13 sebagai input. sehingga Pin tersebut dideklarasi sebagai input di code

Output: LCD
Pada rangkaian LCD terhubung pada Pin 3-6 dan 10-11 pada Arduino sebagai output. Pin Data sebagai pin LCD terhubung ke pin 3-6 sebagai input. Untuk LCD memberi data output, dan pin 10 yaitu enable harus berlogika HIGH untuk menjalankan proses Read/Write. Sedangkan pin RW atau read/write untuk operasi baca (logika 1) dan operasi tulis (logika 0).


7. Download File [Kembali]
Download HMTL Klik disini
Download Simulasi Rangkaian Klik disini
Download Video Demo Klik disini
Download Datasheet ARDUINO UNO klik disini
Download Datasheet LCD 2X16 klik disini











Tidak ada komentar:

Posting Komentar