Hola! Estoy haciendo una chicharra para poner en la puerta de un edificio. Logré el código para que se prenda al abrir el circuito del sensor magnetico de la puerta.
Solo necesito que sea INTERMITENTE de forma progresiva.
Este es el código muy simple, y ahora explico el problema que tuve.
int contacto=7;
int salida=4;
float a=0;
void setup() {
pinMode(salida, OUTPUT);
pinMode(contacto, INPUT);
pinMode(LED_BUILTIN, OUTPUT);
}
void loop() {
if(digitalRead(contacto)==LOW){ ///esto es al abrirse la puerta
delay (2500); /// da 2.5 segundos para cerrarla o empieza a sonar
for(float a=0;a<5;a++){ //suena la chicharra con una pausa grande 5 veces, despues va incrementando
if (digitalRead(contacto)==LOW){
digitalWrite(salida, HIGH);
digitalWrite(LED_BUILTIN, HIGH);
delay(250);
digitalWrite(salida, LOW);
digitalWrite(LED_BUILTIN, LOW);
delay(750);
}
}
for(float a=5;a<5;a++){ //en teoria aca empieza a sonar mas deprisa, cosa que no hace
if (digitalRead(contacto)==LOW){
digitalWrite(salida, HIGH);
digitalWrite(LED_BUILTIN, HIGH);
delay(500);
digitalWrite(salida, LOW);
digitalWrite(LED_BUILTIN, LOW);
delay(750);
}
}
for(float a=10;a<10;a++){
if (digitalRead(contacto)==LOW){
digitalWrite(salida, HIGH);
digitalWrite(LED_BUILTIN, HIGH);
delay(500);
}
}
}else{
digitalWrite(salida, LOW);
digitalWrite(LED_BUILTIN, LOW);
}
}
Este es el problema: al sonar los 5 beeps, pasan 2.5 segundos sin sonar, y vuelve a la primera parte. Osea que no pasa a la siguiente parte donde suenan beeps más largos, sino que se reinicia todo.
Como puedo hacer para solucionarlo? Para que vaya incrementando el beep hasta ser permanente.
Desde ya muchas gracias, si no se entiende, por favor díganme e intento aclararlo.