Mostrando entradas con la etiqueta LED. Mostrar todas las entradas
Mostrando entradas con la etiqueta LED. Mostrar todas las entradas

martes, 10 de julio de 2012

Controlador RGB con control

Una de las maneras de decorar nuestras casas es con iluminación LED, con la cual se pueden obtener muchos colores a partir de la combinación de tres colores básicos: Rojo (RED), Verde (GREEN) y Azul (BLUE); de ahí su nombre: RGB.



Para controlar este tipo de luces, se necesita algo similar a lo que hice aqui (control de un motor DC) pero con tres canales de control diferentes, uno para cada color.

Para ello, he decidido utilizar un PIC12F617, el cual se encargara de generar las senales de control para las luces y, ademas, leer los comandos recibidos por un control infrarrojo de TV, guardarlos y luego decodificarlos para su posterior uso.

El esquemático:



La PCB:



El funcionamiento del controlador es el siguiente:
  • Al conectar por primera vez el controlador, el LED indicador parpadeara indicando que esta en modo de programación.
  • Se debe presionar cualquier botón del control de TV con lo cual se memoriza el código de identificación del control. El LED se apaga momentáneamente y vuelve a parpadear.
  • Presionar un botón para asignar la función OK. Esta tecla servirá para encender, apagar y poner en pausa el controlador RGB. El tiempo de parpadeo del LED cambia.
  • Presionar un botón para asignar la función UP. Esta tecla servirá para aumentar el tiempo de barrido de los colores. El tiempo de parpadeo del LED cambia.
  • Presionar un botón para asignar la función DOWN. Esta tecla servirá para disminuir el tiempo de barrido de los colores. El LED se apaga y el controlador pasa a modo de funcionamiento.
Unas fotos:




Un video:



La cinta LED se va a instalar en una cascada artificial ... luego subo fotos del montaje ;)

DESCARGAS
RGBir.pdf: Esquema y PCB para imprimir.

domingo, 4 de marzo de 2012

Sistema de votacion electronico II

En la institución educativa donde trabajo (I.T.A Santa Cecilia) se realiza la jornada de elección de personero estudiantil y que mejor manera de hacerlo que con un modulo de votación GRE.

Ya había construido un modulo de votación electrónico (aquí) y logre identificar algunos puntos que permitirían hacer mas confiable la jornada de votación, los cuales se citan al final de ese hilo.

En este caso, el modulo de votación electrónica, es un dispositivo electrónico que lee el estado de unos pulsadores (cada pulsador hace referencia a un candidato y al voto en blanco) conectado a un PC (laptop) por el puerto USB y envía la información de los mismos a un software especializado en el conteo de el numero de pulsaciones (votos. Lo puedes descargar aquí) para generar un archivo con el conteo final de los votos realizados. Se debe garantizar que cada votante realice únicamente un voto (sin importar si vuelve a pulsar el botón) y que, ademas, cuente con la seguridad de realizar un voto secreto.

Para ello, he diseñado un sistema que cumpla con estas características, el cual posee:
  1. Dos avisos luminosos (rojo y verde) para el votante. Según el color es el estado del modulo de votación.
  2. Dos avisos luminosos (rojo y verde) para el jurado. Según el color es el estado del modulo de votación.
  3. Alerta audible (buzzer) para indicar que se ha realizado un voto.
  4. Control (mediante un pulsador) del modulo de votacion. El jurado es el que habilita el modulo.
  5. Software de conteo de votos, en el cual se realiza la inscripción de candidatos con sus respectivos datos, numero y foto. Permite, ademas, la corrección de un voto equivoco. 
Con esto, el proceso de votacion es el siguiente:
  1. El votante se inscribe con el jurado.
  2. El jurado habilita el modulo de votación. El aviso luminoso cambia de rojo a verde.
  3. El votante presiona el botón correspondiente al candidato, con lo cual se activa el buzzer (pito) y cambian los avisos luminosos del modulo (el modulo se desactiva), pasa de verde a rojo.
  4. De ser necesaria una corrección en el voto, el votante debe salir de la cabina a informar la corrección para que el jurado inhabilite el voto anterior y vuelva a habilitar el  modulo.
En este caso, no es necesario que el veedor acompañe al sufragante, porque el modulo es habilitado o des-habilitado por el jurado de votación. Ademas, al existir los avisos luminoso y audible, el votante sabe que ha realizado la votación correctamente. Estos avisos luminosos y audibles son muy útiles a la hora de guiar a los   mas pequeñines a la hora de realizar la votación :)

Unas fotos (disculpas por la resolución ... son tomadas con el celular ):

