const int EN = 0, STEP = 1, DIR = 2, LED = 3, ACT = 4;
const int SPEED = 1;
void setup() {
// put your setup code here, to run once:
pinMode(EN, OUTPUT);
pinMode(STEP, OUTPUT);
pinMode(DIR, OUTPUT);
pinMode(LED, OUTPUT);
digitalWrite(DIR, HIGH);
digitalWrite(STEP, LOW);
delay(100);
digitalWrite(EN, HIGH);
}
void loop() {
// put your main code here, to run repeatedly:
digitalWrite(STEP, HIGH);
delay(SPEED);
digitalWrite(STEP, LOW);
delay(SPEED);
}
Сначала идет инициализация дробления шага, дальше подаю на EN единицу и выдаю шаги. Но какая-то магия не происходит и шаговик даже не напрягается. Шаговик вот такой
Осциллографом ничего не увидел на выходе драйвера
У меня на макетке из известных субстанций. М.б. после ужина заведу.
Сначала набросал включение EN, затем STBY и никакой реакции от драйвера.
Поменял местами: сначала STBY, затем EN, через задержку и всё заработало.
Без передергивания STBY переинициализация невозможна.
Без дрыгания EN тоже не работает. Похоже надо дрыгать оба и в нужном порядке.
И да, шунты 4,3 Ом перебор. Там входное Vsns +-1 В по даташиту.
Хотя бы до 1 Ома сбросить, ИМХО. Спойлервот таким говнокодом запустил на STM32 (HAL)
[uquote="Sanchogus",url="/forum/viewtopic.php?p=4240836#p4240836"]И да, шунты 4,3 Ом перебор. Там входное Vsns +-1 В по даташиту.
Хотя бы до 1 Ома сбросить, ИМХО.[/uquote]
У меня ток на мотор всего 50мА, если возьму резисторы меньше, то просто не смогу подобрать резисторы в делитель. Если я правильно всё посчитал.
Попробую запустить свой как до дома доберусь
Добавлено after 8 hours 20 minutes 26 seconds:
Может я делаю что-то не так, код поправил, перемычку на пин reset кинул, но ничего не движется. Даже нагрев не наблюдаю
Шаговик вот такойСпойлерconst int EN = 0, STEP = 1, DIR = 2, RESET = 3, ACT = 4;
const int SPEED = 100;
void loop() {
// put your main code here, to run repeatedly:
digitalWrite(STEP, HIGH);
delayMicroseconds(SPEED);
digitalWrite(STEP, LOW);
delayMicroseconds(SPEED);
}