4. Listing Program [Kembali]
//MASTER
#include
#define SLAVE_ADDR 9
int analogPin = 0;
int val = 0;
void setup() {
Wire.begin();
}
void loop() {
delay(50);
val = map(analogRead(analogPin), 0, 1023, 255, 1);
Wire.beginTransmission(SLAVE_ADDR);
Wire.write(val);
Wire.endTransmission();
}
|
//SLAVE
#include
#define SLAVE_ADDR 9
int LED = 13;
int rd;
int br;
void setup() {
pinMode(LED, 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() {
delay(50);
br = map(rd, 1, 255, 100, 2000);
digitalWrite(LED, HIGH);
delay(br);
digitalWrite(LED, LOW);
delay(br);
}
|
5. Analisa [Kembali]
1. 1. Bagaimana
pengaruh potensiometer terhadap nyala LED?
Pada percobaan
ini, potensiometer berguna sebagai input dari master untuk memperbesar atau
memperkecil delay hidup dari LED.
Ketika
potensiometer di perbesar maka kecepatan clock pada LED akan semakin cepat, dan
apabila potensio diperkecil maka kecepatan Clock pada LED akan semakin lambat.
2. Apa
fungsi library <Wire.h> ?
Libray ini
berfungsi untuk mengaktifkan komunikasi serial I2C pada arduino. sehingga tidak
perlu mendeklarasikan atau mengatur pin pada arduino sebagai jalur komunikasi
nya. Library ini menggunakan alamat 7 bit. jika kita memakai alamat 8 bit, maka
kita akan menggeser nilai 1 bit ke kanan.
3. Jelaskan
prinsip kerja rangkaian!
Pada I2C terdapat
master dan slave, data ditransfer menuju
slave dalam bentuk message yang terdiri dari kondisi start, Address Frame, R/W
bit, ACK/NACK bit, Data Frame 1, Data Frame 2, dan kondisi Stop.
Kondisi start
dimana saat pada SDA beralih dari logika high ke low sebelum SCL.
Kondisi stop
dimana saat pada SDA beralih dari logika low ke high sebelum SCL.
R/W bit berfungsi
untuk menentukan apakah master mengirim data ke slave atau meminta data dari
slave. (logika 0 = mengirim data ke slave, logika 1 = meminta data dari slave)
1
-HTML
Tidak ada komentar:
Posting Komentar