Сначала неплохо бы разобраться с типами.int alarmTemp=-127.00;
Дальше не смотрел.
Сначала неплохо бы разобраться с типами.int alarmTemp=-127.00;
GPIO9 и GPIO10 можно использовать если при компиляции указать flash mode DIOКак то можно эти пины использовать на вход или выход?
В Гугле много примеров попадается. В основном INTERRUPTED_PIN используют. Нас же интересует минимум пинов. Вот например https://github.com/RobTillaart/rotaryDecoder без "третьей ноги", сразу на 4 энкодера, но скудненько по функционалу. Слегка допилил направление ротации и деление количества щелчков. На 3.0.2 работает.Кто что думает по поводу модулей PCF8574
Этот пример энкодера по I2C?Вот например https://github.com/RobTillaart/rotaryDecoder без "третьей ноги"
На самом деле это всего лишь инструмент. А заставить его выполнять поставленные задачи - наш вопрос.Да, там функционала маловало...
void loop()
{
newPos = myEnc.read()/12;
if (pos != newPos) encoderPosition();
button1.tick();
...............
void encoderPosition()
{
pos < newPos ? setpointPlus() : setpointMinus();
pos = newPos;
.............
void multiClick1()
{
switch (button1.getNumberClicks())
{
case 3:
tone(D0, 3000, 100);
StfNTPtDS();
break;
case 4:
handle_Reboot();
break;
case 5:
fanToggle();
break;
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 encoderPosition()
{
#ifdef TM1637
ArrayData[4] = 17;
#endif
if (set_D_or_N)
{
pos < newPos ? setpointDAYPlus() : setpointDAYMinus();
}
else
{
pos < newPos ? setpointNIGHTPlus() : setpointNIGHTMinus();
}
pos = newPos;
}
.................
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);
По поводу подключения 5110 к мультиплексору автору отписал о проблеме в 3.0.2. Обещал решить, но сроки не указывает.здесь все таки люди в большинстве реально практикующие
#include "AHTxx.h"
AHT10.begin();
float temp = AHT10.readTemperature();
AHT10.begin();
AHT10.begin();
#define AHTXX_I2C_SPEED_100KHZ 100000 //sensor I2C speed 100KHz..400KHz, in Hz
#ifdef ESP8266
_i2c_sda=SDA;
_i2c_scl=SCL;
_i2c_speed=1000000L;
Wire.setClock(400000L);
AHT10.begin();
void setup() {
// начинаем работу с датчиком AHT10
//AHT10.begin();
}
void loop() {
float temp = AHT10.readTemperature();//несмотря на закоментированный AHT10
//данные в переменную temp попадают
}
Wire.setClock(400000L);
Прошу прощения, у Вас какая версия ядра используется? У меня на 3.0.2 эта битлотека компилится, но не работает...Мой код "цветет и пахнет" ...
Ах....забыл сказать, что я еще попробовал подключить дисплей нокия 5110, тот что по SPI обычно работает, подключить через интерфейс PCF8574, используя библиотеку.
1.8.19 - да для 3.0.2 она не работает...у Вас какая версия ядра используется?
А парень все еще молчит. Тыц!1.8.19 - да для 3.0.2 она не работает...
Почему не si7021?датчика температуры, AHT10, который подключается по I2C(SDA, SCL).
Был в наличии AHT10, ну а чем не датчик)))?Почему не si7021?
Не надо его, в каждом проходе, теребить.А затем в цикле LOOP добавить код
Код:
float temp = AHT10.readTemperature();
Ну я думал, может какие религиозные причины...ну а чем не датчик)))?
if (timer10s ++ == 10) //---------- 10 секунд
{
timer10s = 0;
getWeather();
heat_ON_OFF();
}
Да это понятно, но сейчас пишу другой код с "принципиально" другим меню.Не надо его, в каждом проходе, теребить.
Я параметры свои не задавал.Попутный вопрос, у Вас датчик сколько раз допустим в 10 минут опрашивается?
/* sensor delays */
#define AHTXX_CMD_DELAY 10 //delay between commands, in milliseconds
#define AHTXX_MEASUREMENT_DELAY 80 //wait for measurement to complete, in milliseconds
#define AHT1X_POWER_ON_DELAY 40 //wait for AHT1x to initialize after power-on, in milliseconds
#define AHT2X_POWER_ON_DELAY 100 //wait for AHT2x to initialize after power-on, in milliseconds
#define AHTXX_SOFT_RESET_DELAY 20 //less than 20 milliseconds
/* misc */
#define AHTXX_I2C_SPEED_100KHZ 100000 //sensor I2C speed 100KHz..400KHz, in Hz
#define AHTXX_I2C_STRETCH_USEC 1000 //I2C stretch time, in usec
#define AHTXX_FORCE_READ_DATA true //force to read data via I2C
#define AHTXX_USE_READ_DATA false //force to use data from previous read