Buenas noches, Por que no me funciona el botón con este código? Cuando inicio el programa, me da la posición inicial de los servos, pero presiono el botón y no me dan los movimientos. Como lo puedo programar de otra manera? Muchas gracias.
#include <Servo.h>
Servo servo1;
Servo servo2;
Servo servo3;
const int buttonPin = 2;
int buttonState = 0;
int pos1 = 0;
int pos2 = 180;
int pos3 = 90;
void setup()
{
servo1.attach(9);
servo2.attach(8);
servo3.attach(7);
pinMode(buttonPin, INPUT);
servo1.write(pos1);
servo2.write(pos2);
servo3.write(pos3);
delay(10);
}
void loop()
{
int buttonState = digitalRead(buttonPin);
if(buttonState == true) {
servo1.write(180);
servo2.write(0);
servo3.write(0);
delay(2000);
}
}
Entonces ahí estan los problemas: 1.- tienes conectado en pull-up y el codigo esta hecho para pull-down,
2.- conectaste en una entrada análoga y declaraste el pin 2 en lugar de A2.
Quita la resistencia y solo conecta una punta del botón a GND y la otra a la entrada del arduino y si puedes de preferencia usa otra que sea digital (puedes usar el pin 2 porque así lo tienes en el código)
En el pinMode cambia buttonPin(INPUT) por buttonPin(INPUT_PULLUP)
Otra cosa. Como puedo hacer para que vuelva a presionar el boton y haga otros movimientos? el servo 1 a 180 grados, el servo2 a 0 grados y el servo3 a 0 grados.
Y porque no lo dijiste en le primer post?
Te lo dejo a @RIG para que ahora se lleve el crédito.
Basicamente cuando presionas el boton, accionas un contador que irá hasta la cuenta máxima de funciones a realizar.
Cada presion un avance. Cuando sale deriva con el número que corresponda.
11:1: error: expected initializer before 'buttonLastState'
In function 'void loop()':
37:4: error: 'buttonState' was not declared in this scope
39:24: error: 'buttonLastState' was not declared in this scope
44:4: error: 'buttonLastState' was not declared in this scope