Не могу запустить реле
- Войдите на сайт для отправки комментариев
Пнд, 04/07/2022 - 12:00
Добрый день! помогите найти ошибку, реле срабатывает в какой то своей логике, а не по изменению влажности
Добрый день! помогите найти ошибку, реле срабатывает в какой то своей логике, а не по изменению влажности
Вставь код по правилам форума.
Модераторы - в песочницу это "чудо".
А чего умничать то сразу? сложно ссылку на правила оформления написать?
А сложно сначала в раздел Песочница зайти, очень не терпится написать чего-то?
Не терпится программу закончить и полив собрать а Вам я гляжу только по разговаривать хочется
Для нетерпячих поясняю. На любом форуме, так или иначе связанном с программированием, есть железное правило: "программный код в сообщениях вставляется с использованием тега [CODE]". Кроме того на любом техническом форуме для новичков есть строгие рекомендации ознакомиться и использовать правила оформления постов. Игнорирование этих правил рассматривается как неуважение к сообществу.
Ну и чего ты ждешь здесь, проявляя неуважение, да еще и огрызаясь? Вероятность получения помощи у тебя уже упала к плинтусу. Будешь продолжать? ;)
Достаточно сложно у Вас правила к сожаленью спрятаны, не совсем на видном месте, обидеть ни кого не хотел но надо быть как то более доброжелательным к новичку, видишь что тупит дай человеку путь пусть изучает
Ничего сложного, первый пост первой темы в разделе Песочница
Подумай, при каких условиях сработает код от строки 75 и ниже? Кажется, именно там у тебя управляется реле?
Да во втором варианте туда перенёс, Вы имеете в иду, что датчик включается периодически ст 67-73, а включение реле идёт постоянно и он попадает в промежутки 0 значения датчика? Или именно после 75 строчки проблема? Просто для меня логика его нынешней работы совсем не понятна. Оно не соответствует ни каким значениям влажности
Оператор return прерывает выполнение функции, т.е. все, что ниже него НЕ выполняется ни при каких условиях
И еще - реле у тебя управляется по значению analogValue, которое считывается при каждом проходе loop() - строка 39, когда датчик не включен. Т.е. разберись со своими переменными, глядишь, и логика появится
И опять же еще - в таком режиме включать/выключать датчик бессмысленно, он в любом случае будет практически всегда включен.
analogValue = analogRead(A0);
// добавлено 29.06
.
.
if
(analogValue < 3000.0)
почитай, какие значения отдает analogRead()
analogRead - целочисленные значения от 0 до 1024 соответственно, но у меня на экране (com порте) 3950 максимум показывает. Что для меня тоже загадка. или что то неправильно с выводом значений?
Значит, у тебя не Ардуина, а WAVGAT
Да, правильно Wavgat
analogRead - целочисленные значения от 0 до 1024 соответственно, но у меня на экране (com порте) 3950 максимум показывает. Что для меня тоже загадка. или что то неправильно с выводом значений?
Плата хоть какая? А то может и нет загадки-то? Ну да, Дед первый угадал.
WAVGAT Uno- R3
WAVGAT Uno- R3
Это означает, что analogRead() выдает значения 0-4095. И в Arduini IDE нужно выбирать соответствующую плату. Остальная логика работы от этого не зависит
Надо бы код причесать. Во-первых, там есть совсем мёртвые куски (ниже 75 строки). Во-вторых, надо бы определиться, как работаем с датчиком - уж либо "прямо так" (как в строке 39), либо с какими-то манипуляциями с его питанием (функция readSensor()). А то сейчас оба способа одновременно задействованы. Если функция выключает датчик, то строка 39 мало что измерить сможет.
Короче, всё лишнее повыкидывать...
Приблизительно понял, что много разных функций было, убрал лишнее вроде заработало, но почему на оборот не понятно? (реле при включение подключено разомкнуто) пришлось знак на включение с меньше на больше поменять
И в com порт почему то ругался пришлось всё обрубить
Приблизительно понял, что много разных функций было, убрал лишнее вроде заработало, но почему на оборот не понятно? (реле при включение подключено разомкнуто) пришлось знак на включение с меньше на больше поменять
А HIGH на LOW поменять не проще было?
Мошт, у тебя реле нулём включается?
Разве оно не должно тогда на выключенном замкнуто быть? про это мы говорим? нормально замкнутый контакт при подаче питания разъединяется. Когда включается на реле индикатор загорается
Китайские релейные модули по типу управления бывают двух типов - одни управляются высоким уровнем (реле включается, если подать на входной пин HIGH), другие управляются низким уровнем (реле включается, если подать на входной пин LOW). Зависит это исключительно от того, какой транзистор китайцы в этот модуль воткнули
Я ошибочно считал что low это ноль... Тогда наверное правильнее было бы заменить это на включить - выключить напряжение? или такого варианта вообще нет?
LOW - низкий уровень, 0 вольт, HIGH - высокий уровень, равен напряжению питания, для ардуино обычно 5 вольт. Правильнее некуда