como elaborar los faros traseros de una bicicleta

En esta guía te mostraré cómo construí, usando un Arduino, unas luces para bicicleta que también tienen intermitentes para indicar dirección e incluso un odómetro, que muestra velocidad, tiempo y recorrido total. De hecho, al vivir en un pueblo pequeño, me muevo en bicicleta casi todo el tiempo, y tener faros delanteros claramente visibles hace que andar en bicicleta sea mucho más seguro, especialmente de noche.

Mi diseño incluye faros delanteros que además de la luz blanca o roja también tienen indicadores amarillos para indicar a los que nos rodean en qué dirección vamos. Para activar las flechas tenemos botones en el manillar, que también podemos usar para movernos por la información del display y encender o apagar las luces.

Junto a los botones tenemos un display, que muestra la velocidad a la que vamos, el tiempo, kilómetros totales y otra información interesante sobre nuestro recorrido. Los faros delanteros son muy brillantes, y se pueden ver bien tanto de día como de noche. Todo el sistema está controlado por un Arduino, y se alimenta con una batería que podemos cargar con un puerto USB-C. Además, he encontrado una forma de ocultar toda la electrónica de la bicicleta, para evitar que me roben el sistema.

Suministros

Para realizar este proyecto utilicé:

  • Placa Arduino Nano (enlace aquí )
  • Pantalla OLED monocromática de 0,96″ y 128 x 64 píxeles con comunicación i2c (enlace aquí )
  • 3 interruptores táctiles de 12×12 mm (enlace aquí )
  • 2 sensores de efecto Hall US5881 (uno es opcional; enlace aquí )
  • Módulo de reloj en tiempo real DS3231 (enlace aquí )
  • 4 MOSFET IRFZ44N
  • Celda de batería de iones de litio 18650
  • Placa de carga USB-C TP4056 (enlace aquí )
  • Módulo elevador de 5 V 500 mA (o más)
  • Interruptor basculante
  • Cable de 4 núcleos de calibre 26 AWG de ~ 5 metros de largo (enlace aquí )
  • Placa perforada
  • 4 resistencias de 220 ohmios
  • 6 resistencias de 10K Ohm
  • 2 resistencias de 2,2K ohmios
  • 1 resistencia de 100K ohmios
  • 1 resistencia de 20K ohmios
  • 15 LED rojos transparentes de 5 mm
  • 40 LED de 5 mm de color amarillo transparente
  • 6 LED blancos transparentes de 5 mm
  • Resistencias de 27 47 ohmios
  • 6 resistencias de 130 ohmios
  • Resistencia de 1 330 ohmios
  • 5 conectores JST XH de 4 pines de 2,54 mm (macho y hembra; enlace aquí )
  • 2 conectores JST XH 2.54 de 3 pines (macho y hembra; enlace aquí )
  • 1 LED rojo transparente de 3 mm y 1 LED azul transparente de 3 mm
  • 2 insertos roscados de latón M3 (enlace aquí )
  • Pernos M3 de 12 mm de largo (enlace aquí )
  • Pernos M3 de 20 mm de largo (enlace aquí )
  • Tuercas autoblocantes M3 (enlace aquí )
  • Tubos termorretráctiles de varios tamaños
  • Botella de agua para bicicleta

Herramientas que utilicé para este proyecto:

  • Impresora 3D con filamento PLA negro
  • Soldador
  • Pegamento caliente
  • Destornilladores, alicates y otras herramientas básicas.

Paso 1: Descripción general

Este proyecto se divide en varias partes. En primer lugar tenemos los dos faros delanteros y traseros, que además de la tradicional luz roja y blanca también tienen los dos intermitentes para indicar la dirección. En el manillar la cosa se pone más interesante, porque tenemos un display, que muestra la velocidad a la que vamos, el tiempo, los kilómetros totales y otros datos interesantes sobre nuestro recorrido.

Junto al display tenemos tres botones, con los que podemos activar las flechas, cambiar de página en el display y encender o apagar los faros. Como último elemento tenemos un sensor magnético que detecta las revoluciones de las ruedas de la bici para calcular la velocidad y mostrarla en el display. Todos estos componentes están conectados a un circuito que incluye un Arduino, un módulo Real Time Clock y cuatro mosfets, que se utilizan para controlar los leds de los faros.

Todo el sistema está alimentado por una batería de iones de litio, que se carga a través de un puerto USB-C. Y por si os lo estabais preguntando… sí, toda la electrónica está escondida en una botella de agua montada en la bici, pero de eso os hablaremos más adelante.

Diseñar todo esto en conjunto era demasiado complicado, así que, un tanto al azar, comencé con la parte que parecía más sencilla: la luz trasera.

Paso 2: Luz trasera

Para hacer la luz trasera, utilicé 15 LED de 5 mm de color rojo transparente y 28 LED de 5 mm de color amarillo transparente para los intermitentes (14 para cada intermitente). Era importante que la luz trasera fuera claramente visible incluso a la luz del día, por lo que tal vez utilicé demasiados LED.

En primer lugar, diseñé e imprimí en 3D una carcasa para el faro y una placa con agujeros en la que montar los LED (los archivos STL para impresión 3D se pueden encontrar a continuación). En la parte trasera, la placa tiene dos espaciadores con agujeros, en los que coloqué dos insertos roscados de latón M3, utilizando un soldador para calentarlos. Estos insertos roscados se utilizarán más adelante para fijar los LED a la carcasa.

Ahora tenemos que montar y conectar los LED. Los LED se pueden insertar en los agujeros de la placa de montaje, teniendo cuidado de utilizar LED rojos en el centro y LED amarillos en los laterales. Los LED se conectarán en serie de dos, y cada serie tendrá una resistencia de 47 Ohm. Todas las series de dos se conectarán en paralelo, separadas en tres grupos para el rojo central y los intermitentes izquierdo y derecho. Los tres grupos de LED compartirán el pin +5V, mientras que las tres masas se utilizarán para controlar por separado la luz roja y los dos intermitentes amarillos.

Para realizar las conexiones, simplemente doblé y soldé juntos los pines de los LED y las resistencias. Usando esta técnica, el circuito puede parecer muy complejo, pero de hecho es solo una conexión simple repetida muchas veces. De todos modos, a continuación puedes encontrar los esquemas que puedes seguir mientras realizas las conexiones (la luz de fondo está en la página 4). Es importante tener en cuenta que, al conectar los LED en serie de dos, la luz roja central, que tiene 15 LED, tendrá un LED adicional. Para solucionar este problema, simplemente conecté una resistencia de 330 Ohm a su pin positivo y lo conecté en paralelo con los otros LED rojos.

Luego inserté en la carcasa un cable de cuatro pines, que será el que utilizaré para conectar la luz trasera al circuito de control. Soldé un cable al positivo común, y los otros tres a los negativos de los tres grupos de LEDs. Antes de cerrar la luz hice una prueba con la fuente de alimentación de banco, para comprobar si todos los LEDs funcionaban correctamente. Luego cubrí las conexiones de la parte trasera de los LEDs con pegamento caliente, para evitar cortocircuitos entre los cables.

En la carcasa de la luz inserté dos tornillos hexagonales M5 en los agujeros de la parte trasera de la carcasa, que tienen un espacio hexagonal en el que se puede encajar la cabeza de los tornillos. Estos tornillos se utilizarán para fijar la luz trasera a la bicicleta. Como último paso, cerré la luz con dos tornillos M3 atornillados en dos insertos roscados.

Al otro extremo del cable, conecté un conector JST de cuatro pines, que se utilizará para conectar la luz a la placa de circuito principal.

Paso 3: Visualización

Una vez terminada la luz trasera me encargué del display que irá en el manillar de la bici, que nos permitirá ver información interesante como la velocidad y el recorrido total. El display que elegí es una pequeña pantalla OLED monocroma de 0,96″ 128×64 píxeles con comunicación i2c. La comunicación i2c nos permite conectar el display directamente al Arduino utilizando únicamente 4 cables, dos para alimentación de 5V (+5V y GND) y dos para datos (SDA) y reloj (SCL).

Para hacer el display más compacto, quité los jumpers que estaban soldados a la PCB. Para conectar el display al Arduino utilizaré el mismo cable de cuatro pines que había utilizado para la luz trasera. Esta vez las conexiones son muy sencillas: necesité soldar los cuatro hilos del cable a los cuatro pads para +5V, GND, SDA, SCL que están en la PCB del display.

Para montar la pantalla en el manillar, diseñé e imprimí en 3D una pieza que se puede fijar al manillar y una pequeña carcasa en la que montar la pantalla. Pegué la pantalla en la carcasa, teniendo cuidado de alinearla con la abertura. Luego saqué el cable por el orificio de la base.

La carcasa con la pantalla se puede fijar a la base gracias a un ajuste a presión que se diseñó en las piezas impresas en 3D. Como último paso, inserté dos tuercas autoblocantes M3 en las aberturas del soporte, que se utilizarán para fijar la pantalla al manillar con tornillos.

Al igual que hice para la luz trasera, al otro extremo del cable conecté un conector JST de cuatro pines, que servirá para conectar la pantalla a la placa de circuito principal.

Paso 4: Botones

Una vez terminado el display, pensé en los botones que se utilizarán para activar los intermitentes y controlar el display. Tendremos tres botones: dos para los intermitentes izquierdo y derecho y otro que se podrá utilizar para navegar por las páginas del display, que en mi proyecto he etiquetado como “SET”. Tras ver distintos tipos de botones opté por utilizar unos interruptores táctiles de 12×12 mm, porque son muy compactos y económicos.

Para fijar los botones a la bici, imprimí en 3D un soporte muy similar al del display, que se compone de una pieza que se puede fijar a la bici y una carcasa. Antes de poner los botones en el soporte impreso en 3D, enderecé los pines y los corté a ras en uno de los dos lados (los pines de un lado quedan reflejados en el otro lado). Después puse los botones en el soporte impreso en 3D, sujetándolos temporalmente con un poco de cinta adhesiva de doble cara.

También para esta parte las conexiones son muy sencillas. Cada botón irá conectado entre el GND común y uno de los pines del Arduino. Al igual que para las otras partes, para conectar los botones al Arduino utilicé un cable de cuatro pines. Soldé uno de los cuatro cables a la tierra común de los interruptores, y los otros tres al pin libre de cada botón, como podéis ver en las fotos. Tras comprobar las conexiones, fijé los botones al soporte con pegamento termofusible.

A continuación imprimí en 3D, utilizando PLA gris, una pequeña tapa que inserté en cada uno de los tres botones. Como último paso, coloqué la carcasa en el soporte con un encaje a presión que está diseñado en las piezas impresas en 3D. Al igual que hice para la pantalla, inserté dos tuercas autoblocantes M3 en las aberturas del soporte, que se utilizarán para fijar la pantalla al manillar con tornillos.

Al igual que hice para las otras partes, al otro extremo del cable conecté un conector JST de cuatro pines, que servirá para conectar la luz a la placa de circuito principal.

Paso 5: Luces delanteras

Ahora ha llegado el momento de fabricar la luz delantera, que está construida de forma muy similar a la luz trasera. En realidad, la luz delantera se divide en dos luces independientes. Estas irán montadas en el manillar de la bicicleta con el mismo sistema que se utiliza para la pantalla y los botones. Cada una de las dos luces tendrá tres LED blancos para la luz principal, y seis amarillos, para el intermitente izquierdo o derecho.

De nuevo, diseñé algunas piezas para ser impresas en 3D. Al igual que para la luz trasera, para cada una de las dos luces delanteras tenemos una carcasa, que incluye un soporte que se puede fijar al manillar de la bicicleta (el mismo concepto utilizado para la pantalla y los botones), y un panel con agujeros en los que insertar los LED. Primero, inserté los LED en los agujeros del panel, creando una columna de LED blancos y dos de LED amarillos. Después llegó el momento de hacer las conexiones. Los LED amarillos se conectan en serie de dos en dos, con una resistencia de 47 Ohm para cada serie. Las tres series de LED amarillos se conectan luego en paralelo, como hemos hecho en la luz trasera.

Por otro lado, los LED blancos requieren un voltaje más alto, así que puse una resistencia de 130 Ohm para cada uno y luego los conecté los tres en paralelo. Para hacer las conexiones simplemente doblé y soldé juntos los pines de los LED y las resistencias. Como necesitamos hacer dos faros, hice dos circuitos idénticos, que tienen los colores de los LED reflejados (en el ensamblaje final, los LED blancos permanecerán en el interior mientras que los LED amarillos permanecerán en el exterior).

También para las luces delanteras, utilicé un cable de cuatro pines para las conexiones. Es importante señalar que, si bien las carcasas impresas en 3D de las dos luces se ven simplemente reflejadas, una de ellas tiene dos orificios para los cables, mientras que la otra solo tiene uno. Inserté el cable que conectará las luces delanteras al controlador principal en la carcasa que tiene dos orificios. Usando un trozo corto de cable, conecté la primera carcasa a la segunda.

Las conexiones son bastante simples. En cuanto a la luz trasera, todos los LED comparten una conexión positiva común, mientras que los negativos se utilizan para controlar los grupos individuales de LED. Entonces, soldé el cable +5V que viene del circuito principal al positivo de los LED de la primera luz y a uno de los cables que van a la segunda luz, donde también lo soldé al positivo común de los LED. Lo mismo ocurre con el GND de los LED blancos, que es común para ambas luces delanteras. El GND para la señal de giro derecha está soldado directamente al negativo de los LED amarillos de la primera luz. El GND del intermitente izquierdo se suelda primero a uno de los hilos del cable que va a la segunda luz, y luego al negativo de sus LED amarillos.

Después de probar los LED, protegí las conexiones con pegamento termofusible. Por último, encajé a presión ambos paneles LED en sus respectivos compartimentos. Al igual que hice con la pantalla y los botones, inserté dos tuercas autoblocantes M3 en las aberturas del soporte de cada luz, que luego se usarán para asegurar la pantalla al manillar con tornillos.

También aquí, al otro extremo del cable conecté un conector JST de cuatro pines, que se utilizará para conectar la luz a la placa de circuito principal.

Paso 6: Sensor de velocidad

Como ya he dicho antes, en el display también veremos la velocidad a la que vamos. Para medir la velocidad descarté cosas más complicadas como el GPS, y opté por el sistema más sencillo (y quizá más preciso): un sensor magnético montado cerca de la rueda trasera de la bici, que detecta un imán adherido a la propia rueda. De esta forma, el sensor se activa por cada revolución de la rueda. Al leer cuántas veces se activa el sensor en un intervalo de tiempo definido (en mi caso, 5 segundos) el Arduino es capaz de calcular las revoluciones por minuto de la rueda y luego convertirlas en la velocidad en kilómetros por hora, conociendo la circunferencia de la rueda.

El sensor que elegí es un sensor de efecto Hall US5881. El sensor tiene tres pines, +5V y tierra para alimentación y un pin de salida. Para conectar el sensor al Arduino utilicé el mismo cable de cuatro pines que utilicé para los otros componentes. Soldé tres de los cuatro cables a los tres pines del sensor, dejando por supuesto un cable libre. Luego protegí el sensor y las conexiones individuales con un tubo termorretráctil. Al otro extremo del cable conecté un conector JST de tres pines, que se utilizará para conectar la luz a la placa de circuito principal.

Para montar el sensor en la bicicleta, hice un pequeño soporte impreso en 3D. El cable del sensor se puede insertar en un orificio del soporte y, a continuación, se puede asegurar el sensor con dos bridas. A continuación, el soporte con el sensor se asegurará cerca de una de las ruedas de la bicicleta con bridas.

Para activar el sensor, utilicé un imán que ya tenía fijado a la rueda de mi bicicleta y que recuperé de unas luces de bicicleta antiguas que funcionaban con imanes. Sin embargo, puedes utilizar cualquier imán que sea lo suficientemente fuerte como para activar el sensor de forma fiable a una distancia de aproximadamente 1 centímetro y fijarlo a la rueda.

Paso 7: Placa de control – Arduino y RTC

Ahora que ya tenemos todos los componentes del sistema, nos toca fabricar la placa con el Arduino al que irán conectados. Para ello, he empezado con un trozo de placa perforada de unos 55×90 mm, sobre la que he soldado mediante unos conectores tipo jumper un Arduino Nano. Además del Arduino, he colocado en la placa un módulo DS3231 Real Time Clock, que servirá para mantener la hora que vemos en el display incluso cuando el Arduino está apagado.

Para ello, normalmente el RTC se alimenta con una pila de botón de 3 V, que con tan bajo consumo puede durar varios años. En este proyecto ya dispondremos de una batería recargable de ion-litio que alimentará todo el sistema, y ​​no tenía sentido tener una segunda batería que haya que cambiar periódicamente. Así que decidí modificar el módulo RTC para alimentarlo directamente con la batería principal.

Lo primero que hice fue quitar la pequeña resistencia que está sobre el pin SCL en la PCB: esta resistencia se usa para cargar lentamente la pila de botón que normalmente pondríamos en el RTC, que es algo que no queremos con la batería externa. Luego desoldé el soporte de la pila de botón, para ahorrar algo de espacio. Como último paso soldé un trozo de cable al pad al que estaba conectado el positivo de la pila de botón (en mi caso era el que estaba cerca del LED de estado, pero es mejor comprobarlo con un multímetro). Este cable simplemente irá conectado al positivo de la batería principal 18650 de ion-litio.

Paso 8: Placa de control – MOSFET, I2C y divisor de voltaje

Una vez colocado el RTC soldé a la placa dos conectores JST de cuatro pines para el display y los botones, y dos conectores JST para el sensor de revoluciones de rueda y otro sensor magnético de efecto Hall para detectar cuando frenamos, que al final no instalé. Si os interesa, este último sensor magnético se hubiera utilizado para aumentar el brillo de la luz trasera cuando pisamos el freno. Para los dos sensores magnéticos puse resistencias pullup de 10K Ohm entre el pin de señal y la alimentación de +5V. El mejor lugar para poner estas resistencias es cerca de los conectores.

Para controlar los LED de los faros delanteros desde los pines de Arduino utilicé mosfets IRFZ44N, dos para los intermitentes izquierdo y derecho y dos para las luces delanteras y traseras. Para cada mosfet, coloqué una resistencia de 10K Ohm entre la compuerta y GND. La compuerta de cada mosfet está conectada a un pin de Arduino, con una resistencia de 220 Ohm en medio. Para conectar la luz trasera y delantera, soldé dos conectores JST de cuatro pines a la placa, a los que llevé la alimentación de +5V y las tierras para las diferentes luces provenientes de los drenajes de los cuatro mosfets.

El módulo de pantalla y RTC se conectará al Arduino a través de i2c utilizando los pines A4 y A5. En ambas líneas i2c coloqué resistencias pullup de 2,2K Ohm, conectadas entre cada una de las líneas i2c y la alimentación de +5V.

Para medir el voltaje de la batería y mostrarlo en el display, utilicé un pin analógico del Arduino, al que conecté un divisor de tensión compuesto por dos resistencias (una de 100K Ohm y otra de 20K Ohm) para llevar el voltaje de la batería a un valor inferior a la referencia interna de 1,1V del Arduino.

Una vez soldados todos los componentes a la placa realicé las conexiones bajo la placa siguiendo el diagrama de cableado que podéis encontrar a continuación. Para realizar las conexiones utilicé una combinación de cable de cobre macizo y cables con revestimiento de silicona. Este trabajo, obviamente, me llevó algo de tiempo, pero finalmente pude terminar la placa. Si lo preferís, siguiendo el esquema podéis diseñar vuestra propia PCB para que la fabrique.

Paso 9: Código Arduino

Antes de instalar el sistema, necesitamos cargar el código en Arduino. Escribir el código fue quizás la parte más larga y compleja de este proyecto. Ciertamente el código no está bien escrito, sin embargo funciona y eso es lo importante. El código se encarga de medir la velocidad, leer la hora del RTC, controlar las luces y los intermitentes y mostrar la interfaz en la pantalla… hay un montón de cosas en juego. La buena noticia es que no necesitas modificar el código si no quieres: todos los ajustes se pueden hacer directamente desde la interfaz en la pantalla. Estos ajustes, por supuesto, se guardan en la EEPROM, de modo que permanecen incluso cuando el sistema está apagado.

Antes de cargar el código, sugiero desconectar el Arduino de la placa. El código se puede compilar y cargar desde el IDE de Arduino, después de instalar la biblioteca Adafruit_SSD1306 y la biblioteca RTClib.

A continuación podéis encontrar el código para descargar, que es el que os recomiendo. Si lo preferís, podéis copiarlo directamente desde aquí y pegarlo en el IDE de Arduino.

Paso 10: Circuito de la batería

Como ya he dicho antes, todo el sistema estará alimentado por una batería de litio 18650. Para montarla, imprimí en 3D un sencillo soporte para batería. Para conectar la batería, recuperé un contacto de resorte y un contacto plano de un antiguo soporte para batería de luces navideñas. Soldé dos cables a los dos contactos y los pegué a los dos extremos del soporte para batería impreso en 3D.

Para cargar y proteger la batería, elegí usar un módulo TP4056, que tiene un puerto USB-C para cargar la batería. Conecté los cables que vienen del soporte de la batería a los pads B+ y B- en la PCB. El módulo tiene dos LED para indicar el estado de carga, que estarán ocultos cuando se vaya a montar el módulo. Así que los desoldé y conecté a los pads pequeños dos LED transparentes de 3 mm usando algunos cables cortos. Estos LED se colocarán junto al puerto USB.

En los dos terminales de salida del circuito de carga conecté un módulo elevador para llevar la tensión de la batería a 5V. El módulo elevador que tenía tenía un puerto USB, que desoldé y reemplacé por dos cables conectados a los pines positivo y negativo de salida. Puedes usar cualquier módulo elevador con suficiente salida de corriente, ten en cuenta que necesita tener el negativo de la entrada conectado directamente con el negativo de la salida. Como último elemento puse un interruptor basculante que interrumpe el cable positivo que va del módulo de carga al módulo elevador. Este interruptor se usará para encender o apagar todo el sistema. A continuación puedes encontrar el esquema de esta sección del circuito.

Paso 14: Uso del sistema

Ahora que el sistema está configurado, mientras circulamos vemos en la pantalla la velocidad, el tiempo y los kilómetros totales. Pulsando SET pasamos a la segunda página, con otros datos como la velocidad media y máxima, el tiempo total y el tiempo que llevamos realmente circulando, excluyendo, por ejemplo, el tiempo que hemos parado en los semáforos.

Pulsando de nuevo SET pasamos a la página desde la que podemos encender o apagar las luces delanteras o traseras o ambas. Cuando estemos en esta página, podemos elegir si accionamos Todas las luces (delanteras y traseras) o sólo las Delanteras o Traseras pulsando el botón de flecha izquierda. Para encender o apagar la luz que hayamos seleccionado, podemos utilizar el botón de flecha derecha. La pantalla vuelve a la página principal automáticamente al cabo de 10 segundos.

Para activar los intermitentes izquierdo y derecho podemos utilizar los dos botones correspondientes, mientras que para apagarlos podemos pulsar cualquier botón. Hay que tener en cuenta que los intermitentes solo se pueden activar cuando estamos en la página principal de la pantalla. Cuando los intermitentes están activados nos aparece un indicador en la pantalla, lo cual es una función muy útil.

Las luces son muy brillantes y se ven bien tanto de día como de noche. La batería dura varias horas y cuando está baja podemos cargarla con el puerto USB-C.

En general, estoy muy contento con el resultado de este proyecto. Lo he estado usando durante las últimas semanas y me han parecido muy interesantes los datos que muestra la pantalla. Las luces son muy importantes para circular de forma segura de noche. Como siempre, espero que esta guía te haya parecido interesante y quizás útil. Para ver más detalles sobre este proyecto, mira el  vídeo en mi canal de YouTube . ¡Hasta pronto!

By Sednav

Leave a Reply

Your email address will not be published. Required fields are marked *