Socializacion del modulo con los peques :)


El modulo con los pulsadores y el aviso luminoso (Luz roja: modulo inhabilitado)

El software "Votaciones". El sistema se auto-conecta con el modulo hardware de votación. Si el modulo no se encuentra, el software se cierra automáticamente.

Modulo listo para la votación (Luz verde)


Puesto del jurado, con el aviso luminoso y el pulsador de habilitación del modulo. El jurado no tiene acceso al sitio de votación.

El resultado generado

El cerebro versión 2.0:




PD// El software para el PC es el mismo que se utilizo en el sistema anterior. Si quieres construir el modulo para utilizarlo, puedes descargar los diseños aquí o puedes contactarme por e-mail.

Un vídeo instructivo de la instalación del modulo:


He identificado que se podría hacer un registro mas rápido si se utilizara un sistema de registro biometrico (con la huella dactilar, por ejemplo) ... de pronto para una próxima oportunidad :) 

sábado, 5 de noviembre de 2011

Mini ParLED Ir

Para eventos en lugares pequeños es bueno tener luces tipo ParLED (como esta) pero resulta muy engorroso tener que usar una consola o un PC cuando el lugar es pequeño. Para sitios pequeños no es necesario tener unos ParLED RGB .. con un solo color basta y sobra :)

Para un bar local pequeño he diseñado unos Mini ParLED monocromáticos controlados por un control remoto infrarrojo, con algunas secuencias predefinidas (Modo DEMO) y con la opción de poder modificar los tiempos entre efectos. 

El diagrama es muy simple:

Y la parte de los LED es mas simple aún :) .. un arreglo serie-paralelo de 18 LEDs:
Si se trabaja a 12v, el valor de las resistencias puede ser de 120 (unos 25mA de corriente).

Las PCB's son circulares de 4cm de diámetro:

Unas fotos:



DESCARGAS
MiniParLED_Ir.pdf : Esquemático y PCBs.
MiniParLED_Ir.hex : Firmware para el microcontrolador.

martes, 22 de marzo de 2011

Reloj IR

Una aplicación del manejo de controles IR es este reloj, diseñado para activar un timbre a unas horas determinadas. Los dígitos son del tipo 7-segmentos y son de tamaño grande para poder visualizarlo a unos 100 metros y están construidos con LED de alto brillo y ángulo de visualización de 70°.

Para fabricar el dígito, utilicé un arreglo de 6 LED conectados en serie, similar al usado en el TURNERO DIGITAL.

El arreglo total:

El control del timbre se hace mediante un rele, con capacidad de manejo de 2 amperios. Las funciones del reloj son:
  • ON/OFF (Alarmas des-habilitadas, display des-habilitado).
  • SLEEP (Alarmas habilitadas, display des-habilitado).
  • RECALL (Habilitación manual del timbre).
  • 12h/24h (Formato de hora normal o militar).
  • 50 espacios de memoria para programación de la hora de activación.
  • Tiempo de activación del timbre programable.
  • Batería de respaldo para el reloj interno.
El sistema de medición de tiempo se hace con el reloj digital DS1307.

El diagrama esquemático:


La PCB:

Un vídeo del funcionamiento:

domingo, 13 de marzo de 2011

PAR LED

La iluminación LED toma cada vez mas fuerza en el campo de eventos teatrales. Las ventajas: bajo consumo, rapidez de conmutación, RGB en el mismo PAR, no hay tanto calentamiento, mas durabilidad y un largo etc.

Para controlar este tipo de luces se usa un protocolo especial: DMX.

La tarjeta del PAR, tiene como base el PIC16F873A:



Para la interfaz con el PC, he utilizado el PIC18F2550:


Las respectivas PCB's:





El sistema terminado:


Y un vídeo del funcionamiento (junto el software de control):


DESCARGAS:
parusb.pdf : Archivo que contiene los esquemas y las PCB

sábado, 22 de enero de 2011

MLOTrainer

A la hora de trabajar con microcontroladores, es bueno tener una herramienta de desarrollo que nos permita tener control sobre las características del PIC a través del PC.

Por ello he desarrollado una tarjeta de desarrollo básica para el PIC18F2550, que permita acceder a los pines de I/O, a dos canales análogos y a un protocolo en particular: I2C.

La idea es hacer un tipo de debbuger para "colgar" periféricos al bus I2C y poder enviar y recibir tramas I2C.

El esquemático de la tarjeta es el siguiente:

