Obsah:

Hodiny Nixie Bargraph: 6 kroků (s obrázky)
Hodiny Nixie Bargraph: 6 kroků (s obrázky)

Video: Hodiny Nixie Bargraph: 6 kroků (s obrázky)

Video: Hodiny Nixie Bargraph: 6 kroků (s obrázky)
Video: EleksMaker EleksTube IPS 6-Bit IPS Retro Glows Analog Nixie Tube elekstube clock 2024, Červenec
Anonim
Barokní hodiny Nixie
Barokní hodiny Nixie
Barokní hodiny Nixie
Barokní hodiny Nixie

Upravit 9/11/17 S pomocí Kickstarteru jsem nyní vydal sadu pro tuto stavebnici hodin! Obsahuje desku řidiče a 2 elektronky Nixie IN-9. Vše, co potřebujete přidat, je vaše vlastní Arduino/Raspberry Pi/ostatní. Soupravu najdete, ale kliknutím na tento odkaz!

Takže jsem viděl spoustu hodin Nixie online a myslel jsem si, že vypadají skvěle, ale nechtěl jsem utratit více než 100 $ za hodiny, které ani nezahrnují elektronky! Takže s trochou znalostí elektroniky jsem lovil kolem různých nixie elektronek a obvody. Chtěl jsem udělat něco trochu jiného než velký rozsah obecně docela podobných nixie hodin. Nakonec jsem se rozhodl použít bargrafové trubice Nixie IN-9. Jedná se o dlouhé tenké trubice a výška zářícího plazmatu závisí na proudu trubicemi. Trubice vlevo je v hodinových přírůstcích a trubice vpravo je v minutách. Mají pouze dva přívody, takže budování okruhu je přímočařejší. V tomto provedení je k dispozici hodinová a minutová trubice, přičemž výšky plazmatu v každé trubici představují aktuální čas. Čas je udržován pomocí mikrokontroléru Adafruit Trinket a hodin reálného času (RTC).

Krok 1: Sestavení dílů

Sestavení dílů
Sestavení dílů

Existují dvě části, první elektronika a za druhé montáž a dokončení. Požadované elektronické součásti jsou: Adafruit Trinket 5V - 7,95 $ (www.adafruit.com/products/1501) Adafruit RTC - 9 $ (www.adafruit.com/products/264) 2x bargraf Nixie IN -9 ~ 3 $ za tubu na eBay 1x Nixie 140v napájecí zdroj ~ 12 $ na eBay 4x 47 uF elektrolytické kondenzátory 4x 3,9 kOhm odpory 2x 1 kOhm potenciometr 2x tranzistor MJE340 NPN vysoké napětí ~ $ 1 každý 1x LM7805 5v regulátor ~ $ 1 1x zásuvka 2,1 mm ~ $ 1 1x projektová skříň s PCB ~ $ 5 1x Napájení 12 V DC (našel jsem starý z nějakého dávno zapomenutého gadgetu) Pájka, propojovací drát atd. Montáž: Rozhodl jsem se namontovat elektroniku do malé černé plastové krabičky na projekt a poté namontovat trubice na starožitný hodinový strojek. K označení hodiny a minuty jsem použil měděný drát omotaný kolem trubek. Montážní díly: Starožitný hodinový strojek - 10 $ měděný drát eBay - 3 $ horká lepicí pistole eBay

Krok 2: Okruh

Obvod
Obvod
Obvod
Obvod
Obvod
Obvod
Obvod
Obvod

Prvním krokem je vybudování napájecího zdroje Nixie. Přišlo to jako pěkná malá souprava od eBay, včetně malého PCB a jen bylo potřeba komponenty připájet k desce. Tato konkrétní dodávka je variabilní mezi 110-180v, ovladatelná malým hrncem na desce. Pomocí malého šroubováku upravte výstup na ~ 140v. Než jsem šel na celou cestu, chtěl jsem vyzkoušet své nixie elektronky, abych to udělal, postavil jsem jednoduchý testovací obvod pomocí jedné trubice, tranzistoru a 10k potenciometru, kolem kterého jsem ležel. Jak je vidět na prvním obrázku, napájení 140 V je připojeno k trubkové anodě (pravá noha). Katoda (levá noha) je poté připojena ke kolektorové noze tranzistoru MJE340. Napájení 5v je připojeno k 10k hrnce rozdělujícímu na zem do základny tranzistoru. Nakonec je tranzistorový vysílač připojen přes odpor omezující proud 300 ohmů k zemi. Pokud nejste obeznámeni s tranzistory a elektronikou, na tom nezáleží, jednoduše je zapojte a změňte výšku plazmy knoflíkem hrnce! Jakmile to funguje, můžeme se podívat na výrobu hodin. Celý obvod hodin je vidět na druhém schématu zapojení. Po nějakém výzkumu jsem našel perfektní tutoriál na webových stránkách Adafruit learn, který dělal téměř přesně to, co jsem chtěl dělat. Výukový program naleznete zde: https://learn.adafruit.com/trinket-powered-analog-m… Tento výukový program používá ovladač Trinket a RTC k ovládání dvou analogových ampérmetrů. Pomocí pulzně šířkové modulace (PWM) k řízení vychýlení jehly. Cívka ampérmetru průměruje PWM na efektivní stejnosměrný signál. Pokud však použijeme PWM přímo k pohonu elektronek, pak vysokofrekvenční modulace znamená, že plazmová lišta nezůstane „připnutá“k základně elektronky a budete mít vznášející se tyč. Abych se tomu vyhnul, zprůměroval jsem PWM pomocí dolnoprůchodového filtru s dlouhou časovou konstantou, abych získal téměř stejnosměrný signál. To má mezní frekvenci 0,8 Hz, to je v pořádku, protože čas hodin aktualizujeme pouze každých 5 sekund. Navíc, protože bargrafy mají omezenou životnost a mohou vyžadovat výměnu, a ne každá trubka je úplně stejná, zařadil jsem za trubku 1k hrnec. To umožňuje vyladit nastavení výšky plazmy pro dvě trubice. Pro zapojení cetky k hodinám reálného času (RCT) připojte Trinket-pin 0 k RTC-SDA, Trinket-pin 2 k RTC-SCL a Trinket-5v k RTC-5v a Trinket GND k uzemnění RTC. V této části může být užitečné zobrazit návod k hodinám Adafruit, https://learn.adafruit.com/trinket-powered-analog-…. Jakmile jsou Trinket a RTC správně zapojeny, zapojte pečlivě nixie trubice, tranzistory, filtry atd. Na prkénko podle schématu zapojení.

Abyste mohli mluvit o RTC a Trinketu, musíte si nejprve stáhnout správné knihovny z Adafruit Github. Potřebujete TinyWireM.h a TInyRTClib.h. Nejprve chceme zkalibrovat zkumavky, nahrajte náčrtek kalibrace na konci tohoto pokynu. Pokud žádný z náčrtků na konci práce, zkuste náčrtek hodin Adafruit. Vylepšil jsem skicu hodin Adafruit, aby co nejefektivněji fungovala s trubičkami nixie, ale skica Adafruit bude fungovat dobře.

Krok 3: Kalibrace

Kalibrace
Kalibrace

Jakmile nahrajete kalibrační skicu, je třeba označit dílky.

Pro kalibraci existují tři režimy, první nastaví obě nixie elektronky na maximální výkon. Použijte k nastavení hrnce tak, aby výška plazmy v obou zkumavkách byla stejná a aby byla mírně pod maximální výškou. Tím je zajištěna lineární odezva v celém rozsahu hodin.

Druhé nastavení kalibruje elektronku minut. Mění se mezi 0, 15, 30, 45 a 60 minutami každých 5 sekund.

Poslední nastavení to opakuje pro každou hodinu. Na rozdíl od hodin Adafruit se ukazatel hodin pohybuje v pevných krocích jednou za hodinu. Při použití analogového měřiče bylo obtížné získat lineární odezvu pro každou hodinu.

Jakmile hrnec upravíte, nahrajte skicu a několik minut kalibrujte. Vezměte tenký měděný drát a zkraťte krátkou délku. Omotejte toto kolem trubice a stočte oba konce k sobě. Posuňte to do správné polohy a pomocí horké lepicí pistole umístěte malou kapku lepidla, aby zůstala na správném místě. Opakujte to pro každou minutu a hodinu.

Zapomněl jsem vyfotit tento proces, ale na obrázcích vidíte, jak je drát připevněn. I když jsem použil mnohem méně lepidla, jen abych připevnil drát.

Krok 4: Montáž a dokončení

Montáž a povrchová úprava
Montáž a povrchová úprava
Montáž a povrchová úprava
Montáž a povrchová úprava
Montáž a povrchová úprava
Montáž a povrchová úprava

Jakmile jsou všechny zkumavky zkalibrovány a fungují, nyní je čas trvale vytvořit obvod a namontovat ho na nějakou formu základny. Vybírám si starožitný hodinový strojek, protože se mi líbil mix starožitných, šedesátých a moderních technologií. Při přenosu z prkénka na páskovou desku buďte velmi opatrní a věnujte si čas zajištění všech spojení. Krabice, kterou jsem si koupil, byla trochu malá, ale s opatrným umístěním a trochou nutkání se mi podařilo vše přizpůsobit. Do boku jsem vyvrtal otvor pro napájení a další pro nixie vývody. Nixie dráty jsem zakryl tepelným smršťováním, abych se vyhnul zkratům. Když je elektronika namontována v krabici, přilepte ji k zadní části hodinového strojku. K montáži trubek jsem použil horké lepidlo a lepil hroty krouceného drátu na kov, přičemž jsem dával pozor, aby byly rovné. Pravděpodobně jsem použil příliš mnoho lepidla, ale není to příliš nápadné. Může to být něco, co lze v budoucnu zlepšit. Když je vše namontováno, načtěte skicu hodin Nixie na konci tohoto pokynu a obdivujte své krásné nové hodiny!

Krok 5: Arduino Sketch - kalibrace

#define HOUR_PIN 1 // Zobrazení hodin přes PWM na Trinket GPIO #1

#define MINUTE_PIN 4 // Minutové zobrazení přes PWM na Trinket GPIO #4 (přes časovač 1 hovory)

int hodiny = 57; int minuty = 57; // nastavení minimálního pwm

neplatné nastavení () {pinMode (HOUR_PIN, OUTPUT); pinMode (MINUTE_PIN, OUTPUT); PWM4_init (); // nastavení PWM výstupů

}

void loop () {// Toto použijte k vyladění hrnců nixie, abyste se ujistili, že maximální výška trubice odpovídá analogWrite (HOUR_PIN, 255); analogWrite4 (255); // Toto použijte ke kalibraci minutových přírůstků

/*

analogWrite4 (57); // zpoždění 0 minut (5000); analogWrite4 (107); // zpoždění 15 minut (5000); analogWrite4 (156); // zpoždění 30 minut (5000); analogWrite4 (206); // zpoždění 45 minut (5000); analogWrite4 (255); // zpoždění 60 minut (5000);

*/

// Toto použijte ke kalibraci hodinových přírůstků /*

analogWrite (HOUR_PIN, 57); // 57 je minimální výkon a odpovídá zpoždění 1 hod/min (4000); // zpoždění 4 sekundy analogWrite (HOUR_PIN, 75); // 75 je výstup, který odpovídá zpoždění 2 hod/min (4000); analogWrite (HOUR_PIN, 93); // 93 je výstup, který odpovídá zpoždění 3 am/min (4000); analogWrite (HOUR_PIN, 111); // 111 je výstup, který odpovídá zpoždění 4 hodiny/min (4000); analogWrite (HOUR_PIN, 129); // 129 je výstup, který odpovídá zpoždění 5 am/min (4000); analogWrite (HOUR_PIN, 147); // 147 je výstup, který odpovídá zpoždění 6 am/min (4000); analogWrite (HOUR_PIN, 165); // 165 je výstup, který odpovídá zpoždění 7 am/min (4000); analogWrite (HOUR_PIN, 183); // 183 je výstup, který odpovídá zpoždění 8 am/min (4000); analogWrite (HOUR_PIN, 201); // 201 je výstup, který odpovídá zpoždění 9 hodin/min (4000); analogWrite (HOUR_PIN, 219); // 219 je výstup, který odpovídá zpoždění 10 am/min (4000); analogWrite (HOUR_PIN, 237); // 237 je výstup, který odpovídá zpoždění 11 am/min (4000); analogWrite (HOUR_PIN, 255); // 255 je výstup, který odpovídá 12 am/min

*/

}

neplatné PWM4_init () {// Nastavení PWM na Trinket GPIO #4 (PB4, pin 3) pomocí časovače 1 TCCR1 = _BV (CS10); // žádný prescaler GTCCR = _BV (COM1B1) | _BV (PWM1B); // vymazat OC1B při porovnání OCR1B = 127; // inicializace pracovního cyklu na 50% OCR1C = 255; // frekvence}

// Funkce umožňující analogWrite na Trinket GPIO #4 neplatné analogWrite4 (uint8_t duty_value) {OCR1B = duty_value; // clo může být 0 až 255 (0 až 100%)}

Krok 6: Arduino Sketch - Hodiny

// Analogové měřicí hodiny Adafruit Trinket

// Funkce data a času pomocí DS1307 RTC připojeného přes I2C a lib TinyWireM

// Stáhněte si tyto knihovny z úložiště Github Adafruit a // nainstalujte do adresáře knihoven Arduino #include #include

// Pro ladění odkomentujte sériový kód, použijte FTDI Friend s jeho RX pinem připojeným na Pin 3 // Budete potřebovat terminálový program (například freeware PuTTY pro Windows) nastavený na // USB port FTDI friend na 9600 přenosová rychlost. Odkomentujte sériové příkazy, abyste zjistili, co se děje // #definovat HOUR_PIN 1 // hodinové zobrazení přes PWM na Trinket GPIO #1 #define MINUTE_PIN 4 // minutové zobrazení přes PWM na Trinket GPIO #4 (přes volání časovače 1) // SendOnlySoftwareSériový sériový (3); // Sériový přenos na Trinket Pin 3 RTC_DS1307 rtc; // Nastavení hodin reálného času

neplatné nastavení () {pinMode (HOUR_PIN, OUTPUT); // definujte kolíky měřiče PWM jako výstupy pinMode (MINUTE_PIN, OUTPUT); PWM4_init (); // Nastavit časovač 1, aby fungoval PWM na Trinket Pin 4 TinyWireM.begin (); // Začněte I2C rtc.begin (); // Spusťte hodiny reálného času DS1307 //Serial.begin(9600); // Zahájit sériový monitor na 9600 baudů, pokud (! Rtc.isrunning ()) {//Serial.println("RTC NENÍ spuštěn! "); // následující řádek nastaví RTC na datum a čas, kdy byla tato skica sestavena rtc.adjust (DateTime (_ DATE_, _TIME_)); }}

void loop () {uint8_t hodina, minutevalue; uint8_t hodinové napětí, minutové napětí;

DateTime now = rtc.now (); // Získejte informace o RTC hourvalue = now.hour (); // Získejte hodinu if (hourvalue> 12) hourvalue -= 12; // Tyto hodiny jsou 12hodinová minutevalue = now.minute (); // Získejte zápis

minutevoltage = mapa (minutevalue, 1, 60, 57, 255); // Převod minut na pracovní cyklus PWM

if (hourvalue == 1) {analogWrite (HOUR_PIN, 57); } if (hourvalue == 2) {analogWrite (HOUR_PIN, 75); // každá hodina odpovídá +18} if (hodinová hodnota == 3) {analogWrite (HOUR_PIN, 91); }

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

analogWrite4 (minutové napětí); // minutový analogový zápis může zůstat stejný jako při mapování // může být vhodnější kód pro uspání procesoru - zpoždění zpomalíme (5 000); // kontrola času každých 5 sekund. Můžete to změnit. }

neplatné PWM4_init () {// Nastavení PWM na Trinket GPIO #4 (PB4, pin 3) pomocí časovače 1 TCCR1 = _BV (CS10); // žádný prescaler GTCCR = _BV (COM1B1) | _BV (PWM1B); // vymazat OC1B při porovnání OCR1B = 127; // inicializace pracovního cyklu na 50% OCR1C = 255; // frekvence}

// Funkce umožňující analogWrite na Trinket GPIO #4 neplatné analogWrite4 (uint8_t duty_value) {OCR1B = duty_value; // clo může být 0 až 255 (0 až 100%)}

Doporučuje: