Требуется простое управление сервой через делитель напряжения

Александр72
Offline
Зарегистрирован: 16.11.2015

Привет.

Вопрос не сложный для спецалиста, но я им не являюсь. Может кто поможет:

Можно ли сделать (и во что выльется финансово), чтобы фоторезистор( как делитель напряжения) не реагировал на свет плавно, а как бы включил или выключил? Нужно для управления сервой (открыла/закрыла окошко- один раз утром открыла, вечером закрыла , а не посепенно срабатывало как сейчас).

Я скетч взял из найденных в инете (с блинком сам совместил и вроде как даже работает), но не так как хочется работает..

/*Управляем сервой в зависимости от освещенности
Используем фотосопротивление, может быть любой аналоговый сенсор
*/
#include <Servo.h> //Подключаем библиотеку Servo
Servo motor;
 int sensePin = A0;//Обьявляем 0 аналоговый пин
void setup()
{
  pinMode(10, OUTPUT); //светодиод 
analogReference(DEFAULT); //Объявляем диапазон чтения с аналогового порта.Необязательное
/* Будем смотреть вывод на сериальном мониторе с Ардуино, для чего его инициализируем
  Заодно можно посмотреть диапазон работы датчика чтобы в этом диапазоне поворачивать серву*/
Serial.begin(9600);
   motor.attach(9); // Подключаем серву на 9 пин
}
 
void loop()
{
  // Печатаем на монитор
  int val = analogRead(sensePin);
  Serial.println(val); // Создаем переменную val для чтения analogRead
  val= constrain(val,500 ,1015);// Ограничиваем диапазон работы датчика посмотрев его на мониторе
  int motorAngl = map(val,1015,600,30,0);//Преобразуем диапазон выдаваемый датчиком в диапазон углов сервы
   motor.write(motorAngl);// Устанавливаем серву на угол который получаем через преобразование
   digitalWrite(10, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(500);              // wait for a second
  digitalWrite(10, LOW);    // turn the LED off by making the voltage LOW
  delay(500);              // wait for a second
 }

 

sadman41
Offline
Зарегистрирован: 19.10.2016

Можно. Выучив оператор if.

harus
Offline
Зарегистрирован: 29.06.2016
/*Управляем сервой в зависимости от освещенности
Используем фотосопротивление, может быть любой аналоговый сенсор
*/
#include <Servo.h> //Подключаем библиотеку Servo
Servo motor;
 int sensePin = A0;//Обьявляем 0 аналоговый пин
void setup()
{
  pinMode(10, OUTPUT); //светодиод 
analogReference(DEFAULT); //Объявляем диапазон чтения с аналогового порта.Необязательное
/* Будем смотреть вывод на сериальном мониторе с Ардуино, для чего его инициализируем
  Заодно можно посмотреть диапазон работы датчика чтобы в этом диапазоне поворачивать серву*/
Serial.begin(9600);
   motor.attach(9); // Подключаем серву на 9 пин
}
 
void loop()
{
  // Печатаем на монитор
  int val = analogRead(sensePin);
  Serial.println(val); // Создаем переменную val для чтения analogRead
  val= constrain(val,500 ,1015);// Ограничиваем диапазон работы датчика посмотрев его на мониторе
  //int motorAngl = map(val,1015,600,30,0);//Преобразуем диапазон выдаваемый датчиком в диапазон углов сервы
  if(val>600)  motor.write(30);// Устанавливаем серву на открытие
  else motor.write(0);                       // иначе закрытие
   digitalWrite(10, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(500);              // wait for a second
  digitalWrite(10, LOW);    // turn the LED off by making the voltage LOW
  delay(500);              // wait for a second
 }

 

Александр72
Offline
Зарегистрирован: 16.11.2015

harus пишет:



if(val>600)  motor.write(30);// Устанавливаем серву на открытие
  else motor.write(0);

Ёлки моталки... так всё просто и ведь работает как я и хотел! Вот, что значит знать и уметь.  И как же отблагодарить за такое чудесное решение моего вопроса?

harus
Offline
Зарегистрирован: 29.06.2016

Александр72 пишет:

harus пишет:



if(val>600)  motor.write(30);// Устанавливаем серву на открытие
  else motor.write(0);

Ёлки моталки... так всё просто и ведь работает как я и хотел! Вот, что значит знать и уметь.  И как же отблагодарить за такое чудесное решение моего вопроса?


Благодарности принимаю на баланс телефона +7 917862О565

Александр72
Offline
Зарегистрирован: 16.11.2015

harus][quote=Александр72 пишет:

 принимаю на баланс

Воспользовался данными. Не знаю правда, на сколько адекватно трудозатратам.