06-06-2016, 19:02
No se porqué hace esos temblores, no tengo suficientes conocimientos para ver donde está el problema.
He probado tu programa y el funcionamiento es por interruptor, mientras está cerrado se mantiene y al abrir vuelve a 0, así que te envío uno que hace lo mismo, solo debes incluir la librería VarSpeedServo, bajandola de la red, https://github.com/netlabtoolkit/VarSpeedServo
esta librería permite más parámetros de ajuste.
La ventaja de utilizar interruptor es que el mismo te indica la posición del desvío y si lo pones de 2 circuitos se puede utilizar para unos semáforos o señalización en el pupitre.
Deberás copiarlo, no me permite subir este formato.
// DESVÍO FORO
// ACCIONAMIENTO SERVO, PULSADO SE MANTIENE, AL SOLTAR VUELVE A 0
#include <VarSpeedServo.h>
int button1 = 2; //button pin, connect to ground to move servo
int press1 = 0;
VarSpeedServo servo1;
void setup()
{
pinMode(button1, INPUT);
servo1.attach(9);
servo1.write(0);
digitalWrite(4, HIGH); //enable pullups to make pin high
}
void loop()
{
press1 = digitalRead(button1);
if (press1 == LOW)
{
servo1.write(20,10); // AQUÍ MODIFICAS GRADOS DE GIRO Y VELOCIDAD, POR ESTE ORDEN
}
else {
servo1.write(0,10); // AQUÍ MODIFICAS GRADOS DE GIRO Y VELOCIDAD, POR ESTE ORDEN
}
}
He probado tu programa y el funcionamiento es por interruptor, mientras está cerrado se mantiene y al abrir vuelve a 0, así que te envío uno que hace lo mismo, solo debes incluir la librería VarSpeedServo, bajandola de la red, https://github.com/netlabtoolkit/VarSpeedServo
esta librería permite más parámetros de ajuste.
La ventaja de utilizar interruptor es que el mismo te indica la posición del desvío y si lo pones de 2 circuitos se puede utilizar para unos semáforos o señalización en el pupitre.
Deberás copiarlo, no me permite subir este formato.
// DESVÍO FORO
// ACCIONAMIENTO SERVO, PULSADO SE MANTIENE, AL SOLTAR VUELVE A 0
#include <VarSpeedServo.h>
int button1 = 2; //button pin, connect to ground to move servo
int press1 = 0;
VarSpeedServo servo1;
void setup()
{
pinMode(button1, INPUT);
servo1.attach(9);
servo1.write(0);
digitalWrite(4, HIGH); //enable pullups to make pin high
}
void loop()
{
press1 = digitalRead(button1);
if (press1 == LOW)
{
servo1.write(20,10); // AQUÍ MODIFICAS GRADOS DE GIRO Y VELOCIDAD, POR ESTE ORDEN
}
else {
servo1.write(0,10); // AQUÍ MODIFICAS GRADOS DE GIRO Y VELOCIDAD, POR ESTE ORDEN
}
}