root / arduino-1.0 / libraries / Firmata / examples / SimpleAnalogFirmata / SimpleAnalogFirmata.ino @ 58d82c77
History | View | Annotate | Download (1.17 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 |
/* Supports as many analog inputs and analog PWM outputs as possible. |
13 |
* |
14 |
* This example code is in the public domain. |
15 |
*/ |
16 |
#include <Firmata.h> |
17 |
|
18 |
byte analogPin = 0; |
19 |
|
20 |
void analogWriteCallback(byte pin, int value) |
21 |
{ |
22 |
if (IS_PIN_PWM(pin)) { |
23 |
pinMode(PIN_TO_DIGITAL(pin), OUTPUT); |
24 |
analogWrite(PIN_TO_PWM(pin), value); |
25 |
} |
26 |
} |
27 |
|
28 |
void setup() |
29 |
{ |
30 |
Firmata.setFirmwareVersion(0, 1); |
31 |
Firmata.attach(ANALOG_MESSAGE, analogWriteCallback); |
32 |
Firmata.begin(57600); |
33 |
} |
34 |
|
35 |
void loop() |
36 |
{ |
37 |
while(Firmata.available()) { |
38 |
Firmata.processInput(); |
39 |
} |
40 |
// do one analogRead per loop, so if PC is sending a lot of |
41 |
// analog write messages, we will only delay 1 analogRead |
42 |
Firmata.sendAnalog(analogPin, analogRead(analogPin)); |
43 |
analogPin = analogPin + 1; |
44 |
if (analogPin >= TOTAL_ANALOG_PINS) analogPin = 0; |
45 |
} |
46 |
|