шаговые моторы
- Войдите на сайт для отправки комментариев
здравствуйте , мучился с библиотекой stepper не мог запустить два двигателя одновременно . решил попробовать переключать обмотки см и получилось . вот скетч
[code] int p1=8; int p2=9; int p3=10; int p4=11; int p11=4; int p21=5; int p31=6; int p41=7; void setup() { pinMode(p1, OUTPUT); pinMode(p2, OUTPUT); pinMode(p3, OUTPUT); pinMode(p4, OUTPUT); pinMode(p11, OUTPUT); pinMode(p21, OUTPUT); pinMode(p31, OUTPUT); pinMode(p41, OUTPUT);
}
void loop() { digitalWrite(p2, LOW); digitalWrite(p3, LOW); digitalWrite(p4, LOW); digitalWrite(p1, HIGH); digitalWrite(p21, LOW); digitalWrite(p31, LOW); digitalWrite(p41, LOW); digitalWrite(p11, HIGH); delay(2); digitalWrite(p1, LOW); digitalWrite(p2, LOW); digitalWrite(p4, LOW); digitalWrite(p3, HIGH); digitalWrite(p11, LOW); digitalWrite(p21, LOW); digitalWrite(p41, LOW); digitalWrite(p31, HIGH); delay(2); digitalWrite(p1, LOW); digitalWrite(p3, LOW); digitalWrite(p4, LOW); digitalWrite(p2, HIGH); digitalWrite(p11, LOW); digitalWrite(p31, LOW); digitalWrite(p41, LOW); digitalWrite(p21, HIGH); delay(2); digitalWrite(p1, LOW); digitalWrite(p2, LOW); digitalWrite(p3, LOW); digitalWrite(p4, HIGH); digitalWrite(p11, LOW); digitalWrite(p21, LOW); digitalWrite(p31, LOW); digitalWrite(p41, HIGH); delay(2); } [/code] дарйвер L298N
может пригодится кому
Спасибо конечно, но это правильнее делать с помощью этого
для меня это сложно , и по этому я придерживаюсь текста arduino ide понятную для новичков
int p1=8;
int p2=9;
...[/code]
Зарегистрирован: 08.03.2016
Ахренеть!
Зато точно работает ) два шаговых мотора крутятся вместе
Я конечно понимаю что это все равно происходит не совсем одновременно . И скетч толькодля того чтобы увидеть что два мотора крутятся без всяких толчков и зависания.
Естественно delay быть не должно , нужно все привязать ко времени выполнения программы
int p1=8;
int p2=9;
...[/code]
Зарегистрирован: 08.03.2016
Ахренеть!
не всем же быть такими прогрессивными как я к примеру )))
Я конечно понимаю что это все равно происходит не совсем одновременно .
Что вы ими такое крутить собрались чтобы эта разница сказалась ?
Естественно delay быть не должно , нужно все привязать ко времени выполнения программы
Без толчков, зависаний и одновременно - это в прерывание таймера засовывать и лучше без digitalwrite. loop с миллис точности не гарантирует - оно срабатывает не "сразу" как таймер, а "как только так сразу", так сказать и если есть куски кода, выполняющиеся долго - вариант с delay -> millis для шд не очень.
если у вас мотор работает через драйвер А4988 - не нужна никакая библиотека. Драйвер управляется двумя пинами - STEP и DIR. Пином DIR выбираете направление, на STEP подаете импульсы для шагов. Чем чаще импульсы. тем быстрее крутится мотор...
Пока Serial.print из цикла не уберете, скорость будет ограничена... А вообще там есть примерчик в библиотеке для управления с помошью потенциометра.