Съдържание:

Часовник Nixie Bargraph: 6 стъпки (със снимки)
Часовник Nixie Bargraph: 6 стъпки (със снимки)

Видео: Часовник Nixie Bargraph: 6 стъпки (със снимки)

Видео: Часовник Nixie Bargraph: 6 стъпки (със снимки)
Видео: Nixie Clock with Dekatron. 2024, Юли
Anonim
Часовник Nixie Bargraph
Часовник Nixie Bargraph
Часовник Nixie Bargraph
Часовник Nixie Bargraph

Редактирайте 11.11.17 С помощта на Kickstarter вече пуснах комплект за този часовник! Той включва платка за драйвери и 2 тръби Nixie IN-9. Всичко, което трябва да добавите, е вашият собствен Arduino/Raspberry Pi/други. Комплектът може да бъде намерен, но щракнете върху тази връзка!

Така че видях много часовници Nixie онлайн и си помислих, че изглеждат страхотно, но не исках да харча $ 100+ за часовник, който дори не включва лампите! и вериги. Исках да направя нещо малко по -различно от широката гама от обикновено доста сходни изглеждащи часовници Nixie. В крайна сметка избрах да използвам 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 ~ 3 $ на тръба в eBay 1x Nixie 140v захранване ~ $ 12 на eBay 4x 47 uF електролитни кондензатори 4x 3.9 kOhm резистори 2x 1 kOhm потенциометър 2x транзистор MJE340 NPN високо напрежение ~ 1 $ всеки 1x LM7805 5v регулатор ~ $ 1 1x 2.1mm гнездо ~ $ 1 1x проектна кутия с печатна платка ~ $ 5 1x 12v DC захранване (намерих стар от някоя отдавна забравена притурка) Поялник, свързващ проводник и т.н. За да отбележа часа и минутите използвах медна тел, обвита около тръбите. Монтажни части: Античен часовник - $ 10 eBay Медна тел - $ 3 eBay Пистолет за горещо лепило

Стъпка 2: Схема

Верига
Верига
Верига
Верига
Верига
Верига
Верига
Верига

Първата стъпка е да се изгради Nixie захранване. Това дойде като хубав малък комплект от eBay, включващ малко печатна платка и просто имаше нужда компонентите да бъдат запоени към платката. Това конкретно захранване е променливо между 110-180v, контролирано с малко гърне на дъската. С помощта на малка отвертка регулирайте изхода на ~ 140v. Преди да извървя целия път, исках да изпробвам моите Nixie епруветки, за да направя това, изградих обикновена тестова верига, използвайки една тръба, транзистор и 10k потенциометър, който имах наоколо. Както може да се види на първата фигура, захранването 140v е прикрепено към тръбния анод (десен крак). След това катодът (ляв крак) е свързан към колекторния крак на транзистора MJE340. Захранване от 5v е свързано към 10k пот, разделящо се на земята в основата на транзистора. Накрая транзисторният излъчвател се свързва чрез ограничител на ток 300 ома към земята. Ако не сте запознати с транзисторите и електрониката, няма особено значение, просто го свържете и променете височината на плазмата с копчето за гърне! След като това работи, можем да погледнем как да си направим часовника. Пълната тактова верига може да се види на втората електрическа схема. След известно проучване намерих перфектен урок на уебсайта Adafruit learn, който прави почти точно това, което исках да направя. Урокът може да бъде намерен тук: https://learn.adafruit.com/trinket-powered-analog-m… Този урок използва контролер Trinket и RTC за управление на два аналогови усилвателя. Използване на широчинно -импулсна модулация (ШИМ) за контрол на отклонението на иглата. Бобината на усилвателя измерва средно ШИМ в ефективен постоянен сигнал. Ако обаче използваме ШИМ директно за задвижване на тръбите, тогава високочестотната модулация означава, че плазмената лента няма да остане "затегната" към основата на тръбата и ще имате висяща лента. За да избегна това, осредних ШИМ, използвайки нискочестотен филтър с дълго време константа, за да получа почти постоянен сигнал. Това има гранична честота от 0,8 Hz, това е добре, тъй като актуализираме часовника само на всеки 5 секунди. Освен това, тъй като барграфите имат краен живот и може да се нуждаят от подмяна, а не всяка тръба е същата, включих 1k пот след тръбата. Това позволява ощипване за регулиране на плазмената височина за двете епруветки. За да свържете дрънкулката към часовника в реално време (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, но скицата на Adafruit ще работи добре.

Стъпка 3: Калибриране

Калибриране
Калибриране

След като качите калибриращата скица, дипломите трябва да бъдат маркирани.

Има три режима за калибриране, първият настройва двете никси лампи на максималния изход. Използвайте това, за да регулирате съда, така че височината на плазмата в двете епруветки да е еднаква и да е малко под максималната височина. Това гарантира, че реакцията е линейна в целия тактов диапазон.

Втората настройка калибрира тръбата за минути. Променя се между 0, 15, 30, 45 и 60 минути на всеки 5 секунди.

Последната настройка повтаря това за всеки час. За разлика от часовника Adafruit, индикаторът за час се движи с фиксирани стъпки веднъж на всеки час. Беше трудно да се получи линеен отговор за всеки час, когато се използва аналогов измервателен уред.

След като сте настроили пота, качете скицата, за да я калибрирате за минути. Вземете тънката медна жица и отрежете къса дължина. Увийте тази кръгла тръба и завъртете двата края заедно. Плъзнете го в правилната позиция и с помощта на пистолет за горещо лепило поставете малко петно лепило, за да го задържите на правилното място. Повторете това за всяка минута и час.

Забравих да направя снимки на този процес, но можете да видите от снимките как е прикрепен проводникът. Въпреки че използвах много по -малко лепило само за закрепване на проводника.

Стъпка 4: Монтаж и довършителни работи

Монтаж и довършителни работи
Монтаж и довършителни работи
Монтаж и довършителни работи
Монтаж и довършителни работи
Монтаж и довършителни работи
Монтаж и довършителни работи

След като всички тръби са калибрирани и работят, сега е моментът да направите веригата за постоянно и да я монтирате на някаква форма на основата. Избирам античен часовник, тъй като ми хареса комбинацията от антични, 60 -те и съвременните технологии. Когато прехвърляте от дъската към лентата, бъдете много внимателни и отделете време, за да се уверите, че всички връзки са осъществени. Кутията, която купих, беше малко малка, но с внимателно поставяне и малко принуждаване успях да накарам всичко. Пробих дупка отстрани за захранването и друга за никси проводниците. Покрих проводниците на nixie с термосвиване, за да избегна къси панталони. Когато електрониката е монтирана в кутията, залепете я към задната част на часовника. За монтиране на тръбите използвах горещо лепило и залепих върховете на усукана тел към метала, като внимавах да се уверя, че са прави. Вероятно съм използвал прекалено много лепило, но не е много забележимо. Това може да е нещо, което може да се подобри в бъдеще. Когато всичко е монтирано, заредете скицата на часовника Nixie в края на тази инструкция и се възхищавайте на вашия прекрасен нов часовник!

Стъпка 5: Скица на Arduino - Калибриране

#define HOUR_PIN 1 // Часов дисплей чрез PWM на Trinket GPIO #1

#define MINUTE_PIN 4 // Минутен дисплей чрез PWM на Trinket GPIO #4 (чрез разговори по Таймер 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); 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 ч./Мин (4000); analogWrite (HOUR_PIN, 255); // 255 е изходът, който съответства на 12 ч./Мин

*/

}

void PWM4_init () {// Настройте PWM на Trinket GPIO #4 (PB4, пин 3), като използвате Таймер 1 TCCR1 = _BV (CS10); // без предварително делител GTCCR = _BV (COM1B1) | _BV (PWM1B); // изчистване на OC1B при сравнение OCR1B = 127; // работен цикъл инициализиране на 50% OCR1C = 255; // честота }

// Функция за разрешаване на analogWrite на Trinket GPIO #4 void analogWrite4 (uint8_t duty_value) {OCR1B = duty_value; // митото може да бъде от 0 до 255 (от 0 до 100%)}

Стъпка 6: Скица на Arduino - Часовник

// Аналогов часовник за измерване на Adafruit Trinket

// Функции за дата и час, използващи DS1307 RTC, свързани чрез I2C и TinyWireM lib

// Изтеглете тези библиотеки от хранилището на Github на Adafruit и // инсталирайте във вашата директория на Arduino Libraries #include #include

// За отстраняване на грешки, разкоментиране на сериен код, използвайте FTDI Friend с неговия RX щифт, свързан към Pin 3 // Ще ви е необходима терминална програма (например безплатна PuTTY за Windows), настроена на // USB порта на FTDI приятел на 9600 бод. Декомментирайте серийните команди, за да видите какво става // #дефинирайте HOUR_PIN 1 // Показване на час чрез PWM на Trinket GPIO #1 #дефинирайте MINUTE_PIN 4 // Минутно показване чрез PWM на Trinket GPIO #4 (чрез разговори по Таймер 1) // SendOnlySoftwareSerial Serial (3); // Серийно предаване на Trinket Pin 3 RTC_DS1307 rtc; // Настройка на часовник в реално време

void setup () {pinMode (HOUR_PIN, OUTPUT); // дефинираме изводите на ШИМ измервател като изходи pinMode (MINUTE_PIN, OUTPUT); PWM4_init (); // Задайте таймер 1 да работи PWM на Trinket Pin 4 TinyWireM.begin (); // Започнете I2C rtc.begin (); // Започнете часовник в реално време DS1307 //Serial.begin(9600); // Стартиране на сериен монитор на 9600 бода if (! Rtc.isrunning ()) {//Serial.println(" RTC НЕ работи! "); // следният ред задава RTC на датата и часа на съставяне на тази скица rtc.adjust (DateTime (_ DATE_, _TIME_)); }}

void loop () {uint8_t hourvalue, minutevalue; uint8_t часово напрежение, минутно напрежение;

DateTime сега = rtc.now (); // Вземете RTC info hourvalue = now.hour (); // Вземете часа if (hourvalue> 12) hourvalue -= 12; // Този часовник е 12 часа minutevalue = now.minute (); // Вземете минутите

минутно напрежение = карта (минутна стойност, 1, 60, 57, 255); // Конвертиране на минути в работен цикъл на ШИМ

if (hourvalue == 1) {analogWrite (HOUR_PIN, 57); } if (hourvalue == 2) {analogWrite (HOUR_PIN, 75); // всеки час съответства на +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 (минутно напрежение); // минутата analogwrite може да остане същата като картографирането работи // кодът за поставяне на процесора в режим на заспиване може да бъде за предпочитане - ще забавим забавянето (5000); // проверяваме времето на всеки 5 секунди. Можете да промените това. }

void PWM4_init () {// Настройте PWM на Trinket GPIO #4 (PB4, пин 3), като използвате Таймер 1 TCCR1 = _BV (CS10); // без предварително делител GTCCR = _BV (COM1B1) | _BV (PWM1B); // изчистване на OC1B при сравнение OCR1B = 127; // работен цикъл инициализиране на 50% OCR1C = 255; // честота }

// Функция за разрешаване на analogWrite на Trinket GPIO #4 void analogWrite4 (uint8_t duty_value) {OCR1B = duty_value; // митото може да бъде от 0 до 255 (от 0 до 100%)}

Препоръчано: