Как грамотно реализовать?
- Войдите на сайт для отправки комментариев
Добрый День!
У меня такой вопрос.
Имеется драйвер Longs Motor DM420A и мотор Nema 17 17HS4417.
(Ссылка на сам драйвер: www.longs-motor.com/ProductsView.asp
Еще вот ссылка если первая не пашет: http://webcache.googleusercontent.com/search?q=cache:rCBAsbF1Jf4J:www.longs-motor.com/ProductsView.asp%3Fid%3D278+&cd=1&hl=ru&ct=clnk&gl=ee)
В данный момент я заставил работать мотор таким кодом:
int StopperLeft=6; int StopperRight=7; int ENBL = 3; int DIR = 4; int PUL = 5; ..... void motor (long col , int side) { if(lock==false){ lock=true; digitalWrite(ENBL, HIGH); if(side==1) digitalWrite(DIR, HIGH); else if(side==2) digitalWrite(DIR, LOW); analogWrite(PUL, 127); for(int x=0;x<col*s;x++) { // delay(215); if(side==1){ if (digitalRead(StopperLeft) == HIGH) { break; } } else if (side==2){ if (digitalRead(StopperRight) == HIGH) { break; } } } analogWrite(PUL, 0); lock=false; // digitalWrite(4, LOW); } }
Как видно, я сперва включаю драйвер (ENBL) затем указываю направление (DIR) и делаю 50% работы PWM на PUL, и мотор работает до того момента, пока я не сделаю 0%.
Вроде всё хорошо и работает, но мне что - то подсказывает, что есть более грамотный способ.
Если он существует, пожалуйста подскажите, заранее благодарю и надеюсь на адекватный ответ!
Спасибо за прочтение сие поста, Иван.
Воспользуйтесь поиском по сайту...
Я так понимаю надо использовать библиотеку: http://arduino.ru/Reference/Library/Servo ?
Нет, почему серва? Ищите про шаговые двигатели... гдето была тема как пользоваться библой AccelStepper и как инициализировать выводы при использовании драйвера.
Спасибо за этот более чёткий ответ!
Я так понял юзать надо этом: http://www.pjrc.com/teensy/td_libs_AccelStepper.html
Так же в моем случае надо юзать так: AccelStepper Motor(1, PUL, DIR); Верно ли?
Спрашиваю на всякий случай, что бы когда буду тестить (через часа 3-4) не тратить время на метод тыка :).
Да, вроде она, тут на форуме тоже где то обсуждалось.