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.