58719852 Proyecto Matriz de Leds Sencilla

8
PROYECTO MATRIZ DE LEDS SENCILLA 1. ESQUEMA GENERAL DEL PROYECTO Fig 1. En una vista general del proyecto los componentes del mismo son el microcontrolador y una matriz de leds ( 7 x 5 ), la cual es controlada por el PIC a través de sus puertos, el Puerto A ( PTOA ), con 5 pines controla el encendido de las columnas; El Puerto B ( PTOB), con 7 pines controla el encendido de las filas. Veamos ahora, cada componente y su configuración por separado, para entender como se va construyendo el proyecto y su ensamblaje final. 1.1 MICROCONTROLADOR PIC 16F628A. Fig 2. P I C P T O B PTO A

Transcript of 58719852 Proyecto Matriz de Leds Sencilla

Page 1: 58719852 Proyecto Matriz de Leds Sencilla

PROYECTO MATRIZ DE LEDS SENCILLA 1. ESQUEMA GENERAL DEL PROYECTO

Fig 1. En una vista general del proyecto los componentes del mismo son el microcontrolador y una matriz de leds ( 7 x 5 ), la cual es controlada por el PIC a través de sus puertos, el Puerto A ( PTOA ), con 5 pines controla el encendido de las columnas; El Puerto B ( PTOB), con 7 pines controla el encendido de las filas. Veamos ahora, cada componente y su configuración por separado, para entender como se va construyendo el proyecto y su ensamblaje final. 1.1 MICROCONTROLADOR PIC 16F628A.

Fig 2.

Fig 2.

PIC

PTO

B

PTO A

Page 2: 58719852 Proyecto Matriz de Leds Sencilla

Como podemos ver, los pines 1, 2, 3, 4, 15, 16, 17 y 18 tienen el nombre de RAx. Esos pines conforman el puerto A, (PORTA). Los pines 6 al 13 forman parte del puerto B (PORTB). El pin 5 es el que se conectara al negativo de la fuente de alimentación (Vss) y el 14 irá conectado a 5V ( Vdd ) ó ( + Vcc ). Como habrán notado, muchos de los pines tienen más de una descripción. Esto se debe a que pueden utilizarse de varias maneras diferentes, seleccionables por programa. Por ejemplo, el pin 4 sirve como parte del PORTA, como RESET (MCLR = Master Clear) y como tensión de programación (Vpp) No es mala idea descargar desde la web de Microchip la hoja de datos de este microcontrolador (esta en inglés) para tenerla siempre a mano. De acuerdo con la Fig 1, ( Esquema General del Proyecto ), necesitamos utilizar 7 pines del puerto B, para controlar las siete filas de la matriz de leds, esto es, los pines RB0, RB1, RB2, RB3, RB4, RB5 y RB6. Tomaremos en su orden esta configuración siendo RB0, el pin menos significativo o de menor peso ( Primer led de la primera fila ) y RB6, el mas significativo o de mayor peso ( Primer led de la ultima fila ). Fig 3. Para el control de las columnas necesitaremos los 5 pines del puerto A, esto es los pines RA0, RA1, RA2, RA3 y RA4. Tomaremos en su orden esta configuración siendo RA0, el pin menos significativo o de menor peso ( Ultimo led de las filas) y RA4, el pin mas significativo o de mayor peso ( Primer led de las filas ); Para este puerto se toma el orden inverso, tal como se hace cuando se escribe una palabra digital en binario, es decir, se lee de derecha a izquierda dicha palabra, esto se hace con el fin de facilitar la escritura de los códigos binarios que utilizaremos mas adelante. Fig 4.

RB0 RB1 RB2 RB3 RB4 RB5 RB6

PIC PTO B

6 7

9

1112

10

8

13

RA4 RA3 RA2 RA1 RA0

PIC PTO A

3 182 171

Page 3: 58719852 Proyecto Matriz de Leds Sencilla

Ya tenemos clara la forma como vamos a conectar los pines de salida del micro a el modulo de matriz de leds. Sin embargo para el funcionamiento correcto del pic, se deben incluir ademas de la alimentación ( Vdd y Vss), es necesario incluir dos circuitos adicionales como son el Oscilador externo y el Circuito de reset, con los cuales, el micro estaria fisicamente listo para conectarse a la matriz de leds. Veamos entonces la configuración de cada uno de estos circuito auxiliares. 1.1.1 Circuito Oscilador Externo Fig 5. Este circuito esta compuesto principalmente por un oscilador a Cristal de 4 Mhz, el cual se conecta en paralelo a los pines 15 y 16 del micro. Se utilizan dos capacitores que iteractuan con el oscilador como estabilizadores de la frecuencia, los cuales se conectan hacia tierra desde las terminales del oscilador, tal como lo muestra la Fig 5. 1.1.2 Circuito de Reset El circuito correspondiente a el sistema de “reset”, es el mostrado en la Fig 6. Compuesto por un pulsador NA ( normalmente abierto ) y una resistencia de “Pull UP” de 4.7 K, conectada a +Vcc. Estos se conectan al pin 4, tal como lo muestra la figura. Con estos dos circuitos, el Oscilador externo y el circuito de reset; Mas el claro conocimiento de las funciones de cada puerto tendremos nuestra primera etapa del proyecto lista, es decir el micro se encuentra fisicamente ( HARDWARE), listo para entrar en operación sobre la matriz de leds. Para utilizar los pines del puerto A, se deben utilizar resistencia de Pull UP Fig 6.

Page 4: 58719852 Proyecto Matriz de Leds Sencilla

Veamos la explicación para este caso. 1.1.3 El PORTA de los PIC's y una de sus particularidades : RA4 Push-Pull y Open-Drain, dos en uno. Los pines 0 a 3 y 5 del PORTA de los PIC's, en uso como I/O digital, comparte características similares con los otros puertos del PIC, PORTB o PORTC por ejemplo. Pero debido al uso alternativo del pin 4 del PORTA como External Clock Input para el TIMER0 (T0CKI) este pin tiene una configuración un tanto especial. En el esquema inferior puede comprobarse cómo están conectados interiormente ambos tipos de pines. Los "normales" mediante dos transistores Canal-N y Canal-P en configuración Totem-pole conectados a Vdd y Vss, mientras que el RA4, el "raro", solo tiene implementada la parte inferior del Totem-pole, y por lo tanto desconectado del Vdd. A esta última configuración se le conoce como Open Drain u Open Collector (Colector Abierto en Español)

Fig 7. RA0:RA3 & RA5, los "normales" Cuando el bit del TRIS es 1 y la puerta AND inferior tiene su salida a 0 entonces la puerta OR superior tiene su salida a 1. En esta situación ninguno de ambos transistores, TRP y TRN, conducen y por lo tanto el PIN está aislado del flip-flop de datos. El PIN está en estado de input. Cuando el bit del TRIS es 0 entonces el estado complementario (negado) del flip-flop de Datos es inyectado (gated) a ambos transistores: Cuando Data es 0 entonces TRN conduce y TRP no, dándole al Pin una salida de 0; cuando Data es 1 entonces es TRP quien conduce y TRN no lo hace y por lo tanto el Pin tiene un 1 en su salida. En esta sitación el Pin sigue el estado del flip-flop de datos. La fuente de corriente se obtiene a través de la relativamente baja resistencia del transistor activo. Esto nos proporciona un máximo absoluto de 20 a 25 mA.

Page 5: 58719852 Proyecto Matriz de Leds Sencilla

