Доброго времени суток.
У меня проблема в остановке шагового двигателя, на начальном точке (если это возможно) .
Еще одна проблема в том что мотор останавливается на секунду, потом делает шаг вперед и назад. Как исправить баг не знаю но попробовал разные варианты.
В проекте использую комплектующие:
Шаговый драйвер DMA860H,
Arduino mega 2560,
Потенциометр 1Ком.
Вот код:
#include <Stepper.h>
#include <EEPROM.h>
//potensiometr a10
//DIR(-) 7
//PULL(-) 8
#define STEPS 1920
#define DIFF 80
#define SPEED 150
#define MULT 35
Stepper stepper(STEPS, 7, 8);
int address = 0;
int prev = 0;
int val = 0;
boolean initHeader = true;
void setup() {
while (address < EEPROM.length()) {
EEPROM.update(address, 0);
address++;
}
stepper.setSpeed(SPEED);
Serial.begin(9600);
int buttonState = digitalRead(6);
if (buttonState == 0) {
initHeader = true;
}
}
void loop() {
val = analogRead(10);
if (val - prev >= DIFF) {
stepper.step((val - prev) * MULT);
prev = val;
}
if (prev - val >= DIFF) {
stepper.step((val - prev) * MULT);
prev = val;
}
int buttonState = digitalRead(6);
if (buttonState == 0 && initHeader) {
stepper.step(0);
} else {
initHeader = false;
}
Serial.println(buttonState);
}