Тут его нету.Что из них время опроса?
10 миллисекунд или 1000?
Время вообще понятие растяжимое.
Тут его нету.Что из них время опроса?
10 миллисекунд или 1000?
Ну да, это внутренние тайминги для работы библиотеки с датчиком.Тут его нету.
Не надо "сидеть в меню".И там датчик AHT10 опрашивается один раз на экране, и пока не уйдешь с этого экрана(пункта меню) и не вернешься обратно то данные о температуре/влажности не обновятся.
Да я только недавно нашел "образец" кода, который на switch-case, я пока самостоятельно не умею писать полностью с нуля программы, все равно куски удачных решений исследую и использую у себя.Не надо "сидеть в меню".
Могу предположить, что это время ожидания ответа от датчика после запроса, чтобы он успел перекрутить температуру в цыфры#define AHTXX_MEASUREMENT_DELAY 80 //wait for measurement to complete, in milliseconds
Здесь я думаю все такие. Копи-паст - наше всё!я пока самостоятельно не умею писать полностью с нуля программы
Вначале датчик трогаешь и температура его должна расти, но на дисплее не обновляется.
void looping()
{
getDateDS3231();
#ifdef LCD
showTime();
#endif
heatingSet_auto_save();
Sub_Pub();
В некоторых случаях помогает...И без switch-case просто работать.
#ifdef TM1637
void showTime()
{
switch (flagSW)
{
case 0: //-------------------------------- ----------------------------------
countShT ++;
if (countShT <= ShT_A * 2 + 1)
{
if (NTPtimeGet || DS3231present) // Если время по NTP или от DS3231 получено
{
ArrayData[0] = hourDS / 10;
if (ArrayData[0] == 0) ArrayData[0] = 17;
ArrayData[1] = hourDS % 10;
ArrayData[2] = minuteDS / 10;
ArrayData[3] = minuteDS % 10;
TM1637_colon(colonUp = !colonUp);
}
Но не в этом примере...В некоторых случаях помогает...
Но не в этом примере...
У меня в цикле крутиться опрос энкодера и передача данных в mqtt по wi-fi.В ардуино все должно выполнятся максимально быстро в основном цикле.
Ура! Тяжелая артиллерия подтянулась! Сейчас всё победим.Для тех кто в танке
Попробую. На примере обогрева полов на крыльце в деревне.Можете показать свои примеры логики меню?
И что мешает добавить отрисовку меню и опрос датчика?У меня в цикле крутиться опрос энкодера и передача данных в mqtt по wi-fi.
А код можно посмотреть?Попробую.
Использую библиотеку "GyverEncoder.h" и да, энкодер опрашиваю через прерывания.Экодер надо не опрашивать в цикле
attachInterrupt(0, isr_ENC_A, CHANGE);
А код можно посмотреть?
void encoderPosition()
{
#ifdef TM1637
ArrayData[ColonUp] = 17;
#endif
if (set_D_or_N)
{
pos < newPos ? setpointDAYPlus() : setpointDAYMinus();
}
else
{
pos < newPos ? setpointNIGHTPlus() : setpointNIGHTMinus();
}
pos = newPos;
}
void click1()
{
click1wait = 14;
if (flagSW == 0)
{
if (hide[DS18B20] == false)
{
flagSW = 1;
}
else
{
flagSW = 2; set_D_or_N = true;
}
}
else if (flagSW == 1)
{
flagSW = 2; set_D_or_N = true;
}
else if (flagSW == 2)
{
flagSW = 3; set_D_or_N = false;
}
else if (flagSW == 3)
{
flagSW = 2; set_D_or_N = true;
}
}
void doubleclick1()
{
}
void longPressStart1()
{
heattoggle == OFF ? heattoggle_ON() : heattoggle_OFF();
pubStatus(sTopic[TUMBLER], stat[TUMBLER]);
chkdRt();
}
void longPress1()
{
}
void longPressStop1()
{
}
void multiClick1()
{
switch (button1.getNumberClicks())
{
case 3: tone(D0, 3000, 100); StfNTPtDS(); break;
case 4: handle_Reboot(); break;
}
}
#ifdef TM1637
ArrayData[ColonUp] = 17;
#endif
Использую в самоделках два типа индикаторов (пока), TM1637 и LCD HD44780 с PCF8574. Точне их вариации.Что означают инструкции в коде?
#if defined(LCD)
#include "LiquidCrystal_I2C.h" //---------- https://github.com/fdebrabander/Arduino-LiquidCrystal-I2C-library
#define Siemens //---------- Siemens Optiset Avaya BG1602G
#include "LCD_type.h" //---------- Символы
String outLCD, outLCD2;
int countShT = 0; //---------- Счетчик для индикации
#elif defined(TM1637)
#define CLK_pin D6 //---------- TM1637 CLK 12
#define DIO_pin D5 //---------- TM1637 DIO 14
#define ColonUp_1 //---------- В каком разряде двоеточие?
#if defined(ColonUp_1)
#define ColonUp 1
#elif defined(ColonUp_5)
#define ColonUp 5
#endif
#define ShT_A 2 //---------- Сколько секунд показывать время?
#define ShT_B 5 //---------- Сколько секунд показывать температуру?
#define ShT_C 1 //---------- Сколько секунд показывать влажность?
#define ShT_D 1 //---------- Сколько секунд показывать TUMBLER?
bool colonUp = false; //---------- Двоеточие светится?
int countShT = 0; //---------- Счетчик для индикации
int brightUp = 8; //---------- Яркость
int ArrayData[6] = {24, 0, 10, 13, 17, 17}; // LOAD
const int txtArray[71] =
{
5, 10, 12, 12, 14, 5, 5, // 0-6 SACCES
14, 19, 19, 25, 19, // 7-11 Error