Reloj Pac-Man con ESP32 & UTF-8

Actualización del firmware (v1.44) para el Reloj-Texto construido con 4 matrices LED, y controlado con el microprocesador ESP32. Con esta actualización, el display podrá mostrar los caracteres latinos de uso más frecuente: áéíóúü ÁÉÍÓÚÜ cÇ ñÑ. También se incluyen los avisos con voz sintetizada, y efectos gráficos Pac-Man.

Reloj-Texto con dos alarmas y 2 husos horarios

UNICODE & UTF-8

La conexión entre diferentes redes de ordenadores provocó la necesidad de crear un estándar que contemplara el juego de caracteres gráficos de cualquier lengua, incluyendo ideogramas, caracteres árabes, chinos, etc.

Caracteres UNICODE

El año 1991 se anunció públicamente la creación de Internet, y ese mismo año el Consorcio Unicode y la ISO desarrollaron ambos un estándar para codificar los caracteres:  Unicode – ISO / IEC 10646. Ambos estándares se pueden considerar equivalentes, si tenemos en cuenta que el repertorio, los nombres de caracteres y los puntos de código del estándar ‘Unicode Versión 2.0’, coinciden exactamente con los de ISO / IEC 10646-1: que fue publicado en 1993.

Actualmente, la codificación dominante es UTF-8, que es una codificación de ancho variable diseñada para la compatibilidad con versiones anteriores de ASCII, y para evitar las complicaciones con las marcas de orden de bytes que existen con UTF-16 y UTF-32 . Además, el 93% de todas las páginas web están codificadas en UTF-8 y el Grupo de trabajo de ingeniería de Internet (IETF) requiere que todos los protocolos de Internet identifiquen las codificación UTF-8. También el Consorcio de correo de Internet (IMC), recomienda que todos los programas de correo electrónico puedan mostrar y crear correo utilizando UTF-8.

Codificación UTF-8

Los primeros 127 caracteres de cualquier tabla de caracteres de procedencia anglosajona o latina, son comunes y su origen es la tabla de caracteres ASCII. Este conjunto de caracteres se pueden codificar dentro de una matriz binaria de 7 bit., y son los caracteres que por defecto muestra cualquier display.

Caracteres ASCII de 7 bits

Si queremos mostrar los caracteres específicos de cualquier lengua, por ejemplo las letras acentuadas, tendremos que ampliar de tamaño la matriz del display que almacena los caracteres en memoria, y asociar una posición específica a cada uno de los caracteres dentro de esa matriz.  De esta forma, la tabla de caracteres que almacena el display no se corresponderá con el código del carácter que recibamos a través del interface Web. Así el procesador del display tendrá que comprobar el código del carácter que recibe, y si es superior al 127,  reposicionar el código para apuntar al gráfico que tenemos asociado a ese código entrante, dentro de la matriz gráfica del display. El tamaño de la matriz gráfica del display suele ser de 8 bit, y con esto es posible almacenar 127 caracteres extra, que podrían ser letras acentuadas, logotipos o cualquier dibujo.

Integración UTF-8 en el display

Si pretendemos que los caracteres de este reloj se puedan programar a través de un interface Web, es necesario utilizar una codificación de caracteres estándar, y la más versátil es la codificación UTF-8 de 2 Bytes.

Este reloj utiliza 3 tipos de fuentes gráficas, dos de ellas limitadas a los 10 números, utilizadas para mostrar los dígitos de la hora en formato estrecho y ancho, y la otra es la que almacena los caracteres ASCII, desde el espacio cuyo código es 32 en decimal, hasta el 126 que es la tilde de la letra eñe, más conocida como virgulilla ~. A continuación, y a partir del código 127, es donde se almacenan los caracteres extra.

Hay muchas formas de almacenar las fuentes gráficas en un display, pero la forma más eficiente es asociar un Byte a los 8 pixeles que tiene cada columna de la matriz LED. Así es más rápida la gestión que tiene que hacer el procesador para desplazar los textos por el display.

La fuente de textos y gráficos de este display es de ancho variable, entre 2 y 5 pixel de ancho por 8 pixel de altura. Así se limita el ancho a las letras que no lo necesiten, por ejemplo el espacio, y se pueden mostrar más caracteres en el display.  Para localizar los caracteres en la matriz, todos ellos ocupan 6 Bytes. El primer Byte indica el ancho del carácter, que se corresponde al número de Bytes que tiene que leer el procesador para formar la letra en el display.

