2. Rangkaian Simulasi [Kembali]
3. Flowchart [Kembali]
- Master
- Slave
4. Listing Program [Kembali]
- Master
#include <Wire.h>
#define MASTER_ADDR 9
//0-127 alamat 12c
int analogPin = A0;
int val = 0;//dari mapping
void setup() {
Wire.begin();//siap mengirimkan data
}
void loop() {
delay(50);
val = map(analogRead(analogPin), 0, 1023, 255, 1);//pembacaan potensiometer, prubahan poten, proses adc
//0-123adc
//1-255pwm
Wire.beginTransmission(MASTER_ADDR);//memulai transmisi
Wire.write(val);//dituliaskan sesuai dg value y didapatkan
Wire.endTransmission();//berhenti
}
- 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);
}
void receiveEvent() {
rd = Wire.read();
}
void loop() {
delay(50);
br = map(rd, 1, 255, 100, 2000);
if (br >= 100 && br <= 0.2 * 2000) {
delay(100);
digitalWrite(LED, HIGH);
delay(100);
digitalWrite(LED, LOW);
} else {
delay(100);
digitalWrite(LED, LOW);
}
}
5. Video [Kembali]
6. Kondisi [Kembali]
- Rangkailah 2 buah led, kemudian buatlah keduanya menyala bergantian ketika potensiometer 0%-20%.
1. Jelaskan bagaimana cara menghubungkan rangkaian I2C dengan slave lebih dari satu, dan jelaskan bagaimana komunikasi antara master dan slavenya.
Rangkaian I2C dengan 2 slave atau lebih dapat dihubungkan secara paralel antara master dan slave yang digunakan. Perangkat master dapat melakukan tindakan read atau write pada perangkat slave. Untuk memulai komunikasi antara master dengan slave dilakukan dengan mengirimkan start sequence, kemudian alamat perangkat slave yang dituju, lalu tindakan yang dilakukan (write atau read), dan mengirimkan stop sequence untuk mengahiri komunikasi data yang berlangsung.
7. Link Download [Kembali]
Rangkaian disini
Video disini
Listing Program disini
HTML disini
0 komentar:
Posting Komentar