/*Управляем сервой в зависимости от освещенности
Используем фотосопротивление, может быть любой аналоговый сенсор
*/
#include //Подключаем библиотеку Servo
Servo motor;
int sensePin = 0;//Обьявляем 0 аналоговый пин..сюда вешает фотодиод
int sensePin2 = 1;//сюда потенциометр
void setup()
{
analogReference(DEFAULT); //Объявляем диапазон чтения с аналогового порта.Необязательное
/* Будем смотреть вывод на сериальном мониторе с Ардуино, для чего его инициализируем
Заодно можно посмотреть диапазон работы датчика чтобы в этом диапазоне поворачивать серву*/
Serial.begin(9600);
motor.attach(10); // Подключаем серву на 10 пин
}
void loop()
{
// Печатаем на монитор
Serial.println(analogRead(sensePin));
int val = analogRead(sensePin);// Создаем переменную val для чтения analogRead
int val2 = analogRead(sensePin2);
val= constrain(val,230 ,699);// Ограничиваем диапазон работы датчика посмотрев его на мониторе
int motorAngl = map(val,699, 230, 180,0);//Преобразуем диапазон выдаваемый датчиком в диапазон углов сервы
motor.write(motorAngl);// Устанавливаем серву на угол который получаем через преобразование
val2= constrain(val2,230 ,699);// Ограничиваем диапазон работы датчика посмотрев его на мониторе
int motorAng2 = map(val2,699, 230, 180,0);
motor.write(motorAng2);
}
Написано
Войдите на сайт
Чтобы задать вопрос и получить на него квалифицированный ответ.