Shield de Reloj Nixie NCS314 para Arduino UNO/MEGA – Compatibilidad IN‑14/IN‑12
Componentes y materiales
| Shield Nixie IN-14 NCS314 para Arduino | × | 1 |
| Shield Nixie IN-12 NCS312 para tubos Nixie soviéticos | × | 1 |
| Arduino UNO (compatibile también con Arduino MEGA) | × | 1 |
| Arduino Mega 2560 | × | 1 |
| Fuente de alimentación 12V 1A | × | 1 |
| Caja acrílica para Shield NCS314 (modelo ACNS314) – compatible con versiones HW v1.X–2.X | × | 1 |
Aplicaciones y servicios online
- Arduino IDE
Descripción del proyecto
Visión general
Inicialmente, tras acceder a un suministro casi inagotable de tubos Nixie soviéticos de excelente calidad (IN-12, IN-14 e IN-18), decidimos crear un display simple como shield para Arduino. Ya teníamos un Arduino, así que el resto parecía sencillo (así lo creíamos entonces). En ese momento no sabíamos nada sobre cómo manejar estas lámparas.
Muy pronto encontramos en internet el esquema de alimentación de estos tubos:

¡Funcionan! Lo que vimos nos dejó atónitos, como un pequeño milagro, y comprendimos que íbamos por buen camino. Inmediatamente comenzó la sesión de fotos:

Al día siguiente, comenzamos a discutir el concepto del futuro proyecto: para simplificar y reducir costes, se optó inicialmente por un esquema de multiplexado dinámico, pero luego se descartó a favor de un modo de visualización totalmente estático. Aunque para los tubos IN-14 la diferencia visual es inapreciable, para los IN-18 sí se nota: en modo dinámico brillan menos y aparece el llamado «efecto de puntos azules»:

El modo de visualización dinámica enciende un solo tubo a la vez (o dos simultáneamente), alternando rápidamente. En cambio, el modo estático mantiene todos los tubos encendidos permanentemente.
Durante el diseño se decidió implementar la capacidad de mostrar información proveniente del PC, permitiendo a los entusiastas crear sus propios dispositivos que muestren, por ejemplo, mensajes no leídos o rondas en juegos como Fallout.
Selección de hardware para el control de cátodos
La elección obvia fueron registros de desplazamiento con interfaz SPI para ahorrar pines del microcontrolador. Dado que el voltaje de alimentación de los tubos es muy alto (hasta 200 V), las opciones se reducen a HV513, HV5812 y HV5122. Probamos cada uno y nos decidimos por el HV5812 (en las nuevas versiones NCS314 V2.X y NCS312 V1.X se usa el HV5122). Este chip es muy cómodo porque permite controlar dos lámparas simultáneamente al ser un registro de 20 bits.
Para controlar 6 tubos se necesitan tres de estos chips en cascada. Esto permite enviar un paquete SPI completo y olvidarse de la actualización del display, a diferencia de lo que ocurriría con un algoritmo de multiplexado dinámico. En otras palabras: mientras no haya que cambiar la información mostrada, el MCU puede dedicarse a otras tareas e incluso dormir.
Envío de datos por SPI
Arduino solo puede transmitir 8 bits a la vez, pero necesitamos 60 bits. El múltiplo de 8 más cercano es 64, por lo que hay que aplicar un pequeño truco: formar una variable de 64 bits (unsigned long long) para cada registro y enviarla 8 veces, desplazando los bits a la derecha en cada envío:
SPI.transfer(var64);
SPI.transfer(var64 >> 48);
SPI.transfer(var64 >> 40);
SPI.transfer(var64 >> 32);
SPI.transfer(var64 >> 24);
SPI.transfer(var64 >> 16);
SPI.transfer(var64 >> 8);
SPI.transfer(iTmp);
Objetivos establecidos e implementados

- Visualización estática basada en registros de desplazamiento.
- Máquina de slots (prevención de envenenamiento de cátodos).
- Funciones estándar de reloj: hora, fecha, alarma.
- RTC (Real Time Clock) con pila CR1220 (la versión V1.2–2.X usa el DS3231 de alta precisión).
- Medición de temperatura con DS18B20 [°C o °F].
- Control por puerto IR TSOP4836 (solo Mega). Probado con mando Sony RM-X151; compatible con otros de 36 kHz.
- Sincronización horaria con GPS externo (solo Mega).
- Menú sencillo.
- Control independiente de los dos puntos (superior e inferior).
- Retroiluminación RGB con transiciones suaves.
- Tonos de alarma en formato RTTTL (Ring Tone Transfer Language).
- Máquina de slots (para evitar envenenamiento de indicadores).
- Autotest al encendido (comprueba todos los dígitos 0–9 en cada display, todos los LEDs, secuencia de colores azul/rojo/verde, test de sonido).
Tareas no realizadas completamente
- Sensor de luz ambiental.







Código
El firmware completo está disponible en el repositorio de GitHub:
https://github.com/afch/NixeTubesShieldNCS314/
El código incluye gestión de SPI, RTC DS1307/DS3231, botones con detección de pulsación corta/larga, menús jerárquicos, control de retroiluminación RGB, reproducción de melodías RTTTL, autotest y algoritmos antienvenenamiento de cátodos.
Esquemáticos



Proceso de manufactura
- Reloj POV con Arduino: Construye una pantalla LED de persistencia de visión
- Sistema de Iluminación DMX Controlado por Web – Controlador Maestro Arduino
- Reloj de Palabras DIY con Arduino: Construye una Pantalla Elegante en Tiempo Real
- Construye un reloj en tiempo real con Arduino para horarios de oración islámica
- Construye un Spybot controlado por Bluetooth con Arduino
- Construye un Reloj Maestro LED Personalizado con Alarma – Visible desde 12 Metros
- Construye un Elegante Reloj de Tubos Nixie en Caja de Madera MDF Personalizada con Arduino
- Reloj Preciso de 7 Segmentos con Arduino Pro Mini y RTC DS1302
- Shield de Programación Inalámbrica para Arduino con HC-05 Bluetooth – Sin Cable USB
- Pantalla TFT Shield de Alto Rendimiento 2.8” para Arduino Nano – Display SPI 320×240
- Construye un reloj despertador fiable con RTC DS1302 y Arduino UNO