Zombie Hand Pointer X-Steel - Help Select





1. Hardware  [Kembali]


Gambar potensiometer

Gambar. LED















//master
#include <Wire.h>
#define button 2
#define addr 0x01

bool state,lastState;

void setup(){
  pinMode (button,INPUT);
  Wire.begin();
  lastState = digitalRead(button);
}
void loop(){
  state = digitalRead(button);
  if (state !=lastState){
    lastState= state;
    Wire.beginTransmission(addr);
    Wire.write(state ? 'A' : 'B');
    Wire,endTransmission();
  }
}

//slave

#include <Wire.h>
#define led 2
#define ddr 0x01



void setup(){
  pinMode (led,INPUT);
  Wire.begin(addr);
  Wire.onReceive(callback);
}
void callback(){
  char c = Wire.read();
  if (c ='A'){
    digitalWrite(led,LOW);
  }else if (c== 'B'){
    digitalWrite (led,HIGH);
  }
}

void loop(){
  if (Serial.availabel() >0 ){
    char c = Serial.read();
    if (c =='A'){
      digitalWrite (led,LOW);
    } else if (c== 'B')}
    digitalWrite (led,HIGH);
  }
}



buatlah program menggunakan potensiometer sebagai input untuk menghidupkan LED dengan komunikasi I2C
1.
Jawab:

1.   


Program


 MASTER
#define SLAVE_ADDR 9
int analogPin = 0;
int val = 0;
void setup() {
  pinMode(analogPin, INPUT_PULLUP);
  Serial.begin(9600);
}
void loop() {
  delay(50);
  val = map(analogRead(analogPin), 0, 1023, 255, 1);
  Serial.print(val);
}
  SLAVE
#define SLAVE_ADDR 9

int LED = 13;

int rd;

int br;

void setup() {

  pinMode(LED, OUTPUT);

  Serial.begin(9600);

  Serial.println("I2C Slave demo");

}

void loop() {

  delay(50);

  br = map(rd, 1, 1023,255, 1);

  digitalWrite(LED, HIGH);

  delay(br);

  digitalWrite(LED, LOW);

  delay(br);
}


Inter Integrated Circuit atau sering disebut I2C adalah standar komunikasi serial dua arah menggunakan dua saluran yang didisain khusus untuk mengirim maupun menerima data. Sistem I2C terdiri dari saluran SCL (Serial Clock) dan SDA (Serial Data) yang membawa informasi data antara I2C dengan pengontrolnya. Piranti yang dihubungkan dengan sistem I2C Bus dapat dioperasikan sebagai Master dan Slave. Master adalah piranti yang memulai transfer data pada I2C Bus dengan membentuk sinyal Start, mengakhiri transfer data dengan membentuk sinyal Stop, dan membangkitkan sinyal clock. Slave adalah piranti yang dialamati master.
Sinyal Start merupakan sinyal untuk memulai semua perintah, didefinisikan sebagai perubahan tegangan SDA dari “1” menjadi “0” pada saat SCL “1”. Sinyal Stop merupakan sinyal untuk mengakhiri semua perintah, didefinisikan sebagai perubahan tegangan SDA dari “0” menjadi “1” pada saat SCL “1”. Kondisi sinyal Start dan sinyal Stop seperti tampak pada Gambar 1.
 
Gambar 1. Kondisi sinyal start dan stop




Tidak ada komentar:

Posting Komentar

Elektronika

SATRIA AGUNG PRATAMA JURUSAN TEKNIK ELEKTRO UNIVERSITAS ANDALAS