сервоприводы без delay

dimOnOff
Offline
Зарегистрирован: 21.04.2015

Уважаемые форумчане, подскажите ,пожалуйста, как реализовать данный код без delay , но в нем еще и параллельно светодиод должен мигать . Здесь приведена только часть кода. Просто далее все однотипно: поворачивается вторая серва, потом опять первая и т.д. С параллельным вращением нескольких приводов видел много примеров. С последовательным вроде все проще, но не получается чего-то.

 // Подключаем библиотеку для управления сервоприводами
  #include<Servo.h> 

 // создаем объект для управления сервами
  Servo my_servo1;
  Servo my_servo2;

 // переменная для хранения положения сервы
  int pos = 0;

   void setup() {
 // присоединяем сервоприводы, подключенные к 10 и 11 пинам к объекту servo
   my_servo1.attach(10);
   my_servo2.attach(11);
   }

   void loop() {
 // вращаем первую серву 
     for(pos=90; pos <= 180; pos += 1) {
     my_servo1.write(pos); // перемещаем серву в положение, заданное в pos
     delay(15); // ждем 15мс, чтобы серва переместилась в требуемое положение
     }
  // вращаем серву в обратную сторону
     for(pos=180; pos >= 90; pos -= 1) {
     my_servo1.write(pos);
     delay(15);
     }

     delay(1000); // пауза 1 секунда

  // вращаем вторую серву
     for(pos=90; pos >= 0; pos -= 1) {
     my_servo2.write(pos); // перемещаем серву в положение, заданное в pos
     delay(15); // ждем 15мс, чтобы серва переместилась в требуемое положение
     }
  // вращаем серву в обратную сторону 
     for(pos=0; pos <= 90; pos += 1) {
     my_servo2.write(pos);
     delay(15);
     }
     delay(1000); // пауза 1 секунда

  }

 

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

На каждое устройство заводишь свою переменную состояния. Если устройства однотипные, вместо нескольких простых переменных используешь массив.

Joiner
Offline
Зарегистрирован: 04.09.2014

dimOnOff пишет:

Уважаемые форумчане, подскажите ,пожалуйста, как реализовать данный код без delay , но в нем еще и параллельно светодиод должен мигать . Здесь приведена только часть кода. Просто далее все однотипно: поворачивается вторая серва, потом опять первая и т.д. С параллельным вращением нескольких приводов видел много примеров. С последовательным вроде все проще, но не получается чего-то.


Ловите ссылку http://www.youtube.com/watch?v=2gIYKek6xGY

Обсуждалось здесь http://arduino.ru/forum/programmirovanie/kak-takoe-vozmozhno

Здесь мои эксперименты https://www.youtube.com/watch?v=3xrvS7vsnwo

Ой! Видео не то выложил. Вам надо последовательно, а тут все параллельно. Сначала написал, потом заметил.