Шаговый двигатель, поворачивающийся на определенное кол-во шагов
- Войдите на сайт для отправки комментариев
Всем привет!
Изучаю ардуино чуть меньше недели, но вроде как основы немного понял. Нужно сделать программу для шагового двигателя, который будет поворачиваться на определенное кол-во шагов, которые задаются с клавиатуры, а потом возвращаться обратно.
Я попробовал сделать это через библиотеку степпер, сначала просто чтобы он поворачивался на определенное кол-во шагов, введенных с клавиатуры. В итоге он даже не работает. Пробовал ставить какие-то условия, но он все равно с места не двигается. Через немного другие команды он все же работает, но после ввода числа все равно крутится без остановки. В распоряжении есть и уно платформа, и двигатель, и драйвер к нему.
#include <Stepper.h> #define STEPS 100 Stepper stepper(STEPS,2,3,4,5); int k = 0; void setup() { stepper.setSpeed(30); Serial.begin(9600); } void loop(){ int k = Serial.parseInt(); stepper.step(k); }
Думаю, что такие вопросы уже поднимались, просто я не смог найти. Если есть уже похожие темы, то скиньте, кому не трудно. Спасибо!
Где у тебя реализовано возвращение обратно? Я не вижу этого.
Пока без него, мне бы передачу с клавиатуры реализовать, возврат уже пойму сам, я надеюсь
где схема?
Вот смотри:
Если в течение одной секунды не найдено ни одного целого числа, то, по умолчанию, функция вернет значение 0. Величина таймаута задается функцией Serial.setTimeout()
Какие выводы напрашиваются?
А stepper.step(1) ;
delay(500);
в луп поставить.
нормально работает?
Вот смотри:
Если в течение одной секунды не найдено ни одного целого числа, то, по умолчанию, функция вернет значение 0. Величина таймаута задается функцией Serial.setTimeout()
Какие выводы напрашиваются?
Я попробовал так, но все равно не работает.
Да, но он просто крутится, а ведь нужно на определенное число шагов. Или я не совсем понял, что нужно было поменять
А step(100) крутится?
Satans, в обоих ваших кодах вы пытаетесь читать данные из пустого Serial. Разберитесь, как работает функция available() и извлекайте из него данные только когда Сериал не пустой