Modulo segmento display Grande

publicado en: Tutoriales | 0

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

0 =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 0 0 0 0 1 1 1 1
Pin de Arduino 7 6 5 4 3 2 1 0

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.

Dejar una opinión