Nema 17, Arduino Uno и шаговый двигатель ~2H42B
Я попытался запустить шаговый двигатель Nema 17, используя привод, показанный на рисунке ниже (не базовый привод L298N, который, кстати, я успешно использовал для вращения двигателя).
Может ли кто-нибудь из вас просмотреть мои существующие связи и помочь мне завершить оставшиеся?
Существующая установка Arduino Uno, двигателя Nema 17 и привода:
Существующие подключения к Диску слева направо:
- Толстый желтый провод (0 В) от адаптера питания и тонкий черный провод (земля) от Arduino
- Толстый красный провод (12 В +) от адаптера питания.
- Зеленый провод (A+) от шагового двигателя
- Черный провод (A-) от шагового двигателя
- Красный провод (B+) от шагового двигателя
- Синий провод (B-) от шагового двигателя
Чего мне не хватает, так это подключения к PUL, DIR, VCC и ENA. Я мог бы подключить 4 провода от Arduino D8 к D11 соответственно, но достаточно ли этого? Есть ли скетч Arduino, к которому я мог бы обратиться после того, как соединения будут готовы?
@atif, 👍0
2 ответа
Подключиться:
- VCC на Arduino 5 V
ENA
либо напрямую к VCC, либо к контакту Arduino (для дополнительного включения управления программным обеспечением драйвера — активный высокий уровень).
Импульс (шаги) и направление на Arduino GPIO.
Посмотрите здесь форум Arduino Простая программа Stepper - я думаю, вы найдете то, что ищете для.
Вот руководство пользователя для BH- Шаговый драйвер MSD-2A.
На странице 5 показаны две таблицы с указанием соединений:
Вы уже подключили P2, остался P1.
Временная диаграмма ниже показывает состояние необходимых сигналов PUL
, DIR
и ENA
.
Итак, на вход ENA
можно либо удерживать высокий уровень, подключив его к VCC, либо к цифровому выходу Arduino, чтобы обеспечить базовое включение/выключение. контроль.
В этой ветке, arduino uno с шаговым двигателем, OP использует контроллер, очень похожий на ваш. , за исключением того, что это версия 6A (BH-MSD-6A). Их код в потоке содержит много ненужного кода и, по-видимому, имеет ряд проблем. Урезанная версия того же кода выглядит следующим образом:
//arduino code
//
#include <TimerOne.h>
#include <EEPROM.h>
int rpm;
int initial_rpm;
int dutycycle_time=0;
int stepper_Enable=5; //STEPPER MOTOR ENABLE PIN : PUL-
int stepper_Pulse=6; // STEPPER MOTOR PULSE PIN : PUL-
int address_eeprom=0;
void displayNumber(int);
void lightNumber(int);
void setup()
{
Timer1.attachInterrupt( timerIsr ); // attach the service routine here
pinMode(stepper_Pulse,OUTPUT); // Analog pin A2 is used for ENABLING the steeper motor
pinMode(stepper_Enable,OUTPUT); // Analog pin A2 is used for DIRECTION the steeper motor
digitalWrite(stepper_Pulse,HIGH);
digitalWrite(stepper_Enable,LOW);
rpm=EEPROM.read(address_eeprom);
}
void loop()
{
while(digitalRead(stepper_Enable)==HIGH){
int cycle_freq=(1600/60)*rpm;
int dutycycle_freq=2*cycle_freq;
int dutycycle_time=1000000/dutycycle_freq;
Timer1.initialize(dutycycle_time); // set a timer of length 100000 microseconds (or 0.1 sec - or 10Hz => the led will blink 5 times, 5 cycles of on-and-off, per second)
if(analogRead(A3)==LOW ) // STOPPING THE STEPPER MOTOR
{
digitalWrite(stepper_Enable,LOW);
}
}
while(digitalRead(stepper_Enable)==LOW)
{
int initial_rpm=rpm;
EEPROM.write(address_eeprom,rpm);
if(analogRead(A0)==LOW && rpm<300 ) ///increasing speed of stepper motor
{
rpm=rpm+1;
// delay(100);
}
if(analogRead(A1)==LOW && rpm>0) ///decreasing speed of stepper motor
{
rpm=rpm-1;
// delay(100);
}
if(analogRead(A2)==LOW ) //STARTING THE STEPPER MOTOR
{
digitalWrite(stepper_Enable,HIGH);
}
}
if(initial_rpm!=rpm){
address_eeprom=address_eeprom+1;
}
}
void timerIsr()
{
// Toggle LED
digitalWrite( stepper_Pulse, !digitalRead( stepper_Pulse ));
}
Обратите внимание, что, хотя это должно помочь вам начать работу, поскольку OP заявляет в треде, что с этим есть проблемы, которые необходимо исправить.
(Сейчас мне нужно исправить прошивку Marlin, но я вернусь к этому ответу позже)
- Arduino uno + cnc Shield v3 + драйвер шагового двигателя A4988 + AccelStepper?
- Запустить два степпера одновременно
- Могу ли я запретить библиотеке Stepper удерживать двигатель?
- Питание двух шаговых двигателей с драйверами A4988
- Управление функцией включения на драйвере микрошагового устройства
- Шаговый двигатель с датчиком HCSR-04
- Шаговый двигатель не работает с платой A4988
- Двигать шаговый двигатель вперед и назад
Ок... был злоупотреблен "включить отрицательный сигнал" на странице 5 диаграммы..., @Bouc