Repetición

lighthouse-304496_960_720
[CC0 Public Domain]

Descrición:

Imos facer que unhas instrucións se repitan un número determinado de veces. Por exemplo, imos acender e apagar un LED varias veces, agardamos un tempo e repetimos indefinidamente o proceso.

Para facer a repetición utilizamos a función de control

for(inicio;condición;modificador) { proceso }

Programas:

1.Faro 1

1. Faro 1: Cinco veces: Imos facer que un LED escintile 5 veces, descanse, e volva a repetir o mesmo unha e outra vez. Definimos a variable n para realizar o reconto e contamos 5 empezando en n=0 e rematando en 4 (n<5).

// Declaración de variables

int led = 13;         
int tempo1 = 200;        // Definimos a variable tempo entre acendido e apagado
int tempo2 = 2000;       // Definimos a variable tempo entre secuencias

// Configuración

void setup() {                
  pinMode(led, OUTPUT);     
}

// Programa

void loop() {                 

  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
}

2. Faro 2

2. Faro 2: Definimos a variable “escintileos” para elixir ao principio do programa o número de veces que desexamos que se repita a acción. Fíxate que agora empezamos o reconto en n=1 e continuamos ata que n<=escintileos. Tamén se podería facer desde n=0 ata n<escintileos.

// Declaración de variables

int led = 13;          
int tempo1 = 200;      // Definimos a variable tempo entre acendido e apagado
int tempo2 = 2000;     // Definimos a variable tempo entre secuencias
int escintileos=5;     // Numero de escintileos que realiza o faro en cada secuencia.

// Configuración

void setup() {                
  pinMode(led, OUTPUT);    // Configuramos o pin 13 como saída
}

// Programa

void loop() {                
    
    for (int n=1;n<=escintileos;n++){     // Repítese 5 veces 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:

  1. Outros tempos: Podes modificar o valor das variables tempo1 e tempo2 para obter outras frecuencias.
  2. 10 veces: Fai que o LED se acenda e apague 10 veces
  3. Activado por pulsador: Engade un pulsador coa súa resistencia no pin 2 e fai que cando prememos nel se acenda e apague o LED 5 veces.

 

 


Deixa un comentario