126

Re: Большие часы на семисегментных индикаторах BJ18101AH

Да, подключены. На пине SQW так и не пойму что должно быть.
Один щуп на GND а другой на SQW, в итоге постоянные 5 вольт. Это нормально??

127

Re: Большие часы на семисегментных индикаторах BJ18101AH

Загрузите сканер I2c, проверьте адрес часов реального времени
http://forum.rcl-radio.ru/viewtopic.php?id=64

128

Re: Большие часы на семисегментных индикаторах BJ18101AH

хорошо, спасибо. попробую.

129 (2023-04-30 01:10:32 отредактировано vadim4)

Re: Большие часы на семисегментных индикаторах BJ18101AH

Проверил через сканер, почему то показывает что у модуля два адреса.
В библиотеке менял оба пробовал, в итоге сегментники загорелись, но показывают беспорядочно и мерцают, и точка не мигает, а просто горит. Сегменты горят как буква А

130

Re: Большие часы на семисегментных индикаторах BJ18101AH

Временно замените
times = DateTime.hour*100+DateTime.minute;
на
times = 1234;

Если на индикаторах не будет отображено 1234, то у Вас имеются ошибки в подключении индикаторов.

131 (2023-04-30 14:14:27 отредактировано vadim4)

Re: Большие часы на семисегментных индикаторах BJ18101AH

Сделал это. В итоге 1234 горит и точка постоянно. Но незадействованные сегменты мерцают ещё. Мне кажется мой модуль времени неисправен, сегодня придет новый буду пробовать его. Показания датчиков не выдает кстати, 1234 горят только и всё.

132

Re: Большие часы на семисегментных индикаторах BJ18101AH

Устанавливали время с помощью этой строки?

clock.setDateTime(__DATE__, __TIME__); // Устанавливаем время на часах, основываясь на времени компиляции скетча

Надо раскомментировать прошить, а потом закомментировать и прошить повторно контроллер.

133

Re: Большие часы на семисегментных индикаторах BJ18101AH

Померьте напряжение на батарейке часов реального времени

134 (2023-04-30 15:59:09 отредактировано vadim4)

Re: Большие часы на семисегментных индикаторах BJ18101AH

Батарея новая, проверил. Время тоже устанавливал как вы написали. Пока жду новый модуль.

135

Re: Большие часы на семисегментных индикаторах BJ18101AH

И ещё как я понял на моем модуле времени отсутствует сигал SQW

136

Re: Большие часы на семисегментных индикаторах BJ18101AH

Проверьте наличие кода в скетче:

clock.setOutput(DS3231_1HZ);

137

Re: Большие часы на семисегментных индикаторах BJ18101AH

Спасибо вам большое за советы по проверке устройства! Вечером получил новый модуль времени, подключил и всё заработало. В итоге всё таки первый мой модуль был неисправен.

138 (2023-09-03 12:11:55 отредактировано AleZir49)

Re: Большие часы на семисегментных индикаторах BJ18101AH

Заказал на Алиэкспрес семисегментные индикаторы BJ18101AH с общим анодом, но продавец прислал с общим катодом, думал не смогу использовать.
Но повезло; Попался ВАШ проект часов, решил попробовать.
Собрал часы термометр, плату использовал LGT8F328P клон  ATmega328p, транзисторы какие были в наличии С945, КОД немного подработал; температура выводиться с встроенного датчика модуля ЧРВ DS3231 каждые 20 секунд, кнопками можно устанавливать или корректировать время, не значащий ноль с полуночи и до 10 часов в 1м сегменте дисплея не выводится. И должна уменьшаться яркость дисплея с 22 часов вечера и до 7 часов утра, эта функция на стадии проверки. 

КОД который я использую;

#include <MsTimer2.h>  // http://rcl-radio.ru/wp-content/uploads/ … Timer2.zip
#include <Wire.h>
#include <DS3231.h>    // https://github.com/jarzebski/Arduino-DS … master.zip
DS3231 clock;
RTCDateTime dt;

  int an, segm,times,i,pd,pd_p,hh,mm,sek;
  byte a[4];
  int temper;
   int hour_br,brig;
  byte w;

void setup()

  Wire.begin();
  clock.begin();
MsTimer2::set(2, to_Timer);
MsTimer2::start();
  // clock.setDateTime(__DATE__, __TIME__); // Устанавливаем время на часах, основываясь на времени компиляции скетча
pinMode(9,OUTPUT);  // D9  === A0
pinMode(10,OUTPUT); // D10 === A1
pinMode(11,OUTPUT); // D11 === A2
pinMode(12,OUTPUT); // D12 === A3
pinMode(13,OUTPUT); // D13 === PD
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
clock.setOutput(DS3231_1HZ);
// pinMode(A0,INPUT); // SQW DS3231  // При активации есть мерцание сегментов
pinMode (A2,INPUT_PULLUP); // часы +
pinMode (A3,INPUT_PULLUP); // минуты +
// кнопки коррекци времени - нажатие === замыкание на GND
}

void loop()
{
dt=clock.getDateTime();// опрос времени
  hh=dt.hour;
  mm=dt.minute;
  sek=dt.second;
  hour_br = dt.hour;

  if(hour_br>=22 || hour_br<=7){brig=500;}else{brig=1;} // уменьшаем яркость с 22 часов до 7 часов
 
  if((sek>=17&&sek<=20)||(sek>=37&&sek<=40)||(sek>=57&&sek<=60))
  {
   // unsigned char temper;
  temper = clock.readTemperature() -3; //выведение и коррекция показаний температуры
  a[0] = temper/10;
  a[1] = temper%10;
  a[2] = 11;  // Символ градуса в 3й сегмент
  a[3] = 12;  // Символ Цельсия - С в 4й сегмент
// a[2] = (temper / 10) % 10; // можно вывести деятые доли градуса
// a[3] = 11;  // Тогда символ градуса в 4й сегмент
  // pd_p=0;
  }
  else
  {
  times=dt.hour*100+dt.minute;
  a[0]=times/1000;
  if(a[0]==0){a[0]=10;}
  a[1]=times/100%10;
  a[2]=times/10%10;
  a[3]=times%10%10;
  // pd_p=1;
   }

  if(analogRead(A0)>900){pd_p=1;}else{pd_p=0;}

  ///////////////////////////////////// коррекция времени кнопками - часы и минуты
  if(analogRead(A2)<900){w=1;hh++;if(hh>23){hh=0;}delay(300);}
  if(analogRead(A3)<900){w=1;mm++;if(mm>59){mm=0;}delay(300);}
  if(w==1){w=0;
 
  // Manual (Year-год, Month-месяц, Day-день, Hour-час, Minute-минуты, Second-секунды)
  clock.setDateTime(2023, 8, 16, hh, mm, 0);
// clock.setDateTime(Year, Month, Day, hh, mm, sek);
  }

}// loop

void to_Timer()
{
  switch(i)
  {
    case 0: cl(); segm=a[0]; pd=0; an=0;  delayMicroseconds(brig); anod(); segment();break;
    case 1: cl(); segm=a[1]; pd=pd_p; an=1;  delayMicroseconds(brig); anod(); segment();break;
    case 2: cl(); segm=a[2]; pd=0; an=2;  delayMicroseconds(brig); anod(); segment();break;
    case 3: cl(); segm=a[3]; pd=0; an=3;  delayMicroseconds(brig); anod(); segment();break;}i++;
    if(i>3){i=0;}
    }

void segment()
{
  switch(segm)
  {                                                                 
             //  A       B       C       D       E       F       G        PD
    case 0: ch(2,1);ch(3,1);ch(4,1);ch(5,1);ch(6,1);ch(7,1);ch(8,0);ch(13,pd);break;// 0
    case 1: ch(2,0);ch(3,1);ch(4,1);ch(5,0);ch(6,0);ch(7,0);ch(8,0);ch(13,pd);break;// 1
    case 2: ch(2,1);ch(3,1);ch(4,0);ch(5,1);ch(6,1);ch(7,0);ch(8,1);ch(13,pd);break;// 2
    case 3: ch(2,1);ch(3,1);ch(4,1);ch(5,1);ch(6,0);ch(7,0);ch(8,1);ch(13,pd);break;// 3   
    case 4: ch(2,0);ch(3,1);ch(4,1);ch(5,0);ch(6,0);ch(7,1);ch(8,1);ch(13,pd);break;// 4
    case 5: ch(2,1);ch(3,0);ch(4,1);ch(5,1);ch(6,0);ch(7,1);ch(8,1);ch(13,pd);break;// 5
    case 6: ch(2,1);ch(3,0);ch(4,1);ch(5,1);ch(6,1);ch(7,1);ch(8,1);ch(13,pd);break;// 6
    case 7: ch(2,1);ch(3,1);ch(4,1);ch(5,0);ch(6,0);ch(7,0);ch(8,0);ch(13,pd);break;// 7
    case 8: ch(2,1);ch(3,1);ch(4,1);ch(5,1);ch(6,1);ch(7,1);ch(8,1);ch(13,pd);break;// 8
    case 9: ch(2,1);ch(3,1);ch(4,1);ch(5,1);ch(6,0);ch(7,1);ch(8,1);ch(13,pd);break;// 9 
    case 10: ch(2,0);ch(3,0);ch(4,0);ch(5,0);ch(6,0);ch(7,0);ch(8,0);ch(13,pd);break;// пусто
    case 11: ch(2,1);ch(3,1);ch(4,0);ch(5,0);ch(6,0);ch(7,1);ch(8,1);ch(13,pd);break;// градус
    case 12: ch(2,1);ch(3,0);ch(4,0);ch(5,1);ch(6,1);ch(7,1);ch(8,0);ch(13,pd);break;// C

  }
  }
void anod()
  {
  switch(an)
  {                                                             
    case 0:ch(9,1);ch(10,0);ch(11,0);ch(12,0);break; 
    case 1:ch(9,0);ch(10,1);ch(11,0);ch(12,0);break;
    case 2:ch(9,0);ch(10,0);ch(11,1);ch(12,0);break;
    case 3:ch(9,0);ch(10,0);ch(11,0);ch(12,1);break;
  }
  }

void cl()
  {
     segm=10; pd=0; an=0; segment(); anod(); an=1; segment(); anod();  an=2; segment(); anod();  an=3; segment();anod();
  } 

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

139 (2023-11-24 11:24:42 отредактировано Nesco)

Re: Большие часы на семисегментных индикаторах BJ18101AH

Здравствуйте! Наткнулся в яндексе на эту тему. Интересовался выводом информации на большие индикаторы. Как раз у Вас нашёл и название больших семисегментников BJ18101AH, заказал себе синего цвета Digitron 1.8" с общим катодом. Были сомнения насчёт будут ли они работать от 5v и не посадят ли выходы процессора. Вижу у Вас вроде всё нормально. А яркости хватает?

140

Re: Большие часы на семисегментных индикаторах BJ18101AH

Через 22 Ом подайте плавно меняя напряжение от 0 до 5 В контролируя ток, если ток одного сегмента не превышает 20 мА , а напряжение достигло 5В, то индикаторы подойдут, если нет, то придется на сегменты ставить транзисторные ключи.

141

Re: Большие часы на семисегментных индикаторах BJ18101AH

Спасибо, методика понятна, намотал на ус.

142 (2023-12-12 18:20:47 отредактировано Nesco)

Re: Большие часы на семисегментных индикаторах BJ18101AH

Пришли 1.8" индикаторы, 4 шт. Померил ток одного сегмента через 22 ом. При 5в. какой то мизерный, яркость слабая. Так не интересно. При 7в. яркость нормальная, то что надо. Ток 8.5 мА.
Получается надо индикаторы питать от 7в., а логику управления от 5в. Я хотел сделать на Max7219.
Попробовал отдельно DC-DC преобразователь, с 5в. на 7в. Нормально работает, 0.5А держит спокойно.
Ну и буду питать логику 5в., а индикаторы 7в.
Начал собирать схему на Max7219 и понимаю что с повышением питания не получается так как хотелось бы. У индикатора нет своего собственного питания. Х.з. как быть?
Добавлю, индикатор Digitron 18101AB

143

Re: Большие часы на семисегментных индикаторах BJ18101AH

Ставьте транзисторные ключи

144

Re: Большие часы на семисегментных индикаторах BJ18101AH

Ключи как в схеме на первой страничке темы. Но не пойму куда 7в. подавать?

145

Re: Большие часы на семисегментных индикаторах BJ18101AH

По простому похоже не получится. Придётся ещё и ULN2803 поставить.

146

Re: Большие часы на семисегментных индикаторах BJ18101AH

Вот пример ключа, надо только резистор на коллекторе подобрать под ток индикатора - http://rcl-radio.ru/?p=131282

147

Re: Большие часы на семисегментных индикаторах BJ18101AH

Спасибо, вот это в тему.
Вопрос вроде бы простой, а гемора с ним предостаточно.
А я дурак, поторопился с выбором индикаторов. Выбирал на али, с синими светодиодами.
Выбрал yikes ! От 7в нормально светятся.  В поиске встречалась информация, что светодиоды 1.8" нормально работают напрямую от Max7219, на яркость нет жалоб.
И нашёл вот такой даташит.
https://disk.yandex.ru/i/SYGPJ5ITQIxfAg
Интересный столбец Vf(V). Это что, напряжение питания для нормального свечения?
У меня синий, 18101AB. для ненго 7.8-8.4 v .
Также есть куча других с этим параметром 5.4-6.0 v .
Может стоило просто подобрать нормальные семисегментники, пусть и дороже?

148

Re: Большие часы на семисегментных индикаторах BJ18101AH

Проще поставить простые транзисторные ключи.

149

Re: Большие часы на семисегментных индикаторах BJ18101AH

После распайки хреновой горы монтажных проводов между ножками индикаторов не захотел распаивать транзисторные ключи. Сделал на UDN2981. Напряжение для индикаторов через повышающий преобразователь MT3608. Всё работает так как хотелось big_smile . Пару кнопок добавил, чтобы выставлять часы, минуты руками. Всё прикручено к Arduino Nano.
Подключение к ESP32 пока в процессе, задолбала ошибка компиляции для платы ... Похоже не все библиотеки могут совместно работать.

150

Re: Большие часы на семисегментных индикаторах BJ18101AH

http://forum.rcl-radio.ru/uploads/images/2024/01/40db6be068724c26d56cd3153119c338.jpg
Вот такая хрень на синих индикаторах получилась. Надо только какой нибудь светофильтр поставить для лучшей читабельности днём, белые несветящиеся сегменты мешают моментальному восприятию. Читал, что для этого берут тонировочную плёнку для стёкол автомобиля. Но она бывает разная по светопропускной способности, какую лучше взять 15, 20, 25 % - пока не знаю. Пришлось пока на это забить.