Statistics
| Branch: | Revision:

root / arduino-1.0 / libraries / Firmata / examples / ServoFirmata / ServoFirmata.ino @ 58d82c77

History | View | Annotate | Download (1.15 KB)

1
/*
2
 * Firmata is a generic protocol for communicating with microcontrollers
3
 * from software on a host computer. It is intended to work with
4
 * any host computer software package.
5
 *
6
 * To download a host software package, please clink on the following link
7
 * to open the download page in your default browser.
8
 *
9
 * http://firmata.org/wiki/Download
10
 */
11

    
12
/* This firmware supports as many servos as possible using the Servo library 
13
 * included in Arduino 0017
14
 *
15
 * TODO add message to configure minPulse/maxPulse/degrees
16
 *
17
 * This example code is in the public domain.
18
 */
19
 
20
#include <Servo.h>
21
#include <Firmata.h>
22

    
23
Servo servos[MAX_SERVOS];
24

    
25
void analogWriteCallback(byte pin, int value)
26
{
27
    if (IS_PIN_SERVO(pin)) {
28
        servos[PIN_TO_SERVO(pin)].write(value);
29
    }
30
}
31

    
32
void setup() 
33
{
34
    byte pin;
35

    
36
    Firmata.setFirmwareVersion(0, 2);
37
    Firmata.attach(ANALOG_MESSAGE, analogWriteCallback);
38

    
39
    for (pin=0; pin < TOTAL_PINS; pin++) {
40
        if (IS_PIN_SERVO(pin)) {
41
	    servos[PIN_TO_SERVO(pin)].attach(PIN_TO_DIGITAL(pin));
42
        }
43
    }
44
   
45
    Firmata.begin(57600);
46
}
47

    
48
void loop() 
49
{
50
    while(Firmata.available())
51
        Firmata.processInput();
52
}
53