You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

60 lines
906 B

#include <Wire.h>
#define SLAVE_ADDRESS 0x04
int number = 0;
int state = 0;
void setup() {
pinMode(13, OUTPUT);
Serial.begin(9600); // start serial for output
// initialize i2c as slave
Wire.begin(SLAVE_ADDRESS);
// define callbacks for i2c communication
Wire.onReceive(receiveData);
Wire.onRequest(sendData);
Serial.println("Ready!");
}
void loop() {
delay(100);
}
// callback for received data
void receiveData(int byteCount) {
while (Wire.available()) {
number = Wire.read();
Serial.println(number);
if (number == 1) {
if (state == 0) {
Serial.println("LED ON");
state = 1;
}
else {
Serial.println("LED OFF");
state = 0;
}
}
}
}
// callback for sending data
void sendData() {
Wire.write(number);
Serial.println("Sending...");
Wire.begin(0x08);
delay(100);
}