Запуск сервоприводов один раз в программе

Тема в разделе "Arduino & Shields", создана пользователем vlasov-serg-27, 22 июн 2014.

  1. Требуется запустить сервоприводы (работают синхроно) только при наличии сигнала с датчика линии. То есть если есть линия они запускаются поворачиваются: первый - от 0 до 50 градусов, второй - от 60 до 0; и возвращаются в начальное положение: первый - о градусов, второй - 60 градусов.
    Текст программы:

    #include <VarSpeedServo.h>
    VarSpeedServo myservo1;
    VarSpeedServo myservo2;
    const int servoPin1 = 30; // Серва с поворотом 0-50
    const int servoPin2 = 31; // серва с поворотом 60-0
    int lDSL1=25; // датчик линии
    void setup()
    {
    myservo1.attach(servoPin1);
    myservo1.write(0,0,true);
    myservo2.attach(servoPin2);
    myservo2.write(60,0,true);
    }
    void loop()
    {
    int val_lDSL1=digitalRead(lDSL1);
    if (val_lDSL1==HIGH)
    {
    myservo1.write(0,30);
    myservo2.write(60,40);
    delay(2000);
    myservo1.write(50,30);
    myservo2.write(0,40);
    delay(2000);
    }
    }

    Поэтому тексту сервопривода работают постоянно, мне нужно что бы они запустились один раз из положения: первый - от 0 до 50 градусов, второй - от 60 до 0; и возвратились в начальное положение: первый - о градусов, второй - 60 градусов. Кто нибудь может помочь с решение проблемы, очень срочно нужно. Буду очень сильно благодарен.
     
  2. Unixon

    Unixon Оракул Модератор

    Запоминайте состояние серв в переменной и второй, и т.д. раз по условию пропускайте участок кода с поворотом.
     
  3. vvr

    vvr Инженерище

    Вы бы поигрались с примерами в библиотеке, там всё просто и понятно