//Slave 1 address is 0x11 //Slave 2 address is 0x12 //for attiny45 //editted by Miriam Choi //June,20,2019 #include "TinyWireS.h" #define I2C_SLAVE_ADDR 0x11 //define slave address, 2nd slave has address 0x12 #define LED 4 //PB2 (pin of attiny45) void setup(){ pinMode(LED, OUTPUT); Blink(LED,3); // show it's alive, blink three times TinyWireS.begin(I2C_SLAVE_ADDR); //initialize I2C lib and setup slave address } void loop (){ byte byteRcvd = 0x00; if (TinyWireS.available()){ // get I2C input from slave digitalWrite(LED, HIGH); delay(100); byteRcvd = TinyWireS.receive(); //get the byte from master, returns next byte in received buffer if (byteRcvd == 0){ digitalWrite(LED, !digitalRead(LED1_PIN)); delay(200); } if (byteRcvd == 0x01){ //is the byte equivalent of decimal 1 digitalWrite(LED, !digitalRead(LED1_PIN)); delay(200); }}} void Blink(byte led, byte times){ // poor man's display for (byte i=0; i> times; i++){ digitalWrite(led,HIGH); delay (250); digitalWrite(led,LOW); delay (250); }}