Официальный сайт компании Arduino по адресу arduino.cc
Плавный старт и плавная остановка шагового двигателя
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Втр, 31/07/2012 - 16:40
Написал простенький код управления ШД, хочу сделать что-бы ШД плавно стартовал и плавно останавливался, плавную остановку я реализовал в 27-й строке, а вот со стартом не могу разобраться.
int PIN_STEP = 2; int PIN_DIR = 3; int PIN_ENABLE = 4; void setup() { pinMode(PIN_STEP, OUTPUT); pinMode(PIN_DIR, OUTPUT); pinMode(PIN_ENABLE, OUTPUT); digitalWrite(PIN_ENABLE, HIGH); } void loop() { int DELAY_STEP = 100; // Время в микросекундах на задержку между шагами int MOVE_STEP = 1000; // Кол-во шагов int FADE_STEP = 20; int FADE_START = 200; for (int i=0; i <= MOVE_STEP; i++) { if (i >= MOVE_STEP - FADE_START) {DELAY_STEP = DELAY_STEP + FADE_STEP;} // Плавная остановка digitalWrite(PIN_DIR, HIGH); // Поворот по часовой стрелке digitalWrite(PIN_STEP, LOW); digitalWrite(PIN_STEP, HIGH); delayMicroseconds(DELAY_STEP); // Устанавливаем задержку между шагами } delay(5000); }
Да, спасибо так и есть, DELAY_STEP = 4120 в моем случае. Не очень плавно вот только, буду думать.