2. Rangkaian Simulasi [Kembali]
3. Flowchart [Kembali]
4. Listing Program [Kembali]
//MASTER
#include
<Wire.h>
#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
<Wire.h>
#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]
//MASTER #include
<Wire.h> #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
<Wire.h> #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); } |
1. 1. Apakah
kita dapat mengirim data sebanyak 9 bit? Jelaskan alasannya
Jawab :
Pada
I2C master mengirim data sejumlah 8 bit, apabila kita mengirim sebanyak 9 bit
maka dikeluarkan si slave sebagai tanda data tersebut sudah diterima oleh bit
ack sehingga bit 9 ini sebagai sinyal ack yang bernilai 0 yang telah
dikeluarkan oleh si slave tadi. Jadi, bisa mengirim data sebanyak 9 bit
2. 2 Apa
pengaruh potensiometer terhadap output (LED)
Jawab
:
Dapat
dilihat dari praktikum yang dilakukan bahwa potensiometer berpengaruh terhadap
kecepatan kedip nyala matinya LED. Potensiometer berguna untuk memperbesar atau
memperkecil delay hidup dari LED. Semakin kecil hambatan yang diberikan,
LED akan berkedip semakin lambat atau pelan berkedip. Begitu juga sebaliknya,
apabila hambatan yang diberikan semakin besar, semakin cepat pula LED akan
berkedip.
3. 3. Jelaskan
prinsip kerja I2C pada rangkaian
Jawab
:
Prinsip
kerja rangkaian pada percobaan ini yaitu menggunakan dua Arduino yaitu arduino
master dan Arduino slave. Dimana pada I2C ini data dikirimkan melalui pin A4
dan A5 untuk mengirimkan serial data dan serial clock. Pada rangakian ini input
dari master berupa potensiometer. Ketika nilai dari potensiometer diperbesar
atau diperkecil, maka nilai inputnya yang berlogika high dan low akan dibaca
oleh master dan dikirimkan ke slave. Dari slave akan dikirimkan logika high
atau low tersebut ke LED yang mengakibatkan delay hidup dan matinya LED akan
semakin besar ataupun semakin kecil.
Tidak ada komentar:
Posting Komentar