Страница 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
Какой энкодер имеется в виду? Этот?
EC16-16mm-Low-profile-Rotary-Encoder.jpg (4046 просмотров) <a class='original' href='./download/file.php?id=48159&mode=view' target=_blank>Загрузить оригинал (163.77 КБ)</a>

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
Мне этот тестер больше понравился:
https://www.hackster.io/ashleyblack/tb6 ... ter-85a29e