您好,我遇到了无法顺利启动和启动的问题,谁能帮忙?“uint32_t f = 1000;” 启动和停止时为 250,移动时为 1000
const uint8_t pin_DIR = 3;
const uint8_t pin_PUL = 4;
// Вывод GND Arduino соединён с входами драйвера ENA-, DIR-, PUL-.
uint32_t f = 1000; // Определяем частоту следования микрошагов от 1 до 200'000 Гц.
// Чем выше частота, тем выше скорость вращения вала.
void setup(){ //
pinMode( pin_ENA, OUTPUT ); // Конфигурируем вывод Arduino как выход.
pinMode( pin_DIR, OUTPUT ); // Конфигурируем вывод Arduino как выход.
pinMode( pin_PUL, OUTPUT ); // Конфигурируем вывод Arduino как выход.
} //
//
uint32_t t = 1000000/f/2; // Определяем длительность импульсов t3 и пауз t4 в мкс.
//
void loop(){ //
// Готовимся к движению вала: //
digitalWrite( pin_ENA, 0 ); // Разрешаем работу двигателя.
delayMicroseconds(5); // Выполняем задержку t1 (см. график STEP/DIR).
digitalWrite( pin_DIR, 0 ); // Выбираем направление вращения.
delayMicroseconds(5); // Выполняем задержку t2 (см. график STEP/DIR).
// Поворачиваем вал на 2 оборота: //
for(int i=0; i<1600; i++){ // Выполняем 1600 проходов цикла (1 оборот = 800 тактов, 2 оборота = 1600).
digitalWrite( pin_PUL, 1 ); // Устанавливаем на выводе PUL состояние логической «1».
delayMicroseconds(t); // Выполняем задержку t3 (см. график STEP/DIR).
digitalWrite( pin_PUL, 0 ); // Устанавливаем на выводе PUL состояние логического «0».
delayMicroseconds(t); // Выполняем задержку t4 (см. график STEP/DIR).
} //
// Останавливаем вал удерживая его: // Двигатель не вращается, если на вывод PUL не поступают импульсы.
delay(5000); // Ждём 5 секунд. В это время двигатель остановлен, его вал удерживается.
// Меняем направление движения вала: //
digitalWrite( pin_DIR, 1 ); // Меняем логический уровень вывода DIR с 0 на 1.
delayMicroseconds(5); // Выполняем задержку t2 (см. график STEP/DIR).
// Поворачиваем вал на 2 оборота: //
for(int i=0; i<1600; i++){ // Выполняем 1600 проходов цикла (1 оборот = 800 тактов, 2 оборота = 1600).
digitalWrite( pin_PUL, 1 ); // Устанавливаем на выводе PUL состояние логической «1».
delayMicroseconds(t); // Выполняем задержку t3 (см. график STEP/DIR).
digitalWrite( pin_PUL, 0 ); // Устанавливаем на выводе PUL состояние логического «0».
delayMicroseconds(t); // Выполняем задержку t4 (см. график STEP/DIR).
} //
// Останавливаем вал без удержания: //
digitalWrite( pin_ENA, 1 ); // Запрещаем работу двигателя, отключаем токи в обмотках.
delay(5000); // Ждём 5 секунд. В это время двигатель отключен, его вал свободен.
} /
const uint8_t pin_ENA = 2;
const uint8_t pin_DIR = 3;
const uint8_t pin_PUL = 4;
uint32_t f = 1000;
void setup(){
pinMode( pin_ENA, OUTPUT );
pinMode( pin_DIR, OUTPUT );
pinMode( pin_PUL, OUTPUT );
}
uint32_t t = 1000000/f/2;
void loop()