lunes, 16 de septiembre de 2019

Contador 0-99 2 dígitos 7 Segmento con Arduino


Contador 0-99 2 dígitos 7 Segmento con Arduino


OBJETIVO
Realizar un contador con dos displays7 segmentos (Cuenta en segundos de 0 A 99)
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;

}
}

2 comentarios:

  1. Es un interesante experimento, gracias. Espero otras publicaciones dado que quiero aprender Arduino

    ResponderBorrar
  2. Podrias inplementarles dos pulsadores para aumentar o disminuir los numeros manualmente? Gracias

    ResponderBorrar