Перейти к содержанию

Серый_Ветер

Members
  • Постов

    20
  • Зарегистрирован

  • Посещение

Информация о Серый_Ветер

  • День рождения 30.10.1988

Контакты

  • Skype
    radist04ka
  • ICQ
    466159460

Информация

  • Пол
    Мужчина
  • Город
    Калининград

Электроника

  • Стаж в электронике
    6-10 лет

Достижения Серый_Ветер

Новичок

Новичок (1/14)

  • 10 лет  на форуме
  • 10 постов на форуме
  • Неделя на форуме
  • Месяц на форуме
  • Год на форуме

Последние значки

0

Репутация

  1. Понял. Прошу отсюда удалить, там пересоздам.
  2. Доброго времени. С наступившими и наступающими праздниками. Можете подсказать. Либо TPHaVA либо TPHaUA что за деталь... Гугл не нашёл ничего... Стабилизатор, понятно...но характеристики неизвестны. И есть ли прямые аналоги, чтобы обвес не менять.
  3. рэк 23, рэк43 - миниатюрное реле... а рэс 44 - как раз 4 переключения правда не знаю, выпускают их сейчас или нет... у меня на складе они коробками по 100 штук лежат))
  4. Набросал небольшой код. // Adafruit Motor shield library // copyright Adafruit Industries LLC, 2009 // this code is public domain, enjoy! #include <AFMotor.h> long randSpeed_1; long randsteps_1; long randSpeed_2; long randsteps_2; // Connect a stepper motor with 48 steps per revolution (7.5 degree) // to motor port #2 (M3 and M4) AF_Stepper motor_1(20, 2); AF_Stepper motor_2(20, 1); void setup() { Serial.begin(9600); // set up Serial library at 9600 bps Serial.println("Stepper test"); } void loop() { randSpeed_1 = random(4, 70); motor_1.setSpeed(randSpeed_1); randsteps_1 = random(5, 17); randSpeed_2 = random(4, 70); motor_2.setSpeed(randSpeed_1); randsteps_2 = random(5, 17); motor_1.step(randsteps_1, FORWARD, MICROSTEP); motor_2.step(randsteps_2, FORWARD, MICROSTEP); motor_1.step(randsteps_1, BACKWARD, MICROSTEP); motor_2.step(randsteps_2, BACKWARD, MICROSTEP); } Двигатели работают в нужных условиях, но не одновременно.... Можете подсказать как организовать данный алгоритм? Чтобы моторы ходили влево\вправо на случайное число шагов(одно число на цикл туда-сюда), с разной скоростью и делали это одновременно оба двигателя. Погуглив, понял что не ту либу использовал. Переписал. Получилось черти что.... // MultiStepper // -*- mode: C++ -*- // // Control both Stepper motors at the same time with different speeds // and accelerations. // Requires the AFMotor library (<a href="https://github.com/adafruit/Adafruit-Motor-Shield-library" title="https://github.com/adafruit/Adafruit-Motor-Shield-library" rel="nofollow">https://github.com/adafruit/Adafruit-Motor-Shield-library</a>) // And AccelStepper with AFMotor support (<a href="https://github.com/adafruit/AccelStepper" title="https://github.com/adafruit/AccelStepper" rel="nofollow">https://github.com/adafruit/AccelStepper</a>) // Public domain! #include <AccelStepper.h> #include <AFMotor.h> long randSpeed_1; long randsteps_1; long randSpeed_2; long randsteps_2; long randAcell_1; long randAcell_2; // two stepper motors one on each port AF_Stepper motor1(20, 1); AF_Stepper motor2(20, 2); // you can change these to DOUBLE or INTERLEAVE or MICROSTEP! // wrappers for the first motor! void forwardstep1() { motor1.onestep(FORWARD, SINGLE); } void backwardstep1() { motor1.onestep(BACKWARD, SINGLE); } // wrappers for the second motor! void forwardstep2() { motor2.onestep(FORWARD, SINGLE); } void backwardstep2() { motor2.onestep(BACKWARD, SINGLE); } // Motor shield has two motor ports, now we'll wrap them in an AccelStepper object AccelStepper stepper1(forwardstep1, backwardstep1); AccelStepper stepper2(forwardstep2, backwardstep2); void setup() { Serial.begin(9600); // set up Serial library at 9600 bps Serial.println("Stepper test!"); } void loop() { randSpeed_1 = random(4, 70); randSpeed_2 = random(4, 70); randAcell_1 = random(30, 70); randAcell_2 = random(30, 70); randsteps_1 = random(1, 8); randsteps_2 = random(1, 8); stepper1.setMaxSpeed(randSpeed_1); stepper2.setMaxSpeed(randSpeed_1); stepper1.setAcceleration(randAcell_1); stepper2.setAcceleration(randAcell_2); stepper1.moveTo(randsteps_1); stepper2.moveTo(randsteps_2); // Change direction at the limits if (stepper1.distanceToGo() == 0) stepper1.moveTo(-stepper1.currentPosition()); stepper1.run(); if (stepper2.distanceToGo() == 0) stepper2.moveTo(-stepper2.currentPosition()); stepper2.run(); Serial.println(randsteps_1); Serial.println(randsteps_2); Serial.println(randSpeed_1); Serial.println(randSpeed_2); Serial.println(randAcell_1); Serial.println(randAcell_2); } 1. скорость хоть и падает в терминал разная - двиглу абсолютно на это начхать... как взял при включении одну, так с ней и работает. 2. шаги рандомны во всех случаях, а необходимо только для цикла туда-обратно. а то получается что влево идет на 7 шагов, вправо на 3.... 3. setAcceleration тоже не работает.... в общем еще сильнее запутался в ней....
×
×
  • Создать...