Arduino nano, CH-06, Шаговый двигатель 28BYJ-48 с драйвером ULN2003

Тема в разделе "Моторы, сервоприводы, робототехника", создана пользователем Volkodav, 8 мар 2016.

  1. Volkodav

    Volkodav Нуб

    Имеется данный скетч,в нем прописано управление реле через CH-06 модуль.
    Функцией шагового в этом проекте это поворот на 270 градусов вперед и назад я высчитал что это 1536 шагов.
    Управление будет происходить так: нажимаю кнопку,шаговый крутится на 270 градусов и останавливается,ожидая след. команды,далее нажимая на другую кнопку он поворачивается обратно на 1536 шагов,и затем как же ожидает след. команды,если кто знает напишите в лс,буду благодарен.
    http://robotosha.ru/arduino/stepper-motor-28byj-uln2003-arduino.html
    http://vk.com/idvladik_ekb
     

    Вложения:

  2. Limoney

    Limoney Гик

  3. Limoney

    Limoney Гик

    В среде arduino есть пример. Образцы>Communication>PhysicalPixel
     
  4. Volkodav

    Volkodav Нуб

  5. Limoney

    Limoney Гик

    Когда используется полношаговый метод управления, две из четырех обмоток запитываются на каждом шаге. Идущая вместе с Arduino IDE библиотека Stepper использует такой способ.
    Режим полного шага: 4-шаговая управляющая сигнальная последовательность. 11.25º/шаг, 32 шага на оборот внутреннего вала двигателя.
    Поэтому поворот на 270 градусов составит 24 шага
    Код (C++):
    #include <Stepper.h>

    const int ledPin = 13;
    const int stepsPerRevolution = 32;  // шагов за один оборот

    // for your motor
    // initialize the stepper library on pins 2 through 5:
    Stepper myStepper(stepsPerRevolution, 2, 3, 4, 5);

    int incomingByte;      // a variable to read incoming serial data into

    void setup() {

      Serial.begin(9600);
      // initialize the LED pin as an output:
      pinMode(ledPin, OUTPUT);
      // set the speed of the motor to RPMs
      myStepper.setSpeed(20);
    }

    void loop() {
      // see if there's incoming serial data:
      if (Serial.available() > 0) {
        // read the oldest byte in the serial buffer:
        incomingByte = Serial.read();
        // if it's a capital 1 (ASCII 31), turn on the LED:
        if (incomingByte == '1') {
          digitalWrite(ledPin, HIGH);
          myStepper.step(24);
        }
        // if it's an 0 (ASCII 30) turn off the LED:
        if (incomingByte == '0') {
          digitalWrite(ledPin, LOW);
          myStepper.step(-24);
        }
      }
    }