Para facilitar la interpretación visual de los gráficos, los 5 Bytes de cada carácter se suelen escribir en formato binario, pero también se podría escribir en formato hexadecimal o decimal si se quisiera reducir el tamaño del archivo en el editor.

En el gráfico siguiente. vemos el esquema de codificación de caracteres UNICODE, junto con UTF-16 y UTF-8.

Cuando se asigna un código a un carácter, se dice que dicho carácter está codificado. El espacio para códigos tiene 1.114.112 posiciones posibles (0x10FFFF). En el grafico anterior vemos el espacio de códigos dividido en tramos, con el fin de mostrar los diferentes esquemas de codificación UTF. Los puntos de código se representan utilizando notación hexadecimal agregando el prefijo U+.

Actualmente los sistemas operativos limitan la tabla UNICODE a los primeros 65.536 caracteres (0xFFFF), y el valor hexadecimal se muestra añadiendo ceros a la izquierda si es necesario, hasta completar los 4 dígitos hexadecimales.

Es conveniente aclarar, que los sistemas operativos disponen de diferentes tablas de caracteres, algunas de ellas son privadas, y no se deberían utilizar en un documento público con acceso a Internet, ya que no son un estándar.

Internamente en un PC se podría crear un documento utilizando cualquier fuente de caracteres, con el fin de mostrar algún gráfico en especial. El problema es si ese mismo documento se abriese utilizando una fuente de caracteres diferente; porque algunos caracteres ya no serían los mismos.

Si queremos codificar caracteres en UTF-8, limitando su longitud máxima a dos Bytes por carácter, sólo podremos codificar los primeros 2.048 caracteres UNICODE, y recibiremos caracteres de 11 bits. Así cuando recibamos un Byte en UTF-8 que comience con 110, sabremos que se trata de un carácter doble, y los 5 bits siguientes de ese Byte serán los 5 bits más significativos del carácter UNICODE que estamos recibiendo, sin olvidar que este carácter  tiene una longitud de 11 bits. A continuación recibiremos el segundo Byte, el cuál empezará con los bits 10, y a continuación recibiremos los 6 bits menos significativos del carácter UNICODE.

Decodificación UTF-8

  1. Cuando el bit más significativo de un Byte en UNICODE comience con un 0, la longitud del código UTF-8 no cambia, manteniendo el mismo valor UNICODE, y respetando así su compatibilidad con la tabla ASCII.
  2. Si se recibe un Byte en UTF-8 que empieza con los bits 110, su longitud será de 2 Bytes, y el segundo Byte empezará siempre por 10.
  3. Si se recibe un Byte en UTF-8 que empieza con los bits 1110, su longitud será de 3 Bytes, y los dos Bytes siguientes al primero empezarán con 10.
  4. Si se recibe un Byte en UTF-8 que empieza con los bits 11110, su longitud será de 4 Bytes y los 3 Bytes siguientes al primero empezarán con 10.

Esquema de montaje

Para que este display Reloj-Texto funcione, sólo hay conectar 5 hilos entre un lateral del display LED y el módulo ESP32. El sonido de la alarma y el audio sintetizado sale por el pin GPIO26 del módulo ESP32, y hay que conectarlo a un amplificador de audio con su altavoz.

Firmware (v1.44)

El archivo que necesitas para programar el ESP32, lo puedes descargar de forma gratuita desde el repositorio GitHubClock-Text_ESP32

Interface Web y ajustes

Este reloj se controla a través de cualquier dispositivo móvil, siempre que esté conectado a la misma red WiFi. El reloj dispone de 2 interfaces Web diferentes, pudiendo elegir su modo de funcionamiento. El reloj funciona de forma muy parecida en ambos modos, presentando la hora de acuerdo al formato que se haya configurado, y cada 30 segundos mostrando un rotación de texto.

  • Cuando el display está configurado en modo RELOJ: el texto será el día de la semana y la fecha; pero sólo en caso de que estuviese habilitada su presentación, porque en caso contrario el reloj siempre mostrará la hora.

Interface RELOJ: se puede modificar el huso horario al cuál se debe sincronizar el reloj, realizar los ajustes de formato y presentación de la hora, y modificar el brillo del display.

  • Cuando el display está funcionando  en modo MENSAJE: cada 30 segundos intercalará una rotación del texto que tenga programado.

Interface MENSAJE: se puede ajustar la velocidad de desplazamiento del texto, modificar el contenido del mensaje, y fijar la hora y repeticiones de sus dos alarmas.

Ambos interfaces disponen de un botón para cambiar su modo de funcionamiento, teniendo en cuenta que el reloj primero se reiniciará, sincronizando de nuevo la fecha y hora con el servidor NTP que le corresponda al uso horario ajustado. Al reiniciar el reloj, el punto de acceso WiFi al que se conecta,  podría asignar una dirección IP diferente a la anterior. También se han incorporado dos botones nuevos, uno para mostrar la hora con voz, muy interesante para personas invidentes, y el otro para forzar el borrado del display en cualquier momento, mediante la aparición de Pac-Man.

Con esta nueva versión (v1.44), es posible escribir textos utilizando letras acentuadas y la letra Ñ, tanto en mayúsculas como en minúsculas. Además, si el reloj está configurado con el huso horario de España y el formato de presentación de la hora es el Europeo, los textos del día de la semana y fecha, aparecerán traducidos al Español.

¿Necesitas fabricar un circuito impreso?

Actualmente hay muchas empresas que se dedican a fabricar circuitos impresos (PCB), 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.

PCB de prototipo gratis y con plazo de entrega rápido: https://www.pcbway.es/

Logo: PCBWay

 

 

 

Reloj-Texto con dos alarmas y 2 husos horarios

Reloj-Texto con 2 alarmas y 2 husos horarios. Digitalización de audio analógico, para almacenarlo en la memoria de un ESP32. Estos archivos de audio contienen señales acústicas y mensajes de voz, para utilizarlas en el nuevo firmware del display Reloj-Texto controlado por el ESP32. Con esta actualización, el display Reloj-Texto dispondrá de dos alarmas horarias, pudiendo configurarlas con alguno de las dos husos horarios que gestiona el nuevo firmware. El display se configura desde un teléfono móvil vía WiFi. La información de la fecha y hora se sincroniza a través de un servidor NTP, pudiendo mostrar la hora local, a elegir entre dos husos horarios diferentes.

Reloj y Texto en display LED, con ESP32

Audio sintetizado

El sonido de la alarmas no lo haré activando un buzzer piezoeléctrico, será un sonido PCM de 8 bit, el cuál grabaremos en la memoria del ESP32. Esa información de audio digital, se convertirá en audio analógico aprovechando uno de los dos conversores D/A (DAC) que incluye este microprocesador. En este caso, como el pin GPIO25 ya se está utilizando en este reloj, la salida de audio será a través del pin GPIO26

Muestreo y Retención

Es la extracción de algunos valores instantáneos de duración teóricamente nula. Según la teoría de Shannon,  para muestrear una señal y poderla reconstruir, es necesario que el muestreo se realice un número de veces al menos igual al doble de la frecuencia máxima a muestrear. Para muestrear una frecuencia vocal de 4 kHz, necesitaríamos muestrear  como mínimo a:  4×2=8 kHz.

Esto lo podríamos representar con un interruptor que se abriera y cerrara 8.000 veces por segundo. A la salida de éste, obtendríamos una secuencia de impulsos cuya amplitud sería el valor instantáneo que tenía la señal de audio original.

Cuantización

Es la conversión que efectuamos para trasladar los valores instantáneos de tensión de la señal muestreada, a una escala compuesta por una serie de niveles. Cuanto mayor sea el número de niveles, mayor será la relación S/R. Como es de esperar, estos niveles los analizaremos con un sistema binario, para posteriormente poderlos transmitir de una forma digital. Con los sistemas PCM de 8 Bit, se obtienen 256 niveles de cuantización (±127 con respecto a cero).

Codificación

Es el proceso de lectura, de forma digital, de la secuencia de valores cuantizados. Esto quiere decir que a cada nivel de cuantización le corresponde un valor binario determinado, y dependiendo del número de niveles, necesitaríamos un número de bit por cada muestra. Esta es la primera limitación que encontramos para cuantizar la señal con un máximo de niveles, pues necesitamos transmitir todos los valores instantáneos de una muestra, en un tiempo máximo dado por la inversa de la frecuencia de muestreo ( t = 1/f ).

Esquema de montaje

Para que este display Reloj-Texto funcione, sólo hay conectar 5 hilos entre un lateral del display LED y el módulo ESP32. El sonido de la alarma sale por el pin GPIO26 del módulo ESP32, y hay que conectarlo a un amplificador de audio con su altavoz.

IMPORTANTE: la salida de audio DAC del ESP32 está referenciada a 1.5V.  Así es necesario bloquear la corriente continua continua a la entrada del amplificador de audio, intercalando en serie un condensador cerámico de aproximadamente 100nF. Como el nivel de audio a la salida DAC puede llegar a medir 3Vpp, es conveniente intercalar un atenuador a la entrada del amplificador, intercalando un divisor de tensión resistivo, o un potenciómetro si se quiere disponer un ajuste del nivel de audio.

Firmware

El archivo que necesitas para programar el ESP32, lo puedes descargar de forma gratuita desde el repositorio GitHub: Clock-Text_ESP32

Caja 3D (Reloj-Texto)

El fichero .stl que necesitas para fabricar la caja de este display LED, lo puedes descargar desde el siguiente enlace: Clock-Text with 2 alarms and 2 time zones (revision)

¿Necesitas fabricar un circuito impreso?

Actualmente hay muchas empresas que se dedican a fabricar circuitos impresos (PCB), 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.

PCB de prototipo gratis y con plazo de entrega rápido: https://www.pcbway.es/

Logo: PCBWay

 

Reloj y Texto en display LED, con ESP32

Construcción de un display LED de reloj y texto con matrices LED. Este display se configura desde un teléfono móvil vía WiFi. La información de la fecha y hora se sincroniza a través de un servidor NTP, convirtiéndolo así en un reloj muy preciso. Este display está construido con el módulo ESP32 y 4 matrices LED de 8×8 pixel. De forma opcional, también se puede montar un segundo display OLED de 64×48 pixel (0,66 pulgadas).

Este display lo he montado con un módulo LED que ya contiene las 4 matrices, en lugar de los 4 módulos independientes que utilicé en el montaje anterior:

Reloj de precisión, configurado por WiFi

Matrices LED de 8×8 pixel

En la construcción del último reloj LED que monté, lo hice conectando 4 matrices LED de 8×8 pixel. Estas matrices llevan las conexiones de entrada y salida por la cara inferior y superior, y esto obliga a que el tamaño del reloj sea más grande de lo necesario.

Matriz LED 8x8 pixel

En este caso voy a montar otro reloj con un display LED del mismo tamaño, pero será más pequeño que el anterior. Aunque el nuevo firmware también permite utilizar un segundo display OLED, en este caso no lo voy a montar, y además utilizaré 4 matrices LED interconectadas en un sólo PCB.

PCB con 4 matrices LED de 8x8

Esquema de montaje

El montaje de este reloj es muy rápido y sencillo,  sólo hay que conectar 5 hilos entre un lateral del display LED y el módulo ESP32.

Montaje del display: Reloj-Texto

Configuración con doble interface WEB

Ahora el display LED permite mostrar la hora, o textos rotantes de hasta 255 caracteres. Tanto el modo de funcionamiento como su configuración, se programa a través de una conexión WiFi, y se guarda en la memoria EEPROM del módulo ESP32. De esta forma el reloj arranca siempre en el modo en el que se dejó la última vez: modo texto, o modo reloj.

Doble interface WEB

Esta nueva versión de firmware incluye un menú WEB con nuevas opciones,  y también animaciones cada vez que se reciben datos desde el reloj.

Firmware

El archivo que necesitas para programar el ESP32, lo puedes descargar de forma gratuita desde el repositorio GitHub: Clock-Text_ESP32

Y también desde Dropbox: ESP32_Time_Text_Matrix_JR.rar

Caja 3D (Reloj-Texto)

Caja 3D, para el PCB de 4 matrices LED de 8x8

El fichero .stl que necesitas para fabricar la caja de este display LED, lo puedes descargar desde el siguiente enlace: Clock and Text on LED display, configured by WiFi

¿Necesitas fabricar un circuito impreso?

Actualmente hay muchas empresas que se dedican a fabricar circuitos impresos (PCB), 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.

PCB de prototipo gratis y con plazo de entrega rápido: https://www.pcbway.es/

Logo: PCBWay

 

Avisador para Smartphone

Construcción de un sencillo avisador acústico/luminoso, para amplificar las llamadas y avisos de un teléfono móvil. Este circuito entrega en una clavija la tensión de red cada vez que suena el teléfono, y podría suministrar hasta un máximo de 10 amperios.

El escuchar las llamadas de un teléfono móvil,  es un problema muy común en las personas de avanzada edad. La presbiacusia, o pérdida de audición, ocurre en la mayoría de las personas al envejecer, aunque también sucede con personas más jóvenes, cuando están expuestas a sonidos demasiado fuertes durante mucho tiempo.

Deficiencia auditivaPara teléfonos fijos existen muchos avisadores de tipo comercial… timbres de potencia, avisadores luminosos para sordos, etc. Estos dispositivos normalmente van conectados a la roseta del propio teléfono, aunque antiguamente existían algunos dispositivos que utilizaban una bobina captadora con una ventosa, que se pegaba en las proximidades del timbre del teléfono. Es complicado hacer algo parecido y fiable para un teléfono móvil, porque hay mucha variedad de dispositivos, y además la tecnología va cambiando. Mi idea es buscar algo que sirva para cualquier teléfono móvil de última generación, y sin tener que conectar nada al teléfono.

Posibles opciones

Una forma sencilla de hacerlo, sería activando el vibrador del teléfono con las llamadas; y detectar esa vibración para activar un timbre o una luz auxiliar. Hice bastantes pruebas con diferentes sensores, y al final lo descarté por ser poco fiable. El sistema de vibración de algunos dispositivos es muy leve, y al aumentar la sensibilidad del circuito se producen falsos avisos debido a las vibraciones del propio entorno.

Sensores de vibración

Buscando un poco en el Play Store, encontré muchas aplicaciones que permiten encender la luz/linterna trasera del teléfono cuando reciben llamadas o mensajes en redes sociales… y además todo esto es configurable!

Alert Flash en PlayStore
Pensando en uno de los últimos montajes que realicé, y con el fin de aprovechar los circuitos impresos que ya tenía, decidí construir una base de carga para el teléfono móvil, en la que se incluye la detección del encendido de la luz/linterna del móvil.

Interruptor inteligente

Funcionamiento del avisador

Cada vez que se encienda la luz del móvil, el circuito suministrará una tensión de red con un consumo máximo de 10A. Así en esta salida se podría conectar un timbre de potencia, una luz, o cualquier cosa que se nos ocurra.

Esquema: Avisador para Smartphone

Además, este circuito dispone un LED indicador de estado, que nos permitirá saber si ha habido alguna llamada o notificación desde que dejamos el teléfono móvil apoyado en la base.

El archivo que necesitas para programar el ATtiny85, lo puedes descargar de forma gratuita desde el siguiente enlace: Alert_Mobile.rar

Caja impresa en 3D

La caja la he fabricado en PLA, a medida del teléfono Xiaomi Mi A1.

Caja 3D: Avisador para Smartphone

Los archivos que necesitas para imprimir esta caja,los puedes descargar desde el siguiente enlace:

Call signaling for Smartphone

¿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. Hasta un 30% de descuento para PCBs especiales, con fabricación en 24 horas.

Logo: PCBWay

https://www.pcbway.es/

Ahora el servicio de montaje en PCBWay por 30$, con envío GRATUITO mundial:
https://www.pcbway.es/quotesmt.aspx

 

Interruptor inteligente

Diseño y construcción de un interruptor inteligente, capaz de cortar la alimentación de todos los dispositivos conectados en una regleta de enchufes. El circuito detecta el consumo en una toma de red (Master), y desconecta todo (incluido el propio controlador) cuando se apaga el dispositivo conectado a la toma ‘Master’. Así en reposo (Standby), el consumo total de todo el conjunto será nulo.

Regletas de RED inteligentes

Buscando un poco por Internet, podemos encontrar regletas de alimentación inteligentes. La mayoría de ellas nos permiten conectar y desconectar la alimentación de todos los enchufes desde un dispositivo móvil, programar la hora de encendido y apagado, incluso medir el consumo y  calcular su coste.

Regletas inteligentes en Internet

El uso de regletas inteligentes podría suponer un gran ahorro energético, pero hay que tener en cuenta que estas regletas de por sí ya incorporan un consumo extra… y su circuito de control consume energía las 24 horas del día.

Interruptor inteligente

La idea de este montaje, es la de conseguir el apagado automático de una serie de dispositivos, al detectar el apagado del equipo principal (Master). Por ejemplo, si conectamos a la toma principal  de este circuito la CPU de nuestro PC,  y el resto de dispositivos (monitor, impresora, escáner, etc)  a la toma auxiliar; al desconectar la CPU se desconectaría la alimentación de todo el conjunto… incluso la del propio circuito de control. De esta manera no quedaría ningún equipo consumiendo en modo ‘Standby’, y el consumo total sería nulo.

Interruptor inteligente montado

A continuación se muestra el esquema del circuito de control, encargado de cortar la alimentación en todas las tomas de red, cuando detecte un caída de consumo en la toma ‘Master’.

Esquema: Interruptor inteligente

