Intenté realizar una comunicación I2C de Arduino Uno a ATtiny44A.
Uno como código maestro y transmisor:
#include <Wire.h>
#define LED_PIN 13
byte x = 0;
void setup()
{
Wire.begin(); // Start I2C Bus as Master
pinMode(LED_PIN, OUTPUT);
digitalWrite(LED_PIN, LOW);
}
void loop()
{
Wire.beginTransmission(0x26); // transmit to device #9
Wire.write(x); // sends x
Wire.endTransmission(); // stop transmitting
x++;
if (x > 5) x=0;
delay(450);
}
Código de esclavo / receptor ATtiny44A:
#include "TinyWireS.h" // wrapper class for I2C slave routines
#define I2C_SLAVE_ADDR 0x26 // i2c slave address (38)
#define LED1_PIN 10
void setup(){
pinMode(LED1_PIN,OUTPUT); // for general DEBUG use
TinyWireS.begin(I2C_SLAVE_ADDR); // init I2C Slave mode
}
void loop(){
byte byteRcvd = 0;
if (TinyWireS.available()){ // got I2C input!
byteRcvd = TinyWireS.receive(); // get the byte from master
if(byteRcvd == 5){
digitalWrite(LED1_PIN,HIGH);
delay(1000);
}
else{
digitalWrite(LED1_PIN,LOW);
}
}
}
¿Estoy haciendo algo mal? El LED no parpadea. ¿Cuáles son las otras formas de depurar ATtiny?