Мазмұны:

Nixie Bargraph сағаты: 6 қадам (суреттермен)
Nixie Bargraph сағаты: 6 қадам (суреттермен)

Бейне: Nixie Bargraph сағаты: 6 қадам (суреттермен)

Бейне: Nixie Bargraph сағаты: 6 қадам (суреттермен)
Бейне: ARKNIGHTS NEW RELEASE GAME 2024, Шілде
Anonim
Nixie Bargraph сағаты
Nixie Bargraph сағаты
Nixie Bargraph сағаты
Nixie Bargraph сағаты

11.11.17 редакциялау Kickstarter көмегімен мен қазір осы сағат жиынтығына арналған жинақты шығардым! Оған жүргізуші тақтасы мен 2 Nixie IN-9 түтігі кіреді. Сізге тек Arduino/Raspberry Pi/басқасын қосу қажет. Жинақты табуға болады, бірақ мына сілтемені басыңыз!

Мен Интернетте көптеген Nixie сағаттарын көрдім және олар керемет көрінеді деп ойладым, бірақ мен түтіктерді қамтымайтын сағаттарға 100 доллар жұмсағым келмеді! және тізбектер. Мен жалпыға ұқсас, сиқырлы сағаттардың үлкен жиынтығынан сәл өзгеше нәрсе жасағым келді. Ақырында мен Nixie IN-9 барграф түтіктерін қолдануды жөн көрдім. Бұл ұзын жұқа түтіктер және жарқыраған плазманың биіктігі түтіктер арқылы өтетін токқа байланысты. Сол жақтағы түтік сағаттық қадаммен, ал оң жақтағы құбыр минутпен. Олардың тек екі сымы бар, сондықтан тізбекті алға қарай түзетуге мүмкіндік береді, бұл конструкцияда әр түтіктегі плазманың биіктігі ағымдағы уақытты білдіретін сағаттық және минуттық түтік бар. Уақыт 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 ~ eBay 1x түтігіне ~ 3 доллар. Nixie 140v қуат көзі ~ eBay 4x47 uF электролит конденсаторларында 4x 3.9 кОм резисторларда 2x 1 кОм потенциометрде 2x транзисторлы MJE340 NPN жоғары кернеуде ~ $ 1 1x 2.1 мм розеткада ~ $ 1 x 2.1 мм розеткада ~ 1 дюймде $ 1 дана. 12 вольтты тұрақты ток көзі (мен бұрыннан ұмытылған гаджеттен ескісін таптым) Дәнекерлеу, сым және т.б. Орнату: Мен электрониканы кішкене қара пластикалық жобалық қорапқа орнатуды шештім, содан кейін түтіктерді антикварлық сағат қозғалысына орнатуды шештім. Сағат пен минутты белгілеу үшін мен түтіктерге оралған мыс сымды қолдандым. Орнату бөлшектері: Антикварлық сағат қозғалысы - $ 10 eBay Мыс сымы - $ 3 eBay Hot желім тапаншасы

2 -қадам: Схема

Схема
Схема
Схема
Схема
Схема
Схема
Схема
Схема

Бірінші қадам - Nixie қуат көзін құру. Бұл eBay -ден алынған кішкене ПХД -ны қосқандағы кішкене жинақ ретінде келді және тек компоненттерді тақтаға дәнекерлеу қажет болды. Бұл нақты қуат 110-180 В аралығында болады, оны тақтадағы кішкене кастрюльмен басқаруға болады. Кішкентай бұрағыштың көмегімен шығуды ~ 140в -қа дейін реттеңіз. Мен толық жолға шықпас бұрын мен никси түтіктерін сынап көргім келді, ол үшін мен бір құбырды, транзисторды және 10к потенциометрді қолдана отырып, қарапайым сынақ схемасын құрдым. Бірінші суретте көрініп тұрғандай, 140в қоректендіру түтік анодына бекітілген (оң аяқ). Содан кейін катод (сол жақ аяғы) MJE340 транзисторының коллекторлық аяғына қосылады. Транзисторлық базаға жерге бөлінетін 10к кастрюльге 5В кернеу қосылады. Соңында транзисторлық эмитент жерге тұйықталу кедергісі 300 Ом арқылы қосылады. Егер сіз транзисторлар мен электрониканы білмесеңіз, бұл маңызды емес, оны сымға жалғап, плазманың биіктігін кастрөлдің тұтқасымен өзгертіңіз! Бұл жұмыс істегеннен кейін біз сағатты жасай аламыз. Толық сағат схемасын екінші схемада көруге болады. Біраз зерттеуден кейін мен Adafruit learn веб -сайтынан мен жасағым келетін іспен айналысатын тамаша оқулық таптым. Оқу құралын мына жерден табуға болады: https://learn.adafruit.com/trinket-powered-analog-m… Бұл оқулық екі аналогты күшейткішті басқару үшін Trinket контроллері мен RTC пайдаланады. Иненің иілуін бақылау үшін импульстік ен модуляциясын (PWM) қолдану. Амп өлшегіштің катушкасы PWM -ді орташа кернеудегі тұрақты сигналға айналдырады. Егер біз PWM -ді түтіктерді қозғау үшін тікелей қолданатын болсақ, онда жоғары жиілікті модуляция плазмалық жолақ түтіктің түбіне «бекітілмейтінін» білдіреді және сізде жылжымалы жолақ болады. Бұған жол бермеу үшін мен PWM -ді тұрақты ток сигналын алу үшін ұзақ уақыт тұрақтылығы бар төмен өту сүзгісін қолданып орташа есепке алдым. Бұл 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 сымдары дұрыс қосылғаннан кейін, схеманы мұқият қадағалап, нан тақтасына никси түтіктерін, транзисторларды, сүзгілерді және т.б.

RTC және Trinket сөйлесуін алу үшін алдымен Adafruit Github -дан дұрыс кітапханаларды жүктеп алу қажет. Сізге TinyWireM.h және TInyRTClib.h қажет. Алдымен біз түтіктерді калибрлегіміз келеді, нұсқаулықтың соңына калибрлеу нобайын жүктейміз. Егер бірде -бір эскиз жұмыс істемесе, онда Adafruit сағат эскизін қолданып көріңіз. Мен Adafruit сағатының эскизін никси түтіктерімен тиімді жұмыс жасау үшін өзгерттім, бірақ Adafruit эскизі жақсы жұмыс істейді.

3 -қадам: калибрлеу

Калибрлеу
Калибрлеу

Калибрлеу эскизін жүктегеннен кейін бітіруді белгілеу қажет.

Калибрлеудің үш режимі бар, біріншісі никси түтіктерін максималды шығысқа қояды. Кәстрөлді екі құбырдағы плазманың биіктігі бірдей болатындай етіп және максималды биіктіктен сәл төмен болатындай етіп реттеу үшін пайдаланыңыз. Бұл жауап бүкіл сағат диапазонында сызықты болуын қамтамасыз етеді.

Екінші параметр минуттық түтікті калибрлейді. Ол әр 5 секунд сайын 0, 15, 30, 45 және 60 минут аралығында өзгереді.

Соңғы параметр мұны әр сағат сайын қайталайды. Adafruit сағатынан айырмашылығы, сағат индикаторы сағат сайын бір рет тұрақты қадаммен қозғалады. Аналогты есептегішті қолданған кезде әр сағат үшін сызықтық жауап алу қиын болды.

Кәстрөлді реттегеннен кейін, эскизді бірнеше минут ішінде калибрлеу үшін жүктеңіз. Жіңішке мыс сымды алыңыз және қысқа ұзындықты кесіңіз. Түтікті айналдыра орап, екі ұшын бұраңыз. Мұны дұрыс орынға жылжытыңыз және ыстық желім пистолетін қолданып, дұрыс жерде ұстау үшін желімнің кішкене бөлігін қойыңыз. Мұны әр минут сайын және сағат сайын қайталаңыз.

Мен бұл процесті суретке түсіруді ұмытып кеттім, бірақ сіз суреттерден сымның қалай бекітілгенін көре аласыз. Мен сымды бекіту үшін желімді әлдеқайда аз қолдандым.

4 -қадам: монтаждау және әрлеу

Монтаж және әрлеу
Монтаж және әрлеу
Монтаж және әрлеу
Монтаж және әрлеу
Монтаж және әрлеу
Монтаж және әрлеу

Құбырлар калибрленіп, жұмыс істегеннен кейін, тізбекті тұрақты түрде жасап, қандай да бір негізге бекіту уақыты келді. Мен антикварлық сағат қозғалысын таңдаймын, себебі маған антикварлық, 60 -шы жылдар мен қазіргі заманғы технологияның қоспасы ұнады. Нан тақтасынан жолақ тақтасына ауыстыру кезінде абай болыңыз және барлық байланыстардың болуын қамтамасыз етуге асықпаңыз. Мен сатып алған қорап кішкене болды, бірақ мұқият орналастырып, сәл мәжбүрлеп, мен бәрін сыйғыза алдым. Мен бүйірінде қуат көзі үшін тесік бұрдым, ал екіншісі - никси сымдары үшін. Қысқартпау үшін мен қысылған сымдарды қысқышпен қаптадым. Электроника қорапқа салынған кезде оны сағат тілінің артына жабыстырыңыз. Құбырларды монтаждау үшін мен ыстық желімді қолдандым және бұралған сымның ұштарын металға жапсырдым, олардың түзу болуын қадағалаймын. Мен желімді тым көп қолданған шығармын, бірақ ол байқалмайды. Болашақта оны жақсартуға болатын нәрсе болуы мүмкін. Барлығы орнатылған кезде, Nixie сағатын осы нұсқаулықтың соңына жүктеңіз және сіздің керемет жаңа сағатыңызға сүйсініңіз!

5 -қадам: Arduino эскизі - калибрлеу

#define HOUR_PIN 1 // Trinket GPIO #1 -де PWM арқылы сағатты көрсету

#dinefine MINUTE_PIN 4 // Trinket GPIO #4 -те PWM арқылы минуттық дисплей (Таймер 1 қоңыраулары арқылы)

int сағат = 57; int минут = 57; // минималды pwm орнатыңыз

void setup () {pinMode (HOUR_PIN, OUTPUT); pinMode (MINUTE_PIN, OUTPUT); PWM4_init (); // PWM шығысын орнату

}

void loop () {// Мұны құбырдың максималды биіктігі analogWrite (HOUR_PIN, 255) сәйкес келетініне көз жеткізу үшін nixie кастрюльдерін реттеу үшін пайдаланыңыз; 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 - бұл минималды шығыс және 1 am /pm кідірісіне сәйкес келеді (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/4 кешігуіне сәйкес келетін шығыс (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 -ге сәйкес келетін шығыс

*/

}

void PWM4_init () {// Trinket GPIO №4 (PB4, pin 3) бойынша PWM -ді Timer 1 TCCR1 = _BV (CS10) көмегімен орнату; // prescaler жоқ GTCCR = _BV (COM1B1) | _BV (PWM1B); // таза OC1B салыстыру бойынша OCR1B = 127; // жұмыс циклын инициализациялау 50% OCR1C = 255; // жиілік}

// Trinket GPIO #4 -те analogWrite -ке рұқсат беретін функция analogWrite4 жарамсыз (uint8_t duty_value) {OCR1B = duty_value; // баж 0 -ден 255 -ке дейін болуы мүмкін (0 -ден 100%-ға дейін)}

6 -қадам: Arduino эскизі - Сағат

// Adafruit Trinket аналогты есептегіш сағаты

// I2C және TinyWireM lib арқылы қосылған DS1307 RTC көмегімен күн мен уақыт функциялары

// Бұл кітапханаларды Adafruit Github репозиторийінен жүктеп алыңыз және // Arduino кітапханалар каталогына орнатыңыз #include #include

// Жөндеу, сериялық кодты түсіндіру үшін, FXDI досын RX түйреуіші Pin 3 -ке қосылған // пайдаланыңыз // Сізге FTDI досының // USB портына 9600 -де орнатылған терминалды бағдарлама (Windows үшін PuTTY сияқты) қажет болады. бод Не болып жатқанын білу үшін сериялық пәрмендерді орындамаңыз // #HOUR_PIN 1 анықтаңыз // Trinket GPIO #1 -де PWM арқылы сағат дисплейі #MINUTE_PIN 4 -ді анықтаңыз // Trinket GPIO #4 -те PWM арқылы минуттық дисплей (Timer 1 қоңыраулары арқылы) // SendOnlySoftwareSerial Serial (3); // Trinket Pin 3 сериялы беріліс RTC_DS1307 rtc; // Нақты уақыттағы сағатты орнатыңыз

void setup () {pinMode (HOUR_PIN, OUTPUT); // PWM есептегіш түйреуіштерін pinMode (MINUTE_PIN, OUTPUT) шығысы ретінде анықтаңыз; PWM4_init (); // Таймер 1 -ді Trinket Pin 4 TinyWireM.begin () бойынша PWM жұмысына орнатыңыз; // I2C бастаңыз rtc.begin (); // DS1307 нақты уақыт сағатын бастау //Serial.begin(9600); // Егер (! Rtc.isrunning ()) {//Serial.println( RTC жұмыс істемейді! «) Сериялық мониторды 9600 baud -тан бастаңыз;); // келесі жол RTC -ді осы эскиздің құрастырылған күні мен уақытына орнатады rtc.adjust (DateTime (_ DATE_, _TIME_)); }}

void loop () {uint8_t hourvalue, minutevalue; uint8_t сағат кернеуі, минутевольт;

DateTime now = rtc.now (); // RTC ақпаратын алыңыз hourvalue = now.hour (); // Сағатты алыңыз, егер (hourvalue> 12) hourvalue -= 12; // Бұл сағат - 12 сағаттық минуттық мән = қазір.минут (); // Минутты алыңыз

минутевольт = карта (минутевалью, 1, 60, 57, 255); // Минуттарды PWM жұмыс цикліне түрлендіру

if (hourvalue == 1) {analogWrite (HOUR_PIN, 57); } if (hourvalue == 2) {analogWrite (HOUR_PIN, 75); // әр сағат +18} сәйкес келеді, егер (сағат мәні == 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 (минутевольт); // минуттық аналогты жазу салыстыру жұмысымен өзгеріссіз қалуы мүмкін // процессорды ұйқыға қою коды қолайлы болуы мүмкін - біз кешіктіруді кешіктіреміз (5000); // әр 5 секунд сайын уақытты тексеріңіз. Сіз мұны өзгерте аласыз. }

void PWM4_init () {// Trinket GPIO №4 (PB4, pin 3) PWM -ді Таймер 1 TCCR1 = _BV (CS10) көмегімен орнату; // prescaler жоқ GTCCR = _BV (COM1B1) | _BV (PWM1B); // таза OC1B салыстыру бойынша OCR1B = 127; // жұмыс циклын инициализациялау 50% OCR1C = 255; // жиілік}

// Trinket GPIO #4 -те analogWrite мүмкіндік беретін функция analogWrite4 жарамсыз (uint8_t duty_value) {OCR1B = duty_value; // баж 0 -ден 255 -ке дейін болуы мүмкін (0 -ден 100%-ға дейін)}

Ұсынылған: