buenas!! soy nuevo por aquí. un placer.
Tengo casi todo terminado pero me faltaría que al encenderlo, fuera yo quién lo active con el pulsador pero no es así. se me enciende solo los led. el orden y el bucle lo respeta. Es solo eso, no se como hacer para iniciar yo el bucle.
Perdonad si hago algo mal o incumplo algún tipo de norma.
Esto es lo que he hecho yo.
bool seHaPulsadoMarcha = false;
void setup()
{
pinMode(3, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, INPUT_PULLUP);
for(int i=0; i<2; i++){
encenderLed(3, 5000); //Enciende el led rojo
encenderLed(5, 5000); //Enciende el led verde
intermitenteLed(4, 5000, 250); //Intermitente en amarillo
}
}
void loop()
{
if(digitalRead(6)==LOW | seHaPulsadoMarcha==true)
{
seHaPulsadoMarcha = true;
encenderLed(3, 5000); //Enciende el led rojo
encenderLed(5, 5000); //Enciende el led verde
intermitenteLed(4, 5000, 250); //Intermitente en amarillo
}
}
void encenderLed(int pin, int tiempo)
{
digitalWrite(pin, HIGH);
delay(tiempo); // Wait for 5000 milliseconds(s)
digitalWrite(pin, LOW);
}
void intermitenteLed(int pin, int tiempo, int cadencia)
{
long tiempoTranscurrido = millis();
while (millis()-tiempoTranscurrido < tiempo)
{
digitalWrite(pin, HIGH);
delay (cadencia);
digitalWrite(pin, LOW);
delay (cadencia);
}
}