Принцип самого расчета программой положения солнца описать не могу.Я понял из описания автора статьи.Движение утром начинается от положения 120º.При движении солнца в 360º,в час оно проходит 15º.Каждые 16 минут нужно запускать двигатель и двигать панель на 4º,в сторону запада(240º).По достижении положения 240º и и задействовав концевой выключатель привод панели останавливается.После расчетного захода солнца,выдержать паузу 1час и переводить панель в положение 180º(параллельно горизонту).За 1 час до расчетного восхода солнца переводить панель в положение 120º,до срабатывания концевого выключателя на стороне восток.Обратной связью контроля движения панелей служит переменный резистор,который связан с осью поворота панелей и пребразует напряжение с нятой с центрально конаткта в градусы.Для калибровки потенциометра нужно,в ручном режиме нажать одновременно кнопку but_WEST и but_more(+).Панель начинает двигаться на восток(если она там не была) до срабатывания концевика на востоке,напряжение снятое с резистора записывается в память RTC(это будет положение 120º).Затем привод двигает панет в сторону запада до срабатывании концевика на западе,так же счтывает показания резистора и записывает в память RTC(240º). Датчик тока думаю использовать на 10А(двигатель больше 4А не берет),если ток двигателя стал больше установленного в меню(нужна возможность установки предельного тока из меню) останавливать привод,движение привода не возобновлять до нажатия кнопки (+).На экране писать типа ERROR.Датчик холла,на его основе анемометр.На основании показаний анемометра и предельных показаний(нужно выставлять в меню) останавливать привод панелей и переводить в положение которое можно установить из меню(120º-240º).Если скорость ветра в течении пол часа не превышает предельные,переводить панель в расчетное положение.Фоторезистор фиксирует освещенность,при недостаточной освещенности(небо затянуло тучами) останавливать привод панелей.Параметр порога освещенности выстанавливать в меню(например от 0 до 100),сделать задержку в 30 минут(если нашла небольшая туча).
По схеме;
SA1-limit_EAST концевик крайнего положения на восток(нормально разомкнут).
SA2-limit_WEST концевик крайнего положения на запад(нормально разомкнут).
SA3-auto_man,переключатель авто-ручного режима.
R5-azim_pot,переменное сопротивление для контроля поворота панелей(стоит на оси вращения панелей)
К1,К2-релле управления двигателем
VD1-PHOTO, фоторезистор.
SS49E-ANEMOMETER,датчик холла.
ACS712-CURRENT,датчик тока.
SB1-but_EAST,кнопка движения на восток.
SB2-but_WEST,кнопка движения на запад.
SB3-but_more,кнопка + для настройки параметров в меню.
SB4-but_less,кнопка -,для настройки параметров.
HL1-limits_LED,Led для индикации что достигнуто одно или более ограничений
Входа:
PC0-auto_man,переключатель авто-ручной.
PC1-limit_WEST,концевик крайнего положения на запад.
PC2-limit_EAST концевик крайнего положения на восток.
PC3-ANEMOMETER,датчик холла.
PC4-SDA.
PC5-SCL.
PC6-CURRENT,датчик тока.
PB6-PHOTO, фоторезистор.
PB4-azim_pot,вход переменное сопротивление для контроля поворота панелей.
PD2-but_less,кнопка - для настройки параметров.
PD5-but_more,кнопка + для настройки параметров в меню.
PD6-but_WEST,кнопка движения на запад.
PD7-but_EAST,кнопка движения на восток.
Выхода:
PD0-azim_EAST,выход на двигатель,движение на восток.
PD1-azim_WEST,выход на двигатель,движение на запад.
PD4-limits_LED,Led для индикации что достигнуто одно или более ограничений.
Схему прилагаю,сильно не пинайте,первый раз схему в программе составляю.
В прилагаемом файле (экран) напечатал как вижу стартовый экран программы.Верхний ряд,слева направо
12.04 -время 120>124 -положение в котором находиться панель и в какое положение будет следующее движение.
Нижний ряд, 15M\S-ветер в данный момент,AVTO(MAN)-авто-ручной режим работы, * -отображение значка для настройки порога солнце есть-нашли тучи.