Buenas chicos!
Estoy desesperado con dolor de cabeza ya!! 
Llevo muchos d铆as intentando hacer funcionar un motor DC (con driver) y quiero utilizar unos pulsadores como "finales de carrera".
El funcionamiento seria:
Pulsas bot贸n START y arrancar铆a el motor DC y se queda funcionando.
Si se pulsa el siguiente bot贸n (Retroceso) el motor cambiaria el sentido y se queda funcionando.
Finalmente el ultimo pulsador es para para el motor.
Uno de los muchos problemas es que necesito iniciar de nuevo la secuencia pulsando START y no se como...
Cuando consiga eso necesito hacer otro c贸digo por si se queda sin corriente que el motor vaya para detr谩s hasta que pulse el bot贸n parada.
Necesito ayuda con el c贸digo ya que no se ya que hacer y es para un regalo por eso estoy tan desesperado por no llegar a tiempo.
Deciros el los botones se pulsan solo mediante un mecanismo que gira el motor y hace que pulse los dos pulsadores de Retroceder y Parada.
Espero su ayuda.
Cualquier pregunta no duden en dec铆rmelo.
Saludos!
Este es el c贸digo que estoy utilizando:
void loop()
{
estadoBotonStart = digitalRead(pinBotonStart);
estadoBotonRegreso = digitalRead(pinBotonRegreso);
estadoBotonParada = digitalRead(pinBotonParada);
// Inicio principal programa
if (estadoBotonStart == HIGH)
{
contBotonStart=contBotonStart+1;
}
if (contBotonStart == 1)
{
avanzar(); // Funci贸n para que avance el motor DC
}else if (estadoBotonRegreso == HIGH)
{
contBotonRegreso=contBotonRegreso+1;
}
if (contBotonRegreso == 1)
{
motorStop(1); // Para el motor
delay(3000);
retroceder(); // Funci贸n para que retroceda el motor DC
}else if (estadoBotonParada == HIGH)
{
contBotonParada=contBotonParada+1;
}
if (estadoBotonParada == 1) //No consigo que termine esta funci贸n que he se queda en HIGH porque el boton se tiene que quedar pulsado
{
motorStop(1); // Para el motor
avisador(); // Funci贸n que reproduce 3 pitidos con tone y delay
}
}// Loop
Si me aconsej谩is otra manera de hacerlo mas f谩cil pues mejor, porque tengo un cacao que ya no se ni lo que estoy haciendo
Saludos!!
Buenas, mi c es mas bien escaso, pero creo que esto podria servir:
void setup()
{
int contBotonStart = 0;
int contBotonRegreso = 0;
int contBotonParada = 0;
}
void loop()
{
if (digitalRead(pinBotonParada))
{
contBotonStart = 0;
contBotonRegreso = 0;
contBotonParada = 1;
}
else if (digitalRead(pinBotonStart))
{
contBotonStart = 1;
contBotonRegreso = 0;
contBotonParada = 0;
}
else if (digitalRead(pinBotonRegreso))
{
contBotonStart = 0;
contBotonRegreso = 1;
contBotonParada = 0;
}
if (contBotonParada)
{
motorStop(1);
avisador();
}
else if (contBotonStart)
{
avanzar();
}
else if (contBotonRegreso)
{
motorStop(1);
delay(3000);
retroceder();
}
}
prueba y ya me contaras.