Cuprins:

Ceas Nixie Bargraph: 6 pași (cu imagini)
Ceas Nixie Bargraph: 6 pași (cu imagini)

Video: Ceas Nixie Bargraph: 6 pași (cu imagini)

Video: Ceas Nixie Bargraph: 6 pași (cu imagini)
Video: EleksMaker EleksTube IPS 6-Bit IPS Retro Glows Analog Nixie Tube elekstube clock 2024, Iulie
Anonim
Ceas Nargie Bargraph
Ceas Nargie Bargraph
Ceas Nargie Bargraph
Ceas Nargie Bargraph

Editează 11.11.17 Cu ajutorul Kickstarter, am lansat acum un kit pentru acest kit de ceas! Include o placă de conducere și 2 tuburi Nixie IN-9. Tot ce trebuie să adăugați este propriul dvs. Arduino / Raspberry Pi / altele. Trusa poate fi găsită, dar făcând clic pe acest link!

Așa că am văzut o mulțime de ceasuri Nixie online și mi s-a părut că arătau grozav, totuși nu am vrut să cheltuiesc peste 100 de dolari pe un ceas care nici măcar nu include tuburile! și circuite. Am vrut să fac ceva puțin diferit de gama largă de ceasuri nixie cu aspect destul de similar. În cele din urmă am ales să folosesc tuburi de bare Nixie IN-9. Acestea sunt tuburi subțiri lungi și înălțimea plasmei strălucitoare depinde de curentul prin tuburi. Tubul din stânga este în trepte de oră, iar tubul din dreapta este în minute. Au doar două cabluri, astfel încât construirea unui circuit este mai dreaptă. În acest design, există o oră și un tub de minute, înălțimile plasmei din fiecare tub reprezentând timpul curent. Ora este păstrată folosind un microcontroler Adafruit Trinket și un ceas în timp real (RTC).

Pasul 1: Asamblarea pieselor

Asamblarea pieselor
Asamblarea pieselor

Există două secțiuni, mai întâi electronica și, în al doilea rând, montarea și finisarea. Componentele electronice necesare sunt: Adafruit Trinket 5V - 7,95 USD (www.adafruit.com/products/1501) Adafruit RTC - 9 USD (www.adafruit.com/products/264) 2x Nixie IN-9 bargraph ~ 3 $ pe tub pe eBay 1x Alimentare Nixie 140v ~ 12 USD pe eBay 4x condensatori electrolit 47 UF 4x rezistențe 3,9 kOhm 2x 1 kOhm potențiometru 2x tranzistor MJE340 NPN de înaltă tensiune ~ 1 $ fiecare 1x LM7805 5V regulator ~ 1 $ 1x priză 2.1mm ~ 1 $ 1x cutie proiect cu pcb ~ 5 $ 1x Sursă de alimentare de 12V DC (am găsit una veche dintr-un dispozitiv uitat de mult) Lipire, cablu de conectare, etc. Pentru a marca ora și minutele, am folosit sârmă de cupru înfășurată în jurul tuburilor. Piese de montare: mișcare antică a ceasului - 10 USD Sârmă de cupru - 3 USD eBay Pistol de lipit fierbinte

Pasul 2: Circuit

Circuit
Circuit
Circuit
Circuit
Circuit
Circuit
Circuit
Circuit

Primul pas este construirea sursei de alimentare Nixie. Acest lucru a venit ca un mic kit frumos de la eBay, inclusiv un mic PCB și a avut nevoie doar de componentele pentru a fi lipite pe placa. Această sursă specială variază între 110-180v, controlabilă cu o oală mică pe placă. Folosind un șurubelniță mică reglați ieșirea la ~ 140v. Înainte de a merge la tot drumul, am vrut să-mi testez tuburile nixie, pentru a face acest lucru am construit un circuit simplu de testare folosind un tub, tranzistor și un potențiometru de 10k pe care îl aveam în jur. Așa cum se poate vedea în prima figură, alimentarea de 140v este atașată la anodul tubului (piciorul drept). Catodul (piciorul stâng) este apoi conectat la piciorul colector al tranzistorului MJE340. O alimentare de 5V este conectată la o oală de 10k care se împarte la masă în baza tranzistorului. În cele din urmă, emițătorul tranzistorului se conectează printr-un rezistor de limitare a curentului de 300 ohmi la masă. Dacă nu sunteți familiarizați cu tranzistoarele și electronica, nu contează cu adevărat, doar conectați-l și schimbați înălțimea plasmei cu butonul pot! Odată ce acest lucru funcționează, ne putem uita la realizarea ceasului nostru. Circuitul complet al ceasului poate fi văzut în a doua diagramă a circuitului. După câteva cercetări, am găsit un tutorial perfect pe site-ul web Adafruit learn făcând aproape exact ceea ce am vrut să fac. Tutorialul poate fi găsit aici: https://learn.adafruit.com/trinket-powered-analog-m… Acest tutorial folosește un controler Trinket și un RTC pentru a controla două amplificatoare analogice. Folosind modularea lățimii pulsului (PWM) pentru a controla devierea acului. Bobina amplificatorului calculează în medie PWM într-un semnal de curent continuu eficient. Cu toate acestea, dacă folosim PWM direct pentru a conduce tuburile, atunci modulația de înaltă frecvență înseamnă că bara de plasmă nu va rămâne „prinsă” la baza tubului și veți avea o bară care se deplasează. Pentru a evita acest lucru, am făcut media PWM utilizând un filtru low-pass cu o constantă de timp lungă pentru a obține un semnal aproape de curent continuu. Aceasta are o frecvență de întrerupere de 0,8 Hz, este bine, deoarece actualizăm ora ceasului doar la fiecare 5 secunde. În plus, deoarece bargrafele au o durată de viață finită și ar putea fi necesară înlocuirea și nu fiecare tub este exact același, am inclus o oală de 1k după tub. Acest lucru permite ajustarea pentru a regla înălțimea plasmei pentru cele două tuburi. Pentru a conecta bibeloul la ceasul în timp real (RCT), conectați pinul 0 la RTC-SDA, pinul 2 la RTC-SCL și Trinket-5v la RTC-5v și Gink-ul la masa RTC. Pentru această parte, poate fi util să vizualizați instrucțiunile de ceas Adafruit, https://learn.adafruit.com/trinket-powered-analog-…. După ce Trinket și RTC sunt conectate corect, conectați tuburile nixie, tranzistoarele, filtrele etc.

Pentru a vorbi RTC și Trinket, trebuie mai întâi să descărcați bibliotecile corecte de pe Adafruit Github. Aveți nevoie de TinyWireM.h și TInyRTClib.h. Mai întâi vrem să calibrăm tuburile, să încărcăm schița de calibrare la sfârșitul acestui instructable. Dacă niciuna dintre schițe la final nu funcționează, încercați schița ceasului Adafruit. Am modificat schița ceasului Adafruit pentru a funcționa cel mai eficient cu tuburile nixie, dar schița Adafruit va funcționa bine.

Pasul 3: Calibrare

Calibrare
Calibrare

După ce ați încărcat schița de calibrare, gradările trebuie marcate.

Există trei moduri de calibrare, primul setează ambele tuburi nixie la puterea maximă. Utilizați acest lucru pentru a regla vasul astfel încât înălțimea plasmei din ambele tuburi să fie aceeași și să fie puțin sub înălțimea maximă. Acest lucru asigură răspunsul liniar pe toată gama de ceasuri.

A doua setare calibrează tubul de minute. Se schimbă între 0, 15, 30, 45 și 60 de minute la fiecare 5 secunde.

Ultima setare repetă acest lucru pentru fiecare increment de oră. Spre deosebire de ceasul Adafruit, indicatorul de oră se mișcă în trepte fixe o dată pe oră. A fost dificil să obțineți un răspuns liniar pentru fiecare oră atunci când utilizați un contor analogic.

După ce ați ajustat potul, încărcați schița pentru a o calibra minute. Luați firul subțire de cupru și tăiați o lungime scurtă. Înfășurați tubul și rotiți cele două capete împreună. Glisați acest lucru în poziția corectă și, folosind un pistol de adeziv fierbinte, plasați o mică blobă de adeziv pentru a păstra în locul potrivit. Repetați acest lucru pentru fiecare minut și oră.

Am uitat să fac poze cu acest proces, dar puteți vedea din poze cum este atașat firul. Deși am folosit mult mai puțin adeziv doar pentru a atașa firul.

Pasul 4: Montare și finisare

Montare și finisare
Montare și finisare
Montare și finisare
Montare și finisare
Montare și finisare
Montare și finisare

Odată ce tuburile sunt calibrate și funcționează, este momentul să faceți circuitul permanent și să montați pe o formă de bază. Aleg o mișcare de ceas antic, deoarece mi-a plăcut amestecul de tehnologii antice, anii 60 și moderni. Când transferați de la panou pe panou, fiți foarte atenți și luați-vă timp asigurându-vă că toate conexiunile sunt realizate. Cutia pe care am cumpărat-o era puțin mică, dar cu o așezare atentă și un pic de forțare am reușit să fac totul să se potrivească. Am forat o gaură în lateral pentru sursa de alimentare și alta pentru cablurile Nixie. Am acoperit firele nixie în termocontractiv pentru a evita scurtcircuiturile. Când dispozitivele electronice sunt montate în cutie, lipiți-le pe partea din spate a mișcării ceasului. Pentru a monta tuburile am folosit adeziv fierbinte și am lipit punctele firului răsucit de metal, având grijă să mă asigur că sunt drepte. Probabil că am folosit prea mult adeziv, dar nu se observă prea mult. Ar putea fi ceva ce poate fi îmbunătățit în viitor. Când totul este montat, încărcați schița ceasului Nixie la sfârșitul acestui instructiv și admirați-vă minunatul dvs. ceas!

Pasul 5: Arduino Sketch - Calibrare

#define HOUR_PIN 1 // Afișare oră prin PWM pe Trinket GPIO # 1

#define MINUTE_PIN 4 // Afișare minute prin PWM pe Trinket GPIO # 4 (prin apeluri Timer 1)

ore int = 57; minute int = 57; // setează pwm minim

configurare nulă () {pinMode (HOUR_PIN, OUTPUT); pinMode (MINUTE_PIN, OUTPUT); PWM4_init (); // configurați ieșirile PWM

}

void loop () {// Folosiți această opțiune pentru a regla ghivecele nixie pentru a vă asigura că înălțimea maximă a tubului se potrivește cu analogWrite (HOUR_PIN, 255); analogWrite4 (255); // Utilizați acest lucru pentru a calibra creșterile de minute

/*

analogWrite4 (57); // întârziere minut 0 (5000); analogWrite4 (107); // întârziere minut 15 (5000); analogWrite4 (156); // întârziere minut 30 (5000); analogWrite4 (206); // întârziere minut 45 (5000); analogWrite4 (255); // întârziere minut 60 (5000);

*/

// Utilizați acest lucru pentru a calibra treptele orelor / *

analogWrite (HOUR_PIN, 57); // 57 este ieșirea minimă și corespunde întârzierii 1 am / pm (4000); // întârziere 4 secunde analogWrite (HOUR_PIN, 75); // 75 este ieșirea care corespunde întârzierii 2 am / pm (4000); analogWrite (HOUR_PIN, 93); // 93 este ieșirea care corespunde unei întârzieri de 3 am / pm (4000); analogWrite (HOUR_PIN, 111); // 111 este ieșirea care corespunde întârzierii 4 am / pm (4000); analogWrite (HOUR_PIN, 129); // 129 este ieșirea care corespunde unei întârzieri de 5 am / pm (4000); analogWrite (HOUR_PIN, 147); // 147 este ieșirea care corespunde întârzierii 6 am / pm (4000); analogWrite (HOUR_PIN, 165); // 165 este ieșirea care corespunde întârzierii 7 am / pm (4000); analogWrite (HOUR_PIN, 183); // 183 este ieșirea care corespunde întârzierii 8 am / pm (4000); analogWrite (HOUR_PIN, 201); // 201 este ieșirea care corespunde întârzierii 9 am / pm (4000); analogWrite (HOUR_PIN, 219); // 219 este ieșirea care corespunde întârzierii 10 am / pm (4000); analogWrite (HOUR_PIN, 237); // 237 este ieșirea care corespunde întârzierii 11 am / pm (4000); analogWrite (HOUR_PIN, 255); // 255 este ieșirea care corespunde la 12 am / pm

*/

}

void PWM4_init () {// Configurați PWM pe Trinket GPIO # 4 (PB4, pin 3) folosind Temporizatorul 1 TCCR1 = _BV (CS10); // fără prescaler GTCCR = _BV (COM1B1) | _BV (PWM1B); // ștergeți OC1B la compararea OCR1B = 127; // ciclul de funcționare inițializează la 50% OCR1C = 255; // frecvență }

// Funcție pentru a permite analogWrite pe Trinket GPIO # 4 void analogWrite4 (uint8_t duty_value) {OCR1B = duty_value; // taxa poate fi de la 0 la 255 (0 la 100%)}

Pasul 6: Arduino Sketch - Ceas

// Ceasul contorului analogic Adafruit Trinket

// Funcții de dată și oră utilizând un DS1307 RTC conectat prin I2C și TinyWireM lib

// Descărcați aceste biblioteci din depozitul Github Adafruit și // instalați în directorul Arduino Libraries #include #include

// Pentru depanare, decommentați codul serial, utilizați un FTDI Friend cu pinul RX conectat la Pin 3 // Veți avea nevoie de un program terminal (cum ar fi freeware PuTTY pentru Windows) setat la // portul USB al prietenului FTDI la 9600 baud. Decomentați comenzile seriale pentru a vedea ce se întâmplă // # define HOUR_PIN 1 // Afișare oră prin PWM pe Trinket GPIO # 1 #define MINUTE_PIN 4 // Afișare minute prin PWM pe Trinket GPIO # 4 (prin apeluri Timer 1) // SendOnlySoftware Serial Serial (3); // Transmisie în serie pe Pinul Trinket 3 RTC_DS1307 rtc; // Configurați ceasul în timp real

setare nulă () {pinMode (HOUR_PIN, OUTPUT); // definiți pinii contorului PWM ca ieșiri pinMode (MINUTE_PIN, OUTPUT); PWM4_init (); // Setați temporizatorul 1 să funcționeze PWM pe Pinul Trinket 4 TinyWireM.begin (); // Începeți I2C rtc.begin (); // Începeți DS1307 ceas în timp real //Serial.begin(9600); // Începeți monitorul serial la 9600 baud dacă (! Rtc.isrunning ()) {//Serial.println("RTC NU rulează! "); // următoarea linie setează RTC la data și ora la care a fost compilată această schiță rtc.adjust (DateTime (_ DATE_, _TIME_)); }}

void loop () {uint8_t hourvalue, minutevalue; uint8_t ora tensiune, minutevoltaj;

DateTime acum = rtc.now (); // Obțineți valoarea RTC info hourvalue = now.hour (); // Obțineți ora if (hourvalue> 12) hourvalue - = 12; // Acest ceas are 12 ore minutevalue = now.minute (); // Obțineți minutele

minutevoltage = hartă (minutevalue, 1, 60, 57, 255); // Conversia minutelor în ciclul de funcționare PWM

if (hourvalue == 1) {analogWrite (HOUR_PIN, 57); } if (hourvalue == 2) {analogWrite (HOUR_PIN, 75); // fiecare oră corespunde +18} if (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 (minutevoltage); // analogwrite minute poate rămâne la fel ca și cartografierea // codul pentru a pune procesorul în repaus ar putea fi preferabil - vom întârzia întârzierea (5000); // verifică timpul la fiecare 5 secunde. Puteți schimba acest lucru. }

void PWM4_init () {// Configurați PWM pe Trinket GPIO # 4 (PB4, pin 3) folosind Temporizatorul 1 TCCR1 = _BV (CS10); // fără prescaler GTCCR = _BV (COM1B1) | _BV (PWM1B); // ștergeți OC1B la compararea OCR1B = 127; // ciclul de funcționare inițializează la 50% OCR1C = 255; // frecvență }

// Funcție pentru a permite analogWrite pe Trinket GPIO # 4 void analogWrite4 (uint8_t duty_value) {OCR1B = duty_value; // taxa poate fi de la 0 la 255 (0 la 100%)}

Recomandat: