/* Crawler Slave * * This code runs on the crawler i2c network * and provides a cleaner, less CPU intensive control over PWM devices. */ #include #include // This servo is used to wipe and clean the camera lens Servo windowWiperServo; // Variables populated over i2c from master int id; int val; void setup() { // Attach the wiper servo to pin 9 windowWiperServo.attach(9); // This is the address the pi will speak to us at Wire.begin(0x8); // Call receiveEvent when data received Wire.onReceive(receiveEvent); } // Just loop to keep the running code alive, and wait for events to happen. void loop() { delay(50); } // This method runs when we receive a message void receiveEvent(int n) { if (Wire.available() == 2) { // Dont do anything if this is not true id = Wire.read(); // ID of the servo/device to access val = Wire.read(); // Value to assign switch(id) { case 1: windowWiperServo.write(val); break; } } }