diff options
author | Cristian Maglie <c.maglie@bug.st> | 2012-01-04 15:14:51 +0100 |
---|---|---|
committer | Cristian Maglie <c.maglie@bug.st> | 2012-01-04 15:14:51 +0100 |
commit | 8c2b5b979a75d109ae7cc306afc50d7ffe1e0366 (patch) | |
tree | 19ac8d91c7209397e7dc890b432a254ae9a7cd62 /libraries/Firmata/examples/ServoFirmata/ServoFirmata.ino | |
parent | be52c95820400d48e47615232d3c38236166fad3 (diff) |
Moved libraries folder inside platform folder. Now libraries and examples are searched per board/platform
Diffstat (limited to 'libraries/Firmata/examples/ServoFirmata/ServoFirmata.ino')
-rw-r--r-- | libraries/Firmata/examples/ServoFirmata/ServoFirmata.ino | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/libraries/Firmata/examples/ServoFirmata/ServoFirmata.ino b/libraries/Firmata/examples/ServoFirmata/ServoFirmata.ino new file mode 100644 index 0000000..cdcfff0 --- /dev/null +++ b/libraries/Firmata/examples/ServoFirmata/ServoFirmata.ino @@ -0,0 +1,53 @@ +/* + * Firmata is a generic protocol for communicating with microcontrollers + * from software on a host computer. It is intended to work with + * any host computer software package. + * + * To download a host software package, please clink on the following link + * to open the download page in your default browser. + * + * http://firmata.org/wiki/Download + */ + +/* This firmware supports as many servos as possible using the Servo library + * included in Arduino 0017 + * + * TODO add message to configure minPulse/maxPulse/degrees + * + * This example code is in the public domain. + */ + +#include <Servo.h> +#include <Firmata.h> + +Servo servos[MAX_SERVOS]; + +void analogWriteCallback(byte pin, int value) +{ + if (IS_PIN_SERVO(pin)) { + servos[PIN_TO_SERVO(pin)].write(value); + } +} + +void setup() +{ + byte pin; + + Firmata.setFirmwareVersion(0, 2); + Firmata.attach(ANALOG_MESSAGE, analogWriteCallback); + + for (pin=0; pin < TOTAL_PINS; pin++) { + if (IS_PIN_SERVO(pin)) { + servos[PIN_TO_SERVO(pin)].attach(PIN_TO_DIGITAL(pin)); + } + } + + Firmata.begin(57600); +} + +void loop() +{ + while(Firmata.available()) + Firmata.processInput(); +} + |