1. Rangkai rangkaian pada alat sesuai dengan modul.
2. Tulis program untuk arduino di software Arduino IDE.
3. Compile program tadi, lalu upload ke dalam arduino.
4. Setelah program selesai di upload, jalankan rangkaian.
2. Tulis program untuk arduino di software Arduino IDE.
3. Compile program tadi, lalu upload ke dalam arduino.
4. Setelah program selesai di upload, jalankan rangkaian.
2. Hardware dan Diagram Blok
[Kembali]
Hardware :
1. Modul Arduino Uno
3. LCD
spesifikasi:
Tampilan 2 baris @ 16 karakter, 5 x 8 pixel
Display controller: HD44780 (standar industri LCD)
Dilengkapi lampu latar warna biru/hijau/kuning
Sudut pandang lebar dengan tingkat kontras yang dapat diatur dan terlihat jelas
Tegangan kerja: 5V DC
Dimensi modul: 80 x 36 x 12 mm
Dimensi layar tampilan: 64,5 mm x 16 mm
Diagram Blok :
3. Rangkaian Simulasi dan Prinsip Kerja
[Kembali]
Prinsip Kerja :
Pada rangkaian menggunakan dua buah arduino sebagai master dan slave, untuk arduino master itu digunakan sebagai input, yaitu keypad. Sedangkan untuk arduino slave sebagai output, output berupa LCD. Komunikasi yang digunakan antar dua arduino adalah I2C
Saat key ditekan, maka master akan melakukan transmisi data ke slave, data yang ditransmisikan adalah key yang ditekan. Pada slave, data berupa key yang diterima tersebut akan ditampilkan pada LCD pada kolom 1, baris 2.
4. Flowchart dan Listing Program
[Kembali]
Flowchart :
- Master :
- Slave :
- 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]
Percobaan 3 Komunikasi I2C Menggunakan Arduino
6. Video Demo [Kembali]
7. Soal Analisa
[Kembali]
Tidak ada komentar:
Posting Komentar