Estoy tratando de hacer un movimiento del servomotor a la biblioteca TimerOne , dando una instrucción dentro de la interrupción , pero no se mueve el servomotor , en la función ISR_Blink el LED si enciende al transcurso del tiempo dado pero el servo motor no gira , este es el ejemplo del código que lo estoy usando.
Descargar código desde Dropbox
#include <TimerOne.h>
#include <Servo.h>
const int led = 13; // the pin with a LED
int ledState = LOW; // El LED empieza apagado
volatile unsigned long blinkCount = 0; // La definimos como volatile
Servo servo; // Crea un Objeto servo
void setup(void)
{
servo.attach(7);
pinMode(led, OUTPUT);
Timer1.initialize(2000000); // Dispara cada 250 ms
Timer1.attachInterrupt(ISR_Blink); // Activa la interrupcion y la asocia a ISR_Blink
Serial.begin(9600);
}
void ISR_Blink()
{ ledState = !ledState ;
blinkCount++ ; // Contador veces se enciende el LED
servo.write(90);
delay(1000);
servo.write(0);
delay(1000);
}
void loop(void)
{
unsigned long N; // Haremos copia del blinkCount
digitalWrite(led, ledState); // Asignamos el valor del
// status a la salida
noInterrupts(); // Suspende las interrupciones
N = blinkCount;
interrupts(); // Autoriza las interrupciones
Serial.print("Ciclos = ");
Serial.println(N);
delay(100);
}