Максимально медленный ШИМ
- Войдите на сайт для отправки комментариев
Чт, 27/04/2017 - 22:43
Всем доброго времени суток! в проектe использую управление шаговым двигателем с помощью arduino leonardo, при включении начинает крутить двигатель с помощью analogWrite задаю минимальный шим, но при этом все равно получаю слишком большую скорость оборотов двигателя необходимо уменьшить как минимум в трое.
int ledPin = 9; |
void setup() |
{ |
pinMode(ledPin, OUTPUT); |
} |
void loop() |
{ |
|
analogWrite(ledPin, 1); |
} |
Не подскажите как можно ещё замедлить ШИМ? может можно какое то прерывание поставить что бы работал 400 мс а 600 мс простаивал?
в этой ветке есть тема называется она блинк без делай и без милс там описано как делать шим с частотой 0. сколько то там герц, и вроде как есть библиотека пвм
svorog, шаговым двигателем при помощи ШИМ не управляют. От слова совсем.
ШИМ может использоваться для управления коллекторным двигателем. И, кроме того, частота ШИМ не играет роли.
Похоже, Вы чего-то не понимаете, поэтому задаете совсем не тот вопрос, ответ на который Вам нужен. Либо делаете что-то совсем неправильно, поэтому не можете получить желаемого.
Опишите подробно, что хотите получить и приведите схему.
Если двигатель действительно шаговый, возможно Вам нужна tone(), а не analogWrite().
Двигатель действительно шаговый, управляю им конечно не на прямую а через драйвер, которому для управления нужен ШИМ, чем слабее ШИМ тем медленнее обороты
Похоже вы неправильно понимаете как работает драйвер ШД. Судя по всему у вас драйвер с управлением степ-дир. Так вот для продвижения на один шаг нужно подать один раз высокий-низкий уровень сигнала на степ. Можно даже так:
И ШД будет делать по 50 шагов в секунду. 10 пин на степ. И даже будет работать. Вы ведь не описали какая задача у вас стоит.
Спасибо, работает! прада не так плавно к analogWrite, на зато можно регулировать в более медленном диапазоне
Все-таки попытайитесь tone() в диапазоне 50-200.
PS. И еще: не используйте термины, значения которых не понимаете. ШИМ - это Широтно Импульсная Модуляция. К Вашей задаче никакого отношения не имеет.
Для плавности хода у вашего драйвера скорее всего есть настройка деления шага. В случае если будете играться с этим параметром стоит учесть что количество шагов на оборот для контроллера стоит увеличивать в количество дробления, например у вас ШД с 200 шагов на оборот, вы ставите делитель на 1/4, получаем что контроллер должен сделать 800 тиков на оборот. Это я к тому что надо будет уменьшать задержку для получения тех же оборотов что и прежде, иначе ШД будет вращать вал медленнее.
с delay(3) при 1/16 шага получаю приблительно ту скорость которую хотел, просто двигатель как то то жестковато работает и достаточно шумно. впринципе то конечно главное что работал, на ресурсе думаю это никак не отразиться.
не буду спорить с людьми у которых спрашиваю совета, просто хочу сказать что термин ШИМ я взял не бездумно а прочитал на этом сайте в описании функции analogWrite которую относительно успешно до этого использовал и думал далее на её базе так же сказать сделать какое либо прерывание.
А с функцией tone () не могли бы выложить пример в три строчки, не могу найти маленького примера что бы ничего лишнего не было.
не буду спорить с людьми у которых спрашиваю совета, просто хочу сказать что термин ШИМ я взял не бездумно а прочитал на этом сайте в описании функции analogWrite которую относительно успешно до этого использовал и думал далее на её базе так же сказать сделать какое либо прерывание.
Вы совершенно правы в том, что функция analogWrite напрямую свяфзана с ШИМ (вопреки, кстати, своему названию).
Вполне допускаю, чты Вы также с успехом применяли эту функцию по назначению, т.е. для управления нагрузкой типа светодиода или коллекторного двигателя.
Но вот для управления шаговым двигателем она не предназначениа и вряд ли ее можно считать подходящей. Хотя при определенных условиях она может заставить шаговый двигатель крутиться. Но это не потому, что "ШИМ", а потому, что "частота".
Т.е. для управления шаговым двигателем Вам нужна не ШИМ, а управление частотой сигнала, что ШИМ (и соответственно функция analogWrite) не поддерживает.
А с функцией tone () не могли бы выложить пример в три строчки, не могу найти маленького примера что бы ничего лишнего не было.
Изыините, в три строчки не получается: