FLUX para electrónica

Prueba comparativa de 4 tipos de FLUX en gel, haciendo soldaduras en un circuito impreso. El FLUX en gel evita la formación de carbonilla durante las soldaduras, permitiendo mantener durante más tiempo el soldador y evitando que se produzcan cortocircuitos entre soldaduras muy próximas. El FLUX en gel es casi imprescindible, para soldar circuitos integrados con encapsulado de tipo SMD.

Soldar con Flux

Temperatura de fusión del estaño

Para soldar componentes con encapsulado SMD, es muy importante utilizar un estaño de buena calidad y baja temperatura de fusión. Un exceso de temperatura en el soldador podría dañar los componentes o desprender las pistas del circuito impreso.

Temperatura de fusión del estaño

El estaño para SMD y su temperatura de fusión

Soldar con Flux

El Flux hace la función de decapante en el metal, facilitando el reparto del estaño y la formación de carbonilla. Existe una gran variedad de Flux, pueden encontrarse en forma líquida, en gel o crema. El Flux líquido cumple perfectamente con la función de decapante, se evapora rápidamente y no suele dejar residuos. El flux líquido es muy útil para facilitar el estañado de cables y soldar componentes en un circuito impreso. El Flux en gel facilita mucho las soldaduras de los componentes SMD, recubre la soldadura cuando se funde el estaño, evitando la formación de carbonilla y cortocircuitos cuando se sueldan circuitos integrados con terminales muy próximos. A continuación puedes ver la diferencia de sumergir un cable en estaño líquido sin utilizar flux, o impregnar el cable con flux antes de sumergirlo en el estaño.

Estañado sin Flux

Estañado con Flux

Comparativa con 4 tipos de Flux

Como existen muchos tipos de Flux en gel, decidí hacer una prueba comparativa utilizando 4 compuestos diferentes. Para la muestra he elegido tres compuestos muy utilizados en electrónica y otro empleado en fontanería.

Tipos de Flux

Las pruebas las he realizado con un soldador de punta gorda a 250 ºC. La prueba consiste en realizar una soldadura en un circuito impreso virgen, manteniendo el soldador durante el mismo tiempo en un punto (sin moverlo), aplicando la misma cantidad de estaño y utilizando un Flux de cada tipo.

Resultados

Conductividad del Flux

FP3030: es un flux de fontanería muy válido para estañar cables, pero no es adecuado para su uso en circuitos impresos. Decapante muy rápido que se evapora con rapidez, dejando al descubierto la soldadura… y además no es aislante (10··15 KOhm).

MC-559-ASM: flux adecuado para soldar componentes de tipo SMD, siempre que se retiren los restos de flux después de la soldadura. Este flux no es completamente aislante, antes de calentarlo se puede medir una resistencia de 12··16 MOhm.

M-223: flux adecuado para soldar componentes de tipo SMD, es un poco más denso que el MC 559, pero su decapante es un poco más lento. A cambio, es aislante y podría ser más apropiado para soldar componentes con encapsulado BGA.

Future HF Rework Jelly: flux adecuado para soldar componentes de tipo SMD, con densidad similar al MC-559 y además es aislante… sería el más adecuado para soldar componentes con encapsulado BGA.

 

 

Microscopio para electrónica, con GearBest

Características y pruebas de funcionamiento del Microscopio digital LED de alta definición 600X / 3.6MP de GearBest. Consejos a la hora de soldar un microprocesador SMD.

Soldar con el microscopio

Evolución de los dispositivos electrónicos

La electrónica ha evolucionado mucho en los últimos años, consiguiendo reducir al máximo el tamaño de los dispositivos, aumentando sus prestaciones y reduciendo sus costes de fabricación. La mayor parte de los dispositivos electrónicos son montados por máquinas, y con esto se ha conseguido aumentar la productividad y abaratar los costes de fabricación. Al mismo ritmo se ha tenido que ir adaptando todo el sector de mantenimiento y reparación de equipos electrónicos. Esto ha provocado que muchas veces salga más rentable sustituir un módulo completo que reparar el componente averiado. Ahora ya no se profundiza tanto como antes en las reparaciones, no es habitual cambiar componentes… se cambian módulos, o directamente se deshecha por completo el dispositivo averiado y se deja en el punto limpio.

Revisión final de las soldaduras

Microscopio para electrónica

Si eres aficionado a la electrónica o trabajas profesionalmente en este sector, más de una vez habrás tenido que utilizar una lupa para ver la referencia de algún componente electrónico, o revisar las pistas y soldaduras de un PCB. También te habrás encontrado en la situación de que a pesar de que sabías el componente que estaba averiado, no disponías de los medios necesarios para sustituirlo. Las herramientas que se necesitan ahora son más pequeñas que antes: pinzas, un soldador especial para SMD, soldador de aire, etc. Pero lo más importante cuando trabajas es ver lo que haces, y la agudeza visual se pierde rápidamente. Las lupas y gafas de aumento ayudan mucho en las reparaciones, pero ahora no es tan caro como antes disponer de un microscopio que te permita trabajar cómodamente, y soldar con precisión  cualquier componente por pequeño que sea.

Microscopio digital LED de alta definición 600X / 3.6MP

Este microscopio lo puedes conseguir por menos de 60€, su precio es muy ajustado para las prestaciones que tiene:

  • Cámara HD 3,6 MP, integrada en el monitor
  • Display HD OLED de 4,3″Cámara del microscopio
  • Luz LED regulable (8 LED de alta luminosidad)
  • Aumento 600X (5 cms de distanca)Máximo aumento del microscopio
  • Soporte metálico de calidad, con ajuste de altura
  • Distancia máxima 150 mm (desplazando el microscopio del soporte hacia arriba)Altura máxima del microscopio
  • Baterías Li-Ion integradas en el monitor (6 horas de autonomía)
  • Cargador USB de 5V/2AAjuste de luz, lector SD y toma de 5V
  • Lector de tarjetas Micro SD para grabar video y fotografías (64 GB máx.)
  • Detección de movimiento en el video, para grabar en modo automático
  • Apagado automático y apagado del monitor (muy útil cuando se utiliza con baterías)Configuración del microscopio
  • Interface de configuración  multilingüe

Microscopio digital LED de alta definición 600X / 3.6MP
https://goo.gl/u1YXePLogo GearBest

Accesorios y filamentos 3D:
https://goo.gl/9KtaaJ
Cupón de descuento: CA%PS704
8% para compras superiores a 10$

Nuevos gadgets:
https://goo.gl/5iCiVL

Web de Gearbest en español:
https://goo.gl/knpkvD

TV LED BLUE:SENS, nuevo y no funciona!

Reparación de un televisor LED, marca BLUE:SENS modelo H325.26P. Este televisor lo regalaban algunos bancos (creo que en el año 2012) cuando contratabas un plan de pensiones. Este televisor lo ha tenido su dueño, dentro la caja y sin abrir, desde que se lo regalaron. Cuando ha intentado ponerlo en marcha comprueba que no funciona, y además tampoco tiene la factura (era un regalo). De todas formas, aunque tuviera la factura con la fecha de entrega como justificante, ya habría caducado el periodo de garantía.

Síntomas que presenta el TV

Al accionar el interruptor de encendido del televisor, se enciende el LED indicador de estado en color rojo y fluctuando el brillo. Se comprueba que no obedecen las órdenes del mando a distancia ni a las del teclado de control del propio televisor (lateral izquierdo).

Proceso a seguir para buscar la avería

En estos casos, lo primero que habría que hacer es comprobar el correcto funcionamiento de la fuente de alimentación. Aunque sería raro encontrar una avería al tratarse de un televisor nuevo, podría hacer un falso contacto alguno de sus conectores internos, por corrosión al estar almacenado y sin funcionar durante años. Este televisor tiene en su interior dos tarjetas (PCB) de gran tamaño, una es la fuente de alimentación y la otra la tarjeta principal (main), controladora de todo el televisor. A pesar de que no pude encontrar el esquema, es fácil comprobar todas las tensiones de la fuente de alimentación, ya que todos sus valores están rotulados en los conectores de salida.

PCB's del TV

Al comprobar que todas las tensiones estaban dentro de su margen, lo lógico sería pensar que el fichero de arranque del televisor, memoria flash, se hubiera corrompido. En los televisores modernos, la actualización del firmware se puede hacer a través de un puerto USB del propio televisor, insertando una memoria con su fichero correspondiente. El problema es que para hacer esta operación es necesario que el televisor funcione, y como no arranca, la única solución es localizar dónde está el chip que almacena esta información, desoldarlo del circuito impreso y programarlo. Como es lógico, primero habría que comprobar que el chip no esté dañado y se pueda grabar. En caso contrario, habría que comprar uno chip nuevo y programarlo.

Localizar la memoria Flash

Buscando las referencias de los circuitos integrados por Internet, comprobé que el chip SMD de 8 pines 25Q32B  era una memoria Flash SPI de 32 M-bit.

Memoria Flash SPI

Búsqueda y descarga del firmware

Lo ideal sería que el fabricante de este televisor tuviera disponible en su WEB todos los ficheros y actualizaciones (firmware) de sus productos. Pero como este no es el caso, la única solución que tenía es buscarlo por Internet. Esta solución debería tomarse como la última, porque el fichero que se instale debe ser el adecuado para cada fabricante y modelo de televisor. No sirve con fijarse en la referencia de la tarjeta controladora donde va instalada la memoria flash, porque el mando a distancia podría ser diferente y no funcionar.

Programar la memoria Flash

Después de buscar durante horas por Internet, encontré un link de descarga en un foro ruso. El problema es que a pesar de que la referencia del PCB era la misma (T.MSD309.10B 10424), el fichero pertenecía a otro fabricante de televisores. Buscando un poco más en ese mismo foro, conseguí llegar a través de otro link a un fichero que tenía como nombre la misma referencia del PCB, junto con el nombre de fabricante y modelo del televisor que estaba buscando: H325b26a_T.MSD309.10B_10424_(Original).rar. Lo único que cambiaba es la letra final (H325.26P >>> H325.26a); pero al tratarse del mismo fabricante, lo normal es que tanto el televisor como su mando a distancia funcionaran sin problemas.

Soldar el chip SMD

Después de programar el chip, lo único que tuve que hacer es soldarlo en el PCB… y cruzar los dedos para que funcionara, porque la procedencia del firmware que descargué era muy poco fiable.

Prueba de encendido

Por suerte, el fichero H325b26a_T.MSD309.10B_10424_(Original).rar es compatible con el televisor BLUE:SENS H325.26P, y funciona tanto el televisor como su mando a distancia. Al cambiar la letra final del modelo del televisor (P/a), es posible que existan algunas diferencias en los menús de configuración, pero esto sería un problema menor. A continuación te dejo el link de descarga de este firmware, por si has llegado aquí con el mismo problema y estás buscando una solución:

Descargar: H325b26a T.MSD309.10B 10424 (Original).rar

 

 

 

Luz de dirección para bicicletas (v2)

Diseño y montaje de una barra LED, para indicar los cambios de dirección y disponer de iluminación trasera en bicicletas y patinetes. Todo el conjunto está montado en cajas hechas a medida, fabricadas en PLA con la ayuda de una impresora y un bolígrafo 3D.

Luz de dirección para bicicletas y patinetes

Barra LED en la bicicleta

Este montaje es una mejora del circuito que mostré anteriormente, basado en el microprocesador ATtiny.

Barra LED de señalización para bicicletas, con ATtiny

En este caso, se amplía el número de puntos LED desde 5 a 9, y se habilita la posibilidad de hacer funcionar las luces de dirección cuando está conectada la luz trasera. En el circuito anterior, debido al número tan limitado de conexiones que dispone el ATtiny  (8 pines), el circuito seleccionaba el modo de funcionamiento al arrancar, y era necesario desconectar la alimentación para cambiar su modo de funcionamiento.

Barra LED para bicicletas
Barra LED para bicicletas

Al utilizar el microprocesador ATmega 328P (28 pines), es posible dedicar 2 pines como entradas y detectar su modo de funcionamiento de forma permanente –sin tener que apagar y encender

Esquema: Barra LED (v2)

Como se puede ver en el esquema, el circuito está alimentado directamente desde la batería de 3,7V. Por este motivo es muy importante que elijamos los LED de alta luminosidad, pero siempre que su umbral de encendido sea bajo (menor de 3V).

Corriente LED

Firmware

El código de programación de esta barra LED,  se puede descargar desde el siguiente enlace: Luz trasera para bicicletas (v2)

Construcción y mecanizado

Como este montaje necesita muy pocos componentes electrónicos, he utilizado un PCB de tipo universal para montar el microprocesador, la batería y el módulo de carga TP4056. Los 9 LED los he montado directamente en una caja hecha a medida, fabricada en PLA con una impresora 3D.  El mecanizado y anclaje de todo el conjunto también está hecho con PLA.

Barra LED: Piezas 3D

Descargar ficheros .stl

LED steering light for bicycles and skateboards

