Управление сервой через фоторезистор.Угол зависит от освещения

Tango
Offline
Зарегистрирован: 05.03.2017

botasan пишет:

Доброго времени суток всем.

Подскажите пожалуйста как изменить код что бы от такого датчика света запускать серву Servo SG90.

Суть такова есть помещение и нужно с заходом солнца включить серву на несколько оборотов ( открывает форточку) с восходом наоборот (закрывает). У Вас почти такая схема помогите с кодом. По отдельности работает а связать в кучю не выходит. Ардуина уно, питание будет отдельное у сервы.

Может поможет...Делал для себя, под управление жалюзи, только не на серве, а на моторчиках с редуктором с незабвенного Али)))) Усилия вполне хватает. К этому коду прикрутить для сервы и нужно ещё приделать останов в нужном положении и будет замечательно. Со "СТОП"-ом пока не разбирался, жду датчики

const int pinPhoto = A0;  // Назначаем порт А0 фотодатчику ID103
const int led = 13;       // Назначаем вывод 13 Ардуино для индикации
int IN3 = 5;              // Input3 драйвера L298N подключен к выводу 5 Ардуино 
int IN4 = 4;              //------4-----------------------------------4--------
int raw = 0;              // Присваиваем данным имя "raw" и значение 0

void setup() {
  pinMode(pinPhoto, INPUT);  // Объявляем назначение PIN-ам
  pinMode(led, OUTPUT );
  pinMode (IN4, OUTPUT);
  pinMode (IN3, OUTPUT);
}

void loop() {
  raw = analogRead(pinPhoto);
  if(raw < 1010)               //Если на А0 значение по монитору порта <1010....
    digitalWrite(led, LOW);    //светодиод выключен...
  else
    digitalWrite(led, HIGH);   //...в противном случае - включен
  if(raw < 1010){              // Управление двигателем(драйвером)...Если на А0 значение по монитору порта <1010....
     digitalWrite (IN4, LOW);  // ...двигатель крутится в одну сторону.
     digitalWrite (IN3, HIGH);
    }
   else if (raw > 500){        //Если на А0 значение по монитору порта >500....
     digitalWrite (IN4, HIGH); //...двигатель крутится в другую сторону.
     digitalWrite (IN3, LOW );
   }
     delay(1000);
}