RA4, el "raro" Cuando el bit del TRIS es 1 entonces la salida de la puerta AND es 0 y por lo tanto TRN no conduce, teniendo su salida a alta impedancia. RA4 está en estado de input. Cuando el bit del TRIS es 0 entonces la puerta AND hace un seguimiento invertido del estado del flip-flop de Datos, si el Dato es 0 entonces TRN conduce y "tira a tierra" al Pin, cuando el Datos es 1 entonces TRN no conduce y el Pin queda "flotando". Si conectamos RA4 a Vdd mediante una resistencia pull-up tendremos entonces disponible Vdd, menos la caida en la resistencia pull-up, cuando el Dato sea 1 y directamente masa cuando sea 0. Un ejemplo con enjundia: Un Driver de Relé con uno u otro tipo de Pin. Supongamos que queremos conectar a nuestro Pin un Relé de 12V y con un consumo aproximado de unos 200 mA. En RA0: Para este voltaje y consumo necesitamos un buffer externo que nos haga de driver para el relé. Con un simple transistor bipolar podemos conseguirlo (Ver Mis transistores favoritos). Como la mínima ganancia de un transistor de este tipo es de 100 y asumiendo un voltaje entre base y emisor de unos 0.7V entonces con una resistencia de 1K8 ohmios le daremos a la base una corriente de unos 2 mA que llevará a nuestro transistor a saturar y por ello a activar el relé cuando el pin del PIC tenga un voltaje por encima de unos 4.3V.

Fig 8. En RA4: Como hemos visto anteriormente RA4 es un poco diferente, "raro" decíamos, y solo tiene dos estados conocidos, ó flotante cuando ponemos un 1 en su salida o conectado a masa cuando ponemos un 0. Es lo que decíamos que era Open-Drain u Open-Collector. Un Open-Drain, Open-Collector, o Colector Abierto para entendernos, no tiene fuente de corriente, así que la carga debe ser conectada a su propia fuente de corriente, una resistencia pull-up conectada a Vdd.

Page 6: 58719852 Proyecto Matriz de Leds Sencilla

En este caso conectamos la resistencia de 1K8 ohmios a 12V generando la corriente que necesita nuestra carga. Cuando el Pin RA4 tenga un estado lógico alto ó 1 no influirá en la base del transistor Driver y por lo tanto estará conduciendo y activando el Relé, y cuando su estado lógico esa 0 derivará a masa la corriente de base, a través de la resistencia pull-up, y dejará de conducir con lo que desactivará el Relé. El diagrama final para la conexión y disposición del Pic sera como lo muestra la figura 10. Fig 10. 1.2 MATRIZ DE LEDS 7 x 5 La matriz de Leds que vamos a utilizar en nuestro proyecto, esta compuesta por 7 filas agrupadas en 5 Columnas, haciendose necesario para su configuración la utilización de 35 leds. El tipo de led usado es el normal. Teniendo en cuenta las caracteristicas de consumo de los mismos y con el objeto de no someter al micro procesador a generar consumos de corriente que afecten el estado y funcionamiento del mismo, debe diseñarse una estrategia de operación que encienda los leds pero haciendo que el micro trabaje en modo de sumidero mas no en modo de fuente, para ello si se va a encender toda una columna, se pensaria que lo logico seria colocar un “1” en los anodos de los leds de cada fila en la columna y un “0” en los catodos de los mismos, veamos la ilustración para entender este proceso, el cual seria el proceso “logico”.

RST

3

65

789 10

11

21

4

12

15

13

16

14

1718

A0 A1 A2

A3 A4

4 Mhz

20 pF

20 pF

16F628A

4K7 10K

B0 B1 B2 B3 B4

B5 B6

+ 5 Vdc

Page 7: 58719852 Proyecto Matriz de Leds Sencilla

Fig. 10. Encendido normal de una Columna. En esta figura podemos apreciar todos los leds encendidos de la ultima columna de la matriz ( A0 ), pero recordemos que vamos a escribir de derecha a izquierda para facilitar la lectura posterior en codigo binario, asi, que esta seria la primer columna. Teniendo esto claro, para encender todo los leds de esta primer columna se deben colocar “1” en todas las filas y “0” en la respectiva columna, dando como resultado que todos los leds enciendan. Luego para apagar un determinado led de esa columna, bastara con colocar un “0” en la respectiva fila del led que queramos apagar, tal como lo muestra la fig 11. Fig. 11. Encendido y Apagado normal de Varios Leds En una misma Columna. Para encender o apagar un led en una misma columna, se debe Asegurar en el bit que controla dicha columna un “0” como si Fuese la tierra o negativo de los catodos de los Leds, y para Encender o apagar determinado led, se debe escribir un “1” o “0”, según sea el caso en los respectivos bits del puerto B del Micro.

Page 8: 58719852 Proyecto Matriz de Leds Sencilla

B5