Descrición:
Imos poñer un límite ao contador, por exemplo, de 10 pulsos. Cada vez que prememos nun pulsador súmase un punto a un contador. Cando chega a contar 10 pulsos acéndese un LED durante 0,5 segundos e ponse a 0 de novo.
Para facelo imos empregar unha función ou subrutina, que definiremos previamente. No noso caso chámase “funcioncontador”. Cando queiramos que se execute invocámola.
- Para definila usamos void funcioncontador() {…}
- Cando queiramos que se execute invocámola: funcioncontador ();
Programa:
// Declaración de variables:
const int pulsador=2;
const int led=13;
int contador=0;
int estado;
// Configuración:
void setup() {
Serial.begin(9600);
pinMode (led, OUTPUT);
}
// Programa:
void funcioncontador() { // Definimos a función "funcioncontador" para utilizala posteriormente
estado = digitalRead(pulsador);
if ( estado == 1 ) {
while(digitalRead(pulsador)==1); // Agarda mentres o pulsador esta premido
delay(20); // Agardamos 0,02s para evitar o efecto rebote
contador++; // Incrementa o contador
Serial.println(contador); // Imprime o valor por consola
}
}
void loop() {
if(contador < 10) { // Se o contador é menor que 10
funcioncontador(); // Facemos que se execute a función do contador.
}
else {
contador=0; // Inicia o contador a 0
digitalWrite(led, HIGH); // Acende e apaga o LED
delay(500);
digitalWrite(led, LOW);
}
}

Propostas:
- Función reset: Crea unha función reset() no programa anterior e invócaa cando o contador chega a 10.
- Contador con límite superior e inferior: Empeza en 0 e vai sumando ata chegar a 10. A partir de aí o contador vai descendendo ata chegar de novo a 0 e volve repetirse o ciclo. Utiliza dúas funcións, unha para o contador ascendente e outra para o descendente.