Агуулгын хүснэгт:
- Алхам 1: эд ангиудыг угсрах
- Алхам 2: Хэлхээ
- Алхам 3: Калибровк хийх
- Алхам 4: Суулгах, дуусгах
- Алхам 5: Arduino Sketch - шалгалт тохируулга
- Алхам 6: Arduino Sketch - Цаг
Видео: Nixie Bargraph Цаг: 6 алхам (зурагтай)
2024 Зохиолч: John Day | [email protected]. Хамгийн сүүлд өөрчлөгдсөн: 2024-01-30 11:06
9/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 цахилгаан хангамж ~ eBay дээр $ 12 4x 47 uF электролитийн конденсатор 4х 3.9 кОм эсэргүүцэл 2х 1 кОм потенциометр 2х транзистор MJE340 NPN өндөр хүчдэл ~ 1х 1м LM7805 5v зохицуулагч тус бүр ~ 1 $ 2.1x залгуур ~ $ 1 1x төслийн хайрцаг pcb 12V тогтмол гүйдлийн цахилгаан хангамж (би удтал мартагдсан төхөөрөмжөөс хуучныг нь олсон) Гагнах, холбох утас гэх мэт. Суурилуулах: Би цахилгаан хэрэгслийг жижиг хар хуванцар төслийн хайрцагт холбож, дараа нь хоолойг эртний цагийн хөдөлгөөнд холбохоор шийдсэн. Цаг, минутыг тэмдэглэхийн тулд би хоолойнуудыг ороосон зэс утсыг ашигласан. Холбох эд анги: Эртний цагийн хөдөлгөөн - 10 доллар eBay Зэс утас - 3 доллар eBay Халуун цавуу буу
Алхам 2: Хэлхээ
Эхний алхам бол Nixie цахилгаан хангамжийг бий болгох явдал юм. Энэ нь eBay -ийн жижигхэн ПХБ -ийг багтаасан жижигхэн иж бүрдэл болсон бөгөөд зөвхөн бүрэлдэхүүн хэсгүүдийг самбар дээр гагнах шаардлагатай байв. Энэхүү тодорхой хангамж нь 110-180В хооронд хэлбэлздэг бөгөөд самбар дээрх жижиг тогоо ашиглан хянах боломжтой. Жижиг шургуулагч ашиглан гаралтыг ~ 140v болгоно. Би бүхэлд нь явахаасаа өмнө никси хоолойгоо туршиж үзэхийг хүсч байсан бөгөөд үүнийг хийхийн тулд би байрлуулсан нэг хоолой, транзистор, 10 к потенциометр ашиглан энгийн туршилтын хэлхээг бүтээсэн. Эхний зургаас харахад 140v тэжээлийг хоолойн анод (баруун хөл) хавсаргасан болно. Дараа нь катод (зүүн хөл) нь MJE340 транзисторын коллекторын хөлтэй холбогддог. Транзисторын баазад газардуу хуваасан 10 к саванд 5 вольтын тэжээл холбогдсон байна. Төгсгөлд нь транзистор ялгаруулагчийг 300 Ом гүйдлийн хязгаарлагч резистороор холбож газардуулдаг. Хэрэв та транзистор, электроникийн талаар сайн мэдэхгүй бол энэ нь хамаагүй, зүгээр л утсаар холбоод плазмын өндрийг тогооны бариулаар солино уу! Үүнийг ажиллуулсны дараа бид өөрсдийнхөө цагийг харах боломжтой. Бүрэн цагийн хэлхээг хоёр дахь хэлхээний диаграмаас харж болно. Судалгааны дараа би Adafruit learn вэбсайтаас яг хийхийг хүссэн зүйлээ хийж буй төгс гарын авлага олж авлаа. Хичээлийг эндээс олж болно: https://learn.adafruit.com/trinket-powered-analog-m… Энэхүү заавар нь Trinket хянагч ба RTC ашиглан аналог хоёр ампер тоолуурыг хянадаг. Зүүний хазайлтыг хянахын тулд импульсийн өргөн модуляцийг (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 цагны ноорогыг nixie хоолойтой хамгийн үр дүнтэй ажиллахаар тохируулсан боловч Адафрутын ноорог сайн ажиллах болно.
Алхам 3: Калибровк хийх
Та шалгалт тохируулгын зургийг байршуулсны дараа төгсөлтийг тэмдэглэх шаардлагатай.
Калибровк хийх гурван горим байдаг бөгөөд эхнийх нь nixie хоолойг хамгийн их гаралтанд тохируулдаг. Үүнийг ашиглан савыг хоёр хоолой дахь плазмын өндөр ижил байх ба хамгийн дээд өндрөөс арай доогуур байхаар тохируулна. Энэ нь хариу үйлдэл бүх цагийн хүрээнд шугаман байх болно.
Хоёр дахь тохиргоо нь минутын хоолойг тохируулна. Энэ нь 5 секунд тутамд 0, 15, 30, 45, 60 минутын хооронд өөрчлөгддөг.
Сүүлийн тохиргоо нь үүнийг цаг тутамд давтана. Adafruit цагнаас ялгаатай нь цагийн заагч тогтмол цагт нэг удаа тогтмол хөдөлдөг. Аналог тоолуур ашиглах үед цаг тутамд шугаман хариулт авахад хэцүү байсан.
Савыг тохируулсны дараа ноорогыг хэдэн минутын турш тохируулахын тулд байршуулна уу. Нимгэн зэс утсыг аваад богино уртыг хайчилж ав. Хоолойг тойруулан боож, хоёр үзүүрийг нь мушгина. Үүнийг зөв байрлал руу гулсуулж, халуун цавуугаар буу хийж, цавууны жижиг хэсгийг зөв газар хадгална. Үүнийг минут, цаг тутамд давт.
Би энэ үйл явцын талаар зураг авахаа мартсан боловч утаснуудыг хэрхэн яаж хавсаргасан болохыг та зургуудаас харж болно. Хэдийгээр би утсыг холбохдоо цавуу бага хэрэглэдэг байсан.
Алхам 4: Суулгах, дуусгах
Хоолойнуудыг бүгдийг нь тохируулаад, ажиллуулсны дараа хэлхээг байнга хийж, ямар нэгэн сууринд бэхлэх цаг болжээ. Би эртний, 60 -аад оны болон орчин үеийн технологийн холимог дуртай байсан тул эртний цагны хөдөлгөөнийг сонгож, талхны самбараас туузан самбар руу шилжүүлэхдээ маш болгоомжтой байж, бүх холболт хийгдсэн эсэхийг шалгаарай. Миний худалдаж авсан хайрцаг жаахан жижигхэн боловч болгоомжтой байрлуулж, бага зэрэг хүчээр хийснээр бүгдийг нь багтааж чадсан. Би хажуу талдаа цахилгаан хангамж, нөгөө нь nixie -ийн цооног өрөмдсөн. Богино өмднөөс урьдчилан сэргийлэхийн тулд би утаснуудын дулааныг багасгаж, цахилгаан хэрэгслийг хайрцагт суулгасны дараа цагны арын хэсэгт наалддаг. Хоолойг холбохын тулд би халуун цавуу хэрэглэж, эрчилсэн утасны үзүүрийг метал дээр нааж, шулуун эсэхийг нь сайтар ажиглав. Би хэт их цавуу хэрэглэсэн байж магадгүй, гэхдээ энэ нь тийм ч мэдэгдэхүйц биш юм. Энэ нь ирээдүйд сайжруулж болох зүйл байж магадгүй юм. Энэ бүгдийг суулгасны дараа энэхүү зааварчилгааны төгсгөлд Nixie цагны ноорогыг ачаалж, өөрийн сайхан цагийг биширээрэй!
Алхам 5: Arduino Sketch - шалгалт тохируулга
#тодорхойлох HOUR_PIN 1 // Trinket GPIO #1 дээрх ХОУХ -ээр дамжуулан цагийн дэлгэц
#тодорхойлох MINUTE_PIN 4 // Trinket GPIO #4 дээр PWM -ээр дамжуулан минутын дэлгэц (Таймер 1 дуудлагаар)
int цаг = 57; int минут = 57; // хамгийн бага pwm -ийг тохируулна уу
хүчингүй тохиргоо () {pinMode (HOUR_PIN, OUTPUT); pinMode (MINUTE_PIN, OUTPUT); PWM4_init (); // ХОУХ -ны гаралтыг тохируулах
}
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 бол хамгийн бага гаралт бөгөөд 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 цаг/4 цагийн хоцролттой (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 цаг/4 цагийн хоцролттой (4000) харгалзах гаралт; analogWrite (HOUR_PIN, 237); // 237 бол өглөөний 11 цаг/цаг хоцролттой (4000) харгалзах гаралт; analogWrite (HOUR_PIN, 255); // 255 бол 12 am/pm -тэй тохирох гаралт юм
*/
}
void PWM4_init () {// Trinket GPIO #4 (PB4, pin 3) дээр PWM -ийг Timer 1 TCCR1 = _BV (CS10) ашиглан тохируулах; // prescaler байхгүй GTCCR = _BV (COM1B1) | _BV (PWM1B); // харьцуулах OC1B -ийг цэвэр OC1B = 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 -ийн Github репозитороос татаж аваад // Arduino номын сангийн санд суулгаарай #include #include
// Цуваа кодыг дибаг хийх, тайлбарлахгүй байхын тулд Pin 3 -т холбогдсон RX зүү бүхий FTDI Friend -ийг ашиглана уу // Танд 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; // Бодит цагийн цагийг тохируулах
хүчингүй тохиргоо () {pinMode (HOUR_PIN, OUTPUT); // ХОУХ -ны тоолуурыг pinMode (MINUTE_PIN, OUTPUT) гаралт гэж тодорхойлох; PWM4_init (); // Таймер 1 -ийг Trinket Pin 4 TinyWireM.begin () дээр ХОУХШ -ийг ажиллуулахаар тохируулна уу; // Эхлэх I2C rtc.begin (); // DS1307 бодит цагийн цагийг эхлүүл //Serial.begin(9600); // (! Rtc.isrunning ()) {//Serial.println("RTC ажиллахгүй байна! ") Бол Цуваа мониторыг 9600 baud -аас эхлүүлээрэй;"); // Дараах мөр нь энэ ноорогийг эмхэтгэсэн огноо, цагийг RTC болгож тохируулдаг (DateTime (_ DATE_, _TIME_)); }}
void loop () {uint8_t hourvalue, minutevalue; uint8_t цагийн хүчдэл, минутын хүчдэл;
DateTime now = rtc.now (); // RTC мэдээллийн цагийн утгыг авах = now.hour (); // Хэрэв (hourvalue> 12) hourvalue -= 12; // Энэ цаг нь 12 цагийн минутын үнэ цэнэ = одоо.минут (); // Минут авах
minutevoltage = газрын зураг (minutevalue, 1, 60, 57, 255); // Минутуудыг ХОУХ -ны үүргийн мөчлөгт хөрвүүлэх
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) дээр ХОУХШ -ийг тохируулах; // prescaler байхгүй GTCCR = _BV (COM1B1) | _BV (PWM1B); // харьцуулах OC1B -ийг цэвэр OC1B = 127; // үүргийн мөчлөг 50% хүртэл эхэлнэ OCR1C = 255; // давтамж}
// Trinket GPIO #4 дээр analogWrite -ийг зөвшөөрөх функц analogWrite4 (uint8_t duty_value) {OCR1B = duty_value; // татвар 0 -ээс 255 (0 -ээс 100%хүртэл) байж болно}
Зөвлөмж болгож буй:
Цаг хэмжих (соронзон хальсны цаг): 5 алхам (зурагтай)
Цаг хэмжих (соронзон хальсны хэмжих цаг): Энэхүү төслийн хувьд бид (Алекс Фиел & Анна Линтон) өдөр тутмын хэмжих хэрэгслийг аваад цаг болгон хувиргасан. Анхны төлөвлөгөө нь одоо байгаа соронзон хальсны хэмжүүрийг моторжуулах явдал байв. Үүнийг хийхдээ бид өөрсдийнхөө бүрхүүлийг бүтээхэд илүү хялбар байх болно гэж шийдсэн
NaTaLia цаг уурын станц: Arduino нарны эрчим хүчээр ажилладаг цаг уурын станц зөв замаар хийсэн: 8 алхам (зурагтай)
NaTaLia цаг уурын станц: Arduino нарны эрчим хүчээр ажилладаг цаг уурын станц зөв замаар хийсэн: 1 жилийн турш 2 өөр байршилд амжилттай ажилласны дараа би нарны эрчим хүчээр ажилладаг цаг уурын станцын төслийн төлөвлөгөөгөө хуваалцаж, хэрхэн урт хугацаанд үнэхээр оршин тогтнож чадах систем болж хөгжсөн тухай тайлбарлаж байна. нарны эрчим хүчнээс үүссэн үе. Хэрэв та дагах бол
Түрлэг ба цаг агаарын цаг: 9 алхам (зурагтай)
Түрлэг ба цаг агаарын цаг: Хэдийгээр та далайн түрлэг өндөр эсвэл нам, эсвэл хаа нэгтээ байгаа эсэхийг харуулдаг цорын ганц гартай аналог цаг худалдаж авах боломжтой боловч миний хүсч байсан зүйл бол далайн түрлэг ямар үед болохыг хэлж өгөх байсан юм. Би q руу харах боломжтой зүйлийг хүсч байсан
ESP8266 ашиглан сүлжээний цаг дижитал цаг: 4 алхам (зурагтай)
ESP8266 ашиглан сүлжээний цагийн дижитал цаг: Бид NTP серверүүдтэй холбогддог, сүлжээ эсвэл интернетийн цагийг харуулдаг хөөрхөн бяцхан дижитал цаг бүтээх талаар суралцдаг. WeMos D1 mini -ийг ашиглан WiFi сүлжээнд холбогдож, NTP цагийг олж, OLED модуль дээр харуулна
WiFi цаг, таймер, цаг агаарын станц, Блинк хяналттай: 5 алхам (зурагтай)
WiFi цаг, таймер, цаг агаарын станц, Блинк хяналттай: Энэ бол Морфин дижитал цаг (ойлголт, кодын хувьд Хари Вигунагийн ачаар) бөгөөд энэ нь аналог цаг, цаг агаарын мэдээ, гал тогооны цаг хэмжигч юм. Ухаалаг гар утсан дээрээ WiFi -ээр Blynk програм. Энэхүү програм нь танд