Բովանդակություն:

Nixie Bargraph ockամացույց. 6 քայլ (նկարներով)
Nixie Bargraph ockամացույց. 6 քայլ (նկարներով)

Video: Nixie Bargraph ockամացույց. 6 քայլ (նկարներով)

Video: Nixie Bargraph ockամացույց. 6 քայլ (նկարներով)
Video: Nixie Tube Clock on 6 IN-14 / Часы на лампах ИН-14 (6 ламп). 2024, Հուլիսի
Anonim
Nixie Bargraph ockամացույց
Nixie Bargraph ockամացույց
Nixie Bargraph ockամացույց
Nixie Bargraph ockամացույց

Խմբագրել 9/11/17 Kickstarter- ի օգնությամբ ես այժմ թողարկել եմ այս ժամացույցի հավաքածուի հավաքածու: Այն ներառում է վարորդի տախտակ և 2 Nixie IN-9 խողովակ: Այն, ինչ անհրաժեշտ է ավելացնել, ձեր սեփական Arduino/Raspberry Pi/այլ է: Հավաքածուն կարելի է գտնել, բայց կտտացնելով այս հղմանը:

Այսպիսով, ես տեսել եմ Nixie- ի բազմաթիվ ժամացույցներ առցանց և կարծում էի, որ դրանք հիանալի տեսք ունեն, սակայն ես չէի ուզում 100 դոլար+ ծախսել մի ժամացույցի վրա, որը նույնիսկ խողովակները չի ներառում: Այսպիսով, փոքր էլեկտրոնիկայի իմացությամբ ես որսացի տարբեր nixie խողովակների շուրջը: և սխեմաներ: Ես ուզում էի ինչ -որ բան այլ կերպ դարձնել, ընդհանուր առմամբ, բավականին նման նիքսի ժամացույցների մեծ տեսականիից: Ի վերջո, ես որոշեցի օգտագործել Nixie IN-9 բարգրաֆ խողովակները: Սրանք երկար բարակ խողովակներ են, և փայլող պլազմայի բարձրությունը կախված է խողովակների միջով հոսանքից: Ձախ կողմում գտնվող խողովակը ժամային աճով է, իսկ աջը `րոպեներով: Նրանք ունեն միայն երկու հաղորդալար, ուստի միացում կառուցելը դարձնում են ավելի ուղիղ առաջ: Այս նախագծում կա ժամ ու րոպե խողովակ, որի պլազմայի բարձրությունները յուրաքանչյուր խողովակում ներկայացնում են ընթացիկ ժամանակը: Timeամանակը պահվում է Adafruit Trinket միկրոկոնտրոլերի և իրական ժամանակի ժամացույցի (RTC) միջոցով:

Քայլ 1: Մասերի հավաքում

Մասերի հավաքում
Մասերի հավաքում

Կան երկու բաժին ՝ առաջինը էլեկտրոնիկան և երկրորդը ՝ տեղադրումը և հարդարման աշխատանքները: Պահանջվող էլեկտրոնային բաղադրիչներն են ՝ Adafruit Trinket 5V - $ 7.95 (www.adafruit.com/products/1501) Adafruit RTC - $ 9 (www.adafruit.com/products/264) 2x Nixie IN -9 bargraph 3 $ 3 մեկ խողովակի համար eBay 1x Nixie 140v էլեկտրամատակարարում eBay- ում 4x 47 uF էլեկտրոլիտային կոնդենսատորներ 4x 3.9 kOhm ռեզիստորներ 2x 1 kOhm պոտենցիոմետր 2x տրանզիստոր MJE340 NPN բարձր լարման ~ $ 1 յուրաքանչյուր 1x LM7805 5v կարգավորիչ ~ $ 1 1x 2.1 մմ վարդակից ~ $ 1 1x նախագծային տուփ 12 վ DC հոսանքի աղբյուր (ես գտա հին սարքը վաղուց մոռացված սարքից) oldոդիչ, լար, միացում և այլն: Ես որոշեցի էլեկտրոնիկան տեղադրել փոքրիկ սև պլաստմասե նախագծի տուփի մեջ, այնուհետև խողովակները միացնել ժամացույցի անտիկ շարժման վրա: Theամը և րոպեները նշելու համար ես օգտագործեցի պղնձե մետաղալար ՝ խողովակների շուրջ փաթաթված: Մոնտաժող մասեր. Անտիկ ժամացույցի շարժում - $ 10 eBay պղնձե մետաղալար - $ 3 eBay տաք սոսինձ ատրճանակ

Քայլ 2: Շղթա

Շրջան
Շրջան
Շրջան
Շրջան
Շրջան
Շրջան
Շրջան
Շրջան

Առաջին քայլը Nixie էլեկտրամատակարարման կառուցումն է: Սա եկավ որպես գեղեցիկ փոքրիկ հավաքածու eBay- ից, ներառյալ մի փոքր PCB և պարզապես անհրաժեշտ էր, որ բաղադրիչները կպչեին տախտակին: Այս հատուկ մատակարարումը փոփոխական է 110-180 վ-ի միջև, վերահսկելի է տախտակի վրա փոքր կաթսայով: Փոքր պտուտակահանի օգնությամբ ելքը կարգավորեք v 140 վ -ի: Մինչև ամբողջ ճանապարհը անցնելը, ես ուզում էի փորձարկել իմ nixie խողովակները, դրա համար ես կառուցեցի մի պարզ փորձնական միացում ՝ օգտագործելով մեկ խողովակ, տրանզիստոր և 10k պոտենցիոմետր, որոնց մոտ դրված էի: Ինչպես երեւում է առաջին նկարում, 140 վ սնուցումը ամրացված է խողովակի անոդին (աջ ոտք): Այնուհետեւ կաթոդը (ձախ ոտքը) միացված է MJE340 տրանզիստորի կոլեկտորային ոտքին: 5 վ լարման մատակարարումը միացված է 10k կաթսայի հետ, որը գետնին բաժանվում է տրանզիստորային բազայի: Ի վերջո, տրանզիստորային թողարկիչը միանում է 300 օմ հոսանքի սահմանափակող դիմադրության միջոցով գետնին: Եթե դուք ծանոթ չեք տրանզիստորների և էլեկտրոնիկայի հետ, դա իրականում կարևոր չէ, պարզապես լարեք այն և փոխեք պլազմայի բարձրությունը կաթսայի բռնակով: Երբ դա աշխատի, մենք կարող ենք նայել ժամացույցի պատրաստմանը: Լրիվ ժամացույցի միացումը կարելի է տեսնել երկրորդ սխեմայի սխեմայում: Որոշ հետազոտություններից հետո ես գտա կատարյալ ձեռնարկ Adafruit learn կայքում ՝ կատարելով գրեթե այն, ինչ ուզում էի անել: Ձեռնարկը կարելի է գտնել այստեղ ՝ https://learn.adafruit.com/trinket-powered-analog-m… Այս ձեռնարկը օգտագործում է Trinket վերահսկիչ և RTC ՝ երկու անալոգային ամպաչափեր վերահսկելու համար: Օգտագործելով զարկերակի լայնության մոդուլյացիան (PWM) ՝ ասեղի շեղումը վերահսկելու համար: Ամպաչափի կծիկը միջինում PWM- ն դարձնում է արդյունավետ DC ազդանշան: Այնուամենայնիվ, եթե մենք PWM- ն ուղղակիորեն օգտագործում ենք խողովակները քշելու համար, ապա բարձր հաճախականության մոդուլյացիան նշանակում է, որ պլազմայի սանդղակը «սեղմված» չի մնա խողովակի հիմքին, և դուք կունենաք սավառնող բար: Դրանից խուսափելու համար ես միջին հաշվով PWM- ն օգտագործել եմ ցածր անցման ֆիլտրով ՝ երկար ժամանակ հաստատուն, գրեթե DC ազդանշան ստանալու համար: Սա անջատված հաճախականություն է 0.8 Հց, դա լավ է, քանի որ մենք ժամացույցի ժամանակը թարմացնում ենք միայն 5 վայրկյանը մեկ: Բացի այդ, քանի որ գծագրերն ունեն սահմանափակ կյանքի տևողություն և կարող են փոխարինման կարիք ունենալ, և ոչ բոլոր խողովակներն են միևնույնը, խողովակից հետո 1 կճուճ ներառեցի: Սա թույլ է տալիս փոփոխել երկու խողովակների համար պլազմայի բարձրությունը: Իրական ժամանակի ժամացույցին (RCT) միացնելու համար միացրեք Trinket-pin 0-ը RTC-SDA- ին, Trinket-pin 2-ը `RTC-SCL- ին և Trinket-5v- ին` RTC-5v- ին, իսկ Trinket GND- ը `RTC գետնին: Այս մասի համար կարող է օգտակար լինել դիտել Adafruit ժամացույցի հրահանգը ՝ https://learn.adafruit.com/trinket-powered-analog-…: Երբ Trinket- ը և RTC- ն ճիշտ միացված են, մետաղալարով միացրեք nixie խողովակները, տրանզիստորները, ֆիլտրերը և այլն հացահատիկի վրա `ուշադիր հետևելով սխեմայի գծապատկերին:

RTC- ի և Trinket- ի հետ խոսելու համար նախ անհրաժեշտ է ներբեռնել Adafruit Github- ի ճիշտ գրադարանները: Ձեզ անհրաժեշտ են TinyWireM.h և TInyRTClib.h: Սկզբում մենք ցանկանում ենք տրամաչափել խողովակները, բեռնել տրամաչափման ուրվագիծը այս հրահանգի վերջում: Եթե վերջում ոչ մի ուրվագիծ չի աշխատում, ապա փորձեք Adafruit ժամացույցի ուրվագիծը: Ես շտկել եմ Adafruit ժամացույցի էսքիզը, որպեսզի ամենաարդյունավետը աշխատի nixie խողովակների հետ, բայց Adafruit- ի ուրվագիծը լավ կաշխատի:

Քայլ 3: Կալիբրացում

Կալիբրացիա
Կալիբրացիա

Theշգրտման ուրվագիծը վերբեռնելուց հետո ավարտական նշումները պետք է նշվեն:

Կալիբրացիայի երեք եղանակ կա, առաջինը երկու nixie խողովակները սահմանում է առավելագույն ելքի: Օգտագործեք սա ՝ կաթսան այնպես կարգավորելու համար, որ երկու խողովակներում պլազմայի բարձրությունը նույնը լինի և այն առավելագույն բարձրությունից փոքր -ինչ ցածր լինի: Սա ապահովում է, որ պատասխանը գծային լինի ժամացույցի ամբողջ տիրույթում:

Երկրորդ կարգավորումը ճշգրտում է րոպեների խողովակը: Այն փոխվում է 0, 15, 30, 45 և 60 րոպեների ընթացքում յուրաքանչյուր 5 վայրկյանում:

Վերջին կարգավորումը կրկնում է սա յուրաքանչյուր ժամ ավելացման համար: Ի տարբերություն Adafruit- ի ժամացույցի, ժամացույցի ցուցիչը շարժվում է ֆիքսված աճով `ժամը մեկ անգամ: Դժվար էր յուրաքանչյուր ժամի համար գծային պատասխան ստանալ անալոգային հաշվիչ օգտագործելիս:

Կաթսան կարգավորելուց հետո էսքիզը վերբեռնեք րոպեների տրամաչափման համար: Վերցրեք բարակ պղնձե մետաղալարը և կտրեք կարճ երկարությամբ: Փաթաթեք այս խողովակի շուրջը և երկու ծայրերը միասին ոլորեք: Սահեցրեք այն ճիշտ դիրքի վրա և տաք սոսինձի ատրճանակի օգնությամբ տեղադրեք սոսինձի մի փոքրիկ կտոր ՝ ճիշտ տեղում պահելու համար: Կրկնեք սա յուրաքանչյուր րոպեի և ժամի ավելացման համար:

Ես մոռացել եմ այս գործընթացի որևէ լուսանկար անել, բայց լուսանկարներից կարող եք տեսնել, թե ինչպես է մետաղալարն ամրացված: Թեև ես շատ ավելի քիչ սոսինձ էի օգտագործում միայն մետաղալարը ամրացնելու համար:

Քայլ 4: Տեղադրում և ավարտում

Մոնտաժում և ավարտում
Մոնտաժում և ավարտում
Մոնտաժում և ավարտում
Մոնտաժում և ավարտում
Մոնտաժում և ավարտում
Մոնտաժում և ավարտում

Երբ խողովակները բոլորը ճշգրտվեն և աշխատեն, այժմ ժամանակն է մշտապես կատարել միացումը և ամրացնել բազայի որևէ ձևի: Ես ընտրում եմ ժամացույցի հնաոճ շարժում, քանի որ ինձ դուր եկավ հնաոճ, 60 -ականների և ժամանակակից տեխնոլոգիաների խառնուրդը: Հացաթղթից շերտի տախտակ տեղափոխելիս եղեք շատ զգույշ և մի շտապեք ՝ ապահովելով բոլոր կապերի ապահովումը: Իմ գնած տուփը մի փոքր փոքր էր, բայց որոշ մանրակրկիտ տեղադրմամբ և մի փոքր ստիպելով ինձ հաջողվեց ամեն ինչ տեղավորել: Ես կողոսկրեցի անցք էլեկտրասնուցման աղբյուրի համար, իսկ մյուսը ՝ nixie լարերի համար: Ես ծածկեցի nixie լարերը ջերմության նվազման մեջ, որպեսզի խուսափեմ որևէ կարճությունից: Երբ էլեկտրոնիկան տեղադրված է տուփի մեջ, կպցրեք այն ժամացույցի շարժման հետևի կողմին: Խողովակները ամրացնելու համար ես օգտագործեցի տաք սոսինձ և սոսնձեցի ոլորված մետաղալարերի կետերը մետաղի վրա ՝ զգույշ լինելով, որ դրանք ուղիղ լինեն: Հավանաբար ես շատ սոսինձ եմ օգտագործել, բայց դա շատ նկատելի չէ: Դա կարող է լինել մի բան, որը կարող է բարելավվել ապագայում: Երբ ամեն ինչ տեղադրվի, բեռնեք Nixie ժամացույցի էսքիզը այս ուսանելի դասի վերջում և հիացեք ձեր հիասքանչ նոր ժամացույցով:

Քայլ 5. Arduino Sketch - Calibration

#սահմանել HOUR_PIN 1 // ourամային ցուցադրում PWM- ի միջոցով Trinket GPIO #1 -ում

#սահմանել MINUTE_PIN 4 // Րոպեական ցուցադրում PWM- ի միջոցով Trinket GPIO #4 -ում (erամաչափ 1 զանգի միջոցով)

int ժամ = 57; int րոպե = 57; // սահմանել նվազագույն pwm

void setup () {pinMode (HOUR_PIN, OUTPUT); pinMode (MINUTE_PIN, OUTPUT); PWM4_init (); // կարգավորել PWM ելքերը

}

void loop () {// Օգտագործեք սա ՝ կեղծելու համար nixie կաթսաները ՝ համոզվելու համար, որ խողովակի առավելագույն բարձրությունը համընկնում է analogWrite- ի հետ (HOUR_PIN, 255); analogWrite4 (255); // Օգտագործեք սա րոպեային հավելումները չափաբերելու համար

/*

analogWrite4 (57); // րոպե 0 ուշացում (5000); analogWrite4 (107); // րոպե 15 ուշացում (5000); analogWrite4 (156); // րոպե 30 ուշացում (5000); analogWrite4 (206); // րոպե 45 ուշացում (5000); analogWrite4 (255); // րոպե 60 ուշացում (5000);

*/

// Օգտագործեք սա ժամաչափերի ավելացման համար /*

analogWrite (HOUR_PIN, 57); // 57 -ը նվազագույն ելքն է և համապատասխանում է առավոտյան/երեկոյան ուշացմանը (4000); // հետաձգել 4 վայրկյան analogWrite (HOUR_PIN, 75); // 75 -ն այն ելքն է, որը համապատասխանում է առավոտյան 2 րոպե/երեկո ուշացմանը (4000); analogWrite (HOUR_PIN, 93); // 93 -ը այն ելքն է, որը համապատասխանում է առավոտյան 3/երեկոյան ուշացմանը (4000); analogWrite (HOUR_PIN, 111); // 111 -ն այն ելքն է, որը համապատասխանում է առավոտյան 4/երեկոյան ուշացմանը (4000); analogWrite (HOUR_PIN, 129); // 129 է ելքը, որը համապատասխանում է առավոտյան 5/երեկո ուշացմանը (4000); analogWrite (HOUR_PIN, 147); // 147 -ն այն ելքն է, որը համապատասխանում է առավոտյան 6/երեկոյան ուշացմանը (4000); analogWrite (HOUR_PIN, 165); // 165 -ը այն ելքն է, որը համապատասխանում է առավոտյան 7/երեկոյան ուշացմանը (4000); analogWrite (HOUR_PIN, 183); // 183 -ն այն ելքն է, որը համապատասխանում է առավոտյան 8/երեկոյան ուշացմանը (4000); analogWrite (HOUR_PIN, 201); // 201 -ը այն ելքն է, որը համապատասխանում է առավոտյան 9/երեկոյան ուշացմանը (4000); analogWrite (HOUR_PIN, 219); // 219 -ը այն ելքն է, որը համապատասխանում է առավոտյան 10/երեկոյան ուշացմանը (4000); analogWrite (HOUR_PIN, 237); // 237 -ը այն ելքն է, որը համապատասխանում է առավոտյան 11/երեկոյան ուշացմանը (4000); analogWrite (HOUR_PIN, 255); // 255 -ը այն ելքն է, որը համապատասխանում է առավոտյան 12 -ին/երեկոյան

*/

}

դատարկ PWM4_init () {// Կարգավորեք PWM Trinket GPIO #4 -ում (PB4, փին 3) ՝ օգտագործելով erամաչափ 1 TCCR1 = _BV (CS10); // առանց նախնական սակարկիչ GTCCR = _BV (COM1B1) | _BV (PWM1B); // մաքրել OC1B- ը համեմատել OCR1B = 127; // աշխատանքային ցիկլը սկզբնավորվում է մինչև 50% OCR1C = 255; // հաճախականություն}

// Ֆունկցիան, որը թույլ կտա analogWrite on Trinket GPIO #4 -ին անվավեր analogWrite4 (uint8_t տուրքի_արժեք) {OCR1B = duty_value; // տուրքը կարող է լինել 0 -ից 255 (0 -ից 100%)}

Քայլ 6: Arduino Sketch - ockամացույց

// Adafruit Trinket անալոգային հաշվիչի ժամացույց

// Ամսաթիվը և ժամը գործում են DS1307 RTC- ի միջոցով, որը միացված է I2C- ի և TinyWireM lib- ի միջոցով

// Ներբեռնեք այս գրադարանները Adafruit's Github պահոցից և // տեղադրեք ձեր Arduino գրադարանների գրացուցակում #ներառել #ներառել

// Վրիպազերծման, չմեկնաբանելու սերիական կոդ օգտագործելու համար օգտագործեք FTDI Friend- ը ՝ RX կապով, որը միացված է Pin 3 -ին // Ձեզ անհրաժեշտ կլինի տերմինալային ծրագիր (օրինակ ՝ անվճար PuTTY Windows- ի համար), որը տեղադրված է FTDI ընկերոջ // USB պորտին 9600 հասցեով: բաուդ Մեկնաբանեք սերիական հրամանները ՝ տեսնելու, թե ինչ կա // #սահմանել HOUR_PIN 1 // ourամային ցուցադրում PWM- ի միջոցով Trinket GPIO #1 #սահմանել MINUTE_PIN 4 // Րոպեական ցուցադրում PWM- ի միջոցով Trinket GPIO #4 (erամաչափ 1 զանգի միջոցով) // SendOnlySoftwareSerial Serial (3); // Սերիական փոխանցում Trinket Pin 3 RTC_DS1307 rtc- ով; // Ստեղծեք իրական ժամանակի ժամացույց

void setup () {pinMode (HOUR_PIN, OUTPUT); // սահմանել PWM հաշվիչի կապում որպես ելքային pinMode (MINUTE_PIN, OUTPUT); PWM4_init (); // Setամաչափ 1 -ը դնել PWM- ին Trinket Pin 4 -ի վրա աշխատելու համար TinyWireM.begin (); // Սկիզբ I2C rtc.begin (); // Սկսել DS1307 իրական ժամանակի ժամացույց //Serial.begin(9600); // Սկսեք սերիական մոնիտորը 9600 baud- ով (! // հաջորդ տողը RTC- ն սահմանում է այս ուրվագծի կազմման ամսաթվի և ժամի rtc.adjust (DateTime (_ DATE_, _TIME_)); }}

void loop () {uint8_t ժամային արժեք, րոպե արժեք; uint8_t ժամային լարում, րոպեավոլտաժ;

DateTime now = rtc.now (); // Ստացեք RTC տեղեկատվության ժամային արժեքը = now.hour (); // Ստացեք ժամը եթե (ժամային արժեք> 12) ժամային արժեք -= 12; // Այս ժամացույցը 12 ժամ րոպե արժեք է = now.minute (); // Ստացեք արձանագրությունները

րոպեավոլտ = քարտեզ (րոպեարժեք, 1, 60, 57, 255); // Վերափոխեք րոպեները PWM աշխատանքային ցիկլի

if (ժամային արժեք == 1) {analogWrite (HOUR_PIN, 57); } if (ժամային արժեք == 2) {analogWrite (HOUR_PIN, 75); // յուրաքանչյուր ժամ համապատասխանում է +18} if (ժամային արժեք == 3) {analogWrite (HOUR_PIN, 91); }

if (ժամային արժեք == 4) {analogWrite (HOUR_PIN, 111); } if (ժամային արժեք == 5) {analogWrite (HOUR_PIN, 126); } if (ժամային արժեք == 6) {analogWrite (HOUR_PIN, 147); } if (ժամային արժեք == 7) {analogWrite (HOUR_PIN, 165); } if (ժամային արժեք == 8) {analogWrite (HOUR_PIN, 183); } if (ժամային արժեք == 9) {analogWrite (HOUR_PIN, 201); } if (ժամային արժեք == 10) {analogWrite (HOUR_PIN, 215); } if (ժամային արժեք == 11) {analogWrite (HOUR_PIN, 237); } if (ժամային արժեք == 12) {analogWrite (HOUR_PIN, 255); }

analogWrite4 (րոպեավոլտաժ); // րոպեական անալոգրիտը կարող է մնալ նույնը, ինչ քարտեզագրման աշխատանքները // պրոցեսորը քնեցնելու համար նախընտրելի կլինի ծածկագիրը. մենք հետաձգելու ենք հետաձգումը (5000); // ստուգեք ժամանակը յուրաքանչյուր 5 վայրկյանը մեկ: Դուք կարող եք փոխել սա: }

դատարկ PWM4_init () {// Կարգավորեք PWM Trinket GPIO #4 -ում (PB4, փին 3) ՝ օգտագործելով erամաչափ 1 TCCR1 = _BV (CS10); // առանց նախնական սակարկիչ GTCCR = _BV (COM1B1) | _BV (PWM1B); // մաքրել OC1B- ը համեմատել OCR1B = 127; // աշխատանքային ցիկլը սկզբնավորվում է մինչև 50% OCR1C = 255; // հաճախականություն}

// Ֆունկցիան, որը թույլ կտա analogWrite on Trinket GPIO #4 -ին անվավեր analogWrite4 (uint8_t տուրքի_արժեք) {OCR1B = duty_value; // տուրքը կարող է լինել 0 -ից 255 (0 -ից 100%)}

Խորհուրդ ենք տալիս: