Taula de continguts:

Rellotge Nixie Bargraph: 6 passos (amb imatges)
Rellotge Nixie Bargraph: 6 passos (amb imatges)

Vídeo: Rellotge Nixie Bargraph: 6 passos (amb imatges)

Vídeo: Rellotge Nixie Bargraph: 6 passos (amb imatges)
Vídeo: EleksMaker EleksTube IPS 6-Bit IPS Retro Glows Analog Nixie Tube elekstube clock 2024, Juliol
Anonim
Rellotge Nixie Bargraph
Rellotge Nixie Bargraph
Rellotge Nixie Bargraph
Rellotge Nixie Bargraph

Edita l'11 / 11/17 Amb l'ajut de Kickstarter, ara he llançat un kit per a aquest kit de rellotge. Inclou una placa de controladors i 2 tubs Nixie IN-9. Tot el que heu d’afegir és el vostre propi Arduino / Raspberry Pi / altres. El kit es pot trobar però fent clic en aquest enllaç.

Així que he vist molts rellotges Nixie en línia i he pensat que semblaven fantàstics, tot i que no volia gastar més de 100 dòlars en un rellotge que ni tan sols inclogui els tubs. i circuits. Volia fer alguna cosa una mica diferent de la gran gamma de rellotges nixie d’aspecte generalment bastant semblants. Al final, vaig optar per utilitzar tubs de barres Nixie IN-9. Es tracta de llargs tubs prims i l’alçada del plasma brillant depèn del corrent a través dels tubs. El tub de l'esquerra és en increments d'hores i el de la dreta és de minuts. Només tenen dos cables i, per tant, fan que la construcció d’un circuit sigui més senzill. En aquest disseny, hi ha una hora i un minut de tub, amb les altures del plasma de cada tub que representen l’hora actual. El temps es manté mitjançant un microcontrolador Adafruit Trinket i un rellotge en temps real (RTC).

Pas 1: Muntatge de les peces

Muntatge de les peces
Muntatge de les peces

Hi ha dues seccions, primer l'electrònica i, en segon lloc, el muntatge i l'acabat. Els components electrònics necessaris són: Adafruit Trinket 5V - 7,95 $ (www.adafruit.com/products/1501) Adafruit RTC - 9 $ (www.adafruit.com/products/264) 2x Nixie IN-9 bargraph ~ 3 $ per tub a eBay 1x Alimentació Nixie 140v ~ 12 dòlars a eBay 4x condensadors electròlits 47 uF 4x resistències de 3,9 kOhm 2x 1 kOhm potenciòmetre 2x Transistor MJE340 NPN d'alta tensió ~ 1 dòlar cada 1x LM7805 5v regulador ~ 1 dòlars 1x presa de 2,1 mm ~ 1 dòlars 1x caixa del projecte amb pcb ~ 5 dòlars 1x Font d'alimentació de 12 V CC (he trobat una antiga d'un aparell oblidat) Soldadura, cable de connexió, etc. Muntatge: Vaig decidir muntar l'electrònica en una petita caixa de plàstic negre i muntar els tubs en un moviment de rellotge antic. Per marcar l’hora i els minuts, he utilitzat filferro de coure embolicat al voltant dels tubs. Parts de muntatge: moviment de rellotge antic - 10 dòlars de coure eBay - 3 dòlars de pistola de cola calenta eBay

Pas 2: Circuit

Circuit
Circuit
Circuit
Circuit
Circuit
Circuit
Circuit
Circuit

El primer pas és construir la font d’alimentació Nixie. Això va venir com un bonic kit d'eBay, que incloïa una mica de PCB i només necessitava que els components es soldessin al tauler. Aquest subministrament en concret és variable entre 110-180v, controlable amb una petita olla al tauler. Amb un tornavís petit, ajusteu la sortida a ~ 140v. Abans d’anar cap a tot el camí volia provar els meus tubs nixie, per fer-ho vaig construir un circuit de prova senzill amb un tub, un transistor i un potenciòmetre de 10 k que tenia al voltant. Com es pot veure a la primera figura, el subministrament de 140 v està unit a l’ànode del tub (cama dreta). El càtode (cama esquerra) es connecta a la cama col·lectora del transistor MJE340. Es connecta un subministrament de 5v a una olla de 10k que es divideix a terra a la base del transistor. Finalment, l’emissor del transistor es connecta a terra mitjançant una resistència limitant el corrent de 300 ohms. Si no esteu familiaritzat amb els transistors i l’electrònica, realment no importa, simplement connecteu-lo i canvieu l’alçada del plasma amb el botó del pot. Un cop això funcioni, podem mirar de fer el nostre rellotge. El circuit complet del rellotge es pot veure al segon diagrama del circuit. Després d'algunes investigacions, vaig trobar un tutorial perfecte al lloc web Adafruit learn fent gairebé exactament el que volia fer. El tutorial es pot trobar aquí: https://learn.adafruit.com/trinket-powered-analog-m… Aquest tutorial utilitza un controlador Trinket i un RTC per controlar dos amplímetres analògics. Mitjançant la modulació d’amplada de pols (PWM) per controlar la deflexió de l’agulla. La bobina de l’amperímetre converteix el PWM en un senyal de corrent continu eficaç. Tanmateix, si fem servir el PWM directament per conduir els tubs, la modulació d'alta freqüència significa que la barra de plasma no quedarà "subjecta" a la base del tub i tindreu una barra que plana. Per evitar això, vaig fer una mitjana del PWM mitjançant un filtre de pas baix amb una constant de temps llarg per obtenir un senyal gairebé de CC. Té una freqüència de tall de 0,8 Hz, està bé, ja que actualitzem el temps del rellotge només cada 5 segons. A més, atès que els gràfics de barres tenen una vida útil limitada i pot ser que calgui substituir-los i no tots els tubs són exactament iguals, he inclòs una olla de 1 k després del tub. Això permet ajustar l’alçada del plasma dels dos tubs. Per connectar el quincalla al rellotge en temps real (RCT), connecteu el pin 0 a RTC-SDA, el pin 2 a RTC-SCL i el Trinket-5v a RTC-5v i el Trinket GND a la terra RTC. Per a aquesta part pot ser útil veure les instruccions del rellotge Adafruit, https://learn.adafruit.com/trinket-powered-analog-…. Un cop connectats correctament el Trinket i el RTC, connecteu els tubs nixie, els transistors, els filtres, etc.

Per fer que RTC i Trinket parlin, primer heu de descarregar les biblioteques correctes a Adafruit Github. Necessiteu TinyWireM.h i TInyRTClib.h. Primer volem calibrar els tubs, pujar l'esbós de calibració al final d'aquest instructable. Si cap dels esbossos al final no funciona, proveu l'esbós del rellotge d'Adafruit. He modificat l’esbós del rellotge Adafruit perquè funcioni de manera més eficaç amb els tubs nixie, però l’esbós d’Adafruit funcionarà bé.

Pas 3: calibració

Calibratge
Calibratge

Un cop hàgiu penjat l'esbós de calibratge, cal marcar les graduacions.

Hi ha tres modes per al calibratge, el primer estableix els dos tubs nixie al màxim rendiment. Utilitzeu aquesta opció per ajustar l’olla de manera que l’alçada de plasma dels dos tubs sigui la mateixa i que quedi lleugerament per sota de l’alçada màxima. Això garanteix que la resposta sigui lineal durant tot el rang del rellotge.

El segon ajust calibra el tub de minuts. Canvia entre 0, 15, 30, 45 i 60 minuts cada 5 segons.

L'últim paràmetre es repeteix per cada increment d'hora. A diferència del rellotge d'Adafruit, l'indicador d'hores es mou en increments fixos un cop cada hora. Era difícil obtenir una resposta lineal per a cada hora quan s’utilitzava un comptador analògic.

Un cop ajustat el pot, pengeu l'esbós per calibrar-lo durant minuts. Agafeu el fil de coure prim i talleu-ne una de curta. Emboliqueu-ho amb el tub i gireu els dos extrems junts. Feu-lo lliscar a la posició correcta i, mitjançant una pistola de cola calenta, col·loqueu una petita gota de cola per mantenir-la al lloc correcte. Repetiu-ho per cada increment de minuts i hores.

M’he oblidat de fer fotos d’aquest procés, però a les imatges es pot veure com s’adjunta el cable. Tot i que he utilitzat molt menys cola només per fixar el cable.

Pas 4: muntatge i acabat

Muntatge i acabat
Muntatge i acabat
Muntatge i acabat
Muntatge i acabat
Muntatge i acabat
Muntatge i acabat

Un cop calibrats els tubs i funcionant, ara és el moment de fer el circuit permanentment i muntar-lo sobre alguna forma de base. He escollit un moviment de rellotge antic, ja que m’agradava la barreja de tecnologia antiga, dels anys 60 i de la moderna. Quan es transfereix de la placa de taula al tauler de tires, tingueu molt de compte i preneu-vos el temps assegurant-vos que es fan totes les connexions. La caixa que vaig comprar era una mica petita, però amb una col·locació acurada i una mica forçada vaig aconseguir que encaixés tot. He forat un forat al costat per a la font d'alimentació i un altre per als cables Nixie. Vaig tapar els cables de Nixie contra la calor per evitar que hi hagués curts. Quan els elements electrònics es munten a la caixa, enganxeu-lo a la part posterior del moviment del rellotge. Per muntar els tubs he utilitzat cola calenta i he enganxat els punts de filferro retorçat al metall, tenint cura de garantir que fossin rectes. Probablement he fet servir massa cola però no es nota molt. Pot ser una cosa que es pugui millorar en el futur. Quan estigui tot muntat, carregueu l'esbós del rellotge Nixie al final d'aquest instructiu i admireu el vostre nou rellotge.

Pas 5: Arduino Sketch: calibració

#define HOUR_PIN 1 // Visualització de l’hora mitjançant PWM a Trinket GPIO # 1

#define MINUTE_PIN 4 // Visualització de minuts mitjançant PWM a Trinket GPIO # 4 (mitjançant trucades del temporitzador 1)

hores int = 57; minuts int = 57; // estableix un mínim de pwm

configuració nul·la () {pinMode (HOUR_PIN, OUTPUT); pinMode (MINUTE_PIN, OUTPUT); PWM4_init (); // configureu les sortides PWM

}

void loop () {// Utilitzeu-ho per ajustar els pots Nixie per assegurar-vos que l'alçada màxima del tub coincideixi amb analogWrite (HOUR_PIN, 255); analogWrite4 (255); // Utilitzeu això per calibrar els increments de minuts

/*

analogWrite4 (57); // minut 0 de retard (5000); analogWrite4 (107); // retard del minut 15 (5000); analogWrite4 (156); // retard del minut 30 (5000); analogWrite4 (206); // retard del minut 45 (5000); analogWrite4 (255); // retard del minut 60 (5000);

*/

// Utilitzeu això per calibrar els increments horaris / *

analogWrite (HOUR_PIN, 57); // 57 és la sortida mínima i correspon a 1 am / pm de retard (4000); // demora 4 segons analogWrite (HOUR_PIN, 75); // 75 és la sortida que correspon a un retard de 2 am / pm (4000); analogWrite (HOUR_PIN, 93); // 93 és la sortida que correspon a un retard de 3 am / pm (4000); analogWrite (HOUR_PIN, 111); // 111 és la sortida que correspon a un retard de 4 am / pm (4000); analogWrite (HOUR_PIN, 129); // 129 és la sortida que correspon a un retard de 5 am / pm (4000); analogWrite (HOUR_PIN, 147); // 147 és la sortida que correspon a un retard de 6 am / pm (4000); analogWrite (HOUR_PIN, 165); // 165 és la sortida que correspon a un retard de 7 am / pm (4000); analogWrite (HOUR_PIN, 183); // 183 és la sortida que correspon a un retard de 8 am / pm (4000); analogWrite (HOUR_PIN, 201); // 201 és la sortida que correspon a un retard de 9 am / pm (4000); analogWrite (HOUR_PIN, 219); // 219 és la sortida que correspon a un retard de 10 am / pm (4000); analogWrite (HOUR_PIN, 237); // 237 és la sortida que correspon a un retard de les 11:00 a les 00:00 (4000); analogWrite (HOUR_PIN, 255); // 255 és la sortida que correspon a les 12 h / pm

*/

}

void PWM4_init () {// Configureu PWM a Trinket GPIO # 4 (PB4, pin 3) mitjançant el temporitzador 1 TCCR1 = _BV (CS10); // sense prescaler GTCCR = _BV (COM1B1) | _BV (PWM1B); // esborreu OC1B en comparar OCR1B = 127; // cicle de treball inicialitzat al 50% OCR1C = 255; // freqüència }

// Funció per permetre analogWrite a Trinket GPIO # 4 void analogWrite4 (uint8_t duty_value) {OCR1B = duty_value; // el deure pot ser del 0 al 255 (del 0 al 100%)}

Pas 6: Arduino Sketch - Rellotge

// Rellotge analògic Adafruit Trinket

// Funcions de data i hora mitjançant un RTC DS1307 connectat a través d'I2C i el TinyWireM lib

// Descarregueu aquestes biblioteques des del dipòsit Github d'Adafruit i // instal·leu-les al directori Arduino Libraries #include #include

// Per a la depuració, descomenteu el codi de sèrie, utilitzeu un amic FTDI amb el seu pin RX connectat al pin 3 // Necessitareu un programa de terminal (com ara el programari gratuït PuTTY per a Windows) configurat al // port USB del FTDI friend al 9600 baud. Descomenteu les ordres de sèrie per veure què passa // # define HOUR_PIN 1 // Visualització de les hores mitjançant PWM a Trinket GPIO # 1 #define MINUTE_PIN 4 // Visualització de minuts mitjançant PWM a Trinket GPIO # 4 (mitjançant trucades del temporitzador 1) // SendOnlySoftwareSerial Serial (3); // Transmissió en sèrie al pin 3 Trinket RTC_DS1307 rtc; // Configureu un rellotge en temps real

configuració nul·la () {pinMode (HOUR_PIN, OUTPUT); // defineix els pins del comptador PWM com a sortides pinMode (MINUTE_PIN, OUTPUT); PWM4_init (); // Estableix el temporitzador 1 perquè funcioni amb PWM al pin 4 de Trinket TinyWireM.begin (); // Començar I2C rtc.begin (); // Comenceu el rellotge en temps real DS1307 //Serial.begin(9600); // Comenceu el monitor de sèrie a 9600 bauds si (! Rtc.isrunning ()) {//Serial.println("RTC NO s'està executant! "); // la línia següent estableix el RTC a la data i hora en què es va compilar aquest esbós rtc.adjust (DataHora (_ DATE_, _TIME_)); }}

void loop () {uint8_t hora, valor minut; uint8_t tensió horària, voltatge minut;

Data i hora ara = rtc.now (); // Obteniu la informació RTC hourvalue = now.hour (); // Obteniu l’hora if (hourvalue> 12) hourvalue - = 12; // Aquest rellotge té 12 hores minutevalue = now.minute (); // Obteniu els minuts

minutevoltage = mapa (minutevalue, 1, 60, 57, 255); // Converteix els minuts en cicle de treball PWM

if (valor horari == 1) {analogWrite (HOUR_PIN, 57); } if (valor horari == 2) {analogWrite (HOUR_PIN, 75); // cada hora correspon a +18} if (hourvalue == 3) {analogWrite (HOUR_PIN, 91); }

if (valor horari == 4) {analogWrite (HOUR_PIN, 111); } if (valor horari == 5) {analogWrite (HOUR_PIN, 126); } if (valor horari == 6) {analogWrite (HOUR_PIN, 147); } if (valor horari == 7) {analogWrite (HOUR_PIN, 165); } if (valor horari == 8) {analogWrite (HOUR_PIN, 183); } if (valor horari == 9) {analogWrite (HOUR_PIN, 201); } if (valor horari == 10) {analogWrite (HOUR_PIN, 215); } if (valor horari == 11) {analogWrite (HOUR_PIN, 237); } if (valor horari == 12) {analogWrite (HOUR_PIN, 255); }

analogWrite4 (minutevoltage); // analogwrite de minuts pot seguir sent el mateix que el mapatge // el codi per fer dormir el processador pot ser preferible: retardarem el retard (5000); // comprova el temps cada 5 segons. Podeu canviar això. }

void PWM4_init () {// Configureu PWM a Trinket GPIO # 4 (PB4, pin 3) mitjançant el temporitzador 1 TCCR1 = _BV (CS10); // sense prescaler GTCCR = _BV (COM1B1) | _BV (PWM1B); // esborreu OC1B en comparar OCR1B = 127; // cicle de treball inicialitzat al 50% OCR1C = 255; // freqüència }

// Funció per permetre analogWrite a Trinket GPIO # 4 void analogWrite4 (uint8_t duty_value) {OCR1B = duty_value; // el deure pot ser del 0 al 255 (del 0 al 100%)}

Recomanat: