помогите вставить две кнопки

Тема в разделе "Arduino & Shields", создана пользователем Лиля, 3 май 2017.

  1. Лиля

    Лиля Нуб

    Всем большой ПРИВЕТ! Помогите вставить две кнопки,нажатие на первую запускает движение в одну сторону и потом мотор просто останавливается,а нажатие на вторую кнопку запускает процесс в обратную сторону.Если нажимать одну и туже кнопку то мотор каждый раз начинает движение в одну сторону. В данном скетче мотор плавно разгоняется и плавно тормозит,затем повторяет всё в другую сторону

    #include <AccelStepper.h>

    #define HALFSTEP 8

    // Определение пинов для управления двигателем

    #define motorPin1 3 // IN1 на 1-м драйвере ULN2003

    #define motorPin2 4 // IN2 на 1-м драйвере ULN2003

    #define motorPin3 5 // IN3 на 1-м драйвере ULN2003

    #define motorPin4 6 // IN4 на 1-м драйвере ULN2003

    // Инициализируемся с последовательностью выводов IN1-IN3-IN2-IN4

    // для использования AccelStepper с 28BYJ-48

    AccelStepper stepper1 (HALFSTEP, motorPin1, motorPin3, motorPin2, motorPin4);

    void setup (){ stepper1.setMaxSpeed (800.0);

    stepper1.setAcceleration (100.0);

    stepper1.setSpeed (200);

    stepper1.moveTo (20000);

    } void loop (){

    // Изменяем направление, если шаговик достигает заданного положения

    if (stepper1.distanceToGo ()==0)

    stepper1.moveTo (-stepper1.currentPosition ());

    stepper1.run (); }

    взято тут- http://robotosha.ru/arduino/stepper-motor-28byj-uln2003-arduino.html#comment-10406
     
  2. NikitOS

    NikitOS Король шутов Администратор

    [​IMG]
     
    Лиля нравится это.
  3. Tomasina

    Tomasina Сушитель лампочек Модератор

    Код (C++):
    void loop ()
    {
      static int dir = 0;
      long distance = 5000;
      if (!digitalRead(BUTTON1_PIN)) dir = 1;
      if (!digitalRead(BUTTON2_PIN)) dir = -1;
      stepper1.moveTo(dir * distance);         // Переместиться в абсолютно указанное положение. Само движение запускается функцией run().
      // stepper1.move(dir * distance);        // Переместиться в относительно указанное положение. Само движение запускается функцией run(). Значение distance может быть больше или меньше нуля.
      stepper1.run ();
    }
     
    Лиля нравится это.