Para la fijación de los LED con el frontal de la caja, he utilizado un bolígrafo 3D. Este bolígrafo 3D  me lo ha enviado GearBest para que muestre su funcionamiento.

Bolígrafo 3D Sunlu SL - 300

El bolígrafo 3D Sunlu SL – 300 utiliza el mismo tipo de filamento que las impresoras 3D, permitiendo así realizar reparaciones y mecanizados en las piezas utilizando el mismo material y color con el que están hechas.

Logo GearBest

A pesar de que el bolígrafo 3D Sunlu SL – 300 tiene un precio muy ajustado, GearBest me ha facilitado un código de descuento para poder conseguirlo todavía más barato. A continuación os dejo algunos link de acceso que me han parecido interesantes, y los códigos de descuento que me han facilitado.

Bolígrafo 3D Sunlu SL – 300
https://goo.gl/sNC6qQ
Cupón de descuento: RPM3DPEN

Accesorios y filamentos 3D
https://goo.gl/9KtaaJ
Cupón de descuento: CA%PS704
8% para compras superiores a 10$

Nuevos gadgets
https://goo.gl/5iCiVL

Web de GearBest en español
https://goo.gl/knpkvD

Barra LED de señalización para bicicletas, con ATtiny

Construcción de una barra LED, para la señalización trasera en bicicletas, patinetes, etc. El circuito es muy simple y tiene muy pocos componentes electrónicos. Esta barra LED está construida con 5 LED de alta luminosidad, y está controlada con el pequeño procesador ATtiny (ATtiny 25/45/85 de 8 pines). La barra LED está alimentada con una batería de 3,7v (Li-Ion), pero también podría alimentarse con 2/3 pilas en serie de 1,5V.

Iluminación trasera en bicicletas

Luz trasera para bicicletasPor seguridad, cuando se circula con una bicicleta en zonas de baja luminosidad, es muy importante disponer de una buena iluminación trasera.  Por otra parte, es imprescindible señalizar cualquier cambio de dirección cuando se circula con tráfico. Como el ancho de una bicicleta es muy reducido, sólo se necesita un punto de luz, y es muy fácil integrar las luces de cambio de dirección construyendo una barra LED.

Luz intermitente secuencial

 

Al montar las luces de cambio de dirección junto con la iluminación trasera, es aconsejable que la identificación del sentido de giro sea clara, sin crear confusión por estar integradas en una sola barra. La mejor manera de hacerlo es creando una animación con las luces, igual que lo hacen algunos modelos de coche de alta gama.

Barra LED para señalización de bicicletas

El circuito de control está basado en el pequeño micro controlador ATtiny. Debido al número limitado de pines de conexión (8 pines), el modo de funcionamiento se determina en la fase de arranque. Así es necesario desconectar la alimentación del circuito cada vez que necesitemos cambiar su modo de funcionamiento: Luz trasera / Luz de dirección. Utilizando otro modelo de micro controlador con más pines, como el ATmega, se podrían integrar ambas funciones y ampliar el número de LED en la barra.

Programar el ATtiny

La programación del ATtiny se puede hacer con Arduino, mediante el interface ISP.

Programar ATtiny

Shield programador ATmega/ATtiny (ARDUINO)

Firmware

El código de programación de esta barra LED,  se puede descargar desde el siguiente enlace: Luz trasera para bicicletas

Shield programador ATmega/ATtiny (ARDUINO)

Diseño de un Shield programador ISP para la tarjeta de desarrollo Arduino UNO. Este programador es compatible con los micro-controladores: ATmega 48/88/168/328P de 28 pines, y con los ATtiny 25/45/85 de 8 pines.

Shield programador ISP

Este montaje es una modificación del programador ISP para micro-controladores ATmega, que mostraba aquí:

✅ ARDUINO a fondo… no te lo pierdas!!!

KT002 Arduino UNO R3 Starter Kit 

Programador ISP para ATmega/ATtiny

Haciendo una pequeña modificación sobre el programador ISP de ATmega, podemos hacer que sea compatible con los micro-controladores de 8 pines ATtiny.

Pinout ATtiny

Si observamos la distribución de los pines de los micro-controladores ATtiny, podemos comprobar que si los insertáramos en el zócalo del programador del ATmega (28 pines), posicionando el pin 1 del ATtiny en el pin 9 del programador ISP, apenas tendríamos que realizar 2 cambios en el circuito para poder programarlos.

Montaje: Programador ISP

  1. El pin 12 del programador ISP lo podríamos conectar directamente a la línea GND, necesaria para alimentar el ATtiny cuando lo estamos programando… y la conexión del pin 12 a GND del ATmega no afecta a su programación.
  2. En el pin 9 del programador ISP tendremos que poner un pequeño conmutador, mediante la posición de un puente, para conectar el cristal de cuarzo cuando tengamos que programar un ATmega. Cuando tengamos que programar un ATtiny, el pin 9 del zócalo habrá que unirlo con el pin 1 (cambiando la posición del puente)… ya que el pin 9 del zócalo se corresponde con el pin 1 del ATtiny = Reset (ver el esquema anterior)

Shield para Arduino UNO

Con la construcción de un PCB hecho a medida de la tarjeta de desarrollo  Arduino UNO, se consigue hacer un programador mucho más compacto y versátil.

Esquema + PCB: Programador ISP

Así no sería necesario realizar la conexión con puentes entre ambas placas, cada vez que quisiéramos utilizar nuestro Arduino UNO como programador.

¿Dónde fabricar el PCB?

Actualmente hay muchas empresas que se dedican a fabricar circuitos impresos, pero no en todas podemos conseguir pequeñas tiradas a buen precio. Por suerte, ahora disponemos de Internet y es mucho más fácil que antes. Podemos buscar empresas en cualquier parte del mundo, y es más fácil encontrar un fabricante que haga nuestros prototipos (PCB) a buen precio. Una de las empresas más grandes del sector es PCBWay, y es la empresa PCBWay es un fabricante de circuitos impresos en China. Puedes encargar tus diseños – PCB Low Cost – que yo he elegido en esta ocasión.

Logo: PCBWay

https://www.pcbway.com/

Esta empresa, aparte de ser grande y tener muy buenos precios, dispone de un apartado en su Web para alojar los diseños y poder compartirlos.

Proyectos compartidos en PCBWay

https://www.pcbway.com/project/shareproject/

Link of my shared project: 

PCB from PCBWay

Mini cargador de baterías, regulable de 5A

Construcción de un pequeño cargador de baterías, regulable en tensión y corriente, aprovechando una fuente de alimentación reciclada. El módulo de ajuste y control de carga, está basado en el circuito integrado XL4015 (Step-Down Converter), que permite funcionar con unos valores máximos de 36V y 5A. El conjunto lo he montado en una caja hecha a medida, fabricada con la impresora 3D en PLA.

Gearbest JGAURORA A5 Updated Large Printing Size 3D PrinterJGAURORA A5 Impresora 3D de gran tamaño de impresión

Regulador de tensión XL4015

El circuito integrado XL4015, es un regulador de tensión de bajas pérdidas, que permite funcionar con una tensión y corriente máxima de 36V/5A. La regulación de tensión se realiza modificando el ancho de impulso (PWM) de una señal de alta frecuencia, consiguiendo así un rendimiento muy alto  (>80%).

Chip XL4015

El XL4015 regula la tensión de salida mediante la comparación de una muestra de la tensión de salida y su referencia interna de 1,25V.

Step-Down Cnverter XL4015

Modificando los valores del divisor de tensión a partir de la tensión de salida (ver la fórmula en el esquema), es posible obtener una tensión estabilizada dentro de un amplio margen de tensiones. La tensión máxima de salida será la de entrada, menos algunas décimas de voltio, y la tensión mínima será la tensión de comparación del XL4015 (1,25V).

Cargador de baterías con el XL4015

A partir del circuito integrado XL4015 se puede construir un circuito de control para cargar cualquier tipo de batería, porque tiene un amplio margen de tensión-corriente, y ambos valores son regulables.

Módulo cargador de baterías XL4015

Actualmente se puede conseguir este módulo de control de carga a bajo precio, montado en una pequeña placa de circuito impreso.

Módulo cargador de baterías, con XL4015

Analizando el esquema de este módulo de carga con el XL4015, podemos ver lo fácil y barato que resulta construir un cargador de baterías ajustable en tensión y corriente, Sólo tendríamos que sustituir las 2 resistencias ajustable por 2 potenciómetros, y montarlos en el frontal de una caja junto con sus 3 indicadores LED.

Este mismo circuito también se puede comprar con el XL4005 en lugar del XL4015. El módulo con el XL4005 sería totalmente compatible para realizar este montaje, lo único que cambia es que la tensión de comparación del XL4005 es de 0,8V en lugar de 1,25V. Así la tensión mínima que obtendríamos con el XL4005 será 0,8V.

