251

Re: Ретро часы на ИВ-6

Схема, печатная плата и скетч уже проверены. Не забудьте установить библиотеку iarduino_RTC.h и MsTimer2.h для этого проекта.

252

Re: Ретро часы на ИВ-6

На схеме преобразователя резистор R4 указанный как переменный на 1 кОм нужно заменить постоянным на 470 Ом размера 0805.

253 (2024-02-09 17:38:19 отредактировано Rukojob)

Re: Ретро часы на ИВ-6

http://forum.rcl-radio.ru/uploads/images/2024/02/206ebddc98aa7b59bc67bf57cc1576f3.jpg
Всем кто помог мне в этой теме- огромное спасибо , собрал пока 2 шт одни хорошему знакомому аторые себе. Вот такое получилось, кнопки заказывал на алике и питание соответственно взял с фоновой подсветки , но при установке требуется инициализировать (коротковременно замкнуть контакты подветки на кнопках, буквально прикоснуться пальцем ) без инициализации сами с первого раза не включились, подсветку убавил до минимума , а накал ламп почти до максимума , иначе кнопки глушат часы яркостью. Оргстеело полировал химически- сделал с помощью сухой перегонки основу акрила, и растворил в ней куски оргстекла с вязкостью примерно растительного масла , а уже этой гадостью намазал края (нет лазера для резки) ну вот и все, сделаю еще 2 часов друзьям , а потом попробую переделать конструкцию.

254

Re: Ретро часы на ИВ-6

Всем добрый день. Планирую собрать часы на ИВ-6, но хочу платы "бутербродом" под dip компоненты. Есть ли у кого архив с печатной платой на такие платы как на рисунке ниже? https://telegra.ph/file/cfb22e55233daef6d316d.jpg
Поиск по pcbway, jlpcb и easyeda результата не дал.

255 (2024-08-23 13:43:45 отредактировано olegvs2002)

Re: Ретро часы на ИВ-6

AlexandrS пишет:

На схеме преобразователя резистор R4 указанный как переменный на 1 кОм нужно заменить постоянным на 470 Ом размера 0805.

День добрый. Александр, не могли бы Вы выложить пожалуйста схему преобразователя в формате easyeda. Заранее благодарю.
Также обращаюсь ко всем, если кто-то разводил плату под ив-22 в формате easyeda или sprint layout, выложите пожалуста. Спасибо.

256 (2024-10-27 16:13:47 отредактировано AlexandrS)

Re: Ретро часы на ИВ-6

Здравствуйте! Ссылка на проект платы повышающего преобразователя https://oshwlab.com/allexsemenow/dc-dc- … erter_copy. Плата доработана и есть отличия от старой.

257 (Вчера 20:20:15 отредактировано wladimir031054)

Re: Ретро часы на ИВ-6

Здравствуйте.
Появились индикаторы ИВ - 22. Схему взял с первой страницы. Начал разводить под них односторонние платы для часов по фото.

http://forum.rcl-radio.ru/uploads/images/2025/02/eeb337756506242aacf64e0a71b131c6.jpg

Частично не получается без перемычек вывести согласно схемы с ардуины на индикаторы А0 - А3 и a,b - g.
Например надо, что бы "D3" ардуины приходил на "b" индикаторов, а у меня получается "D3" на "с" индикаторов.
Возможно ли изменить скетч? Если можно, то объясните принцип пожалуйста. Вот скетч.

#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);}

258

Re: Ретро часы на ИВ-6

Меняйте на любые пины значения define

#include <MsTimer2.h>
#include <Wire.h>
#include <DS3231.h>

// Определения для пинов анодов
#define ANODE_A0 9
#define ANODE_A1 10
#define ANODE_A2 11
#define ANODE_A3 12

// Определения для пинов сегментов
#define SEGMENT_A 2
#define SEGMENT_B 3
#define SEGMENT_C 4
#define SEGMENT_D 5
#define SEGMENT_E 6
#define SEGMENT_F 7
#define SEGMENT_G 8

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(ANODE_A0, OUTPUT);  
  pinMode(ANODE_A1, OUTPUT); 
  pinMode(ANODE_A2, OUTPUT);  
  pinMode(ANODE_A3, OUTPUT);  
  pinMode(SEGMENT_A, OUTPUT); 
  pinMode(SEGMENT_B, OUTPUT); 
  pinMode(SEGMENT_C, OUTPUT); 
  pinMode(SEGMENT_D, OUTPUT); 
  pinMode(SEGMENT_E, OUTPUT); 
  pinMode(SEGMENT_F, OUTPUT); 
  pinMode(SEGMENT_G, OUTPUT); 
}

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) {
    case 0: ch(SEGMENT_A, 0); ch(SEGMENT_B, 0); ch(SEGMENT_C, 0); ch(SEGMENT_D, 0); ch(SEGMENT_E, 0); ch(SEGMENT_F, 0); ch(SEGMENT_G, 1); break; // 0
    case 1: ch(SEGMENT_A, 1); ch(SEGMENT_B, 0); ch(SEGMENT_C, 0); ch(SEGMENT_D, 1); ch(SEGMENT_E, 1); ch(SEGMENT_F, 1); ch(SEGMENT_G, 1); break; // 1
    case 2: ch(SEGMENT_A, 0); ch(SEGMENT_B, 0); ch(SEGMENT_C, 1); ch(SEGMENT_D, 0); ch(SEGMENT_E, 0); ch(SEGMENT_F, 1); ch(SEGMENT_G, 0); break; // 2
    case 3: ch(SEGMENT_A, 0); ch(SEGMENT_B, 0); ch(SEGMENT_C, 0); ch(SEGMENT_D, 0); ch(SEGMENT_E, 1); ch(SEGMENT_F, 1); ch(SEGMENT_G, 0); break; // 3
    case 4: ch(SEGMENT_A, 1); ch(SEGMENT_B, 0); ch(SEGMENT_C, 0); ch(SEGMENT_D, 1); ch(SEGMENT_E, 1); ch(SEGMENT_F, 0); ch(SEGMENT_G, 0); break; // 4
    case 5: ch(SEGMENT_A, 0); ch(SEGMENT_B, 1); ch(SEGMENT_C, 0); ch(SEGMENT_D, 0); ch(SEGMENT_E, 1); ch(SEGMENT_F, 0); ch(SEGMENT_G, 0); break; // 5
    case 6: ch(SEGMENT_A, 0); ch(SEGMENT_B, 1); ch(SEGMENT_C, 0); ch(SEGMENT_D, 0); ch(SEGMENT_E, 0); ch(SEGMENT_F, 0); ch(SEGMENT_G, 0); break; // 6
    case 7: ch(SEGMENT_A, 0); ch(SEGMENT_B, 0); ch(SEGMENT_C, 0); ch(SEGMENT_D, 1); ch(SEGMENT_E, 1); ch(SEGMENT_F, 1); ch(SEGMENT_G, 1); break; // 7
    case 8: ch(SEGMENT_A, 0); ch(SEGMENT_B, 0); ch(SEGMENT_C, 0); ch(SEGMENT_D, 0); ch(SEGMENT_E, 0); ch(SEGMENT_F, 0); ch(SEGMENT_G, 0); break; // 8
    case 9: ch(SEGMENT_A, 0); ch(SEGMENT_B, 0); ch(SEGMENT_C, 0); ch(SEGMENT_D, 0); ch(SEGMENT_E, 1); ch(SEGMENT_F, 0); ch(SEGMENT_G, 0); break; // 9
  }
}

void anod() {
  switch (an) {
    case 0: ch(ANODE_A0, 0); ch(ANODE_A1, 1); ch(ANODE_A2, 1); ch(ANODE_A3, 1); break;
    case 1: ch(ANODE_A0, 1); ch(ANODE_A1, 0); ch(ANODE_A2, 1); ch(ANODE_A3, 1); break;
    case 2: ch(ANODE_A0, 1); ch(ANODE_A1, 1); ch(ANODE_A2, 0); ch(ANODE_A3, 1); break;
    case 3: ch(ANODE_A0, 1); ch(ANODE_A1, 1); ch(ANODE_A2, 1); ch(ANODE_A3, 0); break;
  }
}

void ch(int pin, int logic) {
  digitalWrite(pin, logic);
}

259

Re: Ретро часы на ИВ-6

Спасибо за быстрый ответ. Я понял. Можно ли Ваш скетч применить? Я в них не разбираюсь.

260

Re: Ретро часы на ИВ-6

Это то же самый скетч что Вы опубликовали, с небольшими изменениями.