#include #include #define RX 1 // *** PB1, MISO #define TX 0 // *** PB0, MOSI SoftwareSerial mSerial(RX, TX); void setup() { // Pines en modo salida pinMode(6, OUTPUT); // Unimos este dispositivo al bus I2C con dirección 1 TinyWireS.begin(1); // Registramos el evento al recibir datos TinyWireS.onReceive(receiveEvent); // Iniciamos el monitor serie para monitorear la comunicación mSerial.begin(9600); mSerial.println(); mSerial.println(F("--------------------------------")); mSerial.println(F("Networking and Communications (SLAVE)")); mSerial.println(F("--------------------------------")); } void loop() { delay(300); } // Función que se ejecuta siempre que se reciben datos del master // siempre que en el master se ejecute la sentencia endTransmission // recibirá toda la información que hayamos pasado a través de la sentencia Wire.write void receiveEvent(int howMany) { int pinOut = 0; int estado = 0; // Si hay dos bytes disponibles if (TinyWireS.available() == 2) { // Leemos el primero que será el pin pinOut = Wire.read(); mSerial.print("LED "); mSerial.println(pinOut); } // Si hay un byte disponible if (Wire.available() == 1) { estado = Wire.read(); mSerial.print("Estado "); mSerial.println(estado); } // Activamos/desactivamos salida digitalWrite(pinOut,estado); }