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.
a. Hardware
1. arduino uno
2. Push Button
3. LCD
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.
#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
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]
Tidak ada komentar:
Posting Komentar