Ну, что же, актуаторы уже в теплице на своих местах.
Поменял дополнительно блок питания на 12 вольт на более мощный. Полностью разделил цепи питания на контроллер и актуаторы. Поменял местами отсеки питания и логики. В ящике пока стоит плата ARDUINO UNO с шилдом для датчиков.
На ней проверяю тестовую программу с настройками по температуре, дождю и освещённости. Пока температура в теплице не очень высокая, поскольку дни достаточно пасмурные и с осадками. Но снизив установленные значения можно отловить и срабатывание на дождь, что даёт запас по времени до тепла.
Иногда проявляются глюки в виде пропадания сигналов с датчиков. Датчиков по температуре внутри теплицы три, и пропажа одного сигнала уже не даст среднего результата. Но это, я думаю, наводки от цепей питания актуаторов и реле. Прочёл об этой напасти на одном умном сайте по электротехнике.
Это можно попытаться побороть с помощью экранирования и заземления всех цепей. Сейчас главное отладить алгоритм управления по основным параметрам – дождю, температуре и освещённости в разных сочетаниях. Стараюсь учесть все возможные комбинации. Ноутбук стоит в теплице и в мониторе серийного порта смотрю, что показывает программа, кроме того, что идёт на дисплей.
Рассада растёт и скоро её можно будет выгуливать днём в теплице.
А к этому времени программа должна быть, хотя бы грубо проверена. Поскольку потом уже не будет столько времени на отладку. Или придётся сидеть в теплице вместе с рассадой, и управлять непосредственно актуаторами вручную.
У меня, к сожалению, пока мало опыта в написании кода, поскольку я использую готовые куски программ и корректирую под свои нужды. Но при совмещении некоторых кусков кода, которые самостоятельно прекрасно работают, получается нерабочая программа с ошибками.
Это как раз связано с анемометром. Готовый скетч с использованием датчиков Холла сам по себе работает и показывает и количество импульсов, и скорость вращения. А при вставлении его в текст программы управления он теряется и ничего не показывает. И понять, что не так для меня пока ещё трудно.
Пол дня не мог запустить время в изменённой версии, хотя все части кода проверял параллельно из двух скетчей. Оказалось, что в конечном варианте две строки были переставлены наоборот. И в результате время не читалось и не устанавливалось как надо. Вот на таких проколах приходится учиться, но время иногда уходит очень много.
И тем не менее, актуаторы отрабатывают своё время в нужных местах, фрамуги открываются и закрываются в соответствии с логикой, и программа реагирует на дождь и низкую температуру. Продолжение темы будет по мере отладки программы…