Автополив
- Войдите на сайт для отправки комментариев
Пт, 17/01/2020 - 12:47
Мой первый скетч. Покритикуйте. Как улучшить?
Moderator : пожалуйста, вставьте код правильно (возможно, новым сообщением в тему),
Мой первый скетч. Покритикуйте. Как улучшить?
Moderator : пожалуйста, вставьте код правильно (возможно, новым сообщением в тему),
Вставить по правилам форума для начала. http://arduino.ru/forum/obshchii/pesochnitsa-dlya-vsekh-novichkov
Нечего критиковать
Тут ничего не улучшишь... он просто неработоспособен.
"Улучшить" можно то, что работает. Тут надо писать "исправить".
Пробовали запускать?
Хм, а если не затруднит, можно чуточку по-подробнее?
Нет, пока не на чем запускать, тренируюсь, так сказать, "на кошках".
Опишите словами что делает этот скетч. Только представьте себе, что это делает процессор, который умеет делать шаги по одному. И что происходит на каждом шаге. Потом нужно сделать тоже самое для алгоритма, который должен превратится в программу. При этом должны забыть слово "подразумевается". Должно быть описано всё, до мелкого шага. Все если - то должны давать что то полезное. Например что делает если в строке 38?
А почему, в Arduino IDE - Скетч - Проверить/Компилировать, программа не ругается, не подчёркивает ничего?
А почему, в Arduino IDE - Скетч - Проверить/Компилировать, программа не ругается, не подчёркивает ничего?
так там нет синтаксических ошибок - просто там контроля влажности нет
Хм, а если не затруднит, можно чуточку по-подробнее?
Так это мы от Вас ждём поподробнее. Запускали? Что делает? Всё ли делает как задумывалось? Что не так?
Нет, пока не на чем запускать, тренируюсь, так сказать, "на кошках".
А, так Вы рассчитываете, что это мы вместо Вас запустим, догадаемся, что именно Вы хотели сделать и ответим на все вопросы, приведённые выше, а заодно и расскажем Вам что делать дальше? Не вопрос, - $300 и я честно работаю на Вас один час. Согласны?
Орфографических ошибок нет. Логические компилятор не проверяет. И даже работать будет, но не так, как Вам хочется.
Уважаемый Евгений П, если бы я хотел получить готовый продукт, то вряд ли был бы сейчас здесь. Мне хочется разобраться, понять, научиться, в конце-концов. И делать за меня не надо! Тут как в школе, пока у доски сам не решишь...
да ничего не изменилось.
Несмотря на комментарий "программа считывает с датчиков влажности..." - ничего она не считывает
почитайте, какой командой читается значение с аналогового порта
почитайте, какой командой читается значение с аналогового порта
Согласен с коллегой. Я предлагал забыть слово "подразумевается". Если по шагам процессора посмотреть, то должен быть шаг : получить значение влажности. Где по Вашему он?
Спасибо за замечание! Надеюсь, теперь лучше!
Хуже. почитайте, как командой читается значение с аналогового порта. Там есть примеры.
Спасибо за замечание! Надеюсь, теперь лучше!
не-а...
Defiant - может вы, возьмете таймаут, почитаете умные книжки с недельку - и тогда придете снова. А то знаете, сейчас у вас просто какая-то "угадайка" получается, так программы не пишут.
Последняя попытка, и таймаут ))
int sensorValue=analogRead(Humidity1); //считывание показания с датчика 1
Пошёл читать )
а так работает ?
с датчиков если значение больше 200 или 300 должно быть?
исправил код выше. ошибку сделал
а так работает ?
нет, так потоп будет
а так работает ?
нет, так потоп будет
просто кроме скетча в первом посте ничего больше нет:)
как вообще это устройство должно работать? :)
нет тех. задания
просто кроме скетча в первом посте ничего больше нет:)
тут больше ничего и не надо. Если хотите подсказку - посмотрите как вы работаете с интервалом.
Кстати, у ТС в самом первом скетче было движение в правильном направлении - видимо где-то списал - но поскольку он не понимает смысла операторов - он потом эту часть выкинул.
Уважаемый Евгений П, если бы я хотел получить готовый продукт
Боже упаси! Вы что думаете, то была цена за готовый продукт? Таки нет! Только за то, что запущу, посмотрю (т.е. сделаю Вашу работу) и выскажу замечания. А дальше делайте сами.
И делать за меня не надо!
Вы ж сказали, что не запускали. Значит, запускать за Вас должен я. Или я что-то не так понял? Вы уж определитесь :-)
коммент к посту 22
условия (строка 26 и строка 41) пересекаются - на мой взгляд это не допустимо, но учитывая отсутствие ТЗ может оно так и задумано...?
условия пересекаются - я имею ввиду, что оба эти условия, при определенных обстоятельствах, могут быть выполнены и случится тот самый потоп. Т.е. незадолго до истечения таймера поступит команда от датчиков влажности, а следом с небольшим интервалом команда по таймеру.
вариант решения: скопировать строку 42 в нужное место...
На всякий случай )
Т.З.: Есть ёмкость с водой, в ней 2 помпы. 2 датчика влажности почвы, каждый в своей культуре, со своим водопотреблением. На каждой помпе по клапану. Интервал между проверками влажности почвы 4 часа.
Принцип работы: контроллер, опросив 1-й датчик, решает поливать, или нет (<=200 – поливать, если больше, ничего не делать). Тот же принцип и со вторым датчиком. Ну и как сказал, интервал между проверками 4 часа.
Опять ушёл читать ))
A1 пин не может быть меньше или равно 300 :)
и здесь ошибки. датчика 2 а не 1
sensorValue
У Вас со строки 22 может литься пока вода дойдёт до датчика. Время оборота программы при срабатывании датчика 5 секунд. Логику надо менять. К тому же полив дело не спешное. Ну сработал датчик 1 раз так сразу лить? Надо набрать статистику, что точно сухо, а не наводка от сети значение приподняла. Да и датчики очень быстро окисляются под напряжением. Их нужно подключать только на время замера. Есть ещё куча подводных камней. В сети много проектов полива. Почитайте. Посмотрите сколько проблем надо решить. Ваш скетч это даже не начало. Для начала диодом помигать бы в заданные интервалы времени.