Stick LED programable #1

Stick de 16 LEDMontaje del kit Shake Stick Flash, de 16 LED por columna. El circuito original incluye el micro controlador AT89S52, y ya viene programado con 4 imagenes diferentes. Lo interesante de este kit es que se incluye el conector ISP (In-system programming), y esto facilita su uso como plataforma de desarrollo para realizar prácticas con este tipo de micro controladores. Principios de funcionamiento del Stick LED (persistencia del ojo humano), descripción del esquema eléctrico, montaje y diseño de un nuevo firmware. Este firmware permitirá la presentación de 16 imagenes diferentes (gráficos o textos) y uno de sus mensajes podrá reprogramarse a través del puerto serie. Los otros 15 mensajes, almacenados en ROM, podrán modificarse editando el archivo del firmware de forma muy simple.

STICK: persistencia del ojo humano
STICK: persistencia del ojo humano

El principio de funcionamiento del Stick LED está basado en la persistencia que tiene el ojo humano. El ojo hace que cualquier imagen vista se grabe en la retina durante 100 mSeg. aproximadamente. Si desplazamos la columna del Stick con los 16 diodos LED encendidos a una velocidad inferior a 100 mSeg., nuestra retina apreciará una imagen continua y plana, con la forma del movimiento que hemos descrito. Si durante ese tiempo (<100 mSeg.) hacemos que los diodos LED se enciendan y apaguen con un intervalo de tiempo fijo, veremos el mismo arco luminoso, pero mostrando la mitad de las líneas verticales apagadas. Para mostrar gráficos o letras, sólo tendremos que codificar los puntos de cada columna y presentarlos en  el intervalo de tiempo adecuado… y eso es lo que hará el micro controlador.

Este firmware se puede descargar de forma gratuita desde el siguiente enlace: J_RPM_v1_STICK.HEX

Montaje: Stick 16 LED
Montaje: Stick 16 LED

Este kit incluye un portapilas para utilizarlo con dos baterías de tipo AAA. Esto supone que si utilizamos dos pilas de 1,5 V estaríamos alimentando el circuito con 3V. Aunque con esta tensión podría llegar a funcionar el micro controlador, estaría funcionando muy cerca del umbral mínimo… y dejaría de funcionar en cuanto las pilas estuvieran un poco descargadas. Además, la luminosidad que obtendríamos del Stick sería bastante baja. Para evitar estos problemas, la mejor solución es alimentar el circuito con una batería recargable, y añadir un circuito de carga con protección (TP4056) junto con otro circuito ‘Step UP’ que eleve y estabilice la tensión de salida hasta 5V.

Esquema: Stick Flash
Esquema: Stick Flash

En el esquema se muestra la numeración de los componentes, según aparece en la serigrafía del PCB (circuito impreso). Si queremos programar el micro controlador utilizando el conector ISP (In-system programming), es conveniente sustituir la resistencia del circuito Reset, original de 1K5, por otra de 10K.

Con el nuevo firmware que se adjunta, es posible mostrar 16 imágenes diferentes, 5 de ellas son dobles. Al final dispondremos de 4 imágenes dobles y 11 simples almacenadas en la memoria ROM, y  otra imagen doble almacenada en la memoria RAM. Esta última podremos reprogramarla cuantas veces queramos, enviando los datos desde un PC o dispositivo móvil. Para ello tendremos que intercalar un interface (RS232, RS485, IR, Bluetooth, etc) y conectarlo a las líneas RX/TX del Stick (UART). Los textos de la memoria ROM también podremos sustituirlos, pero lo haremos con un editor hexadecimal, modificando los textos del firmware antes de programar el micro controlador.

Intervalos de tiempo (Stick LED)
Intervalos de tiempo (Stick LED)

Con el fin de mejorar la presentación de los mensajes más cortos, el micro controlador modificará los intervalos de tiempo en función del número de caracteres-columnas que tenga que presentar (ver la imagen anterior).

Medir las revoluciones R.P.M. #2

Medidor RPM de alta resolución, mostrando la velocidad de giro de cualquier motor en un display LCD. El rango de medidas está comprendido entre 12 y 65.535 RPM. La construcción de este medidor se detalla en el documento anterior, ya que se utilizan los mismos componentes electrónicos. Comprobación de funcionamiento y medidas RPM, con diferentes motores y en ambos modos de funcionamiento (promediado y precisión).

El firmware de este medidor, lo puedes descargar desde el siguiente enlace: RPM_v101.HEX

