Hola como muchos soy nuevo en este mundo y aunque ya he hecho algún que otro proyecto a base de leer y buscar información con el actual estoy bloqueado.
La finalidad de mi proyecto es tras accionar un pulsador, encender un motor a traves de un rele y una bateria durante un tiempo determinado, el problema lo tengo en que si dejo accionado el pulsador el motor sigue girando.
Me gustaría detener el motor durante un segundo aunque el pulsador este accionado; este es el código que a duras penas he podido hacer, mis conocimientos son por debajo de básico.
Gracias
const int RELE=3;
const int BOTON=2;
int val;
void setup(){
pinMode(RELE,OUTPUT);
pinMode(BOTON,INPUT);
}
void loop(){
val=digitalRead(BOTON);
if (val==HIGH){
digitalWrite(RELE,HIGH);
delay(25);
}
else { digitalWrite(RELE,LOW);
}
}
Hola, gracias por contestar, tendría que girar medio segundo y para un segundo aunque el pulsador este accionado, pasado este segundo podría volver a ejecutar la orden de medio segundo funcionando un segundo parado.
(el tiempo que tiene que estar girando no lo tengo muy claro todavía, podría cambiar el valor en un futuro, el tiempo de estar parado si que debería de ser un segundo)
Ve a Documentación => Indice de temas tutoriales => millis()
Este código hará lo que tu deseas siempre y cuando el relé este bien conectado para tu caso porque para mi el HIGH y LOW estan al revés. te lo indico en el código.
const byte RELE = 3;
const byte BOTON = 2;
bool val, valAnt = false;
unsigned long start;
void setup(){
pinMode(RELE,OUTPUT);
pinMode(BOTON,INPUT);
}
void loop(){
val = digitalRead(BOTON);
if (val && !valAnt){ // supongo un cambio de 0 a 1 sino invierte ! en ambas variables
flag = true;
start = millis();
digitalWrite(RELE,HIGH); // ojo según que rele esto apaga no enciende.
}
valAnt = val;
if (flag) { // si hay disparo por pulador entonces
if (millis() - start > 500UL) {
flag = false;
digitalWrite(RELE,LOW); // y esto acciona no apaga el rele
// lo escribo como lo tienes tu.
}
}
}
Hola, muchas gracias por vuestra ayuda, cualquiera de las dos opciones me vienen bien, gracias a estos códigos podre trabajar con nuevas opciones y seguir aprendiendo.