Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Productieproces

Nixie-klok met Arduino | Eenvoudigste ontwerp

Componenten en benodigdheden

Arduino UNO
× 1
UTSOURCE elektronische onderdelen
× 1

Over dit project

Na een lange dag werken, heb ik eindelijk succes met het maken van een Nixie-klok met Arduino en opto-isolatiechip, geen Nixie-stuurprogramma nodig dat moeilijk te kopen is.

Bekijk de video voor volledige instructie:

Onderdelenlijst om project te maken:

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

2. Nixie tube 6 stuks https://amzn.to/3aHyJvX

3. Opto-couplerchip TLP627

4. DC step-up module van 12VDC naar 390VDC https://amzn.to/30kpdK9

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

6. Realtime klokmodule DS3231 https://amzn.to/2SIyEzI

Koop elektronische componenten op utsource.net

Stap 1. Circuitontwerp

Het circuit maakt gebruik van een opto-isolatiechip om de Nixie-buis (met 150VDC) door Arduino te besturen (met 5VDC). Door matrixverbinding hebben we dus slechts 16 uitgangen van Arduino nodig om 60 lampen van 6 nixiebuizen te bedienen. De real-time klokmodule DS3231 wordt gebruikt om de tijd bij te houden (zelfs de stroom uit te zetten), deze wordt via het I2C-netwerk met Arduino gecommuniceerd. Arduino leest realtime en schakelt vervolgens nixie-lampen in hoge frequentie in en uit om menselijke ogen 6 nummers als permanent te laten zien

Stap 2. Arduino-code

//Youtube-kanaal:engineer2you
#include
#include "DS3231.h"
RTClib RTC;
DS3231 Clock;
int uur;
int minuut;
int seconde;
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, UITGANG);
pinMode(nixie_6, UITGANG);
pinMode(nixie_7, UITGANG);
pinMode(nixie_8, UITGANG);
pinMode(nixie_9, UITGANG);
pinMode(rij_1, UITGANG);
pinMode(rij_2, UITGANG);
pinMode(rij_3, UITGANG);
pinMode(rij_4, UITGANG);
pinMode(rij_5 , OUTPUT);
pinMode(row_6, OUTPUT);
//Serial.begin (9600); // zou GEEN seiral println moeten gebruiken, het zal effect hebben om pin D0 &D1 uit te voeren
Wire.begin ();
}
void loop () {
//--- ----------------klokwaarde ophalen---------------------------
DateTime nu =RTC.now();
uur =nu.hour();
minuut =nu.minute();
seconde =nu.second();
/ /-------------------kloknummer tonen ----------------------
int J; //tweede getal van rechts
int k; //eerste cijfer van rechts
j =tweede/10;
k =tweede%10;
//-----------toon eerste cijfer van tweede
off_all();
on_number(0,k+2);
delay(time_on);
//----------- toon tweede nummer van seconde
off_all();
on_number(1,j+2);
vertraging(time_on);

j =minuut/10;
k =minuut%10;
//-----------toon eerste nummer van minuut
off_all();
on_number(14,k+2);
vertraging (time_on);
//----------- toon tweede aantal minuten
off_all();
on_number(15,j+2 );
vertraging(time_on);
j =uur/10;
k =uur%10;
//-----------eerst tonen aantal uur
off_all();
on_number (16,k+2);
vertraging (time_on);
//----------- toon tweede aantal uur
off_all();
on_number (17,j+2 );
delay(time_on);
}
void on_number(int row, int nixie){
digitalWrite(rij, 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 , LAAG);
digitalWrite(nixie_2, LAAG);
digitalWrite(nixie_3, LAAG);
digitalWrite(nixie_4, LAAG);
digitalWrite(nixie_5, LAAG);
digitalWrite(nixie_6, LOW);
digitalWrite(nixie_7, LOW);
digitalWrite(nixie_8, LOW);
digitalWrite(nixie_9, LOW);
delayMicroseconds(400); //om het "ghost"-effect op andere buizen te voorkomen
}

Kortom, de code wordt realtime van module DS3231 en wordt via opto-isolatiechip weergegeven aan 6 nixie-buizen.

