Percobaan 3 Kondisi 2
Key 1 - 9 menampilkan karakter nomor 9 - 1 secara berurut di kolom kedua LCD
1. Prosedur [Kembali]
- Rangkailah semua komponen
- Buat program di aplikasi arduino IDE
- Setelah selesai, masukkan program ke arduino
- Jalankan program pada simulasi dan lakukan sesuai kondisi
2. Hardware dan diagram blok
2. Keypad
3. Rangkaian Simulasi dan Prinsip Kerja [Kembali]
a) Gambar rangkaian sebelum dijalankan
Prinsip Kerja
Pada rangkaian di atas merupakan rangkaian percobaan 3 kondisi 2 , pada percobaan ini kondisi rangkaian yaitu Key 1 - 9 menampilkan karakter nomor 9 - 1 secara berurut di kolom kedua LCD. Rangkaian terdiri dari beberapa komponen, seperti arduino sebanyak 2 buah , keypad dan LCD.
Rangkaian ini menggunakan komunikasi pada arduino jenis 12c, karena pada arduino yang digunakan, menggunakan 2 pin dan 1 jalur dalam proses pengiriman data. Pada I2C, menggunakan pin SDA dan pin SCK pada arduino uno.
Pada arduino master , terhubung ke inputan berupa keypad untuk memberikan inputan melalui jalur I2C ke slave.Untuk ne==menghubungkan arduino master dan slave, pada listing program digunakan fungsi wire.begin(), yang berfungsi sebagai penghubung antara arduino master dan arduino slave
4. Flowchart dan Listing Program [Kembali]
a. Flowchart
MASTER ARDUINO
SLAVE ARDUINO
MASTER ARDUINO
//Master Arduino
#include <Keypad.h>
#include <Wire.h>
const byte ROWS = 4;
const byte COLS = 3;
char keys[ROWS][COLS] = {
{'9', '8', '7'},
{'6', '5', '4'},
{'3', '2', '1'},
{'*', '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 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, 1);
lcd.print(c);
delay(100);
}
Pada percobaan 3 kondisi 2 kondisi rangkaian yaitu Key 1 - 9 menampilkan karakter nomor 9 - 1 secara berurut di kolom kedua LCD
HTML Klik disini Klik disini
Rangkaian Simulasi Klik disini
Video Simulasi Klik disini
Listing Program Master Klik disini
Listing Program Slave Klik disini
Datasheet Arduino Uno klik disini
Tidak ada komentar:
Posting Komentar