LAPORAN AKHIR MODUL 3 PERCOBAAN 3
1. Tujuan [KEMBALI]
a. Mengetahui prinsip kerja dari I2C
b. Dapat membuat rangkaian komunikasi I2C menggunakan proteus
kondisi
Ganti potensiometer dengan buuton dan led dengan motor DC, sehingga ketika button di tekan maka motor DC akan berputar searah jarum jam.
2. Komponen [KEMBALI]
3. Rangkaian Simulasi [KEMBALI]
4. Flowchart [KEMBALI]
5. Listing Program [KEMBALI]
//MASTER
#include <Wire.h>
#define BUTTON A0
#define MASTER_ADDR 9
void setup() {
Wire.begin();
pinMode(BUTTON, INPUT);
}
void loop() {
delay(50);
int button_status = digitalRead(BUTTON);
Wire.beginTransmission(MASTER_ADDR);
Wire.write(button_status);
Wire.endTransmission();
}
//SLAVE
#include <Wire.h>
#define SLAVE_ADDR 9
#define in1 9
#define in2 10
int rd;
void setup() {
pinMode(in1, OUTPUT);
pinMode(in2, OUTPUT);
Wire.begin(SLAVE_ADDR);
Wire.onReceive(receiveEvent);
Serial.begin(9600);
Serial.println("I2C Slave demo");
}
void receiveEvent() {
rd = Wire.read();
Serial.println(rd);
}
void loop() {
if (rd == LOW) {
digitalWrite(in1, LOW);
digitalWrite(in2, HIGH);
} else {
digitalWrite(in1, LOW);
digitalWrite(in2, LOW);
}
}
6. Video Simulasi [KEMBALI]
7. Prinsip Kerja [KEMBALI]
Percobaan I2C ini menggunakan 2 buah arduino, dimana satu arduino bertindak sebagai master dan yang satunya sebagai slave. Rangkaian ini juga menggunakan driver motor untuk mengatur arah putaran dari motor agar sesuai dengan yang kita inginkan.
Untuk listing program yang digunakan dapat dilihat di atas. Untuk prinsip kerja secara umum, motor akan bergerak ketika button di tekan. Dimana arah perputaran motor adalah ke kanan. Motor akan berhenti bergerak ketika button di nonaktifkan.
8. Analisa [KEMBALI]
1. Apakah device master pada komunikasi ini mempunyai alamat/address?
Jawab :
Master membutuhkan alamat pada komunikasi ini agar mampu mengirimkan data pada slave. Master dapat menggunakan 2 pin pada arduino saja untuk terhubung ke banyak slave asalkan alamat yang dibuat itu unik.
2. apa yang terjadi jika addres pada slave di ganti menjadi 0x70?
Jawab :
Jika alamat pada slave di ganti, maka arduino master tidak dapat mengirimkan data karena alamatnya yang berbeda. Sehingga motor ssebagai output dari arduino slave akan mati.
3. apa fungsi sintax 'Wire.onReceive(receiveEvent)' pada slave?
Jawab :
Fungsi Wire.onReceive(receiveEvent) adalah untuk menerima data yang dikirimkan oleh arduino master.
9. Link Download [KEMBALI]
a. HTML klik di sini
b. Rangkaian Simulasi klik di sini
c. Listing Program Master klik di sini
d. Listing Program Slave klik di sini
e. Library klik di sini
f. Datadheet klik di sini
g. Video klik di sini
Tidak ada komentar:
Posting Komentar