Contador 0-99 2 dígitos 7 Segmento con Arduino
OBJETIVO
MATERIAL
2 Displays 7 segmentos de cátodo
común
Placa arduino
Cable.
FUNDAMENTO
TEÓRICO
El display 7 segmentos consiste en un
conjunto de 7 leds encapsulados y conformados de tal manera que, según los que
estén luciendo, muestren caracteres alfanuméricos. Pueden ser de ánodo o cátodo
común, según estén unidos todos los ánodos o todos los cátodos.
Las patillas 3 y 8 de cada displayvan conectadas al negativo (GND), ya que los displays utilizados son de cátodo
común. En el caso de que fueran de ánodo común, se conectarían al positivo de
la alimentación
Para enviar los datos a los displays
utilizamos el puerto digital (D0-D13). Es decir, utilizamos las patillas
digitales 0-13 (14 pines en total).
EXPLICACIÓN
DEL PROGRAMA
Definimos
cada segmento de cada display como una variable entera
//https://roboticaytecnologia.com
//https://jlizarazurocha.com
int z = 0;
// Display das dezenas
int a = 0;
int b = 1;
int c = 2;
int d = 3;
int e = 4;
int f = 5;
int g = 6;
// Display das unidades
int h = 7;
int i = 8;
int j = 9;
int k = 10;
int l = 11;
int m = 12;
int n = 13;
void setup()
{
pinMode(a,OUTPUT);
pinMode(b,OUTPUT);
pinMode(c,OUTPUT);
pinMode(d,OUTPUT);
pinMode(e,OUTPUT);
pinMode(f,OUTPUT);
pinMode(g,OUTPUT);
pinMode(h,OUTPUT);
pinMode(i,OUTPUT);
pinMode(j,OUTPUT);
pinMode(k,OUTPUT);
pinMode(l,OUTPUT);
pinMode(m,OUTPUT);
pinMode(n,OUTPUT);
}
void loop()
{
if (z==0)
{
//0 nas dezenas
digitalWrite(a,HIGH);
digitalWrite(b,HIGH);
digitalWrite(c,HIGH);
digitalWrite(d,HIGH);
digitalWrite(e,HIGH);
digitalWrite(f,HIGH);
digitalWrite(g,LOW);
}
//0 nas unidades
digitalWrite(h,HIGH);
digitalWrite(i,HIGH);
digitalWrite(j,HIGH);
digitalWrite(k,HIGH);
digitalWrite(l,HIGH);
digitalWrite(m,HIGH);
digitalWrite(n,LOW);
delay(500);
//1 nas unidades
digitalWrite(h,LOW);
digitalWrite(i,HIGH);
digitalWrite(j,HIGH);
digitalWrite(k,LOW);
digitalWrite(l,LOW);
digitalWrite(m,LOW);
digitalWrite(n,LOW);
delay(500);
//2 nas unidades
digitalWrite(h,HIGH);
digitalWrite(i,HIGH);
digitalWrite(j,LOW);
digitalWrite(k,HIGH);
digitalWrite(l,HIGH);
digitalWrite(m,LOW);
digitalWrite(n,HIGH);
delay(500);
//3 nas unidades
digitalWrite(h,HIGH);
digitalWrite(i,HIGH);
digitalWrite(j,HIGH);
digitalWrite(k,HIGH);
digitalWrite(l,LOW);
digitalWrite(m,LOW);
digitalWrite(n,HIGH);
delay(500);
//4 nas unidades
digitalWrite(h,LOW);
digitalWrite(i,HIGH);
digitalWrite(j,HIGH);
digitalWrite(k,LOW);
digitalWrite(l,LOW);
digitalWrite(m,HIGH);
digitalWrite(n,HIGH);
delay(500);
//5 nas unidades
digitalWrite(h,HIGH);
digitalWrite(i,LOW);
digitalWrite(j,HIGH);
digitalWrite(k,HIGH);
digitalWrite(l,LOW);
digitalWrite(m,HIGH);
digitalWrite(n,HIGH);
delay(500);
//6 nas unidades
digitalWrite(h,HIGH);
digitalWrite(i,LOW);
digitalWrite(j,HIGH);
digitalWrite(k,HIGH);
digitalWrite(l,HIGH);
digitalWrite(m,HIGH);
digitalWrite(n,HIGH);
delay(500);
//7 nas unidades
digitalWrite(h,HIGH);
digitalWrite(i,HIGH);
digitalWrite(j,HIGH);
digitalWrite(k,LOW);
digitalWrite(l,LOW);
digitalWrite(m,LOW);
digitalWrite(n,LOW);
delay(500);
//8 nas unidades
digitalWrite(h,HIGH);
digitalWrite(i,HIGH);
digitalWrite(j,HIGH);
digitalWrite(k,HIGH);
digitalWrite(l,HIGH);
digitalWrite(m,HIGH);
digitalWrite(n,HIGH);
delay(500);
//9 nas unidades
digitalWrite(h,HIGH);
digitalWrite(i,HIGH);
digitalWrite(j,HIGH);
digitalWrite(k,HIGH);
digitalWrite(l,LOW);
digitalWrite(m,HIGH);
digitalWrite(n,HIGH);
delay(500);
z=z+1;
if (z==1)
{
//1 nas dezenas
digitalWrite(a,LOW);
digitalWrite(b,HIGH);
digitalWrite(c,HIGH);
digitalWrite(d,LOW);
digitalWrite(e,LOW);
digitalWrite(f,LOW);
digitalWrite(g,LOW);
}
if (z==2)
{
//2 nas dezenas
digitalWrite(a,HIGH);
digitalWrite(b,HIGH);
digitalWrite(c,LOW);
digitalWrite(d,HIGH);
digitalWrite(e,HIGH);
digitalWrite(f,LOW);
digitalWrite(g,HIGH);
}
if (z==3)
{
//3 nas dezenas
digitalWrite(a,HIGH);
digitalWrite(b,HIGH);
digitalWrite(c,HIGH);
digitalWrite(d,HIGH);
digitalWrite(e,LOW);
digitalWrite(f,LOW);
digitalWrite(g,HIGH);
}
if (z==4)
{
//4 nas dezenas
digitalWrite(a,LOW);
digitalWrite(b,HIGH);
digitalWrite(c,HIGH);
digitalWrite(d,LOW);
digitalWrite(e,LOW);
digitalWrite(f,HIGH);
digitalWrite(g,HIGH);
}
if (z==5)
{
//5 nas dezenas
digitalWrite(a,HIGH);
digitalWrite(b,LOW);
digitalWrite(c,HIGH);
digitalWrite(d,HIGH);
digitalWrite(e,LOW);
digitalWrite(f,HIGH);
digitalWrite(g,HIGH);
}
if (z==6)
{
//6 nas dezenas
digitalWrite(a,HIGH);
digitalWrite(b,LOW);
digitalWrite(c,HIGH);
digitalWrite(d,HIGH);
digitalWrite(e,HIGH);
digitalWrite(f,HIGH);
digitalWrite(g,HIGH);
}
if (z==7)
{
//7 nas dezenas
digitalWrite(a,HIGH);
digitalWrite(b,HIGH);
digitalWrite(c,HIGH);
digitalWrite(d,LOW);
digitalWrite(e,LOW);
digitalWrite(f,LOW);
digitalWrite(g,LOW);
}
if (z==8)
{
//8 nas dezenas
digitalWrite(a,HIGH);
digitalWrite(b,HIGH);
digitalWrite(c,HIGH);
digitalWrite(d,HIGH);
digitalWrite(e,HIGH);
digitalWrite(f,HIGH);
digitalWrite(g,HIGH);
}
if (z==9)
{
//9 nas dezenas
digitalWrite(a,HIGH);
digitalWrite(b,HIGH);
digitalWrite(c,HIGH);
digitalWrite(d,HIGH);
digitalWrite(e,LOW);
digitalWrite(f,HIGH);
digitalWrite(g,HIGH);
}
if (z==10)
{
//9 nas dezenas
digitalWrite(a,HIGH);
digitalWrite(b,HIGH);
digitalWrite(c,HIGH);
digitalWrite(d,HIGH);
digitalWrite(e,LOW);
digitalWrite(f,HIGH);
digitalWrite(g,HIGH);
z=0;
}
}




Es un interesante experimento, gracias. Espero otras publicaciones dado que quiero aprender Arduino
ResponderBorrarPodrias inplementarles dos pulsadores para aumentar o disminuir los numeros manualmente? Gracias
ResponderBorrar