Страница 1 из 1
Arduino Pro Mini как тестер драйверов ШД
Добавлено: 16 апр 2015, 06:03
tecnocat
Собираю станок из готовых компонент, но понадобилось проверить драйвера шаговых двигателей - под рукой был Arduino Pro Mini,
накидал для него простенький скетч который шагает 2000 импульсов туда и обратно - подключив к драйверу можно и ток отстроить и микрошаг.
Сам скетч основан на Blink
Код: Выделить всё
const int pulsePin = 12; // Вывод импульсов STEP
const int dirPin = 13; // Вывод импульсов DIR
int pulseState = LOW; // Начальное значение STEP
int dirState = LOW; // Начальное значение DIR
unsigned long previousMillis = 0;
unsigned long count = 0;
const long interval = 1;
void setup() {
pinMode(pulsePin, OUTPUT);
pinMode(dirPin, OUTPUT);
}
void loop()
{
unsigned long currentMillis = millis();
if(currentMillis - previousMillis >= interval) {
previousMillis = currentMillis;
if (pulseState == LOW)
pulseState = HIGH;
else
pulseState = LOW;
count++;
if (count>2000){
count=0;
if (dirState == LOW)
dirState = HIGH;
else
dirState = LOW;
}
digitalWrite(pulsePin, pulseState);
digitalWrite(dirPin, dirState);
}
}
Может кому и пригодится

Re: Arduino Pro Mini как тестер драйверов ШД
Добавлено: 16 апр 2015, 09:35
Kopyloff
А если ШД не вращается - как определить - драйвер это неисправен или ШД? Может с выходов драйвера сигналы на вход ардуины завести и мониторить - правильно ли импульсы идут?
Re: Arduino Pro Mini как тестер драйверов ШД
Добавлено: 16 апр 2015, 09:41
Kopyloff
А вообще интересно - как ведёт себя ШД если с полного хода зареверсить его? Без рамп разгона/торможения? Не пропускает шаги? Не срывается? Или в драйверах рампы организованы?
Re: Arduino Pro Mini как тестер драйверов ШД
Добавлено: 16 апр 2015, 09:54
Noob
Зачем сюда пихать это непотребство? Для тестирования драйверов выше крыши энкодер, 2 конденсатора, 2 резистора и источник питания 5В
Re: Arduino Pro Mini как тестер драйверов ШД
Добавлено: 16 апр 2015, 10:03
Kopyloff
Какой энкодер имеется в виду? Этот?
Re: Arduino Pro Mini как тестер драйверов ШД
Добавлено: 16 апр 2015, 10:07
Noob
Да, их куча разновидностей, но все они формируют 2 сдвинутых по фазе на 90град. импульсов. Один на STEP, другой на DIR.
Re: Arduino Pro Mini как тестер драйверов ШД
Добавлено: 16 апр 2015, 10:14
balomut
Noob писал(а):Для тестирования драйверов выше крыши энкодер, 2 конденсатора, 2 резистора и источник питания 5В
А схемку ?
Re: Arduino Pro Mini как тестер драйверов ШД
Добавлено: 16 апр 2015, 10:16
Kopyloff
Т.е. получается реверсивное управление? Т.к. ШД (драйвер) делает шаг при изменении уровня сигнала STEP с низкого на высокий, поэтому вращая в одну сторону сначала приходит сигнал DIR, а через 90 градусов - STEP, ШД крутится в одну сторону. Вращая в обратную сторону - STEP уже изменился а DIR eщё не пришёл, соответственно ШД вращается в другую сторону. Я правильно понимаю?
Если это так - то грамотное и изящное решение получается! +1

Re: Arduino Pro Mini как тестер драйверов ШД
Добавлено: 16 апр 2015, 11:22
Noob
Какгбэ да, крутишь энкодер влево - за ним крутится ШД, вправо - аналогично.
Стробирование DIR идет по фронту STEP(я понятно выразился?) Если на человеческий - то при детектировании фронта STEP драйвер смотрит в каком состоянии DIR 0 или 1 и делает шаг(микрошаг) в нужную сторону.
Re: Arduino Pro Mini как тестер драйверов ШД
Добавлено: 16 апр 2015, 11:35
Kopyloff
Один минус только данного решения: у таких энкодеров обычно около 20 имп/оборот. Если драйвер настроен на шаг 1/32, то при повороте энкодера на 1 оборот - ШД не сделает даже полного шага. Глазом, наверное, не заметно даже поворот вала на 1,8 градуса.
Re: Arduino Pro Mini как тестер драйверов ШД
Добавлено: 16 апр 2015, 11:58
tecnocat
Kopyloff писал(а):А если ШД не вращается - как определить - драйвер это неисправен или ШД? Может с выходов драйвера сигналы на вход ардуины завести и мониторить - правильно ли импульсы идут?
В принципе можно сделать такую штуку, но было лень лезть в дебри.
Самый простой выход в этом случае - осциллографом(если есть) ткнуть в выход драйвера и смотреть что происходит.
Если его нет - то мониторинг через вход Ардуинки - самое то.
Kopyloff писал(а):Один минус только данного решения: у таких энкодеров обычно около 20 имп/оборот. Если драйвер настроен на шаг 1/32, то при повороте энкодера на 1 оборот - ШД не сделает даже полного шага. Глазом, наверное, не заметно даже поворот вала на 1,8 градуса.
Полностью согласен - у меня стоит 1/16 и как раз 2000 импульсов хватает для проверки
Re: Arduino Pro Mini как тестер драйверов ШД
Добавлено: 16 апр 2015, 12:21
Noob
Так если речь идет лишь о проверке работоспособности, то кто мешает переключить в режим 1/10 1/8 1/4 ?
Если надо гонять в разных режимах, то скорее всего без чего-то посложнее энкодера уже не обойтись
Re: Arduino Pro Mini как тестер драйверов ШД
Добавлено: 10 апр 2019, 10:50
sser