Каков самый простой способ генерации PWM без микроконтроллера?

Каков быстрый и элегантный способ генерации PWM без микроконтроллера для управления сервомотором? С потенциометром или другими способами управления рабочим циклом с периодом фиксации.

  • Извините за беспорядок, я хочу контролировать хобби серво.
pwm
12 голосов | спросил pstan 25 Mayam12 2012, 00:12:00

5 ответов


25

Я рекомендую (GASP!) 555 таймер в режиме «нестабильности» . Вы найдете все, что вам нужно в ссылке, но я скопировал их здесь только для вас!

Режим Astable дает вам переменную частоту PWM и позволяет также настраивать рабочий цикл (уравнения высокой и низкой времени в ссылке).

Схема:

555 Таймер, нестабильный режим

Примечание. Я бы добавил электролитический колпачок через Vcc (положительный провод) и GND (отрицательный провод), чтобы уменьшить влияние провалов напряжения питания.

Частота ШИМ:

Выходная частота 555 таймера в нестабильном режиме

Некоторая защита для моего ответа по сравнению с другими в этом сообщении. Большинство других ответов требуют промежуточной формы сигнала для генерации переменного PWM-сигнала, такого как общий метод треугольной волны /компаратора. Я не вижу особого смысла в построении генератора треугольных волн (важная схема внутри и сам по себе) как промежуточный шаг для решения вашей проблемы.

555 - отличный аналоговый чип и делает именно то, что вам нужно. Я бы хотел, чтобы люди не ненавидели их как можно больше.

ответил kevlar1818 25 Mayam12 2012, 00:39:32
8

The Old Old Модный способ сделать PWM с аналоговым управляемым рабочим циклом - сравнить аналоговый управляющий сигнал с треугольной волной. Вы создаете генератор треугольных волн, который работает на желаемой частоте ШИМ. Это подается на отрицательный вход компаратора и аналогового управляющего сигнала на положительный вход. Результат - полный или полный, но рабочий цикл линейно пропорционален управляющему сигналу. Например, для этого принципа работали аудио усилители класса D.

Во многих случаях PWM не обязательно должен быть суперлинейным, поэтому треугольная волна не должна иметь абсолютно прямых краев. Предоставление им небольшой экспоненты может упростить схему.

Добавлено:

Марк Rages отметил, что когда вы говорите «сервомотор», вы можете иметь в виду небольшие двигатели хобби, управляемые положением, используемые на модельных самолетах и ​​тому подобное. Мой ответ относится к управлению двигателем, если у вас есть аналоговое напряжение, пропорциональное тому, как сильно вы хотите управлять двигателем. Это не относится к этим «хобби сервомашинкам». Они не контролируются PWM в общем смысле этого слова, а шириной импульсов, которые обычно должны составлять от 1 до 2 мс, повторяемых каждые 20-50 мс или около того. Если этот вопрос действительно касается сервлетов для хобби, тогда он должен быть исправлен, чтобы сделать это понятным.
ответил Olin Lathrop 25 Mayam12 2012, 00:43:14
7

Треугольная волна. Компаратор. Контрольный порог. Это основной способ сделать это.

Если вы хотите контролировать хобби серво, однако, это не лучший способ. Рабочий цикл варьируется от 5% до 10% (длительность импульса от 1 мс до 2 мсек в течение 20 мс), что является коротким и, скорее всего, вы хотите контролировать его с некоторой точностью. На треугольнике 5V \ $ _ {PP} \ $ вы должны изменить порог компаратора между 4.5V и 4.75V. Любое отклонение, и вы не сможете контролировать сервопривод по всему диапазону. Это требует прецизионных компонентов. Кроме того, генератор треугольной волны нуждается в двух операционных усилителях, а затем есть компаратор. Там лучший способ.

введите описание изображения здесь>> </p>

<p> Сначала создайте квадратную волну 50 Гц. Самый простой способ: </p>

<p> <img src = 74HC123A . Если вы используете последнее, время импульса определяется с помощью \ $ R_ {EXT} \ $ и \ $ C_ {EXT} \ $:

\ $ T = R_ {EXT} \ times C_ {EXT} \ $

Время в \ $ \ mu \ $ s, R в k \ $ \ Omega \ $ и C в nF.

Чтобы получить ширину импульса в диапазоне от 1 мс до 2 мс, вы используете C = 100nF и R = 10k \ $ \ Omega \ $ последовательно с помощью потенциометра 10k \ $ \ Omega \ $.

Я мог бы сделать это с двумя LM555, но мне нужно было бы больше внешних компонентов.

изменить (о микроконтроллерах)
Я согласен с Olin (см. Комментарии), что исключение микроконтроллера недальновидно (Олин сказал «глупо»). Было время, когда разработка для микроконтроллера была сложной, но сегодня это уже не так. Вы также можете иметь программный интерфейс для нескольких евро. Тогда решение будет выглядеть так просто, что никакое неконтролируемое решение не сможет конкурировать с ним: вы берете ATTiny5 (Olin берет PIC10F220) в SOT23-6. Подключите развязывающий конденсатор к силовым соединениям и потенциометр к входу АЦП. Это оно! 3 (три) компонента. Преобразование показания АЦП в выход по ширине импульса настолько просто, что это почти смешно, даже для начинающего программиста.

Как только вы начнете с них, вы обнаружите, что микроконтроллеры часто предлагают более простое и гибкое решение, чем с другими микросхемами или отдельными компонентами.

заметка
Из вашего другого вопроса я вижу, что вы do используете микроконтроллеры. Почему вы хотите избежать их здесь?

ответил stevenvh 25 Mayam12 2012, 10:39:08
4

Самый простой способ генерации сигнала ШИМ - подача пилообразной волны или треугольной волны на один вход аналогового компаратора и управляющее напряжение в другое. Если невозможно получить чистую треугольную волну, можно разумно приблизить ее, пройдя прямоугольную волну через RC-фильтр, так что выход фильтра будет колебаться между примерно 1 /4VDD и 3 /4VDD, а затем масштабирование управляющего напряжения в компаратор, так что управляющее напряжение, которое должно давать 0,01% рабочего цикла, будет переведено на самое низкое напряжение отфильтрованной квадратной волны, а управляющее напряжение, которое должно обеспечивать рабочий цикл 99,99%, будет переведено на самое высокое напряжение отфильтрованного прямоугольная волна. Это даст ширину импульса, которая не вполне линейно пропорциональна амплитуде, но достаточно близка для многих целей. Регулировка RC-фильтра так, чтобы его выход имел более узкое колебание и масштабирование управляющего напряжения, чтобы соответствовать, улучшит линейность, но повысит чувствительность к шуму.

ответил supercat 25 Mayam12 2012, 00:44:32
1

Я рекомендую использовать микросхему управления питанием с низким напряжением (BiCMOS), например UCC3803 . Рабочую частоту можно легко установить с помощью простых R и C, а управление рабочим циклом легко выполнить с помощью потенциометра. Он будет работать на шине 5 В.

выдержка из паспорта TI UC3842

UCC3803 совместим с pin-совместимыми с контроллерами PWM UCx84x. Если вы хотите сделать легкую PWM, вы можете использовать приведенную выше схему, опустив R1, 2N2222 и 5k ISENSE регулировочный горшок (просто привяжите штырь 3 к земле). Возможно, вы также можете опустить два резистора 4.7k последовательно с регулятором регулировки погрешности и перейти непосредственно к Vref и Gnd или использовать явный делитель напряжения, если настройка не требуется. (Вы не указали, нужно ли вам легко менять рабочий цикл).

IC способен ездить вокруг 1A тока. (Если ваш сервомотор имеет вход ШИМ, это спорная точка.)

ответил Adam Lawrence 25 Maypm12 2012, 15:29:58

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132