Medidor R.P.M.
Medidor R.P.M.

Con esta nueva versión de firmware, es posible seleccionar dos modos de funcionamiento:

PROMEDIADO (puente cerrado):

Interruptor óptico ranurado
Interruptor óptico ranurado

El interruptor óptico, mediante el corte del haz luminoso, mide el tiempo de giro del motor con una resolución de 100 uSeg. El valor que muestra el display es la media de las dos últimas medidas de tiempo, después de convertirlas en revoluciones por minuto. La única operación que se debe realizar, es multiplicar el tiempo promediado de las dos últimas medidas por 60 segundos (mSeg x 60.000). Con este modo de funcionamiento se pueden leer cómodamente los valores RPM, porque los cambios se realizan con baja resolución.

PRECISIÓN (puente abierto):

Con este modo de funcionamiento es posible apreciar la estabilidad de rotación de los motores, sobre todo los que funcionan a un alto régimen de revoluciones. El valor que se muestra en la pantalla se calcula en función de la resolución máxima que permita el micro-procesador. En este caso, al utilizar un cristal de cuarzo de 22,1184 MHz, la temporización mínima es aproximadamente 0,588 uSeg. Utilizando esta resolución, la precisión de la medida hasta 10.000 RPM será mejor de 1 RPM. Con altas revoluciones de giro, veremos cambiar los valores más bajos con mayor o menor velocidad, dependiendo de la estabilidad de giro del motor. La velocidad de refresco del display no depende de la velocidad de giro del motor, está fijada a 4 veces por segundo (250 mSeg).

Medir las revoluciones R.P.M.

Medir las revoluciones de giro de un motor en un display LCD, utilizando un interruptor óptico ranurado como sensor. Posible librería y código para realizar este medidor con Arduino (FreqCount.h). Esquema del medidor de RPM, utilizando el micro-procesador de Atmel AT89C2051 y un display LCD de 2 líneas y 16 caracteres. Comprobación de funcionamiento y medidas RPM con diferentes motores.

En un video anterior (Medir con precisión las RPM de un motor, es muy fácil) mostraba cómo se podían medir con precisión la velocidad de giro de un motor, de una forma fácil y sencilla.

Interruptor óptico ranurado
Interruptor óptico ranurado

El captador utilizado era un interruptor óptico ranurado,  posteriormente se medía la frecuencia de giro del motor y se convertía en revoluciones por minuto (RPM). La frecuencia se puede medir con un frecuencímetro, un osciloscopio o mediante una aplicación gratuita utilizando un dispositivo móvil.

Medir RPM con el móvil
Medir RPM con el móvil

En esta ocasión vamos a realizar un medidor de RPM completo, mostrando las revoluciones por minuto en un display LCD. El controlador del medidor se podría hacer con ARDUINO, utilizando la librería FreqCount.hpero deberemos tener en cuenta las limitaciones que tiene esta librería, dependiendo del modelo de Arduino que estemos utilizando

Arduino UNO & FreqCount.h

  • Pin de entrada para realizar la medida: 5
  • Deshabilitación de la sentencia  analogWrite() en pines: 3, 9, 10 y 11.
Conexiones LCD Keypad Shield
Conexiones LCD Keypad Shield

Si queremos utilizar le módulo LCD Keypad Shield con nuestro Arduino UNO, tendremos que utilizarlo sin ensamblar ambos módulos mediante sus conectores, porque coincide el pin de medida (FreqCount.h) con una de las conexiones del módulo LCD. Será necesario modificar las conexiones del LCD, ensamblando ambos módulos con cables para mover la entrada/s ocupada/s.

Con el fin de mejorar la resolución de las medidas… y después de algunos incidentes que tuve con mi Arduino, decidí hacer todo el desarrollo partiendo desde cero, y utilizar el micro-controlador de Atmel: AT89C2051.  En esta primera versión (quizás haga alguna mejora) la resolución de las medidas las determina un temporizador de 0,1 milisegundos (100 uSeg). De esta manera, la medida máxima de revoluciones por minuto que podríamos medir serán 600.000 RPM. Sin embargo, al ser un tiempo fijo, el valor inmediatamente inferior que mediríamos sería 300.000 RPM. Es decir, un salto entre medidas excesivamente grande. Por este motivo limité el valor máximo a 65.535 RPM (16 bit), aunque la medida máxima que podremos ver en el display será 60.000 RPM. Por otra parte, la medida mínima empezará a partir de 12 RPM. Esta limitación queda determinada por el tiempo máximo de espera que fijé para actualizar el valor mostrado en el display, que son 5 segundos.

