Tartalomjegyzék:

Nixie oszlopdiagram: 6 lépés (képekkel)
Nixie oszlopdiagram: 6 lépés (képekkel)

Videó: Nixie oszlopdiagram: 6 lépés (képekkel)

Videó: Nixie oszlopdiagram: 6 lépés (képekkel)
Videó: 🚀 Első benyomások | ICARUS (PC - Steam) 2024, November
Anonim
Nixie Bargraph óra
Nixie Bargraph óra
Nixie Bargraph óra
Nixie Bargraph óra

Szerkesztés 9/11/17A Kickstarter segítségével most kiadtam egy készletet ehhez az óra készlethez! Tartalmaz egy vezetőlemezt és 2 Nixie IN-9 csövet. Mindössze annyit kell tennie, hogy saját Arduino/Raspberry Pi/egyéb. A készlet megtalálható, de kattintson erre a linkre!

Tehát sok Nixie órát láttam az interneten, és azt hittem, hogy jól néznek ki, de nem akartam 100 dollárt+ költeni egy órára, amely még a csöveket sem tartalmazza! Így egy kis elektronikai ismerettel vadásztam a különböző nixie csövek körül és áramkörök. Szerettem volna valami mást tenni, mint az általában meglehetősen hasonló kinézetű nixie órák nagy választéka. Végül a Nixie IN-9 bargraph csövek mellett döntöttem. Ezek hosszú vékony csövek, és az izzó plazma magassága a csöveken átfolyó áramtól függ. A bal oldali cső órás lépésekben, a jobb oldali cső percekben van megadva. Csak két vezetékük van, és így az áramkör építése egyenesebb. Ebben a kialakításban egy óra és egy perc cső van, a plazma magassága minden csőben az aktuális időt jelenti. Az időt egy Adafruit Trinket mikrokontroller és valós idejű óra (RTC) segítségével tartják.

1. lépés: Az alkatrészek összeszerelése

Az alkatrészek összeszerelése
Az alkatrészek összeszerelése

Két szakasz van, először az elektronika, másodsorban a szerelés és a befejezés. A szükséges elektronikus alkatrészek a következők: Adafruit Trinket 5V - 7,95 USD (www.adafruit.com/products/1501) Adafruit RTC - 9 USD (www.adafruit.com/products/264) 2x Nixie IN -9 oszlopdiagram ~ 3 USD csövönként az eBay -en 1x Nixie 140V -os tápegység ~ 12 USD az eBay -en 12V egyenáramú tápegység (találtam egy régit egy rég elfelejtett szerkentyűből) Forrasztás, csatlakozó vezeték stb. Szerelés: Úgy döntöttem, hogy az elektronikát egy kis fekete műanyag projektdobozba szerelem, majd a csöveket antik órajelre rögzítem. Az óra és a perc jelölésére rézhuzalt használtam a csövek köré. Szerelő alkatrészek: Antik óra mozgatás - $ 10 eBay rézhuzal - $ 3 eBay forró ragasztópisztoly

2. lépés: Áramkör

Áramkör
Áramkör
Áramkör
Áramkör
Áramkör
Áramkör
Áramkör
Áramkör