Stap 3. Bouw het circuit

Dit is slechts een experiment, dus ik heb alles in breadboard gemaakt. Gelukkig werkt het de eerste keer, geen enkel probleem

In de volgende stap zal ik proberen een nixieklok te maken in een MDF-kast met een goede decoratie, zodat ik hem in mijn kamer kan zetten.

Code

  • Codefragment #1
Codefragment #1Platte tekst
//Youtube-kanaal:engineer2you#include #include "DS3231.h"RTClib RTC;DS3231 Clock;int hour;int minute;int second;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 rij_1 =0;const int rij_2 =1; 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, UITGANG); pinMode (nixie_2, UITGANG); pinMode (nixie_3, UITGANG); pinMode (nixie_4, UITGANG); pinMode (nixie_5, UITGANG); pinMode (nixie_6, UITGANG); pinMode (nixie_7, UITGANG); pinMode (nixie_8, UITGANG); pinMode (nixie_9, UITGANG); pinMode(rij_1, UITGANG); pinMode (rij_2, UITGANG); pinMode (rij_3, UITGANG); pinMode (rij_4, UITGANG); pinMode (rij_5, UITGANG); pinMode (rij_6, UITGANG); //Serial.begin (9600); // zou GEEN seiral println moeten gebruiken, het zal effect hebben op de output van pin D0 &D1 Wire.begin ();} ongeldige lus () {//------------------- klokwaarde ophalen -------------------------- DateTime nu =RTC.now(); uur =nu.uur(); minuut =nu.minute(); tweede =nu.tweede(); //-------------------kloknummer tonen ---------------------- int j; // tweede nummer van rechts int k; // eerste getal van rechts j =tweede/10; k =tweede%10; //-----------toon eerste nummer van tweede off_all(); op_nummer(0,k+2); vertraging (tijd_aan); //----------- toon tweede nummer van tweede off_all(); op_nummer(1,j+2); vertraging (tijd_aan); j =minuut/10; k =minuut%10; //-----------toon eerste aantal minuten off_all(); op_nummer (14,k+2); vertraging (tijd_aan); //----------- toon tweede aantal minuten off_all(); op_nummer(15,j+2); vertraging (tijd_aan); j =uur/10; k =uur%10; //-----------toon eerste aantal uur off_all(); op_nummer (16,k+2); vertraging (tijd_aan); //----------- toon tweede aantal uur off_all(); op_nummer (17,j+2); vertraging (time_on);} ongeldig op_nummer (int rij, int nixie) {digitalWrite (rij, HOOG); digitalWrite(nixie, HIGH);}void off_all(){ digitalWrite(row_1, LOW); digitalWrite(rij_2, LAAG); digitalWrite(rij_3, LAAG); digitalWrite(rij_4, LAAG); digitalWrite(rij_5, LAAG); digitalWrite(rij_6, LAAG); digitalWrite(nixie_0, LAAG); digitalWrite(nixie_1, LAAG); digitalWrite(nixie_2, LAAG); digitalWrite(nixie_3, LAAG); digitalWrite(nixie_4, LAAG); digitalWrite(nixie_5, LAAG); digitalWrite(nixie_6, LAAG); digitalWrite(nixie_7, LAAG); digitalWrite(nixie_8, LAAG); digitalWrite(nixie_9, LAAG); vertraging Microseconden (400); //om het "ghost"-effect naar een andere tube te voorkomen}

Productieproces

  1. Arduino pov vision-klok
  2. DIY eenvoudigste IV9 Numitron-klok met Arduino
  3. Maak gebruik van ontwerp met E3.series
  4. Eenvoudige Word Clock (Arduino)
  5. Arduino klok met islamitische gebedstijden
  6. Hoofdklok
  7. Bedien muntvangers met Arduino
  8. Arduino Temp. Monitor en realtimeklok met 3.2-weergave
  9. Arduino met Bluetooth om een ​​LED te bedienen!
  10. Maak een Nixie-klok met Arduino in een houten behuizing van MDF
  11. Eenvoudige wekker met DS1302 RTC