Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Manufacturing Technology >> Proceso de manufactura

Reloj Nixie con Arduino | El diseño más simple

Componentes y suministros

Arduino UNO
× 1
Piezas electrónicas UTSOURCE
× 1

Acerca de este proyecto

Después de un largo día de trabajo, finalmente logré hacer un reloj Nixie con Arduino y un chip de optoaislamiento, sin necesidad de un controlador Nixie, que es difícil de comprar.

Vea el video para obtener instrucciones completas:

Lista de piezas para hacer el proyecto:

1. Arduino UNO https://amzn.to/2P58O7s

2. Tubo Nixie 6 piezas https://amzn.to/3aHyJvX

3. Chip acoplador óptico TLP627

4. Módulo elevador de CC de 12VDC a 390VDC https://amzn.to/30kpdK9

5. Placa de pruebas https://amzn.to/2uCrnsW

6. Módulo de reloj en tiempo real DS3231 https://amzn.to/2SIyEzI

Compre componentes electrónicos en utsource.net

Paso 1. Diseño del circuito

El circuito usa un chip de optoaislamiento para controlar el tubo Nixie (usando 150VDC) por Arduino (usando 5VDC). Por conexión de matriz, por lo que solo necesitamos 16 salidas de Arduino para controlar 60 luces de 6 tubos nixie. El módulo de reloj en tiempo real DS3231 se usa para mantener el tiempo (incluso apagar la energía), se comunica con Arduino por la red I2C. Arduino leerá en tiempo real, luego encenderá / apagará las luces nixie por secuencia en alta frecuencia para que los ojos humanos vean 6 números como permanentes

Paso 2. Código Arduino

  // Canal de Youtube:engineering2you 
#include
#include "DS3231.h"
RTClib RTC;
DS3231 Clock;
int hora;
int minuto;
int segundo;
const int nixie_0 =2;
const int nixie_1 =3;
const int nixie_2 =4;
const int nixie_3 =5;
const int nixie_4 =6;
const int nixie_5 =7;
const int nixie_6 =8;
const int nixie_7 =9;
const int nixie_8 =10;
const int nixie_9 =11;
const int fila_1 =0;
const int fila_2 =1;
const int fila_3 =14;
const int fila_4 =15;
const int row_5 =16;
const int row_6 =17;
const int time_on =2;
void setup () {
pinMode (nixie_0, OUTPUT);
pinMode (nixie_1, SALIDA);
pinMode (nixie_2, SALIDA);
pinMode (nixie_3, SALIDA);
pinMode (nixie_4, SALIDA);
pinMode ( nixie_5, SALIDA);
pinMode (nixie_6, SALIDA);
pinMode (nixie_7, SALIDA);
pinMode (nixie_8, SALIDA);
pinMode (nixie_9, SALIDA);
pinMode (fila_1, SALIDA);
pinMode (fila_2, SALIDA);
pinMode (fila_3, SALIDA);
pinMode (fila_4, SALIDA);
pinMode (fila_5 , SALIDA);
pinMode (fila_6, SALIDA);
//Serial.begin(9600); // NO debe usar seiral println, afectará a los pines de salida D0 y D1
Wire.begin ();
}
void loop () {
// --- ---------------- obtener el valor del reloj ---------------------------
DateTime now =RTC.now ();
hora =ahora.hora ();
minuto =ahora.minuto ();
segundo =ahora.segundo ();
/ / ------------------- muestra el número de reloj ----------------------
int j; // segundo número desde la derecha
int k; // primer número desde la derecha
j =segundo / 10;
k =segundo% 10;
// ----------- muestra el primer número del segundo
off_all ();
on_number (0, k + 2);
delay (time_on);
// ----------- muestra el segundo número de segundo
off_all ();
on_number (1, j + 2);
delay (time_on);

j =minuto / 10;
k =minuto% 10;
// ----------- muestra el primer número del minuto
off_all ();
on_number (14, k + 2);
delay (time_on);
// ----------- muestra el segundo número de minuto
off_all ();
on_number (15, j + 2 );
delay (time_on);
j =hora / 10;
k =hora% 10;
// ----------- mostrar primero número de hora
off_all ();
on_number (16, k + 2);
delay (time_on);
// ----------- muestra el segundo número de hora
off_all ();
on_number (17, j + 2 );
delay (time_on);
}
void on_number (int fila, int nixie) {
digitalWrite (fila, HIGH);
digitalWrite (nixie, HIGH );
}
void off_all () {
digitalWrite (fila_1, BAJO);
digitalWrite (fila_2, BAJO);
digitalWrite (fila_3, BAJO);
escritura digital (fila_4, BAJA);
escritura digital (fila_5, BAJA);
escritura digital (fila_6, BAJA);
escritura digital (nixie_0, BAJA);
escritura digital (nixie_1 , LOW);
digitalWrite (nixie_2, LOW);
digitalWrite (nixie_3, LOW);
digitalWrite (nixie_4, LOW);
digitalWrite (nixie_5, LOW);
digitalWrite (nixie_6, LOW);
digitalWrite (nixie_7, LOW);
digitalWrite (nixie_8, LOW);
digitalWrite (nixie_9, LOW);
delayMicroseconds (400); // para evitar el efecto "fantasma" en otro tubo
}

