126

Re: ESP32 ретро часы (разработка)

Вот ещё вспомнил. У меня по топологии платы оптопары поделены на две группы, по три штуки слева и справа. И каждая из этих групп притянута к земле через резистор 300ом, как по схеме. Это ведь неверно я сделал? 300ом это на все 6 оптопара, а на три значит меньше?

127

Re: ESP32 ретро часы (разработка)

У меня версия платы 2.0.11, возможно Вам еще стоить понизить версию платы

http://forum.rcl-radio.ru/uploads/images/2024/12/5cc5a43b90bd62a4c00cfb337a1f1212.png

128

Re: ESP32 ретро часы (разработка)

300ом это на все 6 оптопара, а на три значит меньше?

При динамической индикации, в один момент времени работает только одна оптопара, поэтому сопротивление менять не нужно

129 (2024-12-26 19:16:32 отредактировано MORO-1986)

Re: ESP32 ретро часы (разработка)

liman324 пишет:

У меня версия платы 2.0.11, возможно Вам еще стоить понизить версию платы

http://forum.rcl-radio.ru/uploads/images/2024/12/5cc5a43b90bd62a4c00cfb337a1f1212.png

Нет, и это не помогло. Уж несколько разных версий плат устанавливал, не идут часы и все тут. В монитор порта значения выводиться, но там тоже часы на месте стоят. И также не зайти в настройки. И скетчи разные пробовал, ничего не поменялось.

130

Re: ESP32 ретро часы (разработка)

Попробуйте этот скетч без WEB интерфейса, укажите нужные пины (если есть отличие) и логин/пароль Вашей вай-фай сети

http://forum.rcl-radio.ru/viewtopic.php?pid=3344#p3344

131

Re: ESP32 ретро часы (разработка)

Поменяйте сервер https://www.ntppool.org/zone/@ возможно он у Вас не доступен

132

Re: ESP32 ретро часы (разработка)

NTPClient timeClient(ntpUDP, "pool.ntp.org", 21600,3600123);// 21600 - временной сдвиг в секундах от UTC

133

Re: ESP32 ретро часы (разработка)

liman324 пишет:

NTPClient timeClient(ntpUDP, "pool.ntp.org", 21600,3600123);// 21600 - временной сдвиг в секундах от UTC

Вот он как раз и указан в скетче. Залил тестовый скетч - все без изменений. Время выводится но часы не идут. А есть другие сервера с которых можно взять время?

134

Re: ESP32 ретро часы (разработка)

Поменяйте сервер https://www.ntppool.org/zone/@ возможно он у Вас не доступен

135

Re: ESP32 ретро часы (разработка)

Время выводится но часы не идут.

Время правильное?

136

Re: ESP32 ретро часы (разработка)

Библиотеку с этого источника брали

#include <NTPClient.h>         // http://rcl-radio.ru/wp-content/uploads/ … master.zip

137

Re: ESP32 ретро часы (разработка)

liman324 пишет:
Время выводится но часы не идут.

Время правильное?

Бинго. Переустановил библиотеку и все заработало. Хотя я ставил именно по вашей ссылке. Но время показывают неверное. Его в настройка нужно менять, временным сдвигом?

138

Re: ESP32 ретро часы (разработка)

В настройках или в скетче, смотря какой скетч используете

139

Re: ESP32 ретро часы (разработка)

NTPClient timeClient(ntpUDP, "pool.ntp.org", 21600, 3600123);// 21600 - временной сдвиг в секундах от UTC

140

Re: ESP32 ретро часы (разработка)

liman324 пишет:

Вот функция которая управляет этим процессом

void anti(){
    switch(ss){
    case 0: sum=000000;break;
    case 1: sum=111111;break;
    case 2: sum=222222;break;
    case 3: sum=333333;break;
    case 4: sum=444444;break;
    case 5: sum=555555;break;
    case 6: sum=666666;break;
    case 7: sum=777777;break;
    case 8: sum=888888;break;
    case 9: sum=999999;break;}
  } 

Она работает от показания секунд

Пример:

void anti(){
    switch(ss){
    case 0: sum=000000;break;
    case 2: sum=111111;break;
    case 4: sum=222222;break;
    case 8: sum=333333;break;
    case 10: sum=444444;break;
    case 12: sum=555555;break;
    case 14: sum=666666;break;
    case 16: sum=777777;break;
    case 18: sum=888888;break;
    case 20: sum=999999;break;}
  } 

2 секунды будет гореть одна цифра

Ну вроде со всем разобрался, правда есть засветка в индикаторах, причем она "плавающая", то ярко выражена, то пропадает совсем. Но хотел спросить не об этом. Можно как-то увеличить скорость перебора цифр? Чтобы она не была привязана к секундам?

141

Re: ESP32 ретро часы (разработка)

Вот пример для устранения засветки 

case 0: an=10;segm = 10; anod();segment();delayMicroseconds(2000);segm=a[0]; an=0; segment();anod();break;

Гасим все сегменты и убираем анодное напряжение со всех индикаторов на 2 мс

142

Re: ESP32 ретро часы (разработка)

Чтобы она не была привязана к секундам?

Надо создавать новый счет не привязанный к секундам

типа

if(millis()-times_x>200){ss++; times_x=millis();if(ss>9){ss=0;}}

143

Re: ESP32 ретро часы (разработка)

liman324 пишет:

Вот пример для устранения засветки 

case 0: an=10;segm = 10; anod();segment();delayMicroseconds(2000);segm=a[0]; an=0; segment();anod();break;

Гасим все сегменты и убираем анодное напряжение со всех индикаторов на 2 мс

Хм, стало еще хуже. Теперь прямо явная засветка.

144

Re: ESP32 ретро часы (разработка)

У Вас должны быть такие функции

void segment(){
  switch(segm){                                                                 
    case 0: digitalWrite(ID8,LOW);digitalWrite(ID4,LOW);digitalWrite(ID2,LOW);digitalWrite(ID1,LOW);break;     // DEC 0 = 0b0000
    case 1: digitalWrite(ID8,LOW);digitalWrite(ID4,LOW);digitalWrite(ID2,LOW);digitalWrite(ID1,HIGH);break;    // DEC 1 = 0b0001
    case 2: digitalWrite(ID8,LOW);digitalWrite(ID4,LOW);digitalWrite(ID2,HIGH);digitalWrite(ID1,LOW);break;    // DEC 2 = 0b0010
    case 3: digitalWrite(ID8,LOW);digitalWrite(ID4,LOW);digitalWrite(ID2,HIGH);digitalWrite(ID1,HIGH);break;   // DEC 3 = 0b0011
    case 4: digitalWrite(ID8,LOW);digitalWrite(ID4,HIGH);digitalWrite(ID2,LOW);digitalWrite(ID1,LOW);break;    // DEC 4 = 0b0100
    case 5: digitalWrite(ID8,LOW);digitalWrite(ID4,HIGH);digitalWrite(ID2,LOW);digitalWrite(ID1,HIGH);break;   // DEC 5 = 0b0101
    case 6: digitalWrite(ID8,LOW);digitalWrite(ID4,HIGH);digitalWrite(ID2,HIGH);digitalWrite(ID1,LOW);break;   // DEC 6 = 0b0110
    case 7: digitalWrite(ID8,LOW);digitalWrite(ID4,HIGH);digitalWrite(ID2,HIGH);digitalWrite(ID1,HIGH);break;  // DEC 7 = 0b0111
    case 8: digitalWrite(ID8,HIGH);digitalWrite(ID4,LOW);digitalWrite(ID2,LOW);digitalWrite(ID1,LOW);break;    // DEC 8 = 0b1000
    case 9: digitalWrite(ID8,HIGH);digitalWrite(ID4,LOW);digitalWrite(ID2,LOW);digitalWrite(ID1,HIGH);break;   // DEC 9 = 0b1001
    case 10:digitalWrite(ID8,HIGH);digitalWrite(ID4,HIGH);digitalWrite(ID2,HIGH);digitalWrite(ID1,HIGH);break; // Пусто = 0b1111
   
  }}

и

void anod(){
  switch(an){                                                             
    case 0: digitalWrite(IN1,HIGH);digitalWrite(IN2,LOW);digitalWrite(IN3,LOW);digitalWrite(IN4,LOW);digitalWrite(IN5,LOW);digitalWrite(IN6,LOW);break;   
    case 1: digitalWrite(IN1,LOW);digitalWrite(IN2,HIGH);digitalWrite(IN3,LOW);digitalWrite(IN4,LOW);digitalWrite(IN5,LOW);digitalWrite(IN6,LOW);break;   
    case 2: digitalWrite(IN1,LOW);digitalWrite(IN2,LOW);digitalWrite(IN3,HIGH);digitalWrite(IN4,LOW);digitalWrite(IN5,LOW);digitalWrite(IN6,LOW);break;   
    case 3: digitalWrite(IN1,LOW);digitalWrite(IN2,LOW);digitalWrite(IN3,LOW);digitalWrite(IN4,HIGH);digitalWrite(IN5,LOW);digitalWrite(IN6,LOW);break;
    case 4: digitalWrite(IN1,LOW);digitalWrite(IN2,LOW);digitalWrite(IN3,LOW);digitalWrite(IN4,LOW);digitalWrite(IN5,HIGH);digitalWrite(IN6,LOW);break;   
    case 5: digitalWrite(IN1,LOW);digitalWrite(IN2,LOW);digitalWrite(IN3,LOW);digitalWrite(IN4,LOW);digitalWrite(IN5,LOW);digitalWrite(IN6,HIGH);break;
    case 10:digitalWrite(IN1,LOW);digitalWrite(IN2,LOW);digitalWrite(IN3,LOW);digitalWrite(IN4,LOW);digitalWrite(IN5,LOW);digitalWrite(IN6,LOW);break;   
  }}

в них должны быть строки

case 10

если нет , то надо добавить

145

Re: ESP32 ретро часы (разработка)

Эти строки есть, case10 в них присутствует.

146

Re: ESP32 ретро часы (разработка)

liman324 пишет:

Чтобы она не была привязана к секундам?

Надо создавать новый счет не привязанный к секундам

типа

if(millis()-times_x>200){ss++; times_x=millis();if(ss>9){ss=0;}}

Я верно понял что эту строку нужно вставить таким образом?

void anti(){
  if(millis()-times_х>200){ss++; times_х=millis();if(ss>9){ss=0;}}
    switch(ss){
    case 0: sum=000000;break;
    case 1: sum=111111;break;
    case 2: sum=222222;break;
    case 3: sum=333333;break;
    case 4: sum=444444;break;
    case 5: sum=555555;break;
    case 6: sum=666666;break;
    case 7: sum=777777;break;
    case 8: sum=888888;break;
    case 9: sum=999999;break;}
  }

147

Re: ESP32 ретро часы (разработка)

Да, только ss надо по другому назвать, она занята под секунды

148 (2024-12-27 19:15:03 отредактировано MORO-1986)

Re: ESP32 ретро часы (разработка)

liman324 пишет:

Да, только ss надо по другому назвать, она занята под секунды

Благодарю, все получилось.
А что в этом блоке надо изменить, чтобы перебор был не на всех лампах сразу, а поочередно на каждой, начиная с первой? Что-то у меня никак не получается это сделать...

void anti(){
    if(millis()-times1>50){ms++; times1=millis();if(ms>9){ms=0;}}
    switch(ms){
    case 0: sum=000000;break;
    case 1: sum=111111;break;
    case 2: sum=222222;break;
    case 3: sum=333333;break;
    case 4: sum=444444;break;
    case 5: sum=555555;break;
    case 6: sum=666666;break;
    case 7: sum=777777;break;
    case 8: sum=888888;break;
    case 9: sum=999999;break;}
  }

149

Re: ESP32 ретро часы (разработка)

Это сложно. Я пока не представляю как это можно сделать.

150

Re: ESP32 ретро часы (разработка)

liman324 пишет:

Это сложно. Я пока не представляю как это можно сделать.

Понимаю. А можете помочь, пожалуйста, поправить скетч, чтобы перебор цифр происходил один раз. Просто сейчас перебор идет 9 раз. Т.е. я ставлю допустим чтобы перебор был каждую минуту, и вот они в вначале каждой минуты 9 раз во всех индикаторах по кругу и бегают. Тоже не осилил к сожалению((