Skip to main content

Contar el número de pulsaciones – Ejemplo con Arduino Nº 12

Para hacer un contador con Arduino para contar el número de pulsaciones, debemos contar las veces que se acciona un pulsador, recuerda que cuando decimos pulsador, puede ser un final de carrera o cualquier otro detector de dos estados, en definitiva, contaremos las veces que cambia de estado el pulsador, esto se denomina detección de cambio de estado o detector de flanco.

HARDWARE NECESARIO:

Para realizar este circuito necesitarás:

  • Tarjeta Arduino o Genuino
  • Pulsador
  • Resistencia de 10K
  • Protoboard
  • Cables de conexión

CIRCUITO:

Para montar este ejemplo utilizarás cualquiera de los circuitos que ya has utilizado antes, para trabajar con entradas digitales.

Para ello conectarás uno de los extremos de la resistencia a masa y el otro extremo a una de las patillas del pulsador, la otra patilla del pulsador la conectarás a +Vcc, y por último el nudo que hay entre los dos componentes lo conectarás a la entrada digital número 2.

CÓDIGO:

En este programa la placa Arduino está constantemente leyendo el estado del pulsador, y si este ha cambiado respecto al estado anterior, y el estado es alto, incrementa en uno el contador. Además de ello si el número contado es múltiplo de 3 enciende un led, de lo contrario lo apaga.

El programa definitivo queda así:

const int Pulsador=2;

const int Led=13;

int ContadorDePulsaciones=0;

int EstadoDelPulsador=0;

int AnteriorEstadoDelPulsador=0;

void setup()

{

                pinMode(Pulsador,INPUT);

                pinMode(Led,OUTPUT);

                Serial.begin(9600);

}

void loop()

{

EstadoDelPulsador=digitalRead(Pulsador);

If(EstadoDelPulsador ¡=AnteriorEstadoDelPulsador)

{

                If(EstadoDelPulsador==HIGH)

{

ContadorDePulsaciones++;

Serial.println(“Pulsador pulsado”);

Serial.print(“El número de veces que has accionado el pulsador es: “

Serial.println(ContadorDePulsaciones);

}

else

{

                Serial.println(“Pulsador sin pulsar”);

}

AnteriorEstadoDelPulsador=EstadoDelPulsador;

If(ContadorDePulsaciones % 3 == 0)

{

                digitalWrite(Led, HIGH);

}

else

{

                digitalWrite(Led,LOW);

}

}

}