Жалюзи на шаговом моторе и астрономическими часами, суть чтоб жалюзи открывались с восходом плюс минус 30 минут и также закрывались позле или перед закатом
int data = (считать данные с датчика света)
if (data > 500){ // светло, открывает жалюзи (значения подобрать експериментально )
motor.step(100); // даем команду мотору (нужно заменить на свое)
} else if (data < 200){ // темно, закрываем (значения подобрать експериментально )
motor.step(-100) // даем команду мотору (нужно заменить на свое)
}
nt data = (считать данные с датчика света)
if ((data > 500)&&(last_data<200)){ // светло, открывает жалюзи (значения подобрать експериментально )
motor.step(100); // даем команду мотору (нужно заменить на свое)
} else if ((data < 200)&&(last_data>500)){ // темно, закрываем (значения подобрать експериментально )
motor.step(-100) // даем команду мотору (нужно заменить на свое)
}
static last_data=data;
Привет, нет по таймеру не очень будет, нужно именно по астрономическим часамА просто по таймеру включать-выключать не подходит?
Надо хранит последнее считанное значение. И проверять на то, было ли изменение или нет, тогда к мотору не будет лишних обращений.
примерно так
C++:nt data = (считать данные с датчика света) if ((data > 500)&&(last_data<200)){ // светло, открывает жалюзи (значения подобрать експериментально ) motor.step(100); // даем команду мотору (нужно заменить на свое) } else if ((data < 200)&&(last_data>500)){ // темно, закрываем (значения подобрать експериментально ) motor.step(-100) // даем команду мотору (нужно заменить на свое) } static last_data=data;
Парни спасибо что многие откликнулись, я понимаю что нужно время всем чтоб этим замарачиваться, и если у кого кого-нибудь оно найдётся и сможете написать скетч который я бы залил в ардуино и схему подключения, был бы очень благодарен, надо чтоб работал именно на астрономических часах, чтоб не лазить постоянно и вносить поправки в скетч, в идеале, астрономические часы и кнопка открытия закрытия или вообще в идеале с пульта ик открывание закрываниеНадо хранит последнее считанное значение. И проверять на то, было ли изменение или нет, тогда к мотору не будет лишних обращений.
примерно так
C++:nt data = (считать данные с датчика света) if ((data > 500)&&(last_data<200)){ // светло, открывает жалюзи (значения подобрать експериментально ) motor.step(100); // даем команду мотору (нужно заменить на свое) } else if ((data < 200)&&(last_data>500)){ // темно, закрываем (значения подобрать експериментально ) motor.step(-100) // даем команду мотору (нужно заменить на свое) } static last_data=data;
Я лиш примерный алгоритм привел на псевдокодеНадо хранит последнее считанное значение. И проверять на то, было ли изменение или нет, тогда к мотору не будет лишних обращений.
примерно так
Да астрономические часы, по координатам ширины долготы определяют восходы и закаты, если не ошибаюсь есть и библиотека, я как то собирал релюшку для включения света, скетч брал с интернета, правил долготу широту и включение света за 30 минут до захода солнца и выключение 30 минут после восходаПо мне астрономические часы это типа определение время по солнцу. И к примеру в Питере это не всегд возможно. + часы должны быть максимально точные, значит время должно быть с инета и данные о восходе-закате на данный день.
Или мы про разные задачи говорим ?