Las tensiones que obtendremos como muestra en la entrada del ATtiny cambiarán dependiendo de la inductancia y características del transformador que utilicemos (filtro EMI), además del tipo de carga que conectemos en la toma ‘Master’ (carga reactiva o lineal).

Principio de funcionamiento

El circuito está basado en la transferencia de tensión que aporta una de los dos  bobinas de un filtro EMI, al paso de la corriente de RED por el otro devanado.  Este montaje funciona como un transformador de corriente, entregando una tensión en el devanado secundario, proporcional a la corriente que circule por el primario. En este caso, la transferencia de tensión no es lineal con la potencia, pues dependerá del tipo de carga que conectemos en la toma ‘Master’. Si la carga se comporta como una resistencia pura,  la transferencia de tensión será menor que si tuviera una componente reactiva.

Medidas de tensión con diferentes cargas

El circuito detector de umbral está construido con Arduino, utilizando un ATtiny 85. Este pequeño micro controlador tiene sólo 8 pines y puede funcionar con un oscilador interno, lo que permite hacer uso de casi todos sus terminales.

Calibración y ajuste de los umbrales

En este montaje se han dedicado dos pines del ATtiny para poder configurar hasta 4 umbrales distintos de funcionamiento. Así podemos elegir el umbral de detección más adecuado al equipo que vayamos a conectar en la toma ‘Master’. Como es lógico suponer, los 4 umbrales los podremos calibrar y modificar con Arduino, antes de programar el ATtiny.

Ajuste y calibrado de los umbrales

Para facilitar el ajuste de los umbrales y la calibración de la escala, podemos cargar el código ‘Regleta_TEST.ino’ que se adjunta en la descarga, y utilizar la placa de desarrollo Arduino UNO. Para realizar este ajuste, colocamos un potenciómetro de 10K entre el positivo y negativo de la fuente de 5V, y conectamos el cursor del potenciómetro con la entrada A2 de Arduino UNO. El proceso a seguir para la calibración de la escala y fijación de los umbrales. se explica en el video final.

Los archivos que necesitas para programar el Arduino UNO y el ATtiny, lo puedes descargar de forma gratuita desde el siguiente enlace:

Interruptor_I.rar

¿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.

Logo: PCBWay

https://www.pcbway.es/

PCB: Interruptor inteligente

 

Acceso a los GERBER de este PCB

PCB from PCBWay

Link of my shared project

Descarga del ficheros 3D:

Intelligent switch

Diseño 3D

 

 

 

 

 

 

 

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.

Mini Linterna RECARGABLE

Construcción de una mini linterna LED, con batería de Li-ion (3,7V) y su circuito de carga USB. Debido al reducido tamaño de esta linterna, es muy cómoda de llevar en el bolsillo y puede ser muy útil para iluminar huecos de pequeñas dimensiones. La carcasa de la linterna se fabrica a medida con una impresora 3D.

Gearbest Impresora Anet A6Impresora Anet A6

 Montaje de la linterna

La construcción de esta linterna es muy sencilla, consiste en un diodo LED de 1W junto con su resistencia limitadora en serie.LED de 1W La alimentación es de 3,7V, utilizando una batería recargable de Li-ion de 150 mAh. Se incluye también el módulo de control y carga de la batería TP4056. En este caso, como el diodo LED empieza a conducir por encima de los 2,5V, tensión mínima de seguridad de la batería, no es necesario utilizar un módulo de carga con protección.

Mini Linterna (Componentes)

La resistencia limitadora es de 10 ohmios.  Así la corriente máxima del LED no supera los 150 mA. De esta manera se aumenta la autonomía de la batería, se evita el calentamiento del diodo LED y se obtiene un nivel de luminosidad muy bueno.

Mini Linterna (Esquema)

 Caja de la linterna

Esta linterna se podría utilizar sin caja, protegiendo todo el conjunto con cinta Kapton, pero queda mucho mejor si construye una caja a medida. La caja y el botón los he fabricado con la ayuda de una impresora 3D, utilizando PLA de color negro para la caja y rojo para el botón del pulsador. La caja se cierra con una tapa deslizante, la cuál hay que abrir para acceder al conector Mini-USB y cargar la batería.

Mini Linterna cargando

Una vez cargada la batería, se cierra la tapa y queda oculto el conector de carga, quedando así protegido de la humedad y el polvo.

Mini Linterna (Final)

Descargar fichero .stl

Fichero necesario para fabricar la caja de esta linterna:

Mini rechargeable LED flashlight