Hola a todos,
En mi programa lo q hago es asignar un valor a una variable "p". Una vez asignado el valor tengo que hacer que si despues de 1 segundo el valor de dicha variable sigue siendo el mismo, se encienda un led. Si es distinto, simplemente no hace nada. Como puedo hacerlo?
Gracias de antemano
Los detalles suministrados no son suficientes para darte una respuesta exacta, pero veamos:
Si necesitas esperar 1 segundo, entonces podes hacer:
p = 1;
delay(1000);
if (p == 1) {
digitalWrite(LED_PIN, HIGH);
}
Pero como asumo que quieres hacer cosas en ese segundo, la mejor opción sería usar millis() algo asi:
// Donde asigno la variable inicializo tambien una segunda variable de tiempo con millis()
p = 1;
unsigned long inicio = millis();
...
void loop() {
if ((millis()-inicio) >= 1000) {
if (p == 1) {
digitalWrite(LED_PIN, HIGH);
}
}
...
}
Pero hay que tener cuidado que el código entrará al if() siempre luego de que se cumpla el segundo, por lo que hay que poner un condcional extra si se quiere que pase solo una vez...
Perfecto muchas gracias , es justo lo que buscaba
