1
0
mirror of https://github.com/esp8266/Arduino.git synced 2025-07-30 16:24:09 +03:00

Updating Firmata (to r62 of their repository).

Changes include (according to Paul Stoffregen):
"1: Hardware abstraction layer to support Arduino Mega, Teensy and Sanguino.
2: Extended analog message, to facilitate using PWM and Servo above pin 15.
3: Capability queries (alpha), to allow automatic discovery of any board's features."
This commit is contained in:
David A. Mellis
2010-08-06 21:55:17 +00:00
parent 17beb9fcfb
commit 367a0ae9f4
10 changed files with 676 additions and 295 deletions

View File

@ -1,32 +1,35 @@
/* This firmware supports as many servos as possible using the Servo" library
* included in Arduino 0012
/* 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 <Firmata.h>
#include <Servo.h>
#include <Firmata.h>
Servo servo9;
Servo servo10;
Servo servos[MAX_SERVOS];
void analogWriteCallback(byte pin, int value)
{
if(pin == 9)
servo9.write(value);
if(pin == 10)
servo10.write(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);
servo9.attach(9);
servo10.attach(10);
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);
}