Quiero que el led encienda 8 veces seguidas y luego continuar con la rutina del programa. No quisiera tener que escribir HIGH delay LOW, etc etc 8 veces.
Hola walmar para hacer el uso del bucle for debes hacer el siguiente codigo:
int ledpin= 13;
void setup()
{
pinMode(ledpin, OUTPUT);
for (int i=0; i <= 8; i++)
{
delay(500);
digitalWrite(ledpin, HIGH);
delay(500);
digitalWrite(ledpin, LOW);
}
}
void loop()
{
}
En este ejemplo lo va hacer cuando inicia el programa pero si quiere que esto lo haga cuando por ejemplo una entrada es alta el ejemplo seria
int ledpin= 13;
int entrada= 10;
void setup()
{
pinMode(ledpin, OUTPUT);
digitalWrite(ledpin, LOW);
}
void loop()
{
if (digitalRead(entrada) == HIGH ) { // read two switches
for (int i=0; i <= 7; i++)
{
delay(500);
digitalWrite(ledpin, HIGH);
delay(500);
digitalWrite(ledpin, LOW);
}
}
else
{
digitalWrite(ledpin,LOW);
}
}
Para modificar el destello solo con cambiar los valores a delay
Si lo queres aplicar en algo especial y no podes, avisa...
Espero te sirva...
Un abrazo!!!
Protheo, me sirvió, pero como hago para salir del "for" y seguir escribiendo el programa? Ejemplo: Tengo 2 leds conectados, el primero lo hago encender 8 veces con la funcion "For" pero luego quiero continuar con el segundo led encendiéndolo con DigitalWrite HIGH delay DigitalWrite LOW, pero me precede la función "For" del primer led. O sea, debería terminar la función "For" y luego seguir programando normalmente.
int pulsador=8;
int leduno=12;
int leddos=13;
void setup()
{
pinMode (pulsador, INPUT);
pinMode (leduno, OUTPUT);
pinMode (leddos, OUTPUT);
digitalWrite(leduno, LOW);
digitalWrite(leddos, LOW);
}
void loop()
{
if (digitalRead(pulsador)==HIGH)
for (int i=0; i <= 7; i++)
digitalWrite(leduno,HIGH);
delay (1000);
{
digitalWrite(leduno,LOW);
delay (1000);
}
}
{
digitalWrite(leddos,HIGH);
delay (1000);
digitalWrite(leddos,LOW);
delay (1000);
}
Hola walmar el tema ya fue respondido en el nuevo tema, por favos cierra este como solucionado...
Un abrazo!!
Protheo, ya indique [SOLUCIONADO].
Gracias!