tommasta

I2C - Slave (example) **WORKING**

Mar 24th, 2012
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.84 KB | None | 0 0
  1. #include <Wire.h>
  2.  
  3. #define LED_PIN 13
  4. #define LED_1 12
  5. #define LED_2 11
  6.  
  7. int x;
  8.  
  9. void setup() {
  10.   Wire.begin(9);                // Start I2C Bus as a Slave (Device Number 9)
  11.   Wire.onReceive(receiveEvent); // register event
  12.  
  13.   pinMode(LED_PIN, OUTPUT);
  14.   pinMode(LED_1, OUTPUT);
  15.   pinMode(LED_2, OUTPUT);
  16.  
  17.   digitalWrite(LED_PIN, LOW);
  18.   digitalWrite(LED_1, LOW);
  19.   digitalWrite(LED_2, LOW);
  20.  
  21.   x = 0;
  22. }
  23.  
  24. void loop() {
  25.   //If value received is 0 blink LED 1
  26.   if (x == 0) {
  27.     digitalWrite(LED_1, HIGH);
  28.     delay(200);
  29.     digitalWrite(LED_1, LOW);
  30.     delay(200);
  31.   }
  32.   //If value received is 1 blink LED 2
  33.   if (x == 1) {
  34.     digitalWrite(LED_2, HIGH);
  35.     delay(200);
  36.     digitalWrite(LED_2, LOW);
  37.     delay(200);
  38.   }
  39. }
  40.  
  41. void receiveEvent(int howMany) {
  42.   x = Wire.receive();    // receive byte as an integer
  43. }
Advertisement
Add Comment
Please, Sign In to add comment