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

При поддержке РадиоКОТструктор.ру


Ответить

Re: ГРИ часы под управлением ESP8266

Вт дек 19, 2017 15:07:57

С этим я разобрался,
но при подключении 6 ГРИ , к примеру ИН-12, необходимо будет добавить еще пару 595,
а как это прописать пока не представляю
Необходимо будет наверное добавить:
uint8_t Btt6 = 0
uint8_t Btt7 = 0
и потом уже по разрядно описать цифры в масиве
Ну как то так я понял, сравнивая несколько скетчей

Пока писал ответ пришел еще один ответ :)
чу чуть начинаю понимать,
значит надо добавить информацию о доп регистрах (насчитал пять мест)
и разложить значение на выходах в соответствии с "потребностями"

Re: ГРИ часы под управлением ESP8266

Вт дек 19, 2017 15:19:21

Правильно.

Re: ГРИ часы под управлением ESP8266

Вт дек 19, 2017 15:45:24

Думаю, если позволяет место, то просто по 2 регистра на цифру завести. 12 микросхем.
Для каждой цифры сдвигать по 2 байта :)

Re: ГРИ часы под управлением ESP8266

Вт дек 19, 2017 16:08:31

Не вижу смысла .

Re: ГРИ часы под управлением ESP8266

Вт дек 19, 2017 16:37:36

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

Re: ГРИ часы под управлением ESP8266

Вт дек 19, 2017 16:58:57

Ну какой маской :
Для единиц минут (согласно схемы http://radiokot.ru/circuit/digital/home/238/05.gif )
case 0:
Btt0 = Btt0 + 0b10000000; 0 единиц минут подключен к выводу Q7 первого регистра
break;
case 1:
Btt1 = Btt1 + 0b00100000;1 единиц минут подключен к выводу Q5 второго регистра
break;
case 2:
Btt1 = Btt1 + 0b01000000;2 единиц минут подключен к выводу Q6 второго регистра
break;
case 3:
Btt1 = Btt1 + 0b10000000;3 единиц минут подключен к выводу Q7 второго регистра
break;
case 4:
Btt0 = Btt0 + 0b00000010;4 единиц минут подключен к выводу Q1 первого регистра и.т.д для всех знакомест
break;

Re: ГРИ часы под управлением ESP8266

Вт дек 19, 2017 17:10:38

Код:
Btt1 = Btt1 + 0b00100000;
Btt1 = Btt1 + 0b01000000;


это и есть наложение маски :)

иначе было бы так

Btt1 =массив для цифры[цифра1];
сдвинуть
Btt1 =массив для цифры[цифра2];
сдвинуть
и.т.д. для 4 цифр

Re: ГРИ часы под управлением ESP8266

Ср дек 20, 2017 09:20:53

Ну в общем на выходных соберу макетку, в виде небольшого шильда,
и буду пробовать изучать азы программирования :)

Re: ГРИ часы под управлением ESP8266

Сб дек 23, 2017 22:48:54

Доброго времени суток
поизучал немного ардуину,
свою "хотелку" процентов на 80 удовлетворил
не смог побороть шим на ESP, больше 128 вольт не получил, менял и частоту и скважность.....
в общем собрал высоковольтник на МС3406
пару фоток

Изображение Изображение

конструкция не окончательная, вместо секундных индикаторов будут инс-1 по кругу стоять :)

Re: ГРИ часы под управлением ESP8266

Вс дек 24, 2017 08:15:41

Надо пользоваться прерываниями.
Тот же Тикер, помнится, использует аппаратные прерывания.
Встроенные команды шим - софтовые.

Re: ГРИ часы под управлением ESP8266

Вс дек 24, 2017 09:26:40

С прерываниями еще не разбирался,
а ШИМ пытался запустить подачей частоты на 2 вывод
как то так:

// задаем частоту ШИМ на VHC 2 выводе
analogWriteFreq(51200);
analogWrite(VHC,500);

Генерация появлялась и соответствовала частоте и задаваемой скважности,
при этом в описаниях писали, что скважность меняется при помощи значений от 1 до 255
но у меня от 1 до 9 первая цифра (где 5 в примере),
изменение второй и третей цифры визуальных изменений сигнала не вносило

Re: ГРИ часы под управлением ESP8266

Пн янв 08, 2018 12:17:54

Итак первые наглядные результаты воплощения идеи :)

Изображение

платы в процессе настройки (лепил из чего был :) )

СпойлерИзображение Изображение


оставил только одну кнопку для настройки и запроса времени
заметил, что иногда проскакивают секунды вперед и бывает переключаются быстрее
причину так и не понял
поэтому сделал запрос времени раз час

хотелось бы прикрутить еще и DS3231
чтоб при отсутствии интернета информация о времени бралась из DS3231,
а при появлении интернета с NTP и выводилась на табло и корректировалась в DS3231
но пока это мне по силам
Вложения
wi-fi_clock_in4_krug2.rar
(4.8 KiB) Скачиваний: 271

Re: ГРИ часы под управлением ESP8266

Пн янв 08, 2018 12:35:36

поэтому сделал запрос времени раз час

Раз в неделю и при включении,NTP сервак вас может блокирнуть за раз в час :wink:

хотелось бы прикрутить еще и DS3231

Смысл ставить 3231? точность то придает NTP синхронизация..

Есть куча SPI RTC, которые можно прикрутить, задействовав одну ножку МК.
Если вы из Украины, то могу вам прислать пару, тройку.
I2C у ESP программный :facepalm:

Re: ГРИ часы под управлением ESP8266

Пн янв 08, 2018 12:49:40

про опрос ntp понял, исправлю
По поводу DS3231, я имел ввиду, что если пропал источник питания и потом появился и по каким то причинам (неуплата, сгорел свич провайдера и тд, и мобильный интернет лег :) (было недавно)) нет интернета,
мы остаемся без времени
Согласен, можно прикрутить любую, но хочется эту :)
.... хотя это уже совсем другая конструкция :))
Последний раз редактировалось ksv2109 Пн янв 08, 2018 13:27:41, всего редактировалось 1 раз.

Re: ГРИ часы под управлением ESP8266

Пн янв 08, 2018 13:07:39

В чем беда?
У вас в часах нет подсветки. GPIO14 свободен. GPIO2 свободен.
Подключаете библиотеку ds3231.h, дефайны на нужные пины и там уже все просто: прочитать время, записать время....

https://esp8266.ru/forum/threads/esp826 ... novka.695/

Re: ГРИ часы под управлением ESP8266

Ср апр 04, 2018 20:42:44

прошу помощи.
пытаюсь отладить под себя код - viewtopic.php?p=2575536#p2575536

пока подключил в качестве индикатора модулек на tm1637
кусок кода, который вызывает проблемы :

Спойлер
Код:
bool          points   = true;
...

/**
 * Выдача текущего времени на индикатор
 */
void DisplayTime(unsigned long epoch) {
 
  epoch = epoch + TIMEZONE*3600; 
 
  my_m = ( epoch / 60 ) % 60;
  my_h = ( epoch / 3600 ) % 24;

data[0]= display.encodeDigit(my_h/10);     //крайне левое знакоместо
 
  if ( points = true )
    {data[1]= display.encodeDigit(my_h%10); //единицы часов + точка
    data[1]= data[1] | 0x80;
    points = false; }
  else
     {data[1]= display.encodeDigit(my_h%10);
    points = true; }

    Serial.print(points);
   
  data[2]= display.encodeDigit(my_m/10);
  data[3]= display.encodeDigit(my_m%10);

display.setSegments(data);

}

эта функция вызывается раз с секунду. в моем понимании, я проверяю флаг, меняю данные и не меняю (добавляю двоеточие) и меняю флаг на противоположный. переменная описана как глобальная.
в итоге я вижу вывод ф-ции Serial.print(points) - как 0, который не меняется. что я делаю не так ?? :)

Re: ГРИ часы под управлением ESP8266

Чт апр 05, 2018 09:21:11

Код:
  // Каждые  секунду меняем точку время
  if ( cur_ms < ms1 || (cur_ms - ms1) > 1000 ) {
    ms1 = cur_ms;
    ntp_time    = t_cur + t_correct;
    points = !points; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
    DisplayTime();
  }


points инвертируется в основном цикле.
Зачем вы делаете это еще раз в процедуре DisplayTime()?

Код:
  if ( points = true )
    {
....
    points = false; }
  else
     {.......
    points = true; }


=> => в процедуре DisplayTime(), points всегда будет = одному и тому же значению ;
:facepalm:

Re: ГРИ часы под управлением ESP8266

Чт апр 05, 2018 12:34:31

>points инвертируется в основном цикле.
в исходнике было не так. но я внес изменения,что вы предложили . они не помогли. points =1 и не меняется.

приатачил весь файл целиком, возможно есть и другие косяки - но пока интересует только этот момент - мигать точками.

>>=> => в процедуре DisplayTime(), points всегда будет = одному и тому же значению ;
не совсем очевидно почему. проверка же делается только один раз, и при смене true-> false в первом блоке условия попадать в блок else оно не должно...
Вложения
my_esp_ntp_v5-radiokot.txt
.
(19.17 KiB) Скачиваний: 265

Re: ГРИ часы под управлением ESP8266

Чт апр 05, 2018 19:14:27

Уважаемый, sa-ta. Я посмотрел код процедуры, которая мигает принтами, у вас ошибка в операторе if ();
В коде, который вы представили написано: if (point = true), а надо было if ( point == true). Поясняния думаю не нужны? А компилятор должен был предупреждение вывести, хотя конструкция с присвоением вполне корректна.
Прошу прощения, если неправильно воспроизвел имя переменной, пишу с планшета.
Удачи всем.

Re: ГРИ часы под управлением ESP8266

Чт апр 05, 2018 19:23:48

да, есть такая ошибка. но проблема судя по всему, не только в этом :

вот выхлоп куска с печатью значения переменной Serial.print(points);

СпойлерNo packet yet
1sending NTP packet...
packet received, length=48
Unix time = 1522949046
1111111111


points = !points; // - вот эта часть не работает!!
выхлоп ее должен быть 01010101010 - то есть, черодоваться.
уже перенес points = !points внутрь функции DisplayTime(unsigned long epoch). нечего не меняется.
Ответить