viernes, 05 de diciembre de 2008
Ayúdanos a crecer, haz NeoTeo tu página de inicio RegistrarseIniciar sesión

TUTORIAL: Programación de Microcontroladores – Parte 10

Por: Ariel Palazzesi  @  viernes, 21 de septiembre de 2007  Nota vista 18359 veces
Tal como habíamos prometido, en esta entrega de nuestro tutorial de programación de microcontroladores desarrollaremos paso a paso el circuito electrónico del cartel. Este diseño podrá tomarse como base para un cartel mayor o con otras características.
¿te interesa?
55 -7
62 votos

Nuestro cartel tiene fines meramente educativos, y la intención es gastar poco dinero para construirlo, así que intentaremos realizarlo en base a un microcontrolador pequeño. Si el lector necesita un cartel de mayor tamaño o con capacidad para almacenar textos o imágenes más extensos, deberá utilizar algún micro con mayor capacidad y velocidad. El tamaño de la memoria EEPROM externa es bastante grande, pero también puede ser ampliado con mucha facilidad.

Dividiremos el esquema electrónico del cartel en dos partes: en primer lugar veremos toda la lógica de control, y en segundo, la “pantalla” con el registro de desplazamiento. A la hora de llevarlo a la práctica puede incluso hacer dos circuitos impresos por separado. Esto le permitirá al lector experimentar con otros controladores sin necesidad de volver a montar la placa de los displays.

El circuito controlador:
Este es el cerebro de nuestro cartel. Sera el encargado de gestionar el encendido de cada LED mediante órdenes enviadas a las columnas (mediante el registro de desplazamiento que mencionamos en la nota anterior) y a las filas.

Como una fila tendrá 80 LEDs, que eventualmente pueden estar todos encendidos, no podemos conectarlas directamente a pines de E/S del PIC, por que la corriente que demandarían haría que el puerto del PIC se destruya. Para evitar esto, utilizaremos en medio un transistor capaz de manejar esa corriente.

Analicemos el circuito. El centro de todo es el microcontrolador 16F628A, que tiene su pin de RESET conectado a un pulsador y una resistencia de 10K. Este pulsador permite reiniciar el cartel cuando lo necesitemos. También se ha implementado un circuito de reloj externo, basado en un cristal de 4 MHz y dos condensadores de 22 nanofaradios. Esto le permite al PIC ejecutar un millón de instrucciones por segundo, más que suficientes para este proyecto.

Los pines 1 y 2, correspondientes a los bits A2 y A3 del micro, se han utilizado para acceder a una memoria EEPROM del tipo 24C256. Esta memoria es de acceso serial (por eso necesitamos solo dos pines), mediante el protocolo I2C, y tiene capacidad para almacenar 32768 Bytes. Si nuestro programa hace uso de ella, podemos guardar allí 32768 caracteres (con el display en modo texto) o más de 400 pantallas en modo gráfico. Si resultara insuficiente, puede ponerse una memoria de mayor capacidad, siempre consultando la hoja de datos de la misma para asegurarnos su compatibilidad con la del ejemplo.

Todo el puerto B del PIC está dedicado a controlar las filas del cartel. Como ya habrán notado, tenemos 8 salidas para filas, y nuestro cartel tiene solo 7 filas. Efectivamente, la fila 8 no se utilizara si nuestra “pantalla” está construida con módulos LED de 7x5, pero el circuito de control está preparado para el uso (en caso de que alguien los prefiera) de módulos de 8x8 o bien para crear un cartel de 8 filas mediante el uso de LEDs sueltos. Quienes utilicen módulos de 7x9 pueden ahorrarse el transistor de la fila 8.

Por último, los pines 17 y 18, correspondientes a los bits A0 y A1 del micro se encargan de la gestión del registro de desplazamiento. El programa deberá generar los pulsos de reloj necesarios por el pin 18, y “meter” los datos en el registro por el pin 17.

No hemos incluido una fuente de alimentación. Cualquier fuente comercial que sea capaz de entregar 5V y 2A será suficiente. Esos 5V deben estar bien regulados, y por supuesto, el software deberá estar escrito correctamente, es decir, no encender varias filas al mismo tiempo, ya que el consumo de todo el cartel encendido sería de unos 80 x 70 x 20mA = 11.2 A, destruyendo la fuente.

Este es el cerebro de nuestro cartel.

El display
Esta es la parte del proyecto que todo el mundo va a mirar, así que debemos ser prolijos al montarlo. Como puede verse en el esquema eléctrico, hemos utilizado un total de 10 circuitos integrados 74HC164N para construir el registro de desplazamiento de 80 bits de largo, uno para cada columna. Si alguien quiere hacer un cartel más largo o más corto, deberá poner más o menos integrados. Cada uno maneja 8 columnas.

Si miramos el esquema del display, veremos que en la parte superior se muestra como está conectado cada LED dentro de la matriz de 5x7. Esto es importante tenerlo en cuenta a la hora de comprar los módulos, ya que hay una gran cantidad de modelos, y la mitad de ellos tienen los LEDs conectados en el sentido inverso.

Cada display también difiere en la función de cada terminal, por lo que se debe estar a atento a la hoja de datos para diseñar el circuito impreso apropiado, y conectarlos como corresponda.

En el dibujo del circuito no hemos representado los 16 módulos ni los 10 circuitos integrados, por una cuestión de espacio, pero es fácil darse cuenta de qué forma se conectan las filas y columnas de los demás displays a cada 74HC164N.

No utilizaremos el pin de RESET de los 74HC164N. En lugar de ser controlados desde el microcontrolador, cada RESET está puesto a +5V, de forma que el integrado funcione continuamente. Si por algún motivo se desea borrar la pantalla, basta con enviar 80 “0”s al registro de desplazamiento y listo. El tiempo empleado para esa tarea es despreciable, ya que el microcontrolador estará ejecutando 1 millón de instrucciones por segundo. El utilizar una línea de control menos nos permitirá tener un PCB ligeramente más sencillo.

Cada salida de los 74HC164N, como dijimos, se conecta a una columna de la serie de displays . Esta conexión se efectúa mediante un resistor de 1/8 de watt, que en el esquema se ha dibujado con un valor de 330 ohm. Ese fue el valor adecuado para el tipo de módulos que conseguimos para hacer el prototipo, pero su valor variara de un modulo a otro. Se puede montar solo un display con resistores de 330 ohms, y ver como es el brillo de los LEDs. Si es escaso, se puede bajar el valor a 220 o 100 ohms. Con eso debería ser suficiente

En la próxima entrega, la última de este proyecto, veremos cómo utilizar el BASIC del PIC SIMULATOR IDE para programar el cartel.

Hemos utilizado un total de 10 circuitos integrados 74HC164N.


Artículo Siguiente
VuDu: ¿El fin de las películas en DVD y la guerra de formatos?
Artículo Anterior
Mogulus: tu propio canal de televisión
CopyRight
Prohibida su copia total con o sin fines comerciales. Copias parciales deben citar la fuente.

 

URL Trackback para esta noticia:
Votos: 0 de 0



21/09/2007
20:31:28
#1   Se echaban de menos los tutoriales de microcontroladores, gracias!
     Responder 
Votos: 0 de 0
Leon
Leon
Leon
23/09/2007
19:58:03
#2   Muy bueno el tutorial, realmente es de gran ayuda, y está muy bien explicado. Sería muy util, si repiten en algún momento un turorial similar, pero con leds RGB. Felicitaciones, y muchas gracias por este gran aporte.
     Responder 
Votos: 0 de 0
Leon
Leon
Leon
03/10/2007
18:23:45
#3   Tienen idea cuando sale la tercer parte de este tutorial?
     Responder 
Votos: 0 de 0
Oscar Núñez
Oscar Núñez
Oscar Núñez
22/10/2007
3:43:38
#4   La verdad es que entro casi todos los dias a esta pagina buscando el enlace que me lleve a la otra parte del tutorial, la parte del programa, de hecho es tan excelente que estoy ansioso por la siguiente parte, en un tutorial parecido en otra pagina vi un mensaje fijo, lo cree y eso obtuve, pero me gustaría saber como crear el codigo para poner ese mensaje a desplazarse por toda la pantalla de izquierda a derecha o viceversa, por cierto, con mucho gusto pondré en mi pagina su enlace, muchas gracias, siguan así.
     Responder 
