Laporan Akhir Percobaan III Modul 3




1. Komponen 
  • ARDUINO UNO

  • PUSH BUTTON

  • LED












Flowchart master:




Flowchart Slave:





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







PERCOBAAN III
1. Apabila ada tambahan slave, bagaimana cara master membedakan satu slave dengan slave lainnya pada i2C pada saat berkomunikasi? Apakah pada bagian program, atau rangkaian, atau keduanya ?

JAWAB:

Pada rangkaian inter integrated circuit ini master dapat menentukan komunikasi dimulai atau dihentikan dengan menggunaka start dan stop. Jika kita ingin menambahkan slave maka pin scl dihubungkan secara paralel dengan slave. Untuk rangkaiannya seperti ini:


Pada programnya kita menukar logika pada slave jika kita ingin menyalakan LED di slave 1 maka slave 1 diberi logika HIGH dan LOW sedangkan slave 2 diberi logika LOW dan LOW begitu pun sebaliknya.

[kembali]


7. Link Download 

HTML: click here
Rangkaian simulasi: click here
Listing program: 
Master click here
Slave click here
Video: click here
 

Tidak ada komentar:

Posting Komentar