Az első lépés a Nixie tápegység kiépítése. Ez egy szép kis készlet az eBay -től, beleértve egy kis PCB -t, és csak az alkatrészeket kellett a táblához forrasztani. Ez a tápellátás 110-180V között változtatható, és egy kis edénnyel a táblán szabályozható. Egy kis csavarhúzóval állítsa a kimenetet ~ 140v -ra. Mielőtt az egész útra indultam volna, ki akartam próbálni a nixie csöveimet, ehhez felépítettem egy egyszerű tesztáramkört egy cső, tranzisztor és egy 10k potenciométer segítségével. Amint az az első ábrán látható, a 140 V -os tápegység a csőanódhoz (jobb láb) van rögzítve. A katód (bal láb) ezután az MJE340 tranzisztor kollektor lábához csatlakozik. Az 5 V -os tápellátás egy 10 k -es edényhez van csatlakoztatva, amely a földre oszlik a tranzisztor -bázisba. Végül a tranzisztoros emitter egy 300 ohmos áramkorlátozó ellenálláson keresztül csatlakozik a földhöz. Ha nem ismeri a tranzisztorokat és az elektronikát, akkor ez nem igazán számít, csak kösse be, és változtassa meg a plazma magasságát az edénygombbal! Ha ez működik, megnézhetjük az óránk elkészítését. A teljes óraáramkör a második kapcsolási rajzon látható. Némi kutatás után találtam egy tökéletes oktatóanyagot az Adafruit Learn weboldalon, és szinte pontosan azt csináltam, amit akartam. Az oktatóanyag itt található: https://learn.adafruit.com/trinket-powered-analog-m… Ez a bemutató Trinket vezérlőt és RTC-t használ két analóg erősítő mérésére. Az impulzusszélesség -moduláció (PWM) segítségével szabályozhatja a tű elhajlását. Az erősítőmérő tekercsének átlaga a PWM -ből hatékony egyenáramú jel. Ha azonban a PWM -et közvetlenül a csövek meghajtására használjuk, akkor a nagyfrekvenciás moduláció azt jelenti, hogy a plazmasáv nem marad "rögzítve" a cső aljához, és lebegő rúdja lesz. Ennek elkerülése érdekében átlagoltam a PWM -et aluláteresztő szűrővel, hosszú időállandóval, hogy majdnem egyenáramú jelet kapjak. Ennek a vágási frekvenciája 0,8 Hz, ez rendben van, mivel csak 5 másodpercenként frissítjük az órát. Ezenkívül, mivel az oszlopdiagramok véges élettartamúak, és szükségük lehet cserére, és nem minden cső pontosan ugyanaz, a cső után 1 ezer edényt is mellékeltem. Ez lehetővé teszi a két cső plazmagasságának beállítását. A csecsebecsét a valós idejű órához (RCT) csatlakoztatva csatlakoztassa a 0-as csecsebecsét az RTC-SDA-hoz, a csecsebecsét-2-es csatlakozót az RTC-SCL-hez és a Trinket-5v-t az RTC-5v-hez, a Trinket GND-t pedig az RTC-földhöz. Ebben a részben hasznos lehet az Adafruit óra utasításának megtekintése, https://learn.adafruit.com/trinket-powered-analog-…. Ha a Trinket és az RTC megfelelően be van kötve, kösse össze a nixie csöveket, tranzisztorokat, szűrőket stb.

Ahhoz, hogy az RTC és a Trinket beszéljen, először le kell töltenie a megfelelő könyvtárakat az Adafruit Github -ból. Szüksége van a TinyWireM.h és a TInyRTClib.h fájlokra. Először a csöveket akarjuk kalibrálni, töltsük fel a kalibrálási vázlatot ennek az utasításnak a végén. Ha a végén egyik vázlat sem működik, próbálja ki az Adafruit óra vázlatát. Megcsíptem az Adafruit óra vázlatát, hogy a leghatékonyabban működjön a nixie csövekkel, de az Adafruit vázlata jól fog működni.

3. lépés: Kalibrálás

Kalibráció
Kalibráció

Miután feltöltötte a kalibrációs vázlatot, meg kell jelölni az osztásokat.

A kalibrálásnak három módja van, az első mindkét nixie csövet a maximális kimenetre állítja. Ezzel állítsa be az edényt úgy, hogy a plazma magassága mindkét csőben azonos legyen, és kissé a maximális magasság alatt legyen. Ez biztosítja, hogy a válasz lineáris legyen a teljes óratartományban.

A második beállítás kalibrálja a perccsövet. 0, 15, 30, 45 és 60 perc között változik 5 másodpercenként.

Az utolsó beállítás ezt megismétli minden óránkénti növekménynél. Az Adafruit órától eltérően az órajelző óránként egyszer mozog fix lépésekben. Analóg mérő használata esetén nehéz volt lineáris választ kapni minden órára.

Miután beállította az edényt, töltse fel a vázlatot perc kalibráláshoz. Fogja meg a vékony rézhuzalt, és vágjon rövid hosszúságot. Tekerje körbe a csövet, és csavarja össze a két végét. Csúsztassa ezt a megfelelő helyzetbe, és forró ragasztópisztoly segítségével tegyen egy kis folt ragasztót a megfelelő helyre. Ismételje meg ezt minden perc és óra növekménynél.

Elfelejtettem képeket készíteni erről a folyamatról, de a képeken látható, hogyan van rögzítve a vezeték. Bár sokkal kevesebb ragasztót használtam csak a huzal rögzítéséhez.

4. lépés: Szerelés és befejezés

Szerelés és befejezés
Szerelés és befejezés
Szerelés és befejezés
Szerelés és befejezés
Szerelés és befejezés
Szerelés és befejezés

Miután a csövek kalibráltak és működnek, itt az ideje, hogy véglegesen elkészítse az áramkört, és rögzítse valamilyen alapra. Az antik óraművet választom, mivel tetszett az antik, a 60 -as évek és a modern technológia keveréke. Amikor a kenyértábláról a szalaglapra vált, legyen nagyon óvatos, és szánjon időt arra, hogy minden csatlakozás létrejöjjön. A doboz, amit vettem, kissé kicsi volt, de némi körültekintő elhelyezéssel és kis erőltetéssel sikerült mindent beilleszteni. Fúrtam egy lyukat az oldalán a tápegységhez és egy másikat a nixie vezetékekhez. Hideg zsugorodással borítottam a nixie vezetékeket, hogy elkerüljem a rövidzárlatot. Amikor az elektronikát a dobozba szerelik, ragasztja az óra mozgásának hátuljához. A csövek rögzítéséhez forró ragasztót használtam, és a csavart huzal hegyeit a fémhez ragasztottam, ügyelve arra, hogy egyenesek legyenek. Valószínűleg túl sok ragasztót használtam, de nem túl észrevehető. Lehet, hogy a jövőben lehet ezen javítani. Ha mindez fel van szerelve, töltse be a Nixie óra vázlatát az útmutató végén, és csodálja meg szép új óráját!

5. lépés: Arduino vázlat - kalibrálás

#define HOUR_PIN 1 // Órakijelzés PWM -en keresztül a Trinket GPIO #1 -en

#define MINUTE_PIN 4 // Perc kijelzés PWM -en keresztül a Trinket GPIO #4 -en (az 1. időzítő hívásain keresztül)

int óra = 57; int perc = 57; // a minimális pwm beállítása

void setup () {pinMode (HOUR_PIN, OUTPUT); pinMode (MINUTE_PIN, OUTPUT); PWM4_init (); // PWM kimenetek beállítása

}

void loop () {// Ezzel csípheti a nixie edényeket, hogy megbizonyosodjon arról, hogy a maximális csőmagasság megegyezik az analogWrite (HOUR_PIN, 255); analógWrite4 (255); // Ezzel kalibrálhatja a percenkénti lépéseket

/*

analógWrite4 (57); // perc 0 késleltetés (5000); analogWrite4 (107); // perc 15 késleltetés (5000); analógWrite4 (156); // perc 30 késleltetés (5000); analógWrite4 (206); // perc 45 késleltetés (5000); analógWrite4 (255); // perc 60 késleltetés (5000);

*/

// Ezzel kalibrálhatja az óra léptékeit /*

analogWrite (HOUR_PIN, 57); // 57 a minimális kimenet, és 1 óra/perc késleltetésnek felel meg (4000); // 4 másodperc késleltetés analogWrite (HOUR_PIN, 75); // 75 az a kimenet, amely 2:00/perc késleltetésnek felel meg (4000); analogWrite (HOUR_PIN, 93); // 93 az a kimenet, amely 3:00/perc késleltetésnek felel meg (4000); analogWrite (HOUR_PIN, 111); // 111 az a kimenet, amely 4:00/perc késleltetésnek felel meg (4000); analogWrite (HOUR_PIN, 129); // 129 a kimenet, amely 5:00/perc késleltetésnek felel meg (4000); analogWrite (HOUR_PIN, 147); // 147 az a kimenet, amely 6:00/perc késleltetésnek felel meg (4000); analogWrite (HOUR_PIN, 165); // 165 az a kimenet, amely 7:00/perc késleltetésnek felel meg (4000); analogWrite (HOUR_PIN, 183); // 183 az a kimenet, amely 8:00/perc késésnek felel meg (4000); analogWrite (HOUR_PIN, 201); // 201 az a kimenet, amely 9:00/perc késleltetésnek felel meg (4000); analogWrite (HOUR_PIN, 219); // 219 az a kimenet, amely 10:00/perc késleltetésnek felel meg (4000); analogWrite (HOUR_PIN, 237); // 237 a kimenet, amely 11:00/perc késésnek felel meg (4000); analogWrite (HOUR_PIN, 255); // 255 az a kimenet, amely 12:00/percnek felel meg

*/

}

