Tugas Pendahuluan 2 : Modul III Percobaan 3 Kondisi 3
*Klik teks untuk menuju
1. Prosedur [Kembali]
Langkah-langkah percobaan :
1. Siapkan alat dan bahan yaitu dengan komponen utama Arduino Uno, Switch, LCD
2. Rangkai sesuai gambar percobaan
3. Rancang kerja rangkaian sesuai flowchat
4. Tekan tombol “Play” untuk menjalankan simulasi
2. Hardaware dan Diagram Blok [Kembali]
- Arduino
- LCD
- Keypad
3. Rangkaian Simulasi dan Prinsip Kerja [Kembali]
Prinsip Kerja
Rangkaian ini bekerja dengan menggunakan komunikasi I2C (Inter Integrated Circuit) yan gmenggunakan pin SCL (Serial Clock) dan SDA (Serial Data) untuk melakukan komunikasi. I2C menggunakan pengecekan addreas dan juga eror data dalam melakukan komunikasi. jadi data yang diterima akan sangat akurat.
Pada rangkaian master akan melakukan kontrol terhadap slave yang mana master memberikan inputan berupa kondisi keypad kepada slave. Sebelum itu master akan memilih alamat mana terlebih dahulu untuk menentukan ke slave yang mana data akan dikirimkan. saat alamat dan juga juga data sudah cocok maka slave akan membaca data tersebut. Komunikasi terjadi pada pin SDA yang bekerja secara hal-Duplex. Dari data tersebut slave akan melakukan aksi sesuai inputan yang diterima dari Master.
- Pada kondisi diatas saat angka berupa ganjil maka berada pada kolom 1
- sedangkan saat inputan angka genap maka akan ditampilkan pada kolom 2 LCD
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] = {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();
lcd.setCursor(0, number % 2);
lcd.print(number);
}
}
5. Kondisi [Kembali]
key 1 - 9 menampilkan karaktaer nomor 1 - 9 secara berurut, angka ganjil di kolom pertama dan angka genap di kolom kedua
6. Video Simulasi [Kembali]
7. Download File [Kembali]
HTML Disini
Simulasi Disini
Gambar Hardware Disini
Video Simulasi Disini
Listing Program Disini
Tidak ada komentar:
Posting Komentar