Hola comunidad! la verdad que estoy como loco tratando de descubrir como ponerle un limite a un código, les digo brevemente como va.
Este código recibe pulsos de un botón y los anota en el Monitor y al cabo de 5 segundos se tendría que reiniciar el contador para volver a 0 y empezar de nuevo y no lo logro, les dejo el código para ver si me pueden decir en donde esta el error.
int Contador = 0;
unsigned long Tiempo;
unsigned long Repeticiones;
void setup(){
pinMode(2,INPUT);
}
void loop(){
if (digitalRead(2) == HIGH){
if(digitalRead(2) == LOW){
Contador++;
Serial.println("Contando...");
Serial.println(Contador);
delay(100);
}
}
for(int i = 0; i < Repeticiones; i++){
Tiempo = millis();
break;
}
if (Tiempo == 5000){
Contador = (0);
Serial.println("Reiniciando");
}
esto deberia ir en el apartado software ,no en proyectos...ademas hay unos tags especificos para adjuntar codigo.porfavor echale un ojo a las normas del foro.
Esto no se cumple nunca!!!
Repeticiones que valor toma.
Esto no se si compila bien.
presionas el pulsador te da high y luego esperas un LOW? imposible
Parece tarea del Colegio/Instituto. Es asi?
Si, compila y llega a 10 y reinicia, pero lo que quiero hacer es que con un límite de tiempo reinicié
Bueno ya te hice el 80% ahora trabaja tu y luego nos comentas los problemas que puedas o no tener y por cierto, lee las normas del foro y hasta no terminar un tema como este, no inicies otro como el que encontré recién en software.
A eso se lo llama DOBLE POST y no esta permitido.
AYUDA:
millis() se usa asi. Hay un HILO en documentación que explica como usarlo. Es de max_saeta y es muy bueno.
debes inicializar una variable como p.ej Tiempo
cuando presionas el boton y contador es = 0 cargas el valor de millis() en tiempo
ej.
if (contador == 0)
Tiempo = millis();
y luego comparas
if (millis()-Tiempo > 5000) {
// ejectuas la acción que corresponda
}