Innehållsförteckning:

Nixie Bargraph Clock: 6 steg (med bilder)
Nixie Bargraph Clock: 6 steg (med bilder)

Video: Nixie Bargraph Clock: 6 steg (med bilder)

Video: Nixie Bargraph Clock: 6 steg (med bilder)
Video: Vintage Display Technology Pt.5: A Nixie-Bargraph Meter-Clock 2024, Juli
Anonim
Nixie Bargraph Clock
Nixie Bargraph Clock
Nixie Bargraph Clock
Nixie Bargraph Clock

Redigera 9/11/17 Med hjälp av Kickstarter har jag nu släppt ett kit för detta klocksats! Den innehåller ett förarkort och 2 Nixie IN-9-rör. Allt du behöver lägga till är din egen Arduino/Raspberry Pi/annan. Satsen kan hittas men klicka på denna länk!

Så jag har sett massor av Nixie -klockor online och tyckte att de såg bra ut, men jag ville inte spendera $ 100+ på en klocka som inte ens inkluderar rören! Så med lite elektronikkunskap jagade jag runt de olika nixie -rören och kretsar. Jag ville göra något lite annorlunda än det stora utbudet av generellt sett ganska lika nixie -klockor. Till slut valde jag att använda Nixie IN-9 stapeldiagramrör. Dessa är långa tunna rör och höjden på den glödande plasma beror på strömmen genom rören. Röret till vänster är i timsteg och röret till höger är i minuter. De har bara två ledningar och gör att bygga en krets mer rakt fram. I denna design finns det en timme och en minut rör, med höjderna på plasma i varje rör representerar den aktuella tiden. Tiden hålls med en Adafruit Trinket mikrokontroller och realtidsklocka (RTC).

Steg 1: Montering av delarna

Montering av delar
Montering av delar

Det finns två sektioner, först elektroniken och för det andra montering och efterbehandling. De elektroniska komponenter som krävs är: Adafruit Trinket 5V - $ 7,95 (www.adafruit.com/products/1501) Adafruit RTC - $ 9 (www.adafruit.com/products/264) 2x Nixie IN -9 stapeldiagram ~ $ 3 per rör på eBay 1x Nixie 140v strömförsörjning ~ $ 12 på eBay 4x 47 uF elektrolytkondensatorer 4x 3,9 kOhm motstånd 2x 1 kOhm potentiometer 2x Transistor MJE340 NPN högspänning ~ $ 1 styck 1x LM7805 5v regulator ~ $ 1 1x 2,1 mm uttag ~ $ 1 1x projektlåda med kretskort ~ $ 5 1x 12v DC strömförsörjning (jag hittade en gammal från en sedan länge glömd gadget) Lödning, anslutningskabel osv. Montering: Jag bestämde mig för att montera elektroniken i en liten svart plastprojektor och montera sedan rören på en antik klockrörelse. För att markera timmen och minuterna använde jag koppartråd som lindades runt rören. Monteringsdelar: Antik klockrörelse - $ 10 eBay Koppartråd - $ 3 eBay Hot limpistol

Steg 2: Krets

Krets
Krets
Krets
Krets
Krets
Krets
Krets
Krets

Det första steget är att bygga Nixie -strömförsörjningen. Detta kom som ett trevligt litet kit från eBay, inklusive lite kretskort och behövde bara att komponenterna löddes till brädet. Denna speciella matning är variabel mellan 110-180v, styrbar med en liten kruka på brädet. Använd en liten skruvmejsel för att justera effekten till ~ 140v. Innan jag gick hela vägen ville jag testa mina nixie -rör, för att göra detta byggde jag en enkel testkrets med ett rör, transistor och en 10k potentiometer som jag hade lagt runt. Som framgår av den första figuren är 140v -matningen ansluten till röranoden (höger ben). Katoden (vänster ben) ansluts sedan till kollektorbenet på MJE340 -transistorn. En 5v -matning är ansluten till en 10k -kruka som delar sig till jord i transistorbasen. Slutligen ansluts transistorsändaren via ett 300 ohm strömbegränsande motstånd till jord. Om du inte är bekant med transistorer och elektronik spelar det ingen roll, bara koppla upp den och ändra plasmahöjden med grytvredet! När det fungerar kan vi titta på att göra vår klocka. Hela klockkretsen kan ses i det andra kretsschemat. Efter lite undersökningar hittade jag en perfekt handledning på Adafruit learn -webbplatsen som gjorde nästan exakt vad jag ville göra. Handledningen finns här: https://learn.adafruit.com/trinket-powered-analog-m… Denna handledning använder en Trinket-kontroller och en RTC för att styra två analoga förstärkare. Använda pulsbreddsmodulation (PWM) för att styra nålens nedböjning. Spolen på förstärkarmätaren medelvärderar PWM till en effektiv likströmssignal. Men om vi använder PWM direkt för att driva rören betyder högfrekvensmodulationen att plasmastången inte kommer att vara "fastklämd" till rörets bas och du kommer att ha en svävande stång. För att undvika detta tog jag i genomsnitt PWM med ett lågpassfilter med en lång tidskonstant för att få en nästan likströmssignal. Detta har en avstängningsfrekvens på 0,8 Hz, det är bra eftersom vi uppdaterar klockan bara var 5: e sekund. Dessutom, eftersom stapeldiagram har en begränsad livslängd och kan behöva bytas ut och inte varje rör är exakt detsamma inkluderade jag en 1k kruka efter röret. Detta gör att tweaking kan justera plasmahöjden för de två rören. För att koppla upp prydnaden till realtidsklockan (RCT), anslut Trinket-pin 0 till RTC-SDA, Trinket-pin 2 till RTC-SCL och Trinket-5v till RTC-5v och Trinket GND till RTC-marken. För den här delen kan det vara till hjälp att se klockanvisningen för Adafruit, https://learn.adafruit.com/trinket-powered-analog-…. När Trinket och RTC är korrekt anslutna, kabela upp nixie -rören, transistorerna, filtren etc på en brödbräda, följ noggrant kretsschemat.

För att få RTC och Trinket att prata måste du först ladda ner rätt bibliotek från Adafruit Github. Du behöver TinyWireM.h och TInyRTClib.h. Först vill vi kalibrera rören, ladda upp kalibreringsskissen i slutet av denna instruerbara. Om ingen av skisserna i slutet fungerar, prova Adafruit -klockskissen. Jag har justerat Adafruit -klockskissen för att fungera mest effektivt med nixie -rören, men Adafruit -skissen kommer att fungera bra.

Steg 3: Kalibrering

Kalibrering
Kalibrering

När du har laddat upp kalibreringsskissen måste graderingen markeras.

Det finns tre lägen för kalibreringen, det första ställer in båda nixie -rören till maximal effekt. Använd detta för att justera potten så att plasmahöjden i båda rören är densamma och att den är något under maxhöjden. Detta säkerställer att svaret är linjärt över hela klockområdet.

Den andra inställningen kalibrerar minutröret. Den växlar mellan 0, 15, 30, 45 och 60 minuter var 5: e sekund.

Den sista inställningen upprepar detta för varje timme. Till skillnad från Adafruit -klockan rör sig timindikatorn i fasta steg en gång i timmen. Det var svårt att få ett linjärt svar för varje timme när man använde en analog mätare.

När du har justerat potten ladda upp skissen för att kalibrera i minuter. Ta den tunna koppartråden och klipp en kort längd. Vik runt detta röret och vrid ihop de två ändarna. Skjut detta till rätt position och använd en varm limpistol för att placera en liten klick lim för att hålla på rätt plats. Upprepa detta för varje minut och timme.

Jag glömde att ta några bilder på den här processen men du kan se på bilderna hur tråden sitter fast. Fast jag använde mycket mindre lim bara för att fästa tråden.

Steg 4: Montering och efterbehandling

Montering och efterbehandling
Montering och efterbehandling
Montering och efterbehandling
Montering och efterbehandling
Montering och efterbehandling
Montering och efterbehandling

När alla rör är kalibrerade och fungerar är det nu dags att permanent göra kretsen och montera på någon form av bas. Jag väljer en antik klockrörelse eftersom jag gillade blandningen av antik, 60 -tal och modern teknik. När du flyttar från brödbrädan till bandbrädan, var mycket försiktig och ta dig tid att se till att alla anslutningar görs. Lådan jag köpte var lite liten men med lite noggrann placering och lite tvingande lyckades jag få allt att passa. Jag borrade ett hål i sidan för strömförsörjningen och ett annat för nixie -ledningarna. Jag täckte nixie -trådarna med värmekrympning för att undvika kortslutningar. När elektroniken är monterad i lådan klistrar du fast den på baksidan av klockrörelsen. För att montera rören använde jag varmt lim och limmade spetsarna på den snodda tråden på metallen, var noga med att se till att de var raka. Jag använde förmodligen för mycket lim men det märks inte särskilt mycket. Det kan vara något som kan förbättras i framtiden. När allt är monterat, ladda Nixie -klockskissen i slutet av denna instruerbara och beundra din underbara nya klocka!

Steg 5: Arduino Sketch - Kalibrering

#define HOUR_PIN 1 // Tidsvisning via PWM på Trinket GPIO #1

#define MINUTE_PIN 4 // Minutvisning via PWM på Trinket GPIO #4 (via timer 1 -samtal)

int timmar = 57; int minuter = 57; // ställ in minsta pwm

void setup () {pinMode (HOUR_PIN, OUTPUT); pinMode (MINUTE_PIN, OUTPUT); PWM4_init (); // ställa in PWM -utgångar

}

void loop () {// Använd detta för att justera nixie -krukorna för att se till att den maximala rörhöjden matchar analogWrite (HOUR_PIN, 255); analogWrite4 (255); // Använd detta för att kalibrera minutsteg

/*

analogWrite4 (57); // minut 0 fördröjning (5000); analogWrite4 (107); // minut 15 fördröjning (5000); analogWrite4 (156); // minut 30 fördröjning (5000); analogWrite4 (206); // minut 45 fördröjning (5000); analogWrite4 (255); // minut 60 fördröjning (5000);

*/

// Använd detta för att kalibrera timsteg /*

analogWrite (HOUR_PIN, 57); // 57 är den minsta utsignalen och motsvarar 1 am/pm fördröjning (4000); // fördröjning 4 sekunder analogWrite (HOUR_PIN, 75); // 75 är utsignalen som motsvarar 2 am/pm fördröjning (4000); analogWrite (HOUR_PIN, 93); // 93 är utsignalen som motsvarar 3 am/pm fördröjning (4000); analogWrite (HOUR_PIN, 111); // 111 är utsignalen som motsvarar 4 am/pm fördröjning (4000); analogWrite (HOUR_PIN, 129); // 129 är utsignalen som motsvarar 5 am/pm fördröjning (4000); analogWrite (HOUR_PIN, 147); // 147 är utsignalen som motsvarar 6 am/pm fördröjning (4000); analogWrite (HOUR_PIN, 165); // 165 är utsignalen som motsvarar fördröjning 7 am/pm (4000); analogWrite (HOUR_PIN, 183); // 183 är utsignalen som motsvarar fördröjning 8 am/pm (4000); analogWrite (HOUR_PIN, 201); // 201 är utsignalen som motsvarar 9 am/pm fördröjning (4000); analogWrite (HOUR_PIN, 219); // 219 är utsignalen som motsvarar 10 am/pm fördröjning (4000); analogWrite (HOUR_PIN, 237); // 237 är utdata som motsvarar 11 am/pm fördröjning (4000); analogWrite (HOUR_PIN, 255); // 255 är utsignalen som motsvarar 12 am/pm

*/

}

void PWM4_init () {// Konfigurera PWM på Trinket GPIO #4 (PB4, pin 3) med Timer 1 TCCR1 = _BV (CS10); // ingen förkalkningsmedel GTCCR = _BV (COM1B1) | _BV (PWM1B); // rensa OC1B vid jämför OCR1B = 127; // driftcykel initialiseras till 50% OCR1C = 255; // frekvens}

// Funktion för att tillåta analogWrite på Trinket GPIO #4 void analogWrite4 (uint8_t duty_value) {OCR1B = duty_value; // tullen kan vara 0 till 255 (0 till 100%)}

Steg 6: Arduino Sketch - Klocka

// Adafruit Trinket analog mätarklocka

// Datum- och tidsfunktioner med en DS1307 RTC ansluten via I2C och TinyWireM lib

// Ladda ner dessa bibliotek från Adafruit's Github -arkiv och // installera i din Arduino Libraries -katalog #include #include

// För felsökning, okommenterad seriekod, använd en FTDI -vän med RX -stiftet anslutet till stift 3 // Du behöver ett terminalprogram (t.ex. freeware PuTTY för Windows) inställt på // USB -porten på FTDI -vännen vid 9600 baud. Komentera inte Seriella kommandon för att se vad som händer // #definiera HOUR_PIN 1 // Timmarsvisning via PWM på Trinket GPIO #1 #define MINUTE_PIN 4 // Minutvisning via PWM på Trinket GPIO #4 (via timer 1 -samtal) // SendOnlySoftwareSerial Serial (3); // Seriell överföring på Trinket Pin 3 RTC_DS1307 rtc; // Ställ in realtidsklocka

void setup () {pinMode (HOUR_PIN, OUTPUT); // definiera PWM -mätarpinnar som utgångar pinMode (MINUTE_PIN, OUTPUT); PWM4_init (); // Ställ in timer 1 för att fungera PWM på Trinket Pin 4 TinyWireM.begin (); // Börja I2C rtc.begin (); // Starta DS1307 realtidsklocka //Serial.begin(9600); // Börja seriell bildskärm vid 9600 baud om (! Rtc.isrunning ()) {//Serial.println("RTC INTE körs! "); // följande rad anger RTC till datum och tid då denna skiss sammanställdes rtc.adjust (DateTime (_ DATE_, _TIME_)); }}

void loop () {uint8_t hourvalue, minutevalue; uint8_t timspänning, minutspänning;

DateTime nu = rtc.now (); // Hämta RTC -info hourvalue = now.hour (); // Få timmen om (timvärde> 12) timvärde -= 12; // Denna klocka är 12 timmars minutvärde = nu.minut (); // Få protokollet

minutevoltage = map (minutevalue, 1, 60, 57, 255); // Konvertera minuter till PWM -driftscykel

if (timvärde == 1) {analogWrite (HOUR_PIN, 57); } if (timvärde == 2) {analogWrite (HOUR_PIN, 75); // varje timme motsvarar +18} if (timvärde == 3) {analogWrite (HOUR_PIN, 91); }

if (timvärde == 4) {analogWrite (HOUR_PIN, 111); } if (timvärde == 5) {analogWrite (HOUR_PIN, 126); } if (timvärde == 6) {analogWrite (HOUR_PIN, 147); } if (timvärde == 7) {analogWrite (HOUR_PIN, 165); } if (timvärde == 8) {analogWrite (HOUR_PIN, 183); } if (timvärde == 9) {analogWrite (HOUR_PIN, 201); } if (timvärde == 10) {analogWrite (HOUR_PIN, 215); } if (timvärde == 11) {analogWrite (HOUR_PIN, 237); } if (timvärde == 12) {analogWrite (HOUR_PIN, 255); }

analogWrite4 (minutevoltage); // minut analogskrivning kan förbli densamma som kartläggningen fungerar // kod för att sätta processorn i vila kan vara att föredra - vi kommer att fördröja fördröjning (5000); // kontrollera tiden var 5: e sekund. Du kan ändra detta. }

void PWM4_init () {// Konfigurera PWM på Trinket GPIO #4 (PB4, pin 3) med Timer 1 TCCR1 = _BV (CS10); // ingen förkalkningsmedel GTCCR = _BV (COM1B1) | _BV (PWM1B); // rensa OC1B vid jämför OCR1B = 127; // driftcykel initialiseras till 50% OCR1C = 255; // frekvens}

// Funktion för att tillåta analogWrite på Trinket GPIO #4 void analogWrite4 (uint8_t duty_value) {OCR1B = duty_value; // tullen kan vara 0 till 255 (0 till 100%)}

Rekommenderad: