|
@@ -15,6 +15,7 @@ DHT dht(DHT_PIN, DHT22);
|
|
Timer procTimer, procRTimer;
|
|
Timer procTimer, procRTimer;
|
|
Timer displayTimer, tmpTimer;
|
|
Timer displayTimer, tmpTimer;
|
|
Timer showHighTimer, showLowTimer;
|
|
Timer showHighTimer, showLowTimer;
|
|
|
|
+Timer brightTimer;
|
|
|
|
|
|
// Sensors values
|
|
// Sensors values
|
|
float SensorT, SensorH, SensorHI, SensorCR;
|
|
float SensorT, SensorH, SensorHI, SensorCR;
|
|
@@ -30,6 +31,7 @@ void showWatch(void);
|
|
void showTime(void);
|
|
void showTime(void);
|
|
void showTemperature(void);
|
|
void showTemperature(void);
|
|
void showHumidity(void);
|
|
void showHumidity(void);
|
|
|
|
+void setBright(void);
|
|
|
|
|
|
// NTP Client
|
|
// NTP Client
|
|
void
|
|
void
|
|
@@ -65,6 +67,7 @@ void init()
|
|
// 7-segment output
|
|
// 7-segment output
|
|
MAX7219_Init();
|
|
MAX7219_Init();
|
|
tmpTimer.initializeMs(10, MAX7219_FillMinus).startOnce();
|
|
tmpTimer.initializeMs(10, MAX7219_FillMinus).startOnce();
|
|
|
|
+ brightTimer.initializeMs(1000, setBright).start();
|
|
|
|
|
|
// обновление экрана два раза в секунду
|
|
// обновление экрана два раза в секунду
|
|
displayTimer.initializeMs(500, showWatch).start();
|
|
displayTimer.initializeMs(500, showWatch).start();
|
|
@@ -124,24 +127,6 @@ void showWatch()
|
|
// Новая секунда
|
|
// Новая секунда
|
|
oldTime = Time;
|
|
oldTime = Time;
|
|
|
|
|
|
- // Регулировка яркости индикаторов
|
|
|
|
- // приведём к диапазону 0-16
|
|
|
|
- uint8_t bright = (1024 - system_adc_read()) >> 6;
|
|
|
|
- // растянем диапазон значений 12-16
|
|
|
|
- if (bright > 11)
|
|
|
|
- {
|
|
|
|
- bright = ( (bright - 12) * 3 ) + 2;
|
|
|
|
- }
|
|
|
|
- else
|
|
|
|
- {
|
|
|
|
- bright = 1;
|
|
|
|
- }
|
|
|
|
- /*
|
|
|
|
- if (bright < 1) { bright = 1; }
|
|
|
|
- if (bright > 15) { bright = 15; }
|
|
|
|
- */
|
|
|
|
- MAX7219_writeData(MAX7219_MODE_INTENSITY, bright);
|
|
|
|
-
|
|
|
|
// Обновление индикаторов
|
|
// Обновление индикаторов
|
|
if (oldMinute != dt.Minute)
|
|
if (oldMinute != dt.Minute)
|
|
{
|
|
{
|
|
@@ -277,6 +262,36 @@ void showHumidity(void)
|
|
}
|
|
}
|
|
*/
|
|
*/
|
|
|
|
|
|
|
|
+/*
|
|
|
|
+ * Автоматическая регулировка яркости индикаторов
|
|
|
|
+ */
|
|
|
|
+void setBright(void)
|
|
|
|
+{
|
|
|
|
+ // приведём к диапазону 0-16
|
|
|
|
+ uint8_t bright = (1024 - system_adc_read()) >> 6;
|
|
|
|
+
|
|
|
|
+ // растянем диапазон значений 10-16
|
|
|
|
+ if (bright > 14)
|
|
|
|
+ {
|
|
|
|
+ bright = 14;
|
|
|
|
+ }
|
|
|
|
+ if (bright >= 7)
|
|
|
|
+ {
|
|
|
|
+ bright = ( (bright - 7) * 2 ) + 1;
|
|
|
|
+ }
|
|
|
|
+ else
|
|
|
|
+ {
|
|
|
|
+ bright = 1;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /*
|
|
|
|
+ if (bright < 1) { bright = 1; }
|
|
|
|
+ if (bright > 15) { bright = 15; }
|
|
|
|
+ */
|
|
|
|
+
|
|
|
|
+ MAX7219_writeData(MAX7219_MODE_INTENSITY, bright);
|
|
|
|
+}
|
|
|
|
+
|
|
/*
|
|
/*
|
|
* Читаем данные с DHT22, в случае неудачи -- данные остануться старыми.
|
|
* Читаем данные с DHT22, в случае неудачи -- данные остануться старыми.
|
|
* меня это полностью устраивает.
|
|
* меня это полностью устраивает.
|