Tugas Pendahuluan 2 Modul 3
(Percobaan 3 Kondisi 1)
1. Rangkai rangkaian di proteus sesuai dengan kondisi percobaan.
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 simulasi rangkaian pada proteus.
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 simulasi rangkaian pada proteus.
2. Hardware dan Diagram Blok
[Kembali]
3. Rangkaian Simulasi dan Prinsip Kerja
[Kembali]
Rangkaian Simulasi :
Prinsip Kerja :
Pada percobaan 3 kondisi 1 disini digunakan komunikasi I2C, dimana komunikasi ini bersifat half-duplex yaitu data dikirim dan diterima pada waktu yang berbeda dan bergantian. Kami menggunakan dua buah Arduino Unos yang dihubungkan dengan keyboard 4x4 dan layar LCD. Unit master menggunakan keyboard sebagai pemancar data, dan unit slave menggunakan layar LCD sebagai penerima data. Cara kerjanya kita klik salah satu", lalu keluar inputan sesuai dengan angka yang tertera di LCD, jika bersamaan kita klik keyboard maka akan terjadi benturan data..
4. Flowchart dan Listing Program
[Kembali]
MASTER
#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] = {5, 4, 3, 2};
char colPins[COLS] = {6, 7, 8};
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(7, 6, 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);
}
Percobaan 3 Kondisi 1
Key 1 - 9 menampilkan karaktaer nomor 1 - 9 secara berurut di kolom pertama LCD
6. Video Simulasi
[Kembali]
7. Download File
[Kembali]
HTML klik disini
Simulasi klik disini
Gambar Simulasi klik disini
Video Simulasi klik disini
Listing Program Master klik disini
Video Simulasi klik disini
Listing Program Master klik disini
Tidak ada komentar:
Posting Komentar