Cargador de baterías regulable

Para fabricar este cargador de baterías, nos haría falta una fuente de alimentación y un medidor de tensión/corriente.  Yo he utilizado una fuente de alimentación de 19,5VDC, recuperada de una impresora HP Deskject 940C. El medidor de tensión/corriente que he montado, es un analizador de energía eléctrica muy completo.

Medidor de energía eléctrica

 

Este analizador de energía eléctrica es muy adecuado para este montaje, porque muestra datos muy útiles para conocer el estado de carga de la batería: su capacidad, consumo, potencia, tiempo de carga, etc.

Caja a medida con PLA

A pesar de que existen muchos modelos y tamaños de cajas donde podríamos montar este cargador de baterías, he preferido hacer una caja a medida con la impresora 3D.

Caja con PLA

Descargar fichero .stl

Tiny battery charger, adjustable 5A

Hacer la caja de un cargador de baterías con PLA, quizás no sea lo más adecuado para obtener un acabado profesional y robusto. Pero como este cargador lo voy a utilizar de forma ocasional y no me importa mucho su aspecto, el PLA es una buena solución.

✅ OLED: SSD1306 ‘Fake in China’ & Sensor de proximidad para invidentes

Sensor de proximidad para invidentes

Construcción de un sensor de proximidad con Arduino, mostrando la información de la distancia en un display gráfico OLED de 0,96″. El display OLED que he utilizado es el SSD1306 y debería tener una resolución de 128×64 pixel, pero como en China ahorran por todas partes, el display muestra los gráficos con una resolución de 128×32… ¿50% de ahorro/estafa?.
Este sensor de proximidad incluye un avisador acústico, y podría ser muy útil como complemento del bastón guía para personas invidentes. En este caso no sería imprescindible instalar el display, y la autonomía de la batería sería mayor.

Medir la distancia por ultrasonidos

Utilizar un sensor por ultrasonidos para medir distancias con precisión no es lo más adecuado, pero puede ser de gran ayuda si se utiliza para detectar obstáculos cercanos. Este sensor podría utilizarse como ayuda al aparcamiento de un coche, aunque hay otros sensores más adecuados (capacitivos, ópticos), porque las cápsulas piezoeléctricas no están pensadas para trabajar en la intemperie. El uso más adecuado para este sensor sería montarlo en un equipo portátil, y utilizarlo como avisador de obstáculos cercanos para personas invidentes (podría utilizarse como complemento del bastón guía).

Sensor HC-SR04

El sensor de ultrasonidos HC-SR04 se puede comprar por menos de 1 dólar en Internet, y tiene un alcance aproximado de 4 metros y medio.

Sensor HC-SR04

Para ver la medida de la distancia he utilizado un diminuto display gráfico de 128×64 pixel, el modelo SSD1306, con  tecnología OLED.

Oled: SSD1306

Este circuito incluye un zumbador piezoeléctrico para realizar avisos acústicos de los objetos más próximos (imprescindible para invidentes).

Esquema: Detector de proximidad

El zumbador empezará a sonar de forma intermitente cuando haya objetos a partir de una distancia de 60 cms., y se irá acelerando la cadencia a medida que se acorta la distancia con el obstáculo. Este sonido intermitente se convertirá en continuo, cuando la distancia del obstáculo esté a 5 cms. o menos del sensor.

Resolución del display SSD1306

El display OLED SSD1306 que he utilizado en este montaje lo compré por Internet, y me ha llegado con ‘sorpresa’. El display incorpora un controlador gráfico de 128×64 pixel de resolución, el cuál controla el encendido de un display OLED de 128×32 pixel. Esto supone un 50% de pérdida de resolución, o visto de otra forma, es necesario enviar al display el doble de la información que va a presentar. Cuando el display muestra textos o números utilizando su font de caracteres, sólo se puede apreciar el problema cuando el tamaño de letra es 1. El problema es que si se carga un gráfico en memoria, se pierde un 50% de su resolución, y se pierde la fidelidad del gráfico por la pérdida de puntos. Observa en la imagen siguiente, que la altura en pixel de los caracteres es la mitad de la que debería ser, teniendo en cuenta que el direccionamiento del cursor si es el correcto.

Resolución SSD1306

 

El proceso que he seguido para cargar el gráfico, ha sido convertir la resolución del archivo original de 128×64 pixel a 128×32, luego corregir con un editor de dibujo los detalles más visibles (Paint o similar), y volver a redimensionar el gráfico a 128×64 pixel para poder utilizarlo en este display sin perder fidelidad.

Si utilizas un display con una resolución correcta (128×64), este último paso no lo tienes que hacer.

Programar gráficos en el display

Si quieres generar tu propio gráfico para que aparezca en el display, puedes sustituir el código del gráfico que yo he puesto por el tuyo. Para crear este código a partir de una imagen BMP,  la forma mas sencilla de hacerlo es mediante el software: LCD Assistant

Software: LCD Assistant

Firmware

El código de programación de este sensor de proximidad,  se puede descargar desde el siguiente enlace: Sensor de proximidad

✅ Fuses Arduino & Dado electrónico

Construcción de un dado electrónico con Arduino, modificando la configuración (fuses) para que funcione con su oscilador interno de 8 MHz. El dado electrónico se controla con un ATmega8A, alimentado con una batería de 3,7V y gobernado con el pulsador táctil capacitivo TTP223.

Cargador USB con sensor táctil

Programar con ARDUINO

Arduino es una plataforma de desarrollo con código abierto, y dispone de librerías para controlar infinidad de sensores y dispositivos sin apenas tener que escribir código. Esto facilita a cualquier aficionado a la electrónica, para que pueda realizar diseños a medida sin apenas tener conocimientos de programación.  Como consecuencia, Arduino ha tomado una gran popularidad, y actualmente se puede encontrar código abierto para realizar cualquier proyecto que se nos ocurra. A pesar de esto, Arduino es mucho más potente y versátil del uso que normalmente se le está dando, porque la potencia y versatilidad de los procesadores ATmega es muy superior al uso que normalmente se le está dando.

Esquema: Arduino UNO (v3)
Esquema: Arduino UNO (v3)

El IDE de Arduino facilita mucho la programación de un microprocesador ATmega, porque sólo es necesario seleccionar la placa de desarrollo con la que se está trabajando (UNO, Mega, Leonardo) y el IDE se encarga de grabar todos los parámetros de configuración y adaptar el código escrito cuando se realiza la compilación y se programa. En la mayoría de los casos esto es suficiente, pero es posible avanzar un poco más y sacar más provecho en los montajes, reduciendo el tamaño y costo de los componentes. El primer paso sería montar el micro controlador, una vez programado, en un PCB aparte y montar únicamente los periféricos que fueran necesarios. Pero si queremos realizar un proyecto de tipo profesional y venderlo, tendremos que modificar los parámetros de configuración para evitar que alguien pueda leer el código y realizar copias. La manera más fácil de cambiar la configuración de un ATmega, es utilizar AVRDUDE y ejecutar las órdenes a través de la ventana de comandos del PC.

✅ ARDUINO a fondo… no te lo pierdas!!!

Dado electrónico con sensor táctil

Como la mejor forma de aprender algo es hacerlo, he contruido un dado electrónico con un ATmega8A, funcionando con su oscilador interno de 8MHz.

Dado con sensor táctil

Para programar el ATmega8A he utilizado una placa de desarrollo Arduino UNO, haciéndola funcionar como programador ISP. Como el código del programa está escrito en el IDE de Arduino, la compilación la hará para funcionar con un oscilador a cristal de 16 MHz. Lo primero que hay que tener en cuenta para que todo funcione correctamente, es reducir los retardos que hayamos definido en el programa a la mitad, porque cuando cambiemos la configuración del microprocesador para que funcione a 8 MHz, los valores de retardo que hayamos escrito durarán el doble.

Programando FUSES de ATmega8A

Una vez programado el microprocesador, sin desmontarlo del zócalo de programación, abriremos la ventana de comandos de Windows en el PC, y modificaremos la configuración (fuses) del ATmega8A / ATmega328P ejecutando AVRDUDE. Los argumentos que tenemos que añadir al ejecutar AVRDUDE, dependerán del tipo de microprocesador ATmega que estemos programando, y el puerto COM con el que se haya conectado el PC con Arduino.

Ejemplo: ATmega8A en COM3

avrdude -c arduino -p m8 -P COM3 -b 19200 -U lfuse:w:0xe4:m -U hfuse:w:0xd9:m

Ejemplo: ATmega328P en COM3

avrdude -c arduino -p m328p -P COM3 -b 19200 -U lfuse:w:0xe2:m -U hfuse:w:0xd9:m

