diff options
| author | Thibaut VIARD <thibaut.viard@atmel.com> | 2011-06-21 00:20:43 +0200 | 
|---|---|---|
| committer | Thibaut VIARD <thibaut.viard@atmel.com> | 2011-06-21 00:20:43 +0200 | 
| commit | 0887b98f627500271b5ad8b3c4f6c7b90bc227ee (patch) | |
| tree | ef8626954567ba22e392c68c8f3606416b07b5b5 /libraries/Firmata/examples/ServoFirmata/ServoFirmata.pde | |
| parent | 90c487402cefadb6a2aab907ab07075cbb759e34 (diff) | |
Moving all AVR specific libraries to hardware/avr
Diffstat (limited to 'libraries/Firmata/examples/ServoFirmata/ServoFirmata.pde')
| -rw-r--r-- | libraries/Firmata/examples/ServoFirmata/ServoFirmata.pde | 42 | 
1 files changed, 42 insertions, 0 deletions
| diff --git a/libraries/Firmata/examples/ServoFirmata/ServoFirmata.pde b/libraries/Firmata/examples/ServoFirmata/ServoFirmata.pde new file mode 100644 index 0000000..6f78ccd --- /dev/null +++ b/libraries/Firmata/examples/ServoFirmata/ServoFirmata.pde @@ -0,0 +1,42 @@ +/* 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(); +} + | 
