Мой шаговый двигатель, подключенный к драйверу, и Arduino не работает

Я использую шаговый двигатель 28BYJ-48 с платой драйвера ULN2003. Я пытаюсь управлять двигателем с помощью Arduino MEGA. Сначала я подключил контакты драйвера: IN1,2,3,4 к контактам Arduino: 8,9,10,11 соответственно; как было дано в видео на YouTube, на которое я ссылался (https://www.youtube.com/watch?v=HdqCtAJxhrs). Питание двигателя подавалось от портов 5V и GND в Arduino. Что происходит, так это то, что он поворачивается на 180 градусов, а затем останавливается, а затем движется под случайными углами и останавливается. Это был код:

#include <Stepper.h> 

Stepper stepper1(64,8,9,10,11); 
int a=1;

void setup() {
  stepper1.setSpeed(50);
}

void loop() {
  while(a<10){
    stepper1.step(2048);
    delay(1000);
    a++;
  }  
}

, 👍1

Обсуждение

Что-нибудь происходит? Пробовали ли вы какую-либо из программ-примеров степпера, и они работают? Как подключен ваш шаговый двигатель? Диаграмма была бы полезна. Достаточно ли мощности для этого двигателя? Можете ли вы подтвердить, что поставка работает? Вы можете указать гораздо больше в своем вопросе - или проверить сами и предоставить эту информацию - чтобы помочь нам помочь вам., @JRobert

@JRobert, так что он должен продолжать вращаться на 180 градусов с правильными перерывами, но он просто поворачивается один раз и останавливается. Мне было интересно, будет ли проблема с источником питания, потому что сейчас он подключен к Arduino. Завтра возьму источник питания и попробую еще раз. IN1,2,3,4 были подключены к контактам 9,11,10,6., @Danush

@JRobert, я посмотрел другое видео и изменил конфигурацию контактов. Другие детали обновляются в вопросе. Если вам нужна какая-либо другая информация, просто дайте мне знать :), @Danush

Большинству двигателей требуется больший ток, чем может обеспечить контакт Arduino, поэтому, если драйвер шагового двигателя не питает ваши двигатели через отдельный источник питания, есть большая вероятность, что это ваша проблема. Предполагается, что драйверы выводов Arduino ограничены номинальным значением 20 мА и абсолютным максимальным значением 40 мА. Попытка отрисовать больше, чем это, скорее всего, потерпит неудачу (устройство будет недостаточно запитано), может повредить драйверы выводов (из-за перегрева) и может снизить собственное напряжение питания Arduino, достаточное для его сброса (обычно циклически повторяется через запуск/попытка запуска/сброс, ... и т.д., пока не выключишь или что-то не выйдет из строя)., @JRobert

Привет, @JRobert!!! У меня наконец-то заработало!! Итак, что я сделал, так это подключил двигатель к источнику питания 5 В 0,3 А. Затем я изменил количество шагов на оборот на 2038 и воспользовался кодом с сайта Майкла Шеффлера (https://www.mschoeffler.de/2017/09/23/tutorial-how-to-drive-the-28byj-48). -шаговый двигатель-с-платой-драйвера-uln2003a-и-arduino-uno/). И это, наконец, работает!! Спасибо за помощь :), @Danush

Рад это слышать - спасибо, что сообщили нам., @JRobert


1 ответ


2

Для тех, кто пропустил комментарии, я допустил ошибку, как указал @JRobert, что я должен был подключить шаговый двигатель к отдельному источнику питания, поскольку Arduino не может использовать столько ресурсов. Я также изменил код, так как я думаю, что неправильно понял количество шагов на оборот, которое необходимо в функции Stepper в коде Arduino. Нужно проверить это с таблицей данных или где-то в Интернете для соответствующей модели шагового двигателя. Окончательный код, который заставил его работать: здесь. Спасибо @JRobert за помощь в поиске решения :)

,