Какой быстрый и элегантный способ генерировать ШИМ без микроконтроллера для управления серводвигателем? С помощью потенциометра или других способов управления рабочим циклом с фиксированным периодом.
- извините за беспорядок, я хочу контролировать хобби сервопривод.
Ответы:
Я рекомендую (GASP!) 555 таймер в «нестабильном» режиме . В ссылке вы найдете все необходимое, но я скопировал их здесь только для вас!
Нестабильный режим дает вам переменную частоту ШИМ, а также позволяет настраивать рабочий цикл (временные и временные уравнения в линии).
Схема:
Примечание: я бы добавил электролитический колпачок через Vcc (положительный вывод) и GND (отрицательный вывод), чтобы уменьшить влияние провалов в напряжении источника питания.
Частота ШИМ:
Некоторая защита моего ответа по сравнению с другими в этом посте. Большинство других ответов требуют промежуточного сигнала для генерации переменного сигнала ШИМ, такого как метод общего треугольника / компаратора. Я не вижу особого смысла в создании генератора треугольных волн (существенной схемы в себе) просто в качестве промежуточного шага для решения вашей проблемы.
555 - отличный аналоговый чип и делает то, что вам нужно. Я бы хотел, чтобы люди не ненавидели их так сильно.
источник
Ye Olde Phashioned способ сделать ШИМ с аналоговым управляемым рабочим циклом, это сравнить аналоговый сигнал управления с треугольной волной. Вы делаете генератор треугольных волн, который работает на желаемой частоте ШИМ. Он подается на отрицательный вход компаратора, а аналоговый сигнал управления на положительный вход. Результатом является либо полный максимум, либо полный минимум, но коэффициент заполнения линейно пропорционален управляющему сигналу. Например, ранние аудиоусилители класса D работали по этому принципу.
Во многих случаях ШИМ не обязательно должен быть суперлинейным, поэтому треугольная волна не обязательно должна иметь идеально ровные края. Позволяя им быть немного экспоненциальными, можно упростить схему.
Добавлено:
Марк Рэйджес отметил, что когда вы говорите «серводвигатель», вы можете иметь в виду маленькие двигатели-хобби с контролем положения, используемые в модельных самолетах и тому подобное. Мой ответ относится к управлению двигателем, предполагая, что у вас есть аналоговое напряжение, пропорциональное тому, как сильно вы хотите управлять двигателем. Это не относится к этим "хобби серво". Они управляются не ШИМ в обычном смысле этого слова, а шириной импульсов, которые обычно должны повторяться от 1 до 2 мс каждые 20-50 мс или около того. Если этот вопрос действительно касается хобби-сервоприводов, то это нужно исправить, чтобы прояснить это.
источник
Треугольная волна. Компаратор. Порог контроля. Это основной способ сделать это.
Сначала сгенерируйте прямоугольную волну 50 Гц. Самый простой способ:
Я мог бы сделать это с двумя LM555, но мне нужно больше внешних компонентов.
edit (о микроконтроллерах)
Я согласен с Олином (см. комментарии), что исключение микроконтроллера недальновидно (Олин сказал "глупо"). Было время, когда разработка микроконтроллера была сложной, но сегодня это уже не так. Вы также можете иметь интерфейс программирования за несколько евро. Тогда решение выглядело бы настолько простым, что ни одно неконтроллерное решение не могло с ним конкурировать: вы берете ATTiny5 (Olin берет PIC10F220) в SOT23-6. Подключите развязывающий конденсатор к силовым разъемам и потметр к входу АЦП. Это оно! 3 (три) компонента. Преобразование показаний АЦП в импульсный выходной сигнал настолько прост, что это даже нелепо даже для начинающего программиста.
Начав с ними, вы обнаружите, что микроконтроллеры часто предлагают более простое и более гибкое решение, чем с другими интегральными схемами или дискретными компонентами.
примечание
от другого вопроса я вижу , что вы делаете использование микроконтроллеров. Почему вы хотите избежать их здесь?
источник
Самый простой способ генерировать ШИМ-сигнал - это подать пилообразную волну или треугольную волну на один вход аналогового компаратора, а управляющее напряжение - на другой. Если нельзя получить чистую треугольную волну, можно разумно приблизить ее, пропустив прямоугольную волну через RC-фильтр так, чтобы выходной сигнал фильтра колебался между примерно 1 / 4VDD и 3 / 4VDD, а затем масштабирование управляющего напряжения в компаратор, так что управляющее напряжение, которое должно давать 0,01% рабочего цикла, будет переведено в самое низкое напряжение фильтрованной прямоугольной волны, а управляющее напряжение, которое должно дать 99,99% рабочего цикла, будет преобразовано в самое высокое напряжение фильтруемого прямоугольная волна Это даст ширину импульса, которая не совсем линейно пропорциональна амплитуде, но достаточно близка для многих целей.
источник
Я рекомендую использовать низковольтную (BiCMOS) схему управления питанием, такую как UCC3803 . Рабочая частота может быть легко установлена с помощью простых R и C, а управление рабочим циклом легко осуществляется с помощью потенциометра. Он будет работать на шине 5V.
UCC3803 совместим по выводам с ШИМ-контроллерами серии UCx84x. Если вы хотите сделать легкий ШИМ, вы можете использовать приведенную выше схему, опуская R1, 2N2222 и 5k ISENSE, отрегулируйте кастрюлю (просто привяжите контакт 3 к земле). Вы также можете пропустить два последовательных резистора 4,7 кОм с погрешностью регулировки амперметра и перейти непосредственно к Vref и Gnd или использовать явный делитель напряжения, если настройка не требуется. (Вы не указали, нужно ли вам легко менять рабочий цикл).
Микросхема способна проехать около 1А тока. (Если ваш серводвигатель имеет вход ШИМ, это спорный вопрос.)
источник