Firmware

El código de programación de este dado electrónico,  se puede descargar desde el siguiente enlace: Dado electrónico con sensor táctil

 

✅ Programar sistema horario 12/24 (assembler)

Programación de un reloj LED, para que pueda mostrar la hora en cualquier formato (12h-24h). Esta modificación se realiza en un ‘Reloj-Fecha-Cronómetro-Temperatura‘ con 4 dígitos de 7 segmentos LED, de control serie. El controlador de este reloj está construido a partir del microprocesaror AT89S52, con encapsulado de 44 pines (SMD).

Sistema horario

El sistema horario de 24 horas es una convención de medición del tiempo, en la que el día se contabiliza de medianoche a medianoche. Con formato de 24 horas, las horas se empiezan a contar a partir de la medianoche, y se presenta con los números comprendidos entre el 0 y 23.

Sistema horario de 12/24 horas

El sistema de 24 horas es el más utilizado en la actualidad, y el sistema de 12 horas se utiliza principalmente para la comunicación oral, porque es más intuitivo. A pesar  de que el sistema de 24 horas es el más usado en comunicaciones escritas, en algunos países lo denominan como horario militar o astronómico, y prefieren realizar la presentación de la hora utilizando el sistema tradicional de 12 horas.

Esta actualización se realiza en el Reloj SMD que mostré anteriormente:

Construye un Reloj SMD

Planteamiento al programar el reloj

Cuando se programa el firmware de un reloj, es importante saber si el display de presentación es multiplexado o no, así como el valor de tiempo mínimo a mostrar.

  • Cuando el display es multiplexado, el microprocesador tiene que enviar la información con una cadencia mucho más rápida,  siempre superior a la persistencia del ojo humano. Si se quiere evitar el efecto de parpadeo, la frecuencia de refresco del display debería ser como mínimo de 50 Hz.
  • La cadencia de lectura de la información horaria debe ser igual o superior al valor del tiempo mínimo que se quiera mostrar en el display. Si el reloj muestra décimas de segundos, el microprocesador tendría que leer la información del chip RTC con una cadencia mínima de 1/10 segundos, cada 100 mSeg.

Funcionamiento del reloj

A pesar de que el Reloj SMD no es multiplexado, porque la presentación se realiza enviando los datos en serie (registro de desplazamiento), lo he programado con una frecuencia de refresco muy alta.

CPU: Reloj SERIE

Display: Reloj SERIE

Esto lo hice así, porque utilicé la estructura de programa del reloj de esfera rotante FC-209, el cuál si era multiplexado.

Reloj LED con 2 alarmas

Antes de presentar la hora en el display por primera vez, el microprocesador tiene que leer la información del chip RTC (DS1302). Y si el reloj muestra segundos, la lectura se debería hacer que como mínimo una vez por segundo.

Frecuencia de refresco del display

Aprovechando las prestaciones y velocidad del microprocesador que he utilizado, decidí insertar la rutina de lectura del chip DS1302 (RTC) dentro de la rutina de refresco del display. Como se puede ver en la gráfica anterior,  la lectura se está haciendo con una cadencia de 926 veces por segundo.

Actualización del firmware

La nueva actualización del Reloj SMD, la puedes descargar de forma gratuita desde el siguiente enlace:

J_RPM_v2_RELOJ_SERIE.HEX

Con esta actualización es posible configurar el sistema de presentación horaria en el display, pudiendo elegir el sistema de 12/24 horas.  Para incorporar esta función, he utilizado el método más sencillo de hacerlo: Internamente todo funciona en modo 24 horas, y dependiendo del modo en el que se deba mostrar la hora, el programa pasará o no a través de las rutinas de conversión a formato de 12 horas. Y esto lo hará sólo  antes de enviar la hora al display, porque los menús de configuración siempre mostrarán la hora utilizando el formato de 24 horas. Así no será necesario modificar los menús de configuración, ni cambiar el sistema horario del chip DS1302 (RTC). A continuación os muestro el código que he añadido en esta actualización.

Rutinas de programación en assembler

Funcionamiento de la subrutina: ValAB

Funcionamiento de la rutina Val_AB

Menús de configuración

Los menús de configuración de esta versión (v2), no cambian con respecto a la  versión anterior (v1). En esta versión aparece un nuevo menú, y es para configurar el sistema de presentación horaria (12/24) del reloj.

Menús de configuración del reloj