Contador del 1 al 9 con display de 7 segmentos en Arduino sin BCD

Para crear un contador es necesario utilizar un decodificador BCD para poder visualizar los números que se escriben en binario en la programación, en el display de siete segmentos. Pero en algunos casos, cuando se requiere hacer el contador y por alguna razón no se cuenta con un 7447 o algo parecido, podemos hacerlo de otra manera.

Haciendo que se prendan determinados segmentos del display podemos hacer que se vean los números, y así crear el contador. Con el decodificador lo más viable es utilizar un ciclo for para que el número empiece en cero y vaya incrementándose hasta llegar a 9. En este caso no usaremos ciclos, ya que el código no hará que se muestren números, sino que se enciendan los segmentos del display.

Obviamente el código quedará mucho más largo, algo como lo siguiente:

int pin6 = 6; 
 int pin7 = 7;
 int pin8 = 8;
 int pin9 = 9;
 int pin10 = 10;
 int pin11 = 11;
 int pin12 = 12;
 int timer = 300; 
void setup(){ 
 pinMode(pin7, OUTPUT); 
 pinMode(pin8, OUTPUT);
 pinMode(pin9, OUTPUT);
 pinMode(pin10, OUTPUT);
 pinMode(pin11, OUTPUT);
 pinMode(pin12, OUTPUT);
 pinMode(pin6, OUTPUT);
}
void loop() { 
 digitalWrite(pin7, HIGH); 
 digitalWrite(pin8, HIGH); 
 delay(timer); 
 digitalWrite(pin7, LOW); 
 digitalWrite(pin8, LOW); 
 delay(timer);
 digitalWrite(pin6, HIGH); 
 digitalWrite(pin7, HIGH); 
 digitalWrite(pin12, HIGH); 
 digitalWrite(pin10, HIGH); 
 digitalWrite(pin9, HIGH); 
 delay(timer); 
 digitalWrite(pin6, LOW); 
 digitalWrite(pin7, LOW); 
 digitalWrite(pin12, LOW); 
 digitalWrite(pin10, LOW); 
 digitalWrite(pin9, LOW); 
 delay(timer);
 digitalWrite(pin6, HIGH); 
 digitalWrite(pin7, HIGH); 
 digitalWrite(pin12, HIGH);
 digitalWrite(pin8, HIGH); 
 digitalWrite(pin9, HIGH); 
 delay(timer); 
 digitalWrite(pin6, LOW); 
 digitalWrite(pin7, LOW); 
 digitalWrite(pin12, LOW); 
 digitalWrite(pin8, LOW); 
 digitalWrite(pin9, LOW); 
 delay(timer);
 digitalWrite(pin11, HIGH); 
 digitalWrite(pin12, HIGH); 
 digitalWrite(pin7, HIGH); 
 digitalWrite(pin8, HIGH); 
 delay(timer); 
 digitalWrite(pin11, LOW); 
 digitalWrite(pin12, LOW); 
 digitalWrite(pin7, LOW); 
 digitalWrite(pin8, LOW); 
 delay(timer);
 digitalWrite(pin6, HIGH); 
 digitalWrite(pin11, HIGH); 
 digitalWrite(pin12, HIGH); 
 digitalWrite(pin8, HIGH); 
 digitalWrite(pin9, HIGH); 
 delay(timer); 
 digitalWrite(pin6, LOW); 
 digitalWrite(pin11, LOW); 
 digitalWrite(pin12, LOW); 
 digitalWrite(pin8, LOW); 
 digitalWrite(pin9, LOW); 
 delay(timer);
 digitalWrite(pin6, HIGH); 
 digitalWrite(pin11, HIGH); 
 digitalWrite(pin10, HIGH); 
 digitalWrite(pin9, HIGH); 
 digitalWrite(pin8, HIGH); 
 digitalWrite(pin12, HIGH); 
 delay(timer); 
 digitalWrite(pin6, LOW); 
 digitalWrite(pin11, LOW); 
 digitalWrite(pin10, LOW); 
 digitalWrite(pin9, LOW); 
 digitalWrite(pin8, LOW); 
 digitalWrite(pin12, LOW); 
 delay(timer);
 digitalWrite(pin6, HIGH); 
 digitalWrite(pin7, HIGH); 
 digitalWrite(pin8, HIGH); 
 delay(timer); 
 digitalWrite(pin6, LOW); 
 digitalWrite(pin7, LOW); 
 digitalWrite(pin8, LOW); 
 delay(timer);
 digitalWrite(pin6, HIGH); 
 digitalWrite(pin7, HIGH); 
 digitalWrite(pin8, HIGH); 
 digitalWrite(pin9, HIGH);
 digitalWrite(pin10, HIGH);
 digitalWrite(pin11, HIGH);
 digitalWrite(pin12, HIGH);
 delay(timer); 
 digitalWrite(pin6, LOW); 
 digitalWrite(pin7, LOW); 
 digitalWrite(pin8, LOW); 
 digitalWrite(pin9, LOW);
 digitalWrite(pin10, LOW);
 digitalWrite(pin11, LOW);
 digitalWrite(pin12, LOW);
 delay(timer);
 digitalWrite(pin6, HIGH); 
 digitalWrite(pin11, HIGH); 
 digitalWrite(pin12, HIGH); 
 digitalWrite(pin7, HIGH);
 digitalWrite(pin8, HIGH);
 delay(timer); 
 digitalWrite(pin6, LOW); 
 digitalWrite(pin11, LOW); 
 digitalWrite(pin12, LOW); 
 digitalWrite(pin7, LOW);
 digitalWrite(pin8, LOW);
 delay(timer);
}

Aquí declaramos 7 variables, que corresponden a cada segmento, luego, con un bucle hacemos que se repita todo (encender los segmentos que simulen números del 1 al 9), utilizando un contador de 300 mili segundos.

Aquí puedes ver un video del programa funcionando.

Grupo de WhatsApp: https://chat.whatsapp.com/Ch45FZaJcbxDb7WeHAOtAQ
Grupo de Telegram: https://t.me/Masterhacks_net

Donaciones
Gracias por apoyar el libre conocimiento!
Bitcoin: 3L2Y8LC5tmRffopnvv5J9DHe6wnrmyWVMm
Litecoin: MDtX7eRekxoRigMNtguziZqRdkr8CT5DKs
BCH: 3PnUezyhjWHQoBVfb1GpQJurMNbVjyvrVG
Ethereum: 0x1f786c3195b9a55e320848f240b1cfc37b159535

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *