Часы на ssd1306 (много)

lilik
Offline
Зарегистрирован: 19.10.2017

Rumata пишет:

lilik

Не думали заменить атмегу на esp8266? Тогда возможны 2 варианта по корректировке времени: либо периодический запрос NTP, либо простенькая веб-морда для настроек всего

 

Была мысль подумать о "есп32", 6 экранов вертикально расположенных, много цифр-шрифтов, мультиплексор вместо транзисторов.

Примерно такого "форм-фактора", только в мерзком 3D печатном пластике.

lilik
Offline
Зарегистрирован: 19.10.2017

//////////////////////////////////////////////
//ФУНКЦИИ ПРИЁМА И ОБРАБОТКИ КОМАНД-ДАННЫХ
void CheckSerial()
{
  //////////////////////////////////////////////////////////////////////////////
  while (Serial.available())//считываем строку данных пока они поступают
  {
    char inChar = (char)Serial.read();
    if (inChar == '\n') //если окончание строки 
    {
      MakeCmd();//обрабатываем её данной функцией
      break;
    }
    else inputString += inChar;// иначе удлиняем строку на один символ
  }

}
/////////////////////////////////////////////////////////////////////////////////
void MakeCmd()
{
  int y = inputString.length(); // присваиваем переменной у число символов в строке
  if (y!=6){inputString = "";return;} //если их не 6, выходим из функции
  String cmd = inputString; // передаём строку другой переменной
  inputString = "";//"обнуляем переменную"
  //////
time.settime(cmd.substring(4).toInt(),cmd.substring(2, 4).toInt(),cmd.substring(0, 2).toInt());  //устанавливаем в модуль новое время и выводим его на экраны
 if(TEMA==0){ myOLED.setFont(BigZif_0_9); tschasi();}
 if(TEMA==1){PUSK = true;myOLED.setFont(RusFont);fun_();PUSK = false;}
 if(TEMA==2){PUSK = true;myOLED.setFont(RusFont);fun_B();PUSK = false;}
 if(TEMA==3){PUSK = true;myOLED.setFont(MegaNumbers);fun_C();PUSK = false;}  
}

//////////////////////////////////////////////

Сделал через монитор порта, добавив функции, оказалось легче чем через кнопку.