Langkah-langkah percobaan :
- Rangkailah seperti rangkaian berikut
- Buka Arduino IDE dan masukan listing Program
- Upload program ke arduino
- Mencoba rangkaiannya dengan memvariasikan input pada dipswitch.
2. Hardware dan Diagram Blok [Kembali]
- Infrared sensor
- Arduino
- LCD
- Keypad
- Motor
3. Rangkaian Simulasi dan Prinsip Kerja [Kembali]
Prinsip Kerja:
Ketika data input dari keypad masuk ke master arduino, data tersebut terkirim ke slave arduino menggunakan jenis komunikasi I2C melalui pin SDA pada master arduino yang terhubung ke SDA pada slave arduino, dan pin SCL yang saling terhubung antara masing-masing arduino agar komunikasi bersifat sinkronus. kemudian outputnya ditampilkan pada LCD yang terhubung ke slave arduino.
4. Flowchart dan Listing Program [Kembali]
flowchart:
listing program:
//Master Arduino
#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
}
}
#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();
lcd.setCursor(0, number % 2);
lcd.print(number);
}
}
5. Kondisi [Kembali]
Kondisi 3:
key 1 - 9 menampilkan karakter nomor 1 - 9 secara berurut, angka ganjil di kolom pertama dan angka genap di kolom kedua
7. Download File [Kembali]
video klik di sini
html klik di sini
rangkaian klik di sini
code arduino uno klik di sini
Tidak ada komentar:
Posting Komentar