Votos: 0 de 0
Luis M
Luis M
Luis M
19/05/2008
20:20:51
#1   Oscar he estado viendo vuestros trabajos y necesitamos dos display con ese tamaño al que le programemos 3 mensajes , PASE - ADIOS - ERROR y metiante un relej lepandemos pulso de forma que segun se progame estos saldra un mensaje u otro.

Es pocible realizarnos este trabajo ?¿ precio y fecha de entrega....

solinfor@solinfor.net

Luis M.
     Responder 
Votos: 0 de 0
David
David
David
04/12/2007
1:14:11
#5   Exelente tutorial, ya tube experiencia con una pantalla que diseñe y fabrique, pero con 7 filas y 16 columnas, con el 16f84. estoy animado con su proyecto y lo voy armar a ver que tal.
     Responder 
Votos: 0 de 0
FranDeeJay
FranDeeJay
FranDeeJay
02/01/2008
3:28:03
#6   Hola a todos, me parecio interezante el diagrama pero lo que estoy buscando y no encuentro es un tacometro con pic 16F84 si alguien tiene un circuito y programa o un enlace desde ya muchas gracias.
     Responder 
Votos: 0 de 0
voltio
voltio
voltio
06/01/2008
14:46:59
#7   Hola, muy bueno, esta ya la ultima parte ?? gracias
     Responder 
Votos: 0 de 0
voltio
voltio
voltio
14/01/2008
15:16:59
#8   EXELENTE, PARA CUANDO EL CAPITULO CON EL SOFT ?? SALUDOS
     Responder 
Votos: 1 de 1



05/02/2008
1:24:32
#9   Un circuito practico con el 16F84
     Responder 
Votos: 0 de 0
julio ferreyra
julio ferreyra
julio ferreyra
06/04/2008
3:52:01
#10   me interesa este articulo lo quisiera llevar ha cabo pero me falta algunos concimientos pero me siento que puedo realizarlo quisiera que me dieran mas explicaciones
     Responder 
Votos: 0 de 0
xtreamx_x
xtreamx_x
xtreamx_x
15/05/2008
3:03:48
#11   Tecnico Electronico
     Responder 
Votos: 1 de 1
OptimusTronic
OptimusTronic
OptimusTronic
20/05/2008
5:44:53
#12   interesante, toda la informacion es muy util. Se les agradece a los miembros de NeoTeo
     Responder 
Votos: 0 de 0
edgarnoel
edgarnoel
edgarnoel
31/05/2008
4:29:02
#13   hola, he entrado a esta pagina y me encontrado con esto y esta fantastico, actualmente estoy realizando una de estas pantallas pero con un AVR mi idea era muy parecida ha esta, pero solo que yo quiero grabarle estos mensajes con un Software hecho en VB, es decir poner mi mensajes en un texbox y estos enviarseloas por RS232, y todavia se podria hacer la cosa mas compleja como mostrar imagenes, y por eso ahora surge mi duda, existe algun tipo de circuito integrado que decodifique esto como si fueran pixeles, es decir en lugar del 74ls164, o que tengo que hacer un Software muy complejo para poder mostrar imagenes o es que las pantallas esas que venden que pueden hacer esto tienen ese tipo Soft o utilizan algun tipo de Circuito integrado comercial para lograr mostrar estas imagenes, si pudieras contestar algunas de mis dudas seria genial, de antemano te lo agradesco.
     Responder 
Votos: 0 de 0
Ariel Palazzesi
Ariel Palazzesi
Ariel Palazzesi
31/05/2008
15:00:22
#1   Hola Edgarnoel!
Hasta donde yo sé, la unica forma es multiplexando como se explica en el articulo. No conozco integrados que manejen pixel por pixel. Me parece que vas a tener que resolverlo por software nomas! :)

Saludos!
     Responder 
Votos: 0 de 0
tony granados
tony granados
tony granados
07/09/2008
22:29:39
#14   Saludos
     Responder 
Votos: 0 de 0
torrealva
torrealva
torrealva
17/10/2008
3:30:07
#15   esta muy interesante tus tutorias, pero quiero la 11, 12, 13, 14 y todas entregas de Microcontroladores
     Responder 
 
 
Datos  Login Registrarse
Usuario
   
Email
Website
 
Nuevo comentario:


Tags HTML permitidos: br
 

 

NeoTeo



Autores