Medidor R.P.M.
Medidor R.P.M.

 

Tabla RPM
Tabla RPM

En la tabla de la izquierda (click para ampliar) podemos observar los valores de RPM que podrían aparecer en el display, cuando medimos valores entre 4.000 y 60.000 RPM. Como podemos comprobar, la resolución de las medidas empeora al subir la velocidad de giro, lógico porque partimos de un temporizador de valor fijo (100 uSeg). Como en los motores de uso más frecuente la velocidad de giro no suele superar las 4.000 RPM, la resolución que se mostrará con este medidor será bastante buena.

Baliza LED #2 – MEJORAS

Mejoras en la Baliza LED, para poder utilizarla como linterna. Con el fin de darle un uso más habitual a la baliza, porque ahora sólo sería útil en casos excepcionales, le vamos a añadir la función de ponerla en modo linterna. Para realizar este cambio de funcionamiento, sólo necesitaremos añadir un ‘jumper’ adicional y disponer de un segundo tapón con el frontal transparente.

Video anterior: Baliza LED para el Automóvil-Moto 

Modo linterna

Modo linterna

Como podemos ver en el esquema, si en el transistor de la derecha del multivibrador ponemos su base a ‘masa’, el circuito dejará de oscilar y quedará encendido el diodo LED de forma permanente. Si comprobamos las tensiones, vemos que los condensadores electrolíticos están polarizados correctamente y no existe ningún inconveniente para realizar esta maniobra.

Baliza LED #2 - Esquema
Baliza LED #2 – Esquema

Como podemos ver en el nuevo esquema, sólo tenemos que añadir un par de hilos más al circuito anterior y sustituir el selector de conexiones de 3 terminales por otro de 5 (jumper).

Baliza LED: Posición de los puentes
Baliza LED: Posición de los puentes

La conexión central de los puentes la podemos utilizar como ‘comodín’ para poder sujetar los dos puentes en el interior, y así evitar que se pierdan. Si posicionamos los puentes en modo ‘linterna’, teniendo en cuenta que la linterna tiene imanes en su interior, podremos sujetarla fácilmente en caso de tener que manipular dentro del vano motor cuando sea de noche… sólo tenemos que apoyar la base de la linterna en cualquier objeto metálico (magnético).

Baliza LED para el Automóvil-Moto

Construcción de una pequeña baliza luminosa alimentada con su propia batería, recargable en el coche, de gran potencia luminosa y para el uso en intemperie. Al ser de tamaño reducido, también podría utilizarse en bicicletas o llevándola en la mano, cuando se transita en las proximidades de una carretera o camino de tierra.

Hace un año, mostraba en un video cómo hacer un flash nocturno con diodos led: Construcción de un Flash nocturno (LED)

En aquella ocasión el circuito consistía en un anillo de 8 diodos LED que se alimentaba con un cargador de tipo USB, incluido dentro del propio flash. Aunque la finalidad de este proyecto es casi la misma, en este caso vamos a hacer un circuito con un solo diodo LED de alta potencia y alimentado con baterías. La necesidad de disponer de algo así me vino hace unos días, cuando tuve un problema con el claxon del coche y tuve que desconectar la batería mientras buscaba una solución. Este problema me surgió en medio de la carretera, en un día lluvioso y sin apenas luz. En aquella ocasión, lo único que tenía a mano para señalizar el coche fue una linterna con las pilas semi-agotadas.

Barras luminosasLa idea es la de construir una pequeña baliza luminosa alimentada con su propia batería, recargable en el coche, de gran potencia luminosa y al ser posible para el uso en intemperie (que no le afecte el agua de lluvia), algo muy parecido a las barras luminosas que se utilizan en los aeropuertos, para hacer señales a los pilotos cuando tienen que hacer maniobras.

Aunque el tamaño de la baliza no debería ser muy importante, pensando en la posibilidad de poder utilizarla en bicicletas o motos… incluso para peatones cuando se circula en las proximidades de una carretera, su tamaño es reducido.

Baliza LED para el automóvil
Baliza LED para el automóvil

A continuación se muestra el esquema de montaje de esta pequeña baliza luminosa.

Baliza LED - Esquema
Baliza LED – Esquema

Creo que el diseño de este circuito es sencillo de entender, y lo podría construir cualquier aficionado a la electrónica.

Si quieres dar una segunda utilidad a esta baliza, para poder utilizarla como una linterna: Baliza LED #2 – MEJORAS