Display 7 Segmentos Gigante

Display 7 segmentos

En este tutorial se utilizara el display de 7 segmentos para secuencia de números con cada pulso que detecte el Arduino en otras palabras un contador de 0 al 9. El display de 7 segmentos esta separado en bloques que te permite crear los números o patrones que necesites e instalarlos en donde los requieras.

Materiales:

Transistor como switch

Cada segmento del display de 7segmentos se alimenta con 12V lo cual es necesario hacer un arreglo con transistores que en este caso se utilizara un 2N2222 que es un NPN que actúen como switch para encender cada uno de los segmentos.

Para que un transistor actué como switch es necesario llevarlo a corte o saturación:

Corte: No hay corriente en la base por lo cual todo el voltaje cae sobre el transistor.

Saturación: tiene una corriente de colector máxima y un voltaje colector emisor casi nulo.

TRANSISTOR

Transistor NPN

Registros de puertos en arduino.

Estos registros nos permiten una manipulación más rápida de los pines de E/S de nuestro  Arduino. El microcontrador de esta placa tiene tres puertos:

  •  Puerto B:pin digital de 8-13
  •  Puerto C: pines de entrada analógica
  •  Puerto D: pines digitales 0-7

Cada uno de estos puertos está controlado por tres registros los cuales se definen por DDR, PORT y PIN.

DDR

Determina si el pin es entrada o salida.

Ejemplo:

DDRD= B00001111;

Dónde:

D es el puerto a controlar

B indica que es código binario

=entrada         1=salida

En este caso estamos declarando que la mitad de nuestro puerto  sea entrada y la otra parte salida, con esto evitamos escribir varias veces “pinMode(x,OUTPUT)” para declarar cada pin.1

Tomando en cuenta que el primer número de la derecha es el menos significativo la relación de los pines será de la siguiente manera:

Numero insertado  00001111
Pin de Arduino  76543210

Si queremos hacerlo en forma decimal solo bastaría con escribir “31”  y esto sería igual a activar los primeros cuatro pines como salida DDRD=31 ó  DDRD=255 si queremos activar todo el puerto como salida.

PORT

Controlada si el pin esta en alto o bajo.

PORTD=10101010

Aquí asignamos que los pines 1, 3, 5, 7 estén en estado alto mientras que los pines 0, 2, 4, 6 están en estado bajo.

PIN

Lee el estado de los pines de entrada establecidos.

PIND

Se lee todo el puerto que se ha configurado como entrada. Este registro nos da un 1 si a un pin del microcontrolador se le está alimentando externamente, y un cero si esta en nivel bajo de voltaje.

Diagrama

En la siguiente imagen se muestra la conexión de un transistor con un segmento del display esto se tiene que hacer 7 veces, uno para cada segmento. Agregaremos un botón para hacer el conteo de forma manual.

7 segmentos

Diagrama de conexión display 7 segmentos

Así quedara después de hacer las conexiones de los 7 segmentos.

display 7 segmentos

Conexión del display 7 segmentos

Para hacer la secuencia de led’s es necesario hacer una tabla para saber que pines se encienden para cada uno de los 7 segmentos, se tomará como referencia un display  convencional.

diagrama_7seg

Imagen de referencia para la conexión

display

Display de 7 segmentos

tabla 7 segmentos

Tabla de valores para los números

*NOTA: puedes ingresar todos los “1” y “0” o hacer la conversión a hexadecimal.

Programación

Este programa actúa como un contador, cada que se presione el botón sumara uno al conteo.

int x;
int contador=8;
int suma;

void setup()
{
// Serial.begin(9600);
pinMode(contador, INPUT);
DDRD=255; //se declara todo el puerto como salida
suma=0;
//HETPRO
PORTD=0x76; //H
delay(1000);
PORTD=0x79; //E
delay(1000);
PORTD=0x78; //t
delay(1000);
PORTD=0x73; //P
delay(1000);
PORTD=0x77; //R
delay(1000);
PORTD=0x3F; //O
delay(1000);
PORTD=0x00; //APAGA TODO
delay(1000);

}
void loop()
{
x=digitalRead(contador); //LEE SI ESTA ENESTADO ALTO EL BOTON
delay(150);
if(x==HIGH)
{
suma=suma+1; //AGREGA UNO AL CONTADOR
if(suma>9) // SI EL CONTADOR ES MAS DE NUEVE LO REINICIA A CERO
{
suma=0;
}
}
switch(suma){
//AL PUERTO "D" LE ASIGNAMOS EL NUMERO SEGUN SEA EL CASO
case 0:
PORTD=0x3F; //0
break;

case 1:
PORTD=0x06; //1
break;

case 2:
PORTD=0x5B; //2
break;

case 3:
PORTD=0x4F; //3
break;

case 4:
PORTD=0x66; //4
break;

case 5:
PORTD=0x6D; //5
break;

case 6:
PORTD=0x7D; //6
break;

case 7:
PORTD=0x27; //7
break;

case 8:
PORTD=0x7F; //8
break;

case 9:
PORTD=0x67; //9
break;
}
}
7 segmentos

Prueba de display 7 Segmentos

7segmentos

Contador display 7 segmentos

Con esto queda terminado el display de 7 segmentos.

[youtube https://www.youtube.com/watch?v=kG8l0Ip5KRQ]

Escríbenos tus dudas o comentarios

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Usamos Cookies en nuestro sitio WEB

Por favor confirma, si aceptas nuestras cookies de rastreo. También puedes negar el uso de cookies de rastreo y seguir navegando sin que ninguna información sea enviada a servicios de terceros.