Вытяжка по влажности

всю тут нормально, не надо на код сваливать если сам…

Все равно не понял. Отупел сегодня, что-то.

if (digitalRead(button) == LOW && flag == 0)  // Кнопка включения вытяжки
  {
    flag = 1;
    time = millis();
  }
  if (digitalRead(button) == HIGH && flag == 1 && ((millis() - time) > time_fan)) {
    flag = 0;
  }

Я , конечно, не засекал, но что-то я не вижу никакой задержки между двумя digitalRead ()
[/quote]

Хотя бы условие переставили, чтобьы лишний digitalRead не вызывать: условия по И вычисляются слева направо. Надо digitalRead второй вправо переставить хотя бы

а зачем тут задержка?

проще второй if оформить как else if к первому

задержка может и не нужна, я просто удивился с утра, типа, зачем делать два digitalRead() без задержек между оными

А там никогда не будет “два подряд”.

Из этих двух строчек всегда выполняется только какая-то одна

Как это?

Первое условие , когда вычисляется, вызывается digitalRead()
Второе условие не отделено от первого никаким else, поэтому оно тоже нанчнет вычисляться: будет вызван digitalRead(), затем, будет проверен флаг и только затем - время. Условие будет признано ложным, но read-то будет сделан. Если первым условием поставить flag, а вторым - millis, а третьим - чтения пина, то будет кошерно.

согласен, так будет чуть быстрее

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

2 лайка

В общем перелопатил весь код под другой дисплей 1.8 st7735 128160. Тот был 2,4 st7789 240320. Вот теперь думаю выложить новый код и перелопачивать то что дали попробовать на форуме, или дождаться после завтра и попробовать на том дисплее. Разрешение то у них разное.

Николай, ну при чем тут дисплей???
Вы с логикой включения вентилятора разобрались?

Разве этому проекту нужен дисплей? Отлаживайте на чем есть, но логика работы бездисплейная.

2 лайка

Большое спасибо, ваш код правильно работает.
А по поводу дисплея,
Для меня это проект , в дальнейшем там будет отображаться Количество израсходованной воды за время посещения сан узла возможно с голосовым оповещением, включением классической музыки :grinning_face: , ну и он в конце концов показывает температуру на улице(там у меня есть пиктограммы , здесь я их убрал чтобы не загмограмождать).
В общем хобби с в ногу со временем. :wink:

Не надо укорять домашних в использовании воды в санузле - а то эффект будет обратным, разоритесь унитаз прочищать :slight_smile:

наконец нашли куда использовать дисплеи, про которые спрашивали в 23 году? :slight_smile:

2 лайка

я так понял, что в своем коде не осилили две строки поправить? пришлось брать чужой?
А зря, если не учиться - так и будете бегать по форумам по каждой ошибке,

Ну там не две строчки :face_with_thermometer:
Этот код возьму на вооружение и буду с ним разбираться , В нем всё по полочкам.Всё четко и с коментариями. :+1:

я почти закончил, и определился с ии, искоро не буду мешать учить программировать а не копировать)))

Вот только не надо вот эти вот “по вайфай включать вентилятор и смыв унитаза из Тайланда”. Умоляю! По-человечески прошу!

:grinning_face: Вайфай это лишнее.
Просто показомер. :eyes:

А как же марсианской миссией управлять? Самому что-ли на Марс переться?

2 лайка

У меня вот вопрос. Проект долгострой, когда бывает время. Конечно же я приду на форум еще с какой-нибудь несостыковкой.
Тему закрывать вопрос решён, или же оставить открытой. Правильно наверное закрыть ведь вопрос решён.
И открыть новую.
До скорых встреч всех благодарю. :+1: :folded_hands: :grinning_face: