Si quieres aprender o repasar cómo funcionan los LED (diodos luminosos), puedes visitar mi guía para diseño de circuitos con LEDs.
1. PANTALLA DE SIETE SEGMENTOS
Las pantallas de 7 segmentos son simplemente 7 luces LED contenidas en el mismo componente. Para controlar la pantalla simplemente tenemos que activar cada uno de los LEDs en diferentes combinaciones.
Fig 1. Pantalla de siete segmentos de LED
Para ahorrar espacio, los LEDs en las pantallas de 7 segmentos comparten uno de sus pines (ánodo o cátodo) ya que simplemente tenemos cortar la corriente en un lado para apagar el LED. Debido a eso, existen dos tipos de pantallas: De ánodo común (common-anode) o cátodo común (common-cathode). En pantallas de ánodo común, los ánodos de los LEDs en la pantalla están conectados a un sólo pin (normalmente a la fuente de poder). En pantallas de cátodo común, los cátodos de los LEDs están conectados (normalmente a tierra).
Fig 2. Diagrama mostrando ánodo y cátodo de LED
Fig 3. Diagrama representando los LEDs en pantalla de siete segmentos
Primero haremos un corto repaso sobre el funcionamiento de LEDs. Para encender un LED, el voltaje que aplicamos sobre el LED (Vs-Vc) debe de ser mayor al voltaje de adelanto (Vf) o forward voltage en inglés. Para eso podemos usar la ecuación Vs - Vc > Vf. El voltaje de adelanto (Vf) puede encontrarse en la datasheet del LED.
En pantallas de ánodo común, todos los ánodos de los LED están conectados a un sólo pin que a su vez está conectado a la fuente de voltaje (Vs). Debido a eso, la única forma de controlar cada uno de los LEDs es subiendo el voltaje de los cátodos de cada LED para apagarlos.
Para probar esto simplemente usamos la ecuación Vs - Vc > Vf. Si el voltaje Vc es igual a la fuente Vs, la diferencia entre Vs y Vf es cero y por lo tanto no sería mayor al voltaje Vf. Por lo tanto, el LED se encenderá si el voltaje de Vc es alto (igual a Vs) y se apagará si el voltaje es bajo (igual a tierra).
Fig 4. Diagrama de circuito de LED
Para controlar el voltaje del pin Vc con el microcontrolador, simplemente conectamos el cátodo del LED (usando una resistencia en serie) a uno de sus pines de salida.
2. PROBANDO LA PANTALLA CON EL TIVA C LAUNCHPAD
2.1 MATERIALES
- 7 resistencias de 47Ω (usar 120Ω si tu fuente de poder es de 5V)
- 1 breadboard
- Tiva C Launchpad
- Pantalla de 7 segmentos de ánodo común (LSD3221-11)
2.2 HARDWARE
El diseño de este proyecto es bien simple. Vamos a usar el riel de +3.3V del Launchpad como fuente de poder para la pantalla y resistencias en serie con los cátodos de cada LED para ser conectadas a los pines de salida del microcontrolador.
Para calcular el valor de cada resistencia, buscamos el voltaje de adelanto (Forward voltage, Vf) y la corriente de adelanto (forward current, If) en el datasheet del LED (figura 5) y simplemente aplicamos la ley de Ohm.
Fig 5. LSD3221 datasheet power ratings
R = (Vs - Vf) / If = (3.3 - 2.1) / 2.5 = 48 Ohm (el valor estándar más cercano es 47Ω).
Luego, utilizamos el datasheet de nuevo para identificar los pines de la pantalla y ver cómo conectarla al Tiva C. Debido al número de pines disponibles en el Launchpad, vamos a usar el Puerto B (pines B0 a B6) del Launchpad para nuestro diseño. Además, omitiremos los LEDs utilizados para los puntos a la izquierda y a la derecha de la pantalla (LD y RD) por conveniencia.
Fig 6. Datashhet del LSD3221 definiendo los pines
Fig 7. Diagrama eléctrico de nuestro circuito
2.3 PROGRAMACION
1. Abrir Keil µVision 4 y crear un proyecto nuevo. Seleccionar el microcontrolador TM4C123GH6PM y aceptar el archivo de inicio (Startup project file) cuando el programa lo ofrezca.
NOTA: Para instrucciones más detalladas para crear proyectos, visita mi guía Parpadear un LED Usando el Tiva C Launchpad.
2. Usando el explorador de Windows, entra a la carpeta donde está instalado Keil, busca el archivo system_TM4C123.c y cópialo a la carpeta donde tienes guardado tu proyecto. En seguida, agrega el archivo a tu proyecto usando Keil.
3. Visita mi repositorio en Github en https://github.com/sphanlung/TivaC/blob/master/SevenSegment1.c y descarga el archivo SevenSegment.c (o copia el texto a un archivo nuevo en Keil). Agrega el archivo a tu proyecto.
NOTA: El código contiene comentarios en inglés explicando cómo funciona. Si tienes preguntas, usa la secciones de los comentarios y te responderé apenas me sea posible.
4. En Keil, haz click en Project y luego Build Target para compilar el código.
5. Si el código compila sin errores, haz click en Project otra vez y luego en Options for Target 'Target 1'. Cuando se abra la ventana, busca la pestaña de Utilities y bajo la opción Configure Flash Menu Command, desmarca la casilla Use Debug Driver box. Luego, selecciona Stellaris ICDI bajo Use Target Driver for Flash Programming y presiona OK.
6. Finalmente, haz click en Flash y luego Download. Esto cargará el código al microcontrolador.
Excelente explicacion y ayuda
ReplyDelete