int pin_LED = 2;
int pin_SDA = 0;
int pin_SCL = 1;
void start() {
digitalWrite(pin_SDA, HIGH);
delay(10);
digitalWrite(pin_SCL, HIGH);
delay(10);
digitalWrite(pin_SDA, LOW);
delay(10);
digitalWrite(pin_SCL, LOW);
}
void stop() {
digitalWrite(pin_SDA, LOW);
delay(10);
digitalWrite(pin_SCL, HIGH);
delay(10);
digitalWrite(pin_SDA, HIGH);
delay(10);
}
int send(int value) {
for(int i = 0; i < 8; i++) {
if(value & 0x80)
digitalWrite(pin_SDA, HIGH);
else
digitalWrite(pin_SDA, LOW);
digitalWrite(pin_SCL, HIGH);
delay(1);
value <<= 1;
digitalWrite(pin_SCL, LOW);
}
digitalWrite(pin_SDA, HIGH);
digitalWrite(pin_SCL, HIGH);
delay(1);
pinMode(pin_SDA, INPUT);
int ACK = digitalRead(pin_SDA); // possible ACK bit
pinMode(pin_SDA, OUTPUT);
digitalWrite(pin_SCL, LOW);
return ACK;
}
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
Serial.println("Hello!");
pinMode(pin_SDA, OUTPUT);
pinMode(pin_SCL, OUTPUT);
pinMode(pin_LED, OUTPUT);
delay(100);
start();
int value = 0x27 << 1;
Serial.println(send(value));
value = 0x7E << 1;
Serial.println(send(value));
stop();
}
void loop() {
// digitalWrite(pin_LED, HIGH); // bật đèn led
// delay(1000); // dừng trong 1 giây
// digitalWrite(pin_LED, LOW); // tắt đèn led
// delay(1000); // dừng trong 1 giây
}