PERCOBAAN 3

 



KOMUNIKASI I2C

1. Komponen [back]


Gambar 1. Potensiometer
Gambar 2. LED

Gambar 3. Arduino Uno

2. Rangkaian Simulasi [back]

 





 
//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);
}

 




Analisa dengan mengubah rangkaian menjadi mengatur intensitas cahaya LED ?

Jawab:

Pada rangkaian simulasi percobaan 3 mengenai komunikasi I2C ini kita menggunakan potensiometer yang mana merupakan komponen yang bisa diubah nilai resistansinya dengan cara memutar tuas pada potensiometer tersebuat. Untuk mengubah rangkaian menjadi mengatur intensitas, maka listing program pada slave dari yang awalnya:

digitalWrite(LED, HIGH);

  delay(br);

  digitalWrite(LED, LOW);

  delay(br);

}

 

Menjadi:

digitalWrite(LED,br);

delay(200);

}

Sehingga dengan demikian maka intensitas cahaya pada LED dapat diubah-ubah dengan mengganti nilai resistansi pada potensiometer.


 HTML - Download
Simulasi Proteus - Download
Listing Program Master - Download
Listing Program Slave - Download
Video - Download

Tidak ada komentar:

Posting Komentar