Welcome to IDI Electronica!!!



Welcome!!! IDI Electronica is a blog for my personal projects and articles to help electronics enthusiasts like me.

Bienvenidos!!! IDI Electronica es un blog con mis proyectos personales y artículos con el fin de ayudar a entusiastas de la electrónica como yo.

Wednesday, February 10, 2016

Contador de Presiones de Botón Usando Pantalla de 7 Segmentos con 4 Dígitos y el Tiva C Launchpad

En el artículo anterior, explicamos cómo funciona una pantalla de siete segmentos simple y usamos el Tiva C Launchpad  y Keil µVision para demostrar un contador incremental.  En esta guía, vamos a usar el Launchpad para diseñar un contador de presiones de botón y mostrar la cuenta en una pantalla de 7 segmentos con 4 dígitos.


Fig 1.  Pantalla de 7 segmentos y 4 dígitos


1.  PANTALLA DE SIETE SEGMENTOS Y 4 DIGITOS

Si recordamos el artículo anterior, necesitamos 8 pines del microcontrolador para controlar una pantalla de siete segmentos simple (7 para los LEDs y 1 para conectar a la fuente de poder o tierra).  Esto significa que necesitaríamos 32 pines para controlar 4 pantallas.

La pantalla de 4 dígitos funciona de manera parecida, pero sólamente utiliza 11 pines (o más si la pantalla tiene puntos, dos puntos, etc).  Para lograr ésto, usamos 7 pines para controlar los 7 LEDs en los 4 dígitos al mismo tiempo.  Los otro 4 pines controlan cuál de los dígitos se va a encender.  Esto es más fácil de observar en el diagrama de circuito mostrado en la figura 2.

Para mostrar todos los números al mismo tiempo, el microcontrolador simplemente enciende continuamente cada uno de los dígitos por una fracción de segundo.  Cuando esto ocurre lo suficientemente rápido, nuestros ojos sólo detectan una imagen.  Este es el mismo concepto usado en las películas, donde varias imágenes son alternadas a alta velocidad para darnos la ilusión que la imagen se está moviendo.


Fig 2.  Mapa de pines y diagrama de circuito de pantalla de 7 segmentos, 4 dígitos y de anodo común 5641BH



2.  PROBANDO EL NUESTRA PANTALLA CON EL TIVA C LAUNCHPAD

2.1  DESCRIPCION

Para este proyecto vamos a usar el Tiva C Launchpad para diseñar una contador de presiones de botón y mostrar la cuenta en nuestra pantalla de 7 segmentos y 4 dígitos.

2.2  MATERIALES

- Tiva C Launchpad
- Placa de prueba (breadboard)
- 4 x Transistores NPN 2N3904
- 1 x pantalla 5641BH (pantalla de 7 segmentos y 4 dígitos de ánodo común)
- 4 x resistores 1KΩ
- 7 x resistores 47Ω


2.3  HARDWARE

El sistema utiliza 11 pines de salida del Launchpad para controlar la pantalla.  7 de esos pines van conectados directamente a la pantalla para controlar los 7 LED y los 4 pines van conectados a los transistores para conectar el riel de 3.3V a los pines de selección de dígito en la pantalla.  También vamos a usar el botón SW2 montado en el Launchpad.

La datasheet para la parte 5641BH puede ser descargada en este vínculo.

En la figura 3 tenemos el diagrama del circuito.  Noten que el botón no está incluído porque viene montado en el Launchpad.


Fig 3. Diagrama de circuito para contador de presiones de botón con pantalla 5641BH


2.4  SOFTWARE

Entra a mi repositorio en Github y encuentra el archivo SevenSegment2.c para descargar el código del microcontrodor a tu proyecto. Una vez más, las instrucciones para crear el proyecto se pueden encontrar en el artículo anterior.

El diagrama de flujo en figura 4 explica el funcionamiento del programa para el microcontrolador.


Fig 4.  Diagrama de flujo para código de microcontrolador









Thursday, February 4, 2016

Button Press Counter Using 4-Digit 7-Segment Display and Tiva C Launchpad

In the previous post, we explained how a single-digit seven-segment display works and we used the Tiva C Launchpad to test it.  In this guide, we will use the Tiva C Launchpad to drive a 4-digit 7-segment LED display using Keil µVision.

Fig 1.  Four-digit seven-segment display


1.  FOUR-DIGIT SEVEN-SEGMENT DISPLAYS

As we recall, we need 8 microcontroller pins to drive a single-digit 7-segment display (7 to control LEDs and 1 to power source or ground).  This means that using 4 single-digit displays would require a total of  32 microcontroller pins.

A 4-digit display works in a similar way, but is designed to be controlled by only 11 pins (or more if the display has periods, colons, etc).  To achieve this, we still use 7 pins to control the 7 LEDs in each of the digits at the same time and the other 4 pins control which of the digits will be on or off.  Obviously, the easiest way of understanding this circuit is by looking at the circuit diagram in figure 2.

To display all numbers at the same time, the microcontroller continuously turns on each of the digits for a fraction of a second.  When this is done fast enough, our eyes see only one image.  This is the same concept used by movies, where a series of pictures alternated at high speed give us the illusion that they are moving.

NOTE: A better explanation of how common-anode 7-segment displays work can be found in this guide.



Fig 2.  Pin layout and circuit diagram of common-anode 4-digit 7-segment display 5641BH



2. TESTING 4-DIGIT 7-SEGMENT DISPLAY WITH TIVA C LAUNCHPAD

2.1  DESCRIPTION

We will use the Tiva C Launchpad to design a button-press counter which will be displayed in the 4-digit 7-segment display.

2.2  MATERIALS

- Tiva C Launchpad
- Breadboard
- 4 x 2N3904 NPN Transistors
- 1 x 5641BH 4-digit 7-segment common-anode display
- 4 x 1KΩ resistors
- 7 x 47Ω resistors


2.3  HARDWARE

The system will use 11 output pins from the Launchpad to control the LED display.  We will connect 7 of the pins directly to the display for LED selection (A through G), and the other 4 pins will be connected to the NPN transistors to provide power to each of the digits from the +3V3 power rail.
For the button-press counter we will also be using the on-board switch SW2 included in the Launchpad.

The datasheet for the 5641BH 7-segment display can be found in this link.

The circuit diagram is shown below (figure 3). Notice the push-button isn't included in the diagram since it is already a mounted in the Launchpad.


Fig 3. Circuit diagram for our test system


2.4  SOFTWARE

Visit my Github repository and download or copy the code in the file SevenSegment2.c.  An explanation of how the code works can be found in the comments within the code and the flowchard in figure 4.

Instructions on how to create a project using Keil uVision 4 can be found in my previous 7-segment display guide.


Fig 4. Flowchart of microcontroller code