1. Foto Hardware dan Diagram Blok [Kembali]
1. Arduino Uno
2. Prosedur Percobaan [Kembali]
- Rangkai semua komponen
- Buat program di aplikasi arduino IDE
- Setelah selesai masukkan program ke arduino
- Jalankan program pada simulasi dan cobakan dengan modul
Rangkaian menggunakan protokol komunikasi I2C. Pin SDA dan SCL yaitu A4 dan A5 saling terhubung antara arduino master dan slave. Keypad ankan terhubung dengan arduino master, sedangkan LCD akan terhubung dengan arduino slave.
Key A - D (dalam hal ini kolom ke-4 keypad) menampilkan huruf A - D secara berurut, huruf yang ditampilkan mengalami blinking pada kolom pertama LCD.
4. Flowchart dan Listing Program [Kembali]
master
#include <Keypad.h>
#include <Wire.h>
const byte ROWS = 4;
const byte COLS = 4; // Diubah menjadi 4 kolom untuk menambahkan tombol A-D
char keys[ROWS][COLS] = {
{'1', '2', '3', 'A'}, // Menambahkan tombol 'A'
{'4', '5', '6', 'B'}, // Menambahkan tombol 'B'
{'7', '8', '9', 'C'}, // Menambahkan tombol 'C'
{'*', '0', '#', 'D'}, // Menambahkan tombol 'D'
};
byte rowPins[ROWS] = {9, 8, 7, 6};
byte colPins[COLS] = {5, 4, 3, 2}; // Menambahkan pin untuk kolom keempat
Keypad keypad = Keypad(makeKeymap(keys), rowPins, colPins, ROWS, COLS);
void setup() {
Wire.begin(); // join i2c bus (address optional for master)
}
void loop() {
char key = keypad.getKey();
if (key) {
Wire.beginTransmission(4); // transmit to device #4
Wire.write(key);
Wire.endTransmission(); // stop transmitting
}
}
slave
#include <LiquidCrystal.h>
#include <Wire.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
void setup() {
lcd.begin(16, 2);
Wire.begin(4); // join i2c bus with address #4
Wire.onReceive(receiveEvent); // register event
Serial.begin(9600); // start serial for output
}
void loop() {
delay(100);
}
void receiveEvent(int howMany) {
if (Wire.available()) {
char c = Wire.read(); // receive byte as a character
Serial.println(c); // print the character
if (c >= 'A' && c <= 'D') {
for (int i = 0; i < 200; ++i) { // Lakukan berkedip sebanyak 10 kali
lcd.setCursor(0, 0); // Atur kursor ke posisi (0, 0)
lcd.print(" "); // Hapus karakter
delay(1000); // Delay untuk efek berkedip
lcd.setCursor(0, 0); // Atur kursor ke posisi (0, 0)
lcd.print(c); // Tampilkan karakter
delay(1000); // Delay untuk efek berkedip
}
}
}
}
Key A - D menampilkan huruf A - D secara berurut, huruf yang ditampilkan mengalami blinking pada kolom pertama
- HTML↠ klik disini
- Listing Program↠ klik disini
- Video Percobaan↠ klik disini
- Rangkaian Simulasi







Tidak ada komentar:
Posting Komentar