AlexGyver / PCdisplay

Экран с параметрами железа ПК и автоматический реобас
http://alexgyver.ru/pcdisplay/
MIT License
86 stars 35 forks source link

Помогите отключить подсветку экрана после потери соединения #13

Open Cyliazar opened 6 years ago

Cyliazar commented 6 years ago

У меня ПК всегда дает 5В на порт, даже когда выключился (кроме отключения по питанию). Ночью когда ложишься спать, экран мешает. Помогите доработаться код, чтоб когда потерялось соединение и на экране появилась надпись, подсветка экрана отключалась через например секунд 10. А после восстановления соединения, когда на экране снова появляются значения, то подсветка экрана снова включалась.

Cyliazar commented 6 years ago

понял только что нужно использовать lcd.backlight(); и lcd.noBacklight();. Как отключить понял, делаю вот так: void timeoutTick() { if ((millis() - timeout > 5000) && timeOut_flag) { lcd.clear(); lcd.setCursor(5, 1); lcd.print("CONNECTION"); lcd.setCursor(7, 2); lcd.print("FAILED"); timeOut_flag = 0; reDraw_flag = 1; delay(10000); lcd.noBacklight(); } } Но вот как включить её, после того как на экране появилась инфа о состоянии ПК не могу догнать.

Cyliazar commented 6 years ago

Разобрался сам! Фух! ))) Добавил в основной цикл строку " if (timeOut_flag > 0) lcd.backlight(); " Вот так получилось: void loop() { parsing(); // парсим строки с компьютера updatePlot(); // обновляем массив данных графика getTemperature(); // получить значения с датчиков температуры dutyCalculate(); // посчитать скважность для вентиляторов Timer1.pwm(FAN_PIN, duty * 10); // управлять вентиляторами LEDcontrol(); // управлять цветом ленты buttonsTick(); // опрос кнопок и смена режимов if (timeOut_flag > 0) lcd.backlight(); updateDisplay(); // обновить показания на дисплее timeoutTick(); // проверка таймаута }

AlexGyver commented 6 years ago

добавил в прошивку настройку, но реализовал более правильно (без постоянного вызова функции backlight() )