Мазмуну:

Nixie Bargraph Сааты: 6 кадам (Сүрөттөр менен)
Nixie Bargraph Сааты: 6 кадам (Сүрөттөр менен)

Video: Nixie Bargraph Сааты: 6 кадам (Сүрөттөр менен)

Video: Nixie Bargraph Сааты: 6 кадам (Сүрөттөр менен)
Video: ТОП-20 стран по военной мощи (2005–2023 гг.) 2024, Июль
Anonim
Nixie Bargraph Сааты
Nixie Bargraph Сааты
Nixie Bargraph Сааты
Nixie Bargraph Сааты

Түзөтүү 11/17/Kickstarterдин жардамы менен мен азыр бул сааттардын комплектин чыгардым! Ал айдоочу тактасын жана 2 Nixie IN-9 түтүгүн камтыйт. Сизге өзүңүздүн Arduino/Raspberry Pi/башка кошууңуз керек. Комплектти тапса болот, бирок бул шилтемени чыкылдатыңыз!

Ошентип, мен онлайнда Nixie сааттарын көп көрдүм жана алар сонун көрүндү деп ойлодум, бирок мен түтүктөрдү камтыбаган саатка 100 $+ короткум келбеди! Ошентип, кичинекей электроника билими менен ар кандай никси түтүктөрүн айланып чыктым. жана схемалар. Мен жалпысынан окшош окшош nixie сааттарынын чоң диапазонунан бир аз башкача кылгым келди. Акыры мен Nixie IN-9 bargraph түтүктөрүн колдонууну чечтим. Бул узун ичке түтүктөр жана жаркыраган плазманын бийиктиги түтүктөр аркылуу өткөн токко көз каранды. Сол жактагы түтүк саат аралыгында, оң жагындагы түтүк мүнөттөрдө. Алардын эки гана жетеги бар, андыктан контурду түз алдыга жылдырыңыз. Бул долбоордо бир саат жана бир мүнөт түтүк бар, ар бир түтүктө плазманын бийиктиги учурдун убактысын билдирет. Убакыт 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 электр менен камсыздоо ~ $ 12 eBay боюнча 4x 47 uF электролит конденсаторлору 4x 3.9 кОм резисторлору 2x 1 kOhm потенциометрлери 2x Transistor MJE340 NPN жогорку чыңалуусу ~ 1 $ 1x 1mm LM7805 5v регулятору ~ 1 $ 1x 2.1мм розеткасы ~ $ 1 1x проекти pcb менен $ 5 12v DC электр менен камсыздоо (мен көптөн бери унутулган гаджеттен эскисин таптым) Лайк, зым, ж.б. Монтаж: Мен электрониканы кичинекей кара пластикалык проект кутусуна орнотууну чечтим, анан түтүктөрдү антиквардык саат кыймылына орнотуу. Саатты жана мүнөттөрдү белгилөө үчүн мен түтүктөргө оролгон жез зымды колдондум. Монтаждоо бөлүктөрү: Антиквардык саат кыймылы - $ 10 eBay Жез зымы - $ 3 eBay Hot желим мылтыгы

2 -кадам: Circuit

Circuit
Circuit
Circuit
Circuit
Circuit
Circuit
Circuit
Circuit

Биринчи кадам Nixie электр булагын куруу болуп саналат. Бул eBayден келген кичинекей комплект, анын ичинде бир аз ПХБ жана жөн эле компоненттерди тактага ширетүү керек болчу. Бул өзгөчө камсыздоо 110-180v ортосунда өзгөрмөлүү, бортто кичинекей идиш менен башкарылат. Чакан бурагычты колдонуп, чыгымды ~ 140в чейин тууралаңыз. Мен толугу менен барардан мурун, никси түтүктөрүмдү сынап көргүм келди, бул үчүн мен бир түтүктү, транзисторду жана тегерегимдеги 10 к потенциометрди колдонуп, жөнөкөй сыноо схемасын курдум. Биринчи сүрөттө көрүнүп тургандай, 140v камсыздоо түтүк анодуна (оң бутуна) тиркелет. Андан кийин катод (сол бут) MJE340 транзисторунун коллектордук бутуна туташтырылган. 5v камсыздоо транзистордук базага жерге бөлүнгөн 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 -кадам: Калибрлөө

Калибрлөө
Калибрлөө

Калибрлөө эскизин жүктөгөндөн кийин, бүтүрүүчүлөр белгилениши керек.

Калибрлөөнүн үч режими бар, биринчиси nixie түтүктөрүн максималдуу чыгууга коёт. Муну идишти эки түтүктөгү плазманын бийиктиги бирдей жана ал максималдуу бийиктиктен бир аз төмөн болгудай кылып тууралаңыз. Бул жооп бүт саат диапазонунда сызыктуу болушун камсыздайт.

Экинчи жөндөө мүнөт түтүгүн калибрлейт. Ал ар бир 5 секундда 0, 15, 30, 45 жана 60 мүнөт арасында өзгөрөт.

Акыркы жөндөө муну ар бир саат сайын кайталайт. Adafruit саатынан айырмаланып, сааттын индикатору саатына бир жолу белгиленген кадам менен жылат. Аналогдук эсептегичти колдонууда ар бир саат үчүн сызыктуу жооп алуу кыйын болгон.

Сиз казанды тууралагандан кийин эскизди бир нече мүнөткө калибрлеп коюңуз. Жука жез зымын алып, кыска узундугун кесип. Бул түтүктү тегерете ороп, эки учун бирге бураңыз. Муну туура позицияга жылдырыңыз жана ысык желим тапанчаны колдонуп, керектүү жерде кармоо үчүн кичинекей желимди жайгаштырыңыз. Муну ар бир мүнөт жана саат сайын кайталаңыз.

Мен бул процесстин сүрөтүн тартууну унутуп койдум, бирок сиз сүрөттөрдөн зым кантип бекитилгенин көрө аласыз. Мен зымды туташтыруу үчүн клейди азыраак колдонгом.

4 -кадам: Монтаждоо жана бүтүрүү

Монтаждоо жана бүтүрүү
Монтаждоо жана бүтүрүү
Монтаждоо жана бүтүрүү
Монтаждоо жана бүтүрүү
Монтаждоо жана бүтүрүү
Монтаждоо жана бүтүрүү

Түтүктөрдүн баары калибрленип, иштеп баштагандан кийин, чынжырды биротоло жасап, кандайдыр бир базага орнотуу убактысы келди. Мен антиквардык сааттын кыймылын тандайм, анткени мага антик, 60 жана заманбап технологиянын аралашмасы жакты. Тактайдан листке өткөрүп жатканда өтө кылдат болуңуз жана бардык байланыштарды камсыз кылуу үчүн шашпаңыз. Мен сатып алган кутуча кичине кичине болчу, бирок бир аз кылдаттык менен жайгаштыруу жана бир аз мажбурлоо менен мен баарын туура келтире алдым. Мен капталында электр менен камсыздоо үчүн тешик, экинчиси nixie жетелейт. Мен nixie зымдарын кандайдыр бир шорттон сактануу үчүн кичирейтип жаап койдум. Электроника кутуга орнотулганда, аны саат кыймылынын артына жабыштырып койгом. Түтүктөрдү орнотуу үчүн мен ысык клей колдондум жана буралган зымдын учтарын металлга чаптадым, абайлап түз болушун камсыз кылдым. Мен, балким, өтө көп клей колдонгом, бирок анча байкалбайт. Бул келечекте жакшырта турган нерсе болушу мүмкүн. Баары орнотулганда, Nixie саатынын эскизин ушул нускаманын аягына жүктөңүз жана жаңы саатыңызга суктаныңыз!

5 -кадам: Arduino Sketch - Калибрлөө

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

#DINFINE 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 менен дал келиши үчүн nixie казандарын өзгөртүү үчүн колдонуңуз (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 - минималдуу чыгаруу жана 1 am /pm кечигүүсүнө туура келет (4000); // кечигүү 4 секунд analogWrite (HOUR_PIN, 75); // 75 - 2 am /pm кечигүүсүнө туура келген чыгаруу (4000); analogWrite (HOUR_PIN, 93); // 93 - 3 am /pm кечигүүсүнө туура келген чыгаруу (4000); analogWrite (HOUR_PIN, 111); // 111 - 4 am /pm кечигүүсүнө (4000) туура келген чыгаруу; analogWrite (HOUR_PIN, 129); // 129 - 5 am /pm кечигүүсүнө туура келген чыгаруу (4000); analogWrite (HOUR_PIN, 147); // 147 - 6 am /pm кечигүүсүнө туура келген чыгаруу (4000); analogWrite (HOUR_PIN, 165); // 165 - 7 am /pm кечигүүсүнө туура келген чыгаруу (4000); analogWrite (HOUR_PIN, 183); // 183 - 8 am /pm кечигүүсүнө туура келген чыгаруу (4000); analogWrite (HOUR_PIN, 201); // 201 - 9 am /pm кечигүүсүнө туура келген чыгаруу (4000); analogWrite (HOUR_PIN, 219); // 219 - 10 am /pm кечигүүсүнө туура келген чыгаруу (4000); analogWrite (HOUR_PIN, 237); // 237 - 11 am /pm кечигүүсүнө туура келген чыгаруу (4000); analogWrite (HOUR_PIN, 255); // 255 - 12 am /pm туура келген чыгаруу

*/

}

void PWM4_init () {// Таймер 1 TCCR1 = _BV (CS10) аркылуу Trinket GPIO #4 (PB4, pin 3) боюнча PWMди орнотуу; // 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 Sketch - Саат

// Adafruit Trinket аналогдук метр сааты

// I2C жана TinyWireM lib аркылуу туташкан DS1307 RTC колдонулган күн жана убакыт функциялары

// Бул китепканаларды Adafruit's Github репозиторийинен жүктөп алыңыз жана // Arduino китепканаларыңыздын каталогуна орнотуңуз #include #include

// Мүчүлүштүктөрдү жоюу үчүн, сериялык кодду жазуу үчүн, Pin 3кө туташкан RX пини менен FTDI досун колдонуңуз // Сизге FTDI досунун // USB портуна орнотулган терминалдык программа керек (Windows үчүн PuTTY сыяктуу) 9600. бод Эмне болуп жатканын көрүү үчүн сериялык буйруктарды чыгарбаңыз // #HOUR_PIN 1ди аныктоо // Trinket GPIO #1де PWM аркылуу саатты көрсөтүү #MINUTE_PIN 4ти аныктоо // Trinket GPIO #4төгү PWM аркылуу мүнөт дисплейи (Таймер 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 иштөөгө коюңуз. // Begin I2C rtc.begin (); // Баштоо DS1307 реалдуу убакыт сааты //Serial.begin(9600); // Serial Monitorду 9600 baud менен баштаңыз, эгер (! Rtc.isrunning ()) {//Serial.println("RTC иштебейт! "); // кийинки сызык RTCди бул эскиз rtc.adjust түзүлгөн датага жана убакытка коёт (DateTime (_ DATE_, _TIME_)); }}

void loop () {uint8_t hourvalue, minutevalue; uint8_t сааттын чыңалуусу, минутевольтаж;

DateTime now = rtc.now (); // RTC маалыматын алуу hourvalue = now.hour (); // Саатты алыңыз if (hourvalue> 12) hourvalue -= 12; // Бул саат 12 сааттык мүнөт баалуулугу = азыр.мүнөт (); // Мүнөттөрдү алыңыз

minutevoltage = карта (minutevalue, 1, 60, 57, 255); // PWM кызмат циклине мүнөттөрдү өзгөртүү

if (hourvalue == 1) {analogWrite (HOUR_PIN, 57); } if (hourvalue == 2) {analogWrite (HOUR_PIN, 75); // ар бир саат +18} туура келет, эгерде (hourvalue == 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 () {// Таймер 1 TCCR1 = _BV (CS10) аркылуу Trinket GPIO #4 (PB4, pin 3) боюнча PWMди орнотуу; // 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%га чейин)}

Сунушталууда: