diff options
author | Jesse Morgan <jesse@jesterpm.net> | 2011-10-20 22:16:19 -0700 |
---|---|---|
committer | Jesse Morgan <jesse@jesterpm.net> | 2011-10-20 22:16:19 -0700 |
commit | fc944ff979dbbd49a57722fe2d1d2acf47312eb4 (patch) | |
tree | 38cc3a5c5c8f24f55068fc4ffa73d018169fc2df /libraries/Firmata/examples/ServoFirmata/ServoFirmata.pde |
Inital commit... halfway through the project
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..542be32 --- /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();
+}
+
|