Modul 3
Percobaan 3
1. Prosedur [Kembali]
3. Rangkaian Percobaan dan Prinsip Kerja [Kembali]
#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
}
5. Kondisi [Kembali]
Percobaan 3 Komunikasi I2C Menggunakan Arduino
6. Video Demo [Kembali]
8. Download File [Kembali]
1. Susunlah komponen sesuai dengan percobaan
2. Buatlah kode slave dan master menggunakan Arduino IDE.
3. Upload program yang telah disusun ke Arduino Uno.
4. Lakukan pengujian program pada rangkaian percobaan
5. Selesai
2. Hardware dan Diagram Blok [Kembali]
A. Hardware
3. Rangkaian Percobaan dan Prinsip Kerja [Kembali]
A. Rangkaian Percobaan
B. Prinsip Kerja
Pada percobaan 3, inputkan berupa keypada yang terhubung ke arduino master dan output berupa lcd yang terhubung dengan arduino slave. Kedua arduino ini menggunakan komunikasi I2C sehingga antar arduino terhubung melalui SDA dan SCL. Ketika inputan keypad masuk ke arduino master, maka arduino akan memproses inputan tersebut untuk dikirimkan ke arduino slave, melalui Wire.beginTransmission(4) dimana 4 ada addres dari arduino slave yang terhubung ke output yaitu LCD. Arduino master juga mengirimkan data key yang merupakan inputan dari keypad ke arduino slave melalui Wire.write(key). Data yang dikirim oleh arduino master akan diterima arduino slave addres 4 yaitu wire.begin(4) dan data dibaca oleh arduino slave yaitu Wire.Read(). Data tersebut diproses oleh arduino slave dan menampilkan angka sesuai input dari keypad.
4. Flowchart dan Listing program[Kembali]
A. Flowchart
Code 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
}
}
Code Slave
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]
6. Video Demo [Kembali]
1. Bagaimana cara mengupload program kepada arduino dengan komunikasi yang digunakan?
Jawab :
Percobaan 3 menggunakan komunikasi I2C, di mana komunikasi I2C untuk mengupload program ke arduino dilakukan secara langsung di mana code master di upload langsung kearduino masker dan code slave di upload langsung ke arduino slave tanpa memutuskan jumper antara arduino
2. Sebutkan dan jelaskan termasuk jenis komunikasi data apa komunikasi yang digunakan pada percobaan ini?
Jawab:
Pada percobaan 3 digunakan komunikasi I2C, hal ini terlihat dari library yang digunakan yaitu #include<wire.h> serta kedua arduino saling terhubung melalui SDA (data serial) dan SDL (clock serial).
3. Bandingkan dengan tugas pendahuluan?
Jawab:
Pada tugas pendahuluan dan percobaan praktikum sama-sama menggunakan komunikasi I2C. Hal yang membedakannya adalah pada code slave di mana tugas pendahuluan membedakan letak posisi antara angka genap dan ganjil, angka genap dikolom pertama sedangkan angka ganjil di kolom kedua. Pada percobaan praktikum hanya menempatkan diposisi yang sama. Cara membedakan angka genap dan ganjil dengan cara melihat sisa pembagian jika dibagi 2 jika sisa pembagian 0 maka angka tersebut genap sedangkan jika bersisa maka angka ganjil.
Download HMTL klik disini
Download Simulasi Rangkaian klik disini
Download Video Percobaan klik disini
Download Program Master klik disini
Download Program Slave klik disini
Download Datasheet Arduino Uno klik disini
Download Datasheet Keypad klik disini
Download Datasheet LCD klik disini