Часы на ИВЛ1-7/5 (Arduino)

ИВЛ1-7/ 5 представляет собой цифровой многоразрядный вакуумный люминесцентный индикатор предназначенный для отображения информации в виде цифр от 0 до 9 в 1, 2, 4 и 5-м цифровых разрядах и двух точек в 3-м разряде в средствах отображения информации индивидуального и группового пользования.

Основные данные индикатора ИВЛ1–7/5:

  • Цвет свечения: Зеленый
  • Номинальная яркость индикатора 500 кд/м2, минимальная – 300 кд/м2.
  • Напряжение накала: 5 В
  • Ток накала: 120 ± 12 мА
  • Напряжение анода–сегмента импульсное: 27 В
  • Ток анодов–сегментов импульсный одного разряда: 12 мА
  • Напряжение сетки импульсное: 27 В
  • Ток сетки импульсный одного разряда: 12 мА
  • Скважность: 5 ± 0,5
  • Минимальная наработка: 10 000 ч
  • Яркость индикатора, изменяющаяся в течение минимальной наработки, не менее: 100 кд/м2
  • Срок хранения не менее: 4 лет

Предельно допустимый электрический режим индикатора ИВЛ1–7/5:

  • Напряжение накала строго в пределах: 4,5–5,8 В
  • Наибольшее напряжение анодов–сегментов: 50 В
  • Наибольшее напряжение сетки импульсное: 50 В

Не рекомендуется эксплуатировать индикатор ИВЛ1–7/5 при питании цепи накала постоянным током. Предпочтительно питать цепь накала переменным током от обмотки трансформатора с отводом от середины, служащим общей точкой вывода катода.

Видимое свечение анода-сегмента при поданном напряжении на сетку наступает при положительном потенциале анода-сегмента 2,5 — 3,0 В. Чтобы избежать возможной подсветки потенциал на аноде-сегменте не должен превышать 1,5 — 2,0 В.
В исключительном ряде случаев допускается эксплуатация индикатора ИВЛ1–7/5  при напряжении накала 6,0 В; общее время работы при данном режиме не должно превышать 10 % от всего времени минимальной наработки.

На платформе Arduino с использованием ИВЛ1–7/5 можно собрать достаточно простые часы. В часах применяются часы реального времени DS1307, но так же можно использовать DS3231 (без изменения скетча и подключения). Напряжения питания часов 5 В (подается на вход USB платы Arduino), при максимальном токе потребления 500-700 мА. Все напряжения (5 В и 27 В) необходимые для нормальной работы вакуумно люминесцентного индикатора получаются при помощи импульсного преобразователя.

Импульсный преобразователь работает на частоте 62,5 кГц и состоит из силового транзистора КТ819Г, трансформатора и выпрямительной схемы.

Трансформатор выполнен на ферритовом кольце М2000НМ1-17 К20х12х6 и содержит три обмотки:

  • Первичная обмотка состоит из 30 витков намотанных равномерно на ферритовое кольцо.
  • Вторичная обмотка 5 В для питания нити накала индикатора содержит 40 витков с отводом от середины.
  • Вторичная обмотка 18 В содержит 120 витков.

Во всех обмотках применен медный изолированный провод диаметром 0,4…0,45 мм.

Для получения необходимого анодного напряжения 27 В используется удвоитель напряжения состоящих из элементов C7 D5 D2 С5.

#include <Wire.h> 
#include <DS3231.h> //https://github.com/jarzebski/Arduino-DS3231/archive/master.zip
DS3231 clock;RTCDateTime DateTime;
  int an, segm,times,i;
  byte a[4];
  unsigned long d;
 
void setup() {
  // 62500 Hz
TCCR1A = TCCR1A & 0xe0 | 1;
TCCR1B = TCCR1B & 0xe0 | 0x09;
 analogWrite(9,85);// напряжение накала 4,5...5,5 В (ток потребления часов не более 600 мА)
 
 pinMode(0,OUTPUT);  // D0 === A1
 pinMode(1,OUTPUT);  // D1 === A2
 pinMode(2,OUTPUT);  // D2 === A3
 pinMode(3,OUTPUT);  // D3 === A4
 pinMode(4,OUTPUT);  // D4 === pd
 pinMode(12,OUTPUT);  // D12  === a
 pinMode(11,OUTPUT);  // D11  === b
 pinMode(10,OUTPUT);  // D10  === c
 pinMode(8,OUTPUT);   //  D8  === d
 pinMode(7,OUTPUT);   //  D7  === e
 pinMode(6,OUTPUT);   //  D6  === f
 pinMode(5,OUTPUT);   //  D5  === g
 
 Wire.begin();clock.begin();
 // clock.setDateTime(__DATE__, __TIME__); // Устанавливаем время на часах, основываясь на времени компиляции скетча
}
 
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;
 // a[0]=10;
 switch(i){
    case 0: cl();segm=a[0]; an=0; anod(); segment();delay(3);break;
    case 1: cl();segm=a[1]; an=1; anod(); segment();delay(3);break;
    case 2: cl();segm=a[2]; an=2; anod(); segment();delay(3);break;
    case 3: cl();segm=a[3]; an=3; anod(); segment();delay(3);break;
    }i++;if(i>3){i=0;}
   if(millis()-d<500){digitalWrite(4,HIGH);}else{digitalWrite(4,LOW);}if(millis()-d>1000){d=millis();}
}
 
 
void segment(){
  switch(segm){                                                                 
             //  A       B       C       D       E       F       G  
    case 0: ch(12,0);ch(11,0);ch(10,0);ch(8,0);ch(7,0);ch(6,0);ch(5,1);break;// 0 
    case 1: ch(12,1);ch(11,0);ch(10,0);ch(8,1);ch(7,1);ch(6,1);ch(5,1);break;// 1
    case 2: ch(12,0);ch(11,0);ch(10,1);ch(8,0);ch(7,0);ch(6,1);ch(5,0);break;// 2
    case 3: ch(12,0);ch(11,0);ch(10,0);ch(8,0);ch(7,1);ch(6,1);ch(5,0);break;// 3   
    case 4: ch(12,1);ch(11,0);ch(10,0);ch(8,1);ch(7,1);ch(6,0);ch(5,0);break;// 4 
    case 5: ch(12,0);ch(11,1);ch(10,0);ch(8,0);ch(7,1);ch(6,0);ch(5,0);break;// 5 
    case 6: ch(12,0);ch(11,1);ch(10,0);ch(8,0);ch(7,0);ch(6,0);ch(5,0);break;// 6 
    case 7: ch(12,0);ch(11,0);ch(10,0);ch(8,1);ch(7,1);ch(6,1);ch(5,1);break;// 7 
    case 8: ch(12,0);ch(11,0);ch(10,0);ch(8,0);ch(7,0);ch(6,0);ch(5,0);break;// 8
    case 9: ch(12,0);ch(11,0);ch(10,0);ch(8,0);ch(7,1);ch(6,0);ch(5,0);break;// 9  
    case 10: ch(12,1);ch(11,1);ch(10,1);ch(8,1);ch(7,1);ch(6,1);ch(5,1);break;// гашение цифры
  }}
void anod(){
  switch(an){                                                             
    case 0:ch(0,0);ch(1,1);ch(2,1);ch(3,1);break;  
    case 1:ch(0,1);ch(1,0);ch(2,1);ch(3,1);break; 
    case 2:ch(0,1);ch(1,1);ch(2,0);ch(3,1);break;
    case 3:ch(0,1);ch(1,1);ch(2,1);ch(3,0);break;
  }}
 
void cl(){ segm=10; an=3; segment();anod();an=2;  segment();anod();an=1;  segment();anod();an=0;  segment();anod();}  
 
  void ch(int pin, int logic){digitalWrite(pin,logic);}

http://forum.rcl-radio.ru/viewtopic.php?pid=1564#p1564


Часы-будильник с кнопочной корректировкой времени

Для корректировки часов или времени срабатывания будильника, необходимо нажать и удерживать кнопки «корр.времени» или «корр.буд», а кнопками «корр.часы» и «корр.минуты» установить нужное время часов и время срабатывания будильника.

Скетч — http://forum.rcl-radio.ru/viewtopic.php?pid=1571#p1571

Добавить комментарий

Войти с помощью: