Hola buenas estoy realizando un proyecto para ayudar a una persona, yo lo que quiero que haga es simple
Intentare explicarlo lo mejor que pueda, y acepto correcciones, etc.
Bueno la idea es lo siguiente, yo necesito que al apretar el pulsador 1 el motor gire por un determinado tiempo por ejemplo (7 segundos) hacia la Derecha y luego el motor se pare, ahora no importa la cantidad de veces que se apriete nuevamente el pulsador 1, el motor no tiene que arrancar, no pasar nada.
Ahora cuando apriete el pulsador 2 el motor tiene que girar el mismo tiempo (7 segundos) hacia la Izquierda, luego tiene que haber otro tiempo de espera de 7 segundos y resetear para que comience todo de nuevo.
Entonces seria
boton 1 = gira 7 segundos hacia la derecha y para. ahora no importa la cantidad veces que apriete el boton 1 no debe pasar nada.
Luego boton 2, cuando apriete el boton 2 el motor gira hacia la izquierda 7 segundos y para. luego tiene que haber un espacio de 7 segundos (aunque apriete boton 1 o boton 2 no debe pasar nada, se debe respetar la pausa de 7 segundos.
Imagen del circuito en proteus
Mi codigo ayuda.
const int pulsador1=2;
const int pulsador2=3;
const int giroA=4;
const int giroH=5;
const int onoff=6;
int estado;
unsigned long start = millis()+60000UL;
void setup() {
// put your setup code here, to run once:
pinMode(giroA, OUTPUT);
pinMode(giroH, OUTPUT);
pinMode(onoff, OUTPUT);
pinMode(pulsador1, INPUT);
pinMode(pulsador2, INPUT);
digitalWrite(onoff, LOW);
digitalWrite(giroA, LOW);
digitalWrite(giroH, LOW);
}
void loop() {
// put your main code here, to run repeatedly:
estado=digitalRead(pulsador1);
if(estado==HIGH){
digitalWrite(onoff, LOW);
digitalWrite(giroA, HIGH);
digitalWrite(giroH, LOW);
digitalWrite(onoff, HIGH);
delay (1000) ;
while (millis() > start);
}
estado=digitalRead(pulsador2);
if(estado==HIGH){
digitalWrite(onoff, LOW);
digitalWrite(giroA, HIGH);
digitalWrite(giroH, LOW);
digitalWrite(onoff, HIGH);
delay (1000) ;
while (millis() > start);
}
}