На платформе Arduino можно сделать часы на одноразрядных вакуумно-люминисцентных индикаторах ИВ-22. Часы питаются от напряжения 5 В, но в схеме применен стабилизатор 7805 позволяющий использовать напряжение больше 5 В. Если источник питания который Вы используете на напряжение 5 В, то стабилизатор 7805 из схемы нужно исключить.
Часы состоят из нескольких частей:
- Плата Arduino Nano, Mini или Uno
- Модуль часов реального времени DS3231
- Импульсный преобразователь напряжения 27 В
- Блок индикации
ИВ-22 — люминисцентный семисегментный индикатор зелёного цвета свечения. Индикатор ИВ-22 выполнен в стеклянной колбе с жесткими выводами. Индикация осуществляется через купол баллона. Аноды прибора выполнены в виде семи сегментов и десятичной точки.
#include <MsTimer2.h> #include <Wire.h> #include <DS3231.h> DS3231 clock;RTCDateTime DateTime; int an, segm,times,i; byte a[4]; void setup(){ Wire.begin();clock.begin();MsTimer2::set(4, to_Timer);MsTimer2::start(); // clock.setDateTime(__DATE__, __TIME__); // Устанавливаем время на часах, основываясь на времени компиляции скетча clock.setOutput(DS3231_1HZ); pinMode(9,OUTPUT); // D9 === A0 pinMode(10,OUTPUT); // D10 === A1 pinMode(11,OUTPUT); // D11 === A2 pinMode(12,OUTPUT); // D12 === A3 pinMode(2,OUTPUT); // D2 === a pinMode(3,OUTPUT); // D3 === b pinMode(4,OUTPUT); // D4 === c pinMode(5,OUTPUT); // D5 === d pinMode(6,OUTPUT); // D6 === e pinMode(7,OUTPUT); // D7 === f pinMode(8,OUTPUT); // D8 === g } void loop(){ DateTime=clock.getDateTime();// опрос времени times = DateTime.hour*100+DateTime.minute; a[0]=times/1000; a[1]=times/100%10; a[2]=times/10%10; a[3]=times%10%10; } void to_Timer(){ switch(i){ case 0: segm=a[0]; an=0; anod(); segment();break; case 1: segm=a[1]; an=1; anod(); segment();break; case 2: segm=a[2]; an=2; anod(); segment();break; case 3: segm=a[3]; an=3; anod(); segment();break;}i++;if(i>3){i=0;}} void segment(){ switch(segm){ // A B C D E F G case 0: ch(2,0);ch(3,0);ch(4,0);ch(5,0);ch(6,0);ch(7,0);ch(8,1);break;// 0 case 1: ch(2,1);ch(3,0);ch(4,0);ch(5,1);ch(6,1);ch(7,1);ch(8,1);break;// 1 case 2: ch(2,0);ch(3,0);ch(4,1);ch(5,0);ch(6,0);ch(7,1);ch(8,0);break;// 2 case 3: ch(2,0);ch(3,0);ch(4,0);ch(5,0);ch(6,1);ch(7,1);ch(8,0);break;// 3 case 4: ch(2,1);ch(3,0);ch(4,0);ch(5,1);ch(6,1);ch(7,0);ch(8,0);break;// 4 case 5: ch(2,0);ch(3,1);ch(4,0);ch(5,0);ch(6,1);ch(7,0);ch(8,0);break;// 5 case 6: ch(2,0);ch(3,1);ch(4,0);ch(5,0);ch(6,0);ch(7,0);ch(8,0);break;// 6 case 7: ch(2,0);ch(3,0);ch(4,0);ch(5,1);ch(6,1);ch(7,1);ch(8,1);break;// 7 case 8: ch(2,0);ch(3,0);ch(4,0);ch(5,0);ch(6,0);ch(7,0);ch(8,0);break;// 8 case 9: ch(2,0);ch(3,0);ch(4,0);ch(5,0);ch(6,1);ch(7,0);ch(8,0);break;// 9 }} void anod(){ switch(an){ case 0:ch(9,0);ch(10,1);ch(11,1);ch(12,1);break; case 1:ch(9,1);ch(10,0);ch(11,1);ch(12,1);break; case 2:ch(9,1);ch(10,1);ch(11,0);ch(12,1);break; case 3:ch(9,1);ch(10,1);ch(11,1);ch(12,0);break; }} void ch(int pin, int logic){digitalWrite(pin,logic);}
Библиотеки
Транзистор IRF740 и стабилизатор необходимо установить на небольшие теплоотводы, так же для уменьшения тока потребления рекомендуется увеличить сопротивления на коллекторах транзисторов BC547 до оптимального значения (при увеличении сопротивления не должна существенно падать яркость свечения индикаторов).
Сказано-сделано! Мои поздравления!
Это пока только пробная версия, собрана на проводках, буду переделывать в нормальный вид. Хочу добавить кнопку для отображения секунд, даты, месяца и года, температуры (датчик в ds3231), возможно добавлю будильник. Самое главное корпус сделать.
Вместо преобразователя на таймере можно использовать Step Up DC\DC китайский,готовый. Они прекрасно с 5В поднимают напряжение до 25 . Тогда отпадёт необходимость в 9-и вольтовом блоке питания.
Можно использовать, но у меня нет такого преобразователя.
Было бы неплохо ввести кнопки ручной коррекции времени. Это позволило бы не менять прошивку в случае неточностей модуля часов, другого часового пояса, перехода времени лето-зима.
Начал делать на ив-6, постараюсь сделать коррекцию времени.
Первый тестовый запуск ИВ-6
http://forum.rcl-radio.ru/viewtopic.php?pid=313#p313
А какже так , накал на ив-22 насколько я знаю 1,2 в переменка , на схеме 5в. они так быстро сдохнут
5 В питание всех индикаторов, 1,25 В на каждый.
https://2.bp.blogspot.com/—njgOqKuhFw/WPuuqO5pQoI/AAAAAAAAEm4/YArVbNvMb-UZqOrxFWJpbDVJsl7pB5bsQCLcB/s1600/elektronika-G9-04.gif
https://www.radiokot.ru/forum/viewtopic.php?f=22&t=8441&sid=2a282d58161bfdc8400f2b7b6d8b4538&start=20
Как вы думаете почему народ так извращается ?
http://img.radiokot.ru/files/132429/medium/21ekjre1ef.jpg
У ВЛИ при питании накала постоянным током наблюдается неравномерность свечения сегментов. Так как напротив каждого сегмента (или даже участка большого сегмента) напряжение на катоде (нити) получается разное. Но никто не запрещает питать постоянкой, если «красота» не важна.
Эх похоже не для новичков данный проект)..Питание 9В — это переменное с трансформатора? Потом переводится в 5в , а если сразу с мобильной зарядки подключать не пойдет?
9 В постоянное, можно подавать +5 минуя стабилизатор, источник питания с выходным током не менее 1 А. Возможно потребуется подбор сопротивления R28, для повышения яркости. IRF740 необходимо будет установить на небольшой радиатор.
Спасибо большое! Попробую повторить.
А при питании ламп от переменного для создания «красоты» равномерного свечения ламп — это сложнее в реализации?
Нужно собирать импульсный источник питания.
И в теории у вас одно http://rcl-radio.ru/?p=36676
, а на практике другое.
Можно питать цепь накала ВЛИ постоянным током, если напряжение накала не превышает 5% напряжений анодов и сеток. В этом случае за общую точку источников питания принимается вывод накала, соединенный с отрицательным полюсом источника питания цепи накала.
Рекомендуется питать его переменным напряжением, хотя допускается и постоянное или пульсирующее, но в этом случае нить накала будет неравномерно «изнашиваться». Тем не менее, питание постоянным током допускается.
схема
Можно, добавить коррекцию времени температуру, как на схеме с ИВ-6?
Скетчи от ИВ-6 и подключение к Arduino должны подойти для ИВ-22, единственная проблема, этот скетч с коррекцией времени не тестировался, поэтому он не опубликован на сайте.
В скетче не хватает функции мигания точки.
Например так:
clock.enable32kHz(false);
clock.setOutput(DS3231_1HZ);
clock.enableOutput(true);
Добавил: clock.setOutput(DS3231_1HZ);
Иногда забываю добавлять, если хоть раз загрузить скетч с этой функцией, то ds3231 больше не требует наличия в скетче этой функции.
Это да.
Но вначале пришлось потупить «почему не мигает»:)
Здравствуйте! Хочу попробовать собрать часы на этих индикаторах, но я совсем чайник, за одно и в чем-то разобраться в процессе.. по указанной схеме уже можно смело собирать? Вы хотели приделать кнопки. Еще я думаю можно попробовать перевернуть третью лампу и сделать так чтобы мигали две точки сверху и снизу. Смотрю на али компоненты к примеру bc547 есть с маркировкий C,B -это без разницы?
Здравствуйте!
Транзистор с любой буквой. Индикатор можно перевернуть, изменив номера подключения к нему.