#include //Fab Academy 2018 //Networking and communications // I2C, Master and 4 slaves //Gerardo.Saz // ---- SLAVE ---- int slave = 3; // Set slave number (1,2 or 3) void setup() { Wire.begin(slave); // join i2c bus with address Wire.onReceive(requestEvent); // register event Serial.begin(115200); // start serial for output pinMode(3,OUTPUT); //External Led pinMode(LED_BUILTIN, OUTPUT); digitalWrite(3,LOW); } void loop() { digitalWrite(LED_BUILTIN, HIGH); // turn the LED on (HIGH is the voltage level) delay(100); // wait for a 0.1 second digitalWrite(LED_BUILTIN, LOW); // turn the LED off by making the voltage LOW delay(100); // wait for a 0.1 second digitalWrite(LED_BUILTIN, HIGH); // turn the LED on (HIGH is the voltage level) delay(100); // wait for a 0.1 second digitalWrite(LED_BUILTIN, LOW); // turn the LED off by making the voltage LOW delay(100); // wait for a 0.1 second Serial.println(String(slave) + ": blah, "); } // This function is executed when the master calls this slave. // current processes are interrupted to execute the order. void requestEvent(int howMany) { Serial.println("Slave #"+ String(slave) +", ok"); Wire.read(); for(double i = -PI/2; i <= 3*PI/2; i=i+ PI/30){ int cathetus = 127 +(127 * sin(i)) ; analogWrite (3, cathetus); delay(2000); } digitalWrite (3, LOW); }