Básicamente, el código se obtendrá en tiempo real del módulo DS3231 y se mostrará en el tubo 6 nixie a través del chip de optoaislamiento.

Paso 3. Construye el circuito

Esto es solo un experimento, así que hice todo en una placa de pruebas. Afortunadamente, funciona a la primera, no hay problema

En el siguiente paso, intentaré hacer un reloj nixie en una caja de MDF con una buena decoración, para poder ponerlo en mi habitación.

Código

  • Fragmento de código n. ° 1
Fragmento de código n. ° 1 Texto sin formato
 // Canal de Youtube:engineer2you # incluye  #include "DS3231.h" RTClib RTC; DS3231 Reloj; int hora; int minuto; int segundo; const int nixie_0 =2; const int nixie_1 =3; const int nixie_2 =4; const int nixie_3 =5; const int nixie_4 =6; const int nixie_5 =7; const int nixie_6 =8; const int nixie_7 =9; const int nixie_8 =10; const int nixie_9 =11; const int fila_1 =0; const int fila_2 =1; const int row_3 =14; const int row_4 =15; const int row_5 =16; const int row_6 =17; const int time_on =2; void setup () {pinMode (nixie_0, OUTPUT); pinMode (nixie_1, SALIDA); pinMode (nixie_2, SALIDA); pinMode (nixie_3, SALIDA); pinMode (nixie_4, SALIDA); pinMode (nixie_5, SALIDA); pinMode (nixie_6, SALIDA); pinMode (nixie_7, SALIDA); pinMode (nixie_8, SALIDA); pinMode (nixie_9, SALIDA); pinMode (fila_1, SALIDA); pinMode (fila_2, SALIDA); pinMode (fila_3, SALIDA); pinMode (fila_4, SALIDA); pinMode (fila_5, SALIDA); pinMode (fila_6, SALIDA); //Serial.begin(9600); // NO debe usar seiral println, afectará a los pines de salida D0 y D1 Wire.begin ();} void loop () {// ------------------- obtener el valor del reloj --------------------------- DateTime ahora =RTC.now (); hora =ahora.hora (); minuto =ahora.minuto (); segundo =ahora.segundo (); // ------------------- muestra el número de reloj ---------------------- int j; // segundo número desde la derecha int k; // primer número por la derecha j =segundo / 10; k =segundo% 10; // ----------- muestra el primer número del segundo off_all (); on_number (0, k + 2); delay (time_on); // ----------- muestra el segundo número del segundo off_all (); on_number (1, j + 2); delay (time_on); j =minuto / 10; k =minuto% 10; // ----------- muestra el primer número de minutos off_all (); on_number (14, k + 2); delay (time_on); // ----------- muestra el segundo número de minuto off_all (); on_number (15, j + 2); delay (time_on); j =hora / 10; k =hora% 10; // ----------- muestra el primer número de horas off_all (); on_number (16, k + 2); delay (time_on); // ----------- muestra el segundo número de horas off_all (); on_number (17, j + 2); delay (time_on);} void on_number (int fila, int nixie) {digitalWrite (fila, HIGH); escritura digital (nixie, ALTA);} void off_all () {escritura digital (fila_1, BAJA); digitalWrite (fila_2, BAJA); digitalWrite (fila_3, BAJA); digitalWrite (fila_4, BAJA); digitalWrite (fila_5, BAJA); digitalWrite (fila_6, BAJA); digitalWrite (nixie_0, BAJO); digitalWrite (nixie_1, BAJO); digitalWrite (nixie_2, BAJO); digitalWrite (nixie_3, BAJO); digitalWrite (nixie_4, BAJO); digitalWrite (nixie_5, BAJO); digitalWrite (nixie_6, BAJO); digitalWrite (nixie_7, BAJO); digitalWrite (nixie_8, BAJO); digitalWrite (nixie_9, BAJO); delayMicroseconds (400); // para evitar el efecto "fantasma" en otro tubo} 

Proceso de manufactura

  1. Reloj de visión pov de Arduino
  2. El reloj IV9 Numitron más simple de bricolaje con Arduino
  3. Diseño de arnés con E3.series
  4. Reloj de palabras simple (Arduino)
  5. Reloj Arduino con tiempos de oración islámicos
  6. Reloj maestro
  7. Controlar el aceptador de monedas con Arduino
  8. Arduino Temp. Monitor y reloj en tiempo real con pantalla 3.2
  9. ¡Arduino con Bluetooth para controlar un LED!
  10. Hacer un reloj Nixie con Arduino en caja de madera MDF
  11. Reloj despertador simple con DS1302 RTC