Key 1-9 menampilkan karakter nomor 9-1 secara berurutan dikolom kedua LCD
Langkah-langkah percobaan :
- Rangkailah semua komponen
- Buat program di aplikasi arduino IDE
- Setelah selesai, masukkan program ke arduino
- Jalankan program pada simulasi dan lakukan sesuai kondisi
- Arduino
- Keypad
- LCD
3. Rangkaian Simulasi dan Prinsip Kerja
Pada percobaan ini terdapat sepasang arduino, keypad dan lcd. Arduino pertama berfungsi sebagai master yang menerima input dari keypad. Sedangkan Arduino kedua adalah slave atau arduino yang dikontrol. Slave menerima instruksi dari Master dan meneruskannya ke lcd. Sesuai kondisi yang dipilih dan listing program yang mana setiap Key 1-9 menampilkan karakter nomor 9-1 secara berurutan dikolom kedua LCD.
A. Flowchart
B. Listing Program
- Master
#include <Keypad.h>
#include <Wire.h>
const byte ROWS = 4;
const byte COLS = 3;
char keys[ROWS][COLS] = {
{'1', '2', '3'},
{'4', '5', '6'},
{'7', '8', '9'},
{'*', '0', '#'},
};
char rowPins[ROWS] = {13, 12, 11, 10};
char colPins[COLS] = {9, 8, 7};
Keypad keypad = Keypad(makeKeymap(keys), rowPins, colPins, ROWS, COLS);
void setup()
{
Wire.begin(); // join i2c bus (address optional for master)
}
//byte x = 0;
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(13, 12, 6, 5, 4, 3); // Sesuaikan pin sesuai dengan koneksi LCD
int receivedData = 0;
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
lcd.print("Silahkan Tekan");
}
void loop()
{
delay(100);
}
void receiveEvent(int howMany)
{
receivedData = Wire.read(); // receive byte as a character
Serial.println(receivedData); // print the character
if (receivedData >= '1' && receivedData <= '9') {
int number = receivedData - '0';
lcd.clear();
int numbernoninverted = number % 2;
int numberinverted = !numbernoninverted;
lcd.setCursor(numberinverted, 0);
lcd.print(number);
}
}
Key 1-9 menampilkan karakter nomor 9-1 secara berurutan dikolom kedua LCD
Tidak ada komentar:
Posting Komentar