Помогите с таким маленьким проектом.
- Войдите на сайт для отправки комментариев
Пт, 21/07/2017 - 21:33
Есть несколько шаговых двигателей не важно како кол-во. 10, 20. Они подключены к ардуино . Шаговые двигатели допустим пронумерованы с 1 до 10 (1, 2 , 3...).
Задача такого плана, в ком порт подаме команду вида : 1 или 2 , или 3. То есть номера двигателей, программа запсукает двигатель. на какое растояние , скорость и ускарение повернеться двигатель залано заранее.
То есть программа тупо сравнивает значени из ком порта с номером двигателя и запускат нужный:
Вот на примере кое что набросал:
#include <AccelStepper.h>
// Define a stepper and the pins it will use
AccelStepper stepper(1, 3, 2);
long steps = 0;
void setup()
{
stepper.setMaxSpeed(2000);
stepper.setAcceleration(3000);
Serial.begin(9600);
}
void loop(){
if (Serial.available() > 0) {
steps = Serial.parseInt();
stepper.move(steps);
while (stepper.distanceToGo() != 0) {
stepper.run();
}
Serial.println("ok");
}
}
Но тут просто в ком порт скидываю значение перемещения двигателя.
в библиотеке аксельстепер работа с ускорениями блокирующая функция (если память не подводит).
пока мотор не закончит движение ничего на примется из команд и другие моторы (если им отправят команду) не поедут, как то так...
Мне в принципе и не нужно. Пока один мотор не отработает остальные не должны работать.
распишите полностью ваше задание
7808543@gmail.com
Используйте оператор switch case и будет тебе счастье
Спасибо. Буду изучать.
Спасибо! Вроде как заработало. Попробую подключить второй двигатель и тогда все будет понятно.
Всем спасибо за помощь. Подключил второй двигатель. Все работает как нужно.