Usamos el puerto A para entrada de un nibble con dip-switch, el puerto b para salida con LED y la opción de conectar a módulos externos. Los pines para el I2C llevan sus respectivas resistencias de pull-up y hay dos modos de conexión: RS232 y USB, éste último posee un detector de conexión a través de uno de los pines del PIC.

La PCB es la siguiente:

Para controlar las funciones de la tarjeta contamos con el software correspondiente, el cual posee tres aplicaciones:

La primera es para trabajar con tramas I2C:

En la imagen esta la parte de simulación con proteus ISIS (La parte de recepción aún no la he probado con un dispositivo conectado, por eso aparecen los signos ?).

La segunda aplicación es para trabajar con los pines I/O:




La tercera es para juguetear con los 2 canales análogos:



En la tarjeta MLOTrainer, está el conector de 3 pines para la parte análoga, el cual incluye la alimentación (5V y GND).

DESCARGAS
Esquemático y PCB: Diagrama esquemático y PCB en .pdf.

martes, 4 de enero de 2011

Turnero Digital

Una de las herramientas que se usan para asignar un orden determinado para la prestación de un servicio, es el turnero, el cual indica el numero de turno a quien le corresponde pasar al servicio. Este sistema debe tener una pantalla lo suficientemente grande para poder ser visualizada a distancia y al mismo tiempo tener los controles necesarios para subir, bajar o resetear el turno correspondiente.

El problema con tener pantallas que necesitan ser controladas a grandes distancias es el cableado. Aprovechando lo visto en la sección Mando Infrarrojo podemos aplicarlo a nuestro turnero, teniendo así un control con muchos botones para su configuración y sin cables!

Para los dígitos de la pantalla he decidido utilizar LEDs en arreglos de 6 LED formando los segmentos y así unirlos y obtener números mas grandes.





El microcontrolador utilizado es el 16F628A. El dispositivo no tiene mayor dificultad, es un contador ascendente y descendente, con algunas modificaciones como lo son:

  • Flasheo de la pantalla en cada cambio de número.
  • Señal sonora en cada cambio de número.
  • Asignación del número con el control Ir.
El diagrama esquemático:


Se han utilizado transistores 2N3904 para drenar la corriente a GND para obtener mayor brillo.


DESCARGAS:
Esquemático y PCB. Diagrama esquemático y board del controlador y el segmento LED.

domingo, 26 de diciembre de 2010

Velocímetro

El velocímetro es un instrumento que mide la rapidez media de un móvil, si se mide en intervalos de tiempo cortos, se aproxima a la rapidez instantánea del móvil.

La medición se hace de manera indirecta relacionando el movimiento circular del eje de transmisión con la distancia recorrida por el móvil, para ello se usa un imán aferrado al eje y sensores magnéticos (Sensores Hall) los cuales entregan una serie de pulsos a cada "encuentro" con el imán.

Al tener una medida de la frecuencia (ciclos en un segundo) con la distancia recorrida (metros) se puede calcular la velocidad del móvil con cada lectura que se haga de la frecuencia de rotación del eje.

Para medir esa frecuencia he usado un PIC16F628A el cual posee un modulo CCP y tiene los pines justos para manejar los dos display de 7 segmentos y un Buzzer para dar una alerta cuando se sobrepase el valor límite de velocidad permitido.






La tarjeta de ensamble con la ubicación de los componentes:











Un vídeo del funcionamiento del velocímetro. El imán esta sujeto a las aspas del ventilador.





DESCARGAS:

domingo, 17 de enero de 2010

Matriz de LED

Uno de los mejores métodos para indicar información es por medio de pantallas LED, que, aunque costosas, dan muy buenos resultados a la hora de llamar la atención, gracias a su luminosidad.

Para generar la sensación de que la matriz muestra los datos, se usa el método de multiplexación, el cual consiste en ir encendiendo, fila a fila o columna a columna, de un forma secuencial, los respectivos LED, dentro de un arreglo de los mismos, a lo cual le llamaremos Matriz LED.

Por ejemplo, si quisiéramos encender el LED encerrado en el círculo rojo, deberíamos conectar los 2v al pin R3 (en los demás 0v) y conectar a 0v al pin C2.

Una de las cosas importantes para que nuestro letrero quede llamativo, es garantizar su luminosidad, y esto se logra suministrando la corriente necesaria para ello. No olvidemos que en estos casos, los LED van a estar encendidos una fracción de tiempo unicamente y por ende hay que elevar la corriente que pasa a través de el. Un microcontrolador no suministra la suficiente corriente para este caso, por lo que es recomendable usar transistores BJT o MOSFET según sea el caso.

El hardware básico para manejar una matriz de LED de 7 Filas por 5 Columnas puede ser el siguiente (en el cual está incluido un conector MiniUSB para la programación del microcontrolador via ICSP).



Después de varios minutos de ruteado ...


Ya teniendo el hardware básico, podemos adentrarnos en el manejo del firmware del microcontrolador para lograr, en este caso, visualizar algunas letras en nuestra matriz de LED.

Como bien se dijo al inicio de este hilo, se usa la multiplexación para generar la sensación de continuidad de encendido de los LED. El tiempo al cual se enciende y/o se apagan los LED puede ser de 1 o 2 milisegundos, con lo cual no se observaran parpadeos en la matriz.

Se puede usar una interrupción del Timer0 para controlar la multiplexación de las columnas, un código alternativo puede ser:

#int_TIMER0
void visualizar(void)
{
Ints++;
if(Ints>=8)
{
Ints=0;
FlagOk=1;
output_a(0xFF);
}
}

En el programa principal, se validaría la bandera FlagOk para visualizar los datos correspondientes a cada columna.

while(true)
{
if(FlagOk)
{
FlagOk=0;
if(i>6)
i=0;
output_b(Fila[i]);
output_a(ColLetra[i]);
i++;
}
}

Los datos correspondientes a cada fila se guardan en un buffer y se toman de un arreglo bidimensional guardado en la ROM del PIC. Para la letra A, por ejemplo, se tiene:

const char May7x5[27][7]={
{0x0E,0x13,0x13,0x13,0x1F,0x13,0x13},//A
....
};

Para cambiar la letra, usamos los pulsadores:

if(!input_state(BT1))//Verifico el estado del pulsador BT1
{
j++;
memcpy(ColLetra,May7x5[j],sizeof(ColLetra));
}






Aunque en el video no se alcanza a distinguir muy bien el mensaje, no es asi en realidad, cosas de las camaras digitales.






DESCARGAS:
PCB : Tarjeta de ensamble
CÓDIGO: Simulación en ISIS y .hex para programar

sábado, 16 de enero de 2010

DiscoPlay

Normalmente cuando se usan letreros luminosos basados en LED, uno de los grandes obstaculos se presenta cuando definimos el tamaño del mismo, ya que nosotros queremos el mas grande posible...y esto hace que los costos de fabricacion sean muy altos para la mayoria de nosotros.

Una mejor opción es usar pocos LED y que nos de la sensación de tener muchos LED's, es lo que sucede cuando ponemos a girarlos. Esto se debe a que el ojo humano solo puede resolver (o diferenciar) la frecuencia de movimiento de cuerpos a un bajo periodo de tiempo, caso que podemos aprovechar para crear la sensacion que buscamos.

Si tenemos un arreglo de 5 LED girando y los encendemos, nos da la sensacion de que hay 5 barras luminosas .... asi que solo es cuestion de controlar el encendido y apagado de estos 5 LED para crear mensajes.




El hardware de visualizacion es mucho mas sencillo y mas econónimo de realizar que un letrero publik, ya que solo consta de 5 LED, 5 transistores, 10 resistencias.

Usaremos tambien, en esta primera versión, un microcontrolador PIC12F629 configurando su oscilador interno de 4MHz, con lo cual nos quedan libres los pines del oscilador para usarlos como pines de I/O normales.

Lastimosamente, el pin de MCLR no se pude usar, ya que, por conflictos con el programador hay que decidir si se usa el oscilador interno o el pin de MCLR, otro inconveniente es que no tenemos mas pines para detectar una referencia con algun sensor (Hall o IR) para indicar el inicio de giro, por lo que hay que adaptar el código para el motor; el cual, se encargará de dar giro a nuestro desarrollo.

La ventaja es que la brd es pequeña y puede alcanzar, incluso, en ventiladores como los que se usan en PC's, claro está, con una resolución de 5 filas para dibujar las letras, si ya se quiere letras mas grandes y demás, solo es cuestion de migrar a otro microcontrolador como el 16F628A y usar ademas algún pin para detectar el inicio de giro ... podriamos decir que sería una proxima tarea para el DiscoPlay :)

Aqui la board del DiscoPlay con los LED's, resistencias y transistores en SMD:

Para visualizar la palabra HOLA, por ejemplo, se debe seguir la siguiente rutina de encendido y apagado de los LED's.

En donde los cuadros negros indican el LED encendido y los cuadros blancos indican el LED apagado, no olvidemos que el barrido es de forma horizontal, es decir, columna a columna. En camara lenta seria asi:



Por ahora no poseo el motor para montar al DiscoPlay, asi que para la demostración basta con sacudirlo un poco para ver como se forman las letras, en este caso.