void PWM4_init () {// PWM beállítása a Trinket GPIO #4 -en (PB4, 3. tű) az 1. időzítő használatával TCCR1 = _BV (CS10); // nincs előskálázó GTCCR = _BV (COM1B1) | _BV (PWM1B); // az OC1B törlése összehasonlításkor OCR1B = 127; // a munkaciklus inicializálása 50% -ra OCR1C = 255; // frekvencia}

// AnalogWrite engedélyezése a Trinket GPIO #4 -n void analogWrite4 (uint8_t duty_value) {OCR1B = duty_value; // a vám 0-255 lehet (0-100%)}

6. lépés: Arduino vázlat - óra

// Adafruit Trinket analóg mérőóra

// Dátum és idő funkciók az I2C és a TinyWireM lib segítségével csatlakoztatott DS1307 RTC használatával

// Töltse le ezeket a könyvtárakat az Adafruit Github tárházából és // telepítse az Arduino Libraries könyvtárába #include #include

// A hibakeresés, a megjegyzés nélküli sorozatkód használatához használjon FTDI Friend -t, amelynek RX érintkezője a 3. tűhöz van csatlakoztatva // Szüksége lesz egy terminálprogramra (például a PuTTY for Windows ingyenes verziójára), amely az FTDI barát // USB -portjára van beállítva baud. Végezze el a megjegyzéseket a soros parancsokból, hogy lássa, mi a helyzet // #határozza meg a HOUR_PIN 1 // Órakijelzést PWM -en keresztül a Trinket GPIO #1 #define MINUTE_PIN 4 // Percmegjelenítésen a PWM -en keresztül a Trinket GPIO #4 -en (az 1. időzítő hívásain keresztül) // SendOnlySoftwareSerial Serial (3); // Soros átvitel a Trinket Pin 3 csapon RTC_DS1307 rtc; // Valós idejű óra beállítása

void setup () {pinMode (HOUR_PIN, OUTPUT); // definiálja a PWM mérőcsapokat kimenetként pinMode (MINUTE_PIN, OUTPUT); PWM4_init (); // Állítsa be az 1. időzítőt a PWM működésére a Trinket Pin 4 TinyWireM.begin (); // Begin I2C rtc.begin (); // Kezdje a DS1307 valós idejű órát // Sorozat.kezdet (9600); // Indítsa el a soros monitort 9600 baudon, ha (! Rtc.isrunning ()) {//Serial.println("RTC nem fut! "); // a következő sor az RTC -t a vázlat összeállításának dátumára és időpontjára állítja be rtc.adjust (DateTime (_ DATE_, _TIME_)); }}

void loop () {uint8_t óraérték, percérték; uint8_t órafeszültség, percfeszültség;

DateTime now = rtc.now (); // Az RTC információ lekérése hourvalue = now.hour (); // Az óra lekérése, ha (óraérték> 12) óraérték -= 12; // Ez az óra 12 órás percérték = most.perc (); // Szerezd meg a jegyzőkönyvet

percfeszültség = térkép (percérték, 1, 60, 57, 255); // Percek konvertálása PWM munkaciklusra

if (óraérték == 1) {analóg Ír (HOUR_PIN, 57); } if (óraérték == 2) {analóg Ír (ÓRAJEL, 75); // minden óra +18} -nak felel meg, ha (óraérték == 3) {analóg Ír (HOUR_PIN, 91); }

if (óraérték == 4) {analóg Ír (ÓRAJEL, 111); } if (óraérték == 5) {analóg Ír (ÓRAJEL, 126); } if (óraérték == 6) {analóg Ír (ÓRAJEL, 147); } if (óraérték == 7) {analóg Ír (ÓRAJEL, 165); } if (óraérték == 8) {analóg Ír (ÓRAJEL, 183); } if (óraérték == 9) {analógírás (ÓRA_PIN, 201); } if (óraérték == 10) {analóg Ír (ÓRAJEL, 215); } if (óraérték == 11) {analóg Ír (ÓRAJEL, 237); } if (óraérték == 12) {analóg Ír (ÓRAJEL, 255); }

analogWrite4 (percfeszültség); // a perc analóg írás ugyanaz maradhat, mint a leképezés // // a processzor alvó állapotba helyezéséhez szükséges kód lehet előnyösebb - késleltetjük a késleltetést (5000); // ellenőrizze az időt 5 másodpercenként. Ezen változtathat. }

void PWM4_init () {// PWM beállítása a Trinket GPIO #4 -en (PB4, 3. tű) az 1. időzítő használatával TCCR1 = _BV (CS10); // nincs előskálázó GTCCR = _BV (COM1B1) | _BV (PWM1B); // az OC1B törlése összehasonlításkor OCR1B = 127; // a munkaciklus inicializálása 50% -ra OCR1C = 255; // frekvencia}

// AnalogWrite engedélyezése a Trinket GPIO #4 -n void analogWrite4 (uint8_t duty_value) {OCR1B = duty_value; // a vám 0-255 lehet (0-100%)}

Ajánlott: