Percobaan
3
1. FOTO HARDWARE DAN DIAGRAM BLOK [Kembali]
b. Diagram Blok
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
3. RANGKAIAN SIMULASI DAN PRINSIP KERJA [Kembali]
Pada percobaan 3 ini menggunakan komunikasi I2c dimana pada komunikasi ini Master dapat terhubung dengan lebih dari 1 Slave. Namun pada praktikum hanya digunakan 1 Slave saja. Sesuai dengan kondisi dimana keypad terhubung dengan Master. Ketika key ditekan, maka data nya akan dikirim ke Slave. sebelum mengirimkan data, ditentukan dulu alamat yang sesuai dengan Slave. Kemudian Slave dengan alamat yang sesuai akan menerima data dan akan manampilkan outputnya pada layar LCD.
a. Flowchart
Master
Slave
b. Listing Program
Master
//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] = {9, 8, 7, 6};
char colPins[COLS] = {5, 4, 3};
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
//Slave Arduino
#include <LiquidCrystal.h>
#include <Wire.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2); // Sesuaikan pin sesuai dengan koneksi LCD
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);
}
// function that executes whenever data is received from master
// this function is registered as an event, see setup()
void receiveEvent(int howMany)
{
char c = Wire.read(); // receive byte as a character
Serial.println(c);
// print the character
lcd.clear();
lcd.setCursor(0, 0);
lcd.print(c);
delay(100);
}
5. KONDISI [Kembali]
Ketika tombol pada keyPad yang terhubung dengan Master ditekan maka LCD yang terhubung dengan Slave, akan menampilkan karakter sesuai dengan tombol yang ditekan
6. VIDEO RANGKAIAN [Kembali]







Tidak ada komentar:
Posting Komentar