Descrición:
Podemos aniñar bucles dentro doutros bucles.
Programas:
1. (3a+1b)x5
1. (3a+1b)x5: Queremos que cando premamos un pulsador se repita 5 veces o seguinte: Un LED escintila 3 veces e de seguido outro LED escintila 1 vez.
// Declaración de variables:
const int led1=7;
const int led2=11;
const int pulsador=2;
int estado=0;
// Configuración:
void setup() {
pinMode(led1,OUTPUT);
pinMode(led2,OUTPUT);
}
// Programa:
void loop() {
estado=digitalRead(pulsador);
if (estado == 1) { // Cando prememos no pulsador
for (int a=0;a<5;a++) { // Repítese 5 veces o que segue
for(int b=0;b<3;b++) { // Repítese 3 veces o que segue
digitalWrite(led1,HIGH);
delay(100);
digitalWrite(led1,LOW);
delay(100);
}
digitalWrite(led2,HIGH);
delay(200);
digitalWrite(led2,LOW);
delay(200);
}
}
}
2.Máis rápido!
2. Máis rápido!: Imos acender e apagar un LED 5 veces. Cada vez o tempo entre o acendido e o apagado será menor. Para iso utilizamos a función for(inicio;condición;modificador) de maneira que empezamos con variable tempo1=500ms, e mentres se cumpra a condición de que dita variable valla máis que 50, executamos o proceso de acendido e apagado dun LED, e despois restámoslle 50ms, para ir facendo progresivamente o tempo máis curto.
for (tempo1=500; tempo1>50; tempo1-=50){ acender e apagar 5 veces un LED}
// Declaración de variables:
int led = 13;
int tempo1 = 500;
int tempo2 = 500;
// Configuración
void setup() {
pinMode(led, OUTPUT);
}
// Programa
void loop() {
for (tempo1=500;tempo1>50;tempo1-=50){ // cada quenda, o intervalo entre escintileos será menor
for (int n=0;n<5;n++){ // Repítese 5 veces (desde 0 ata 4) o seguinte:
digitalWrite(led, HIGH);
delay(tempo1);
digitalWrite(led, LOW);
delay(tempo1);
}
delay(tempo2); // agarda o tempo2 antes de repetir de novo o proceso
}
}
Propostas:
Utiliza a función for para resolver estes problemas:
- 7 LEDs 1: Fai que se acendan de maneira consecutiva 7 LEDs, pero de xeito que cada un latexe 3 veces. (Utiliza a práctica “LEDs consecutivos” como base)
- 7 LEDs 2: Fai que se acendan e apaguen de maneira consecutiva 7 LEDs, de xeito que o primeiro escintile unha vez, o seguinte 2, o terceiro 3, e así sucesivamente.