lewis-crawler/crawler_software/arduino/crawler_slave/crawler_slave.ino

46 lines
1.0 KiB
C++

/* Crawler Slave
*
* This code runs on the crawler i2c network
* and provides a cleaner, less CPU intensive control over PWM devices.
*/
#include <Wire.h>
#include <Servo.h>
// This servo is used to wipe and clean the camera lens
Servo windowWiperServo;
// This is a variable capable of storing up to 4 items
char instruction[4] = "";
void setup() {
// Attach the wiper servo to pin 9
windowWiperServo.attach(9);
// This is only useful for debugging
Serial.begin(9600);
// This is the address the pi will speak to us at
Wire.begin(0x8);
// Call receiveEvent when data received
Wire.onReceive(receiveEvent);
Serial.print("Finished Setup.");
}
// 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) {
for (int i = 0; i < n; i++) //n is equal to the number of data bytes received
{
instruction[i] = Wire.read();
}
Serial.print(instruction);
}