Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Manufacturing Technology >> Processo de manufatura

Relógio Nixie com Arduino | Design mais simples

Componentes e suprimentos

Arduino UNO
× 1
Peças eletrônicas UTSOURCE
× 1

Sobre este projeto





Depois de um longo dia de trabalho, finalmente consegui fazer um relógio Nixie com Arduino e chip de opto-isolamento, sem necessidade de driver Nixie, que é difícil de comprar.


Assista ao vídeo para instruções completas:

Lista de peças para fazer o projeto:

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

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

3. Chip opto-acoplador TLP627

4. Módulo DC de 12VDC para 390VDC https://amzn.to/30kpdK9

5. Breadboard https://amzn.to/2uCrnsW

6. Módulo de relógio em tempo real DS3231 https://amzn.to/2SIyEzI

Compre componente eletrônico em utsource.net





Etapa 1. Projeto do circuito


O circuito usa chip de opto-isolamento para controlar o tubo Nixie (usando 150 VCC) pelo Arduino (usando 5 VCC). Por conexão de matriz, então precisamos de apenas 16 saídas do Arduino para controlar 60 luzes de tubo 6 nixie. O módulo de relógio em tempo real DS3231 é usado para manter a hora (até mesmo desligar a energia), é comunicado com o Arduino pela rede I2C. O Arduino lerá em tempo real e, em seguida, ligará / desligará as luzes nixie por sequência em alta frequência para fazer com que os olhos humanos vejam 6 números como permanentes





Etapa 2. Código do Arduino

  // Canal do Youtube:engineer2you 
#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 row_1 =0;
const int row_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, OUTPUT);
pinMode (nixie_2, OUTPUT);
pinMode (nixie_3, OUTPUT);
pinMode (nixie_4, OUTPUT);
pinMode ( nixie_5, OUTPUT);
pinMode (nixie_6, OUTPUT);
pinMode (nixie_7, OUTPUT);
pinMode (nixie_8, OUTPUT);
pinMode (nixie_9, OUTPUT);
pinMode (row_1, OUTPUT);
pinMode (row_2, OUTPUT);
pinMode (row_3, OUTPUT);
pinMode (row_4, OUTPUT);
pinMode (row_5 , OUTPUT);
pinMode (row_6, OUTPUT);
//Serial.begin(9600); // NÃO deve usar seiral println, isso afetará o pino de saída D0 e D1
Wire.begin ();
}
void loop () {
// --- ---------------- obter o valor do relógio ---------------------------
DateTime now =RTC.now ();
hora =now.hour ();
minuto =now.minute ();
segundo =now.second ();
/ / ------------------- mostrar número do relógio ----------------------
int j; // segundo número da direita
int k; // primeiro número da direita
j =segundo / 10;
k =segundo% 10;
// ----------- mostra o primeiro número do segundo
off_all ();
on_number (0, k + 2);
delay (time_on);
// ----------- mostra o segundo número de segundos
off_all ();
on_number (1, j + 2);
atraso (time_on);

j =minuto / 10;
k =minuto% 10;
// ----------- mostra o primeiro número do minuto
off_all ();
on_number (14, k + 2);
delay (time_on);
// ----------- mostra o segundo número de minutos
off_all ();
on_number (15, j + 2 );
atraso (time_on);
j =hora / 10;
k =hora% 10;
// ----------- mostrar primeiro número de horas
off_all ();
on_number (16, k + 2);
delay (time_on);
// ----------- mostra o segundo número de hora
off_all ();
on_number (17, j + 2 );
delay (time_on);
}
void on_number (int row, int nixie) {
digitalWrite (row, HIGH);
digitalWrite (nixie, HIGH) );
}
void off_all () {
digitalWrite (row_1, LOW);
digitalWrite (row_2, LOW);
digitalWrite (row_3, LOW);
digitalWrite (row_4, LOW);
digitalWrite (row_5, LOW);
digitalWrite (row_6, LOW);
digitalWrite (nixie_0, LOW);
digitalWrite (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);
atrasoMicrosegundos (400); // para evitar o efeito "fantasma" em outro tubo
}

Basicamente, o código obterá em tempo real do módulo DS3231 e será mostrado ao tubo 6 nixie por meio do chip de opto-isolamento.





Etapa 3. Construir o circuito


Isso é apenas um experimento, então fiz tudo em breadboard. Felizmente, funciona na primeira vez, sem problemas

Na próxima etapa, tentarei fazer um relógio nixie em caixa de MDF com uma boa decoração, para poder colocá-lo no meu quarto.

Código

  • Snippet de código # 1
Snippet de código # 1 Texto simples
 // Canal do Youtube:engineer2you # 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 linha_1 =0; const int row_2 =1; const int nixie_8 =10; const int nixie_9 =11; const int row_1 =0; const int row_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, OUTPUT); pinMode (nixie_2, OUTPUT); pinMode (nixie_3, OUTPUT); pinMode (nixie_4, OUTPUT); pinMode (nixie_5, OUTPUT); pinMode (nixie_6, OUTPUT); pinMode (nixie_7, OUTPUT); pinMode (nixie_8, OUTPUT); pinMode (nixie_9, OUTPUT); pinMode (row_1, OUTPUT); pinMode (linha_2, SAÍDA); pinMode (row_3, OUTPUT); pinMode (row_4, OUTPUT); pinMode (row_5, OUTPUT); pinMode (row_6, OUTPUT); //Serial.begin(9600); // NÃO deve usar seiral println, isso afetará a saída dos pinos D0 e D1 Wire.begin ();} void loop () {// ------------------- obter o valor do relógio --------------------------- DateTime now =RTC.now (); hora =agora.horas (); minuto =agora.minuto (); segundo =agora.segundo (); // ------------------- mostra o número do relógio ---------------------- int j; // segundo número da direita int k; // primeiro número da direita j =segundo / 10; k =segundo% 10; // ----------- mostra o primeiro número do segundo off_all (); on_number (0, k + 2); atraso (time_on); // ----------- mostra o segundo número de segundos off_all (); on_number (1, j + 2); atraso (time_on); j =minuto / 10; k =minuto% 10; // ----------- mostra o primeiro número de minutos off_all (); on_number (14, k + 2); atraso (time_on); // ----------- mostra o segundo número de minutos off_all (); on_number (15, j + 2); atraso (time_on); j =hora / 10; k =hora% 10; // ----------- mostra o primeiro número de horas off_all (); on_number (16, k + 2); atraso (time_on); // ----------- mostra o segundo número de horas off_all (); on_number (17, j + 2); atraso (time_on);} void on_number (int row, int nixie) {digitalWrite (row, HIGH); digitalWrite (nixie, HIGH);} void off_all () {digitalWrite (linha_1, LOW); digitalWrite (linha_2, BAIXO); digitalWrite (row_3, LOW); digitalWrite (row_4, LOW); digitalWrite (row_5, LOW); digitalWrite (row_6, LOW); digitalWrite (nixie_0, LOW); digitalWrite (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); atraso Microssegundos (400); // para evitar o efeito "fantasma" em outro tubo} 

Processo de manufatura

  1. Relógio de visão pov do Arduino
  2. DIY mais simples relógio IV9 Numitron com Arduino
  3. Design de Chicote com E3.series
  4. Simple Word Clock (Arduino)
  5. Relógio Arduino com horas de oração islâmica
  6. Relógio mestre
  7. Aceitar moeda de controle com Arduino
  8. Arduino Temp. Monitor e relógio em tempo real com tela 3.2
  9. Arduino com Bluetooth para controlar um LED!
  10. Despertador simples com DS1302 RTC