Laporan Akhir Percobaan 1
== Percobaan 4 Kondisi 1 ==
KEYPAD dan LCD
- Membuka proteus
- Buka file proteus yang sudah disesuaikan dengan kondisi
- Running rangkaiannya
- Sesuaikan dengan kondisi yang diinginkan
Keypad
#include <LiquidCrystal.h>
// Define button = mendefinisikan konstanta untuk setiap pin tombol tekan
#define PB1 A0
#define PB2 A1
#define PB3 A2
#define PB4 A3
#define PB5 A4
#define PB6 A5
#define PB7 12
#define PB8 13
// Initialize LCD = LCD diinisialisasi dengan pin-pin yang ditentukan
const int rs = 11, en = 10, d4 = 6, d5 = 5, d6 = 4, d7 = 3;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
// Define variables to store button states = Menyimpan status masing-masing tombol.
bool Button1, Button2, Button3, Button4, Button5, Button6, Button7, Button8;
void setup() {
Serial.begin(9600);
lcd.begin(16, 2); // Initialize LCD: 16 columns, 2 rows
// Pin untuk tombol tekan diatur sebagai input
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() {
// Membaca status setiap button ditekan
Button1 = digitalRead(PB1);
Button2 = digitalRead(PB2);
Button3 = digitalRead(PB3);
Button4 = digitalRead(PB4);
Button5 = digitalRead(PB5);
Button6 = digitalRead(PB6);
Button7 = digitalRead(PB7);
Button8 = digitalRead(PB8);
// Menampilkan "LEI" jika buttons 1 ke 4 ditekan
if (Button1 && Button2 && Button3 && Button4) {
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("LEI");
}
// Menampilkan "DTE" jika buttons 5 ke 8 ditekan
else if (Button5 && Button6 && Button7 && Button8) {
lcd.clear();
lcd.setCursor(0, 1);
lcd.print("DTE");
}
// Menampilkan default message jika tidak ada button yang ditekan
else {
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Silahkan Tekan");
lcd.setCursor(0, 1);
lcd.print("Salah Satu SW");
}
delay(100); // Delay ditambahkan untuk mencegah perubahan tampilan yang cepat
}
Modul 1: Percobaan 6 Kondisi 4
"Button 1 - 4 menampilkan LEI dikolom 1, Button 5 - 8 menampilkan DTE dikolom 2"
Percobaan 4
1. Analisa kenapa data pin yang kita gunakan hanya dari D4- D7?
Jawab:
Pada LCD, pin D4-D7 terhubung ke output Arduino untuk transfer data. Saat pin D4-D7 yang dihubungkan ke output Arduino, maka data yang dihasilkan itu 4 bit data saja. Jika menggunakan pin D0-D7 maka data yang dihasilkan itu 8 bit data. Dalam penggunaan 8 bit, proses transfer data akan panjang yang berarti memakan waktu yang lama. Oleh karena itu, pada percobaan ini yang dipakai hanyalah D4-D7 saja. Kesimpulannya, baik 8 bit maupun 4 bit data dapat diterima oleh sistem LCD. Tapi, jika ingin menghemat waktu yang dipakai adalah yang 4 bit saja.
2. Analisa bagaimana cara kerja dari keypad sehingga bisa menampilkan hasil pada LCD, jelaskan kenapa!
Jawab:
Pertama, keypad akan membaca input yang diterima (R1-R4,C1-C4) yang mana setelah itu arduino melakukan pemindaian matriks yang menentukan tombol mana yang ditekan. Setelah itu arduino akan memetakan lokasi dari tombol yang ditekan tadi, contoh jika baris ke-1 dan kolom ke-3 maka hasilnya "2".
Untuk menampilkan hasil pemetaan tadi itu menggunakan LCD, yang mana pin RS dihubungkan ke A0 untuk mengirimkan data, pin D4-D7 LCD dihubungkan ke output arduino. Maka, nantinya arduino mengirimkana data yang dipetakan. Dan, hasilnya ditampilkan pada LCD.
Tidak ada komentar:
Posting Komentar