Який швидкий та елегантний спосіб генерувати ШІМ без мікроконтролера для управління сервоприводом? За допомогою потенціометра або інших способів контролю робочого циклу з фіксованим періодом.
- вибачте за безлад, я хочу контролювати сервісне хобі.
Який швидкий та елегантний спосіб генерувати ШІМ без мікроконтролера для управління сервоприводом? За допомогою потенціометра або інших способів контролю робочого циклу з фіксованим періодом.
Відповіді:
Рекомендую таймер (GASP!) 555 в режимі "astasta" . Ви знайдете все необхідне за посиланням, але я скопіював їх тут тільки для вас!
Режим Astable дає змінну частоту ШІМ, а також дозволяє регулювати робочий цикл (також рівняння високого та низького часу за посиланням).
Схема:
Примітка: я додав би електролітичну кришку через Vcc (позитивний відвід) та GND (негативний відвід), щоб зменшити вплив погіршень напруги живлення.
ШІМ частота:
Деякий захист моєї відповіді порівняно з іншими в цій публікації. Більшість інших відповідей потребують проміжної форми хвилі для генерації змінного ШІМ-сигналу, такого як загальна трикутна хвиля / метод порівняння. Я не бачу великого сенсу в створенні генератора трикутних хвиль (значної схеми всередині себе) лише як проміжний крок для вирішення вашої проблеми.
555 - чудовий аналоговий чіп і робить саме те, що вам потрібно. Я б хотів, щоб люди не ненавиділи їх так сильно.
Фазовим способом виготовлення ШІМ з аналоговим робочим циклом роботи є порівняння аналогового керуючого сигналу з трикутною хвилею. Ви робите генератор трикутних хвиль, який працює на потрібній частоті ШІМ. Це подається на негативний вхід компаратора і аналоговий керуючий сигнал на позитивний вхід. Результат - або повний високий, або повний низький, але робочий цикл лінійно пропорційний керуючому сигналу. Наприклад, аудіо підсилювачі раннього класу D працювали за цим принципом.
У багатьох випадках ШІМ не потрібно було бути лінійними, тому хвиля трикутника не повинна мати ідеально прямі ребра. Дозволяючи їм бути трохи експоненціальними, можна спростити схему.
Марк Рагес зазначив, що, говорячи про "сервомотор", ти можеш мати на увазі маленькі хобі-керовані мотори, що використовуються на модельних літаках тощо. Моя відповідь стосується управління двигуном, якщо у вас є аналогова напруга, пропорційна тому, наскільки важко ви хочете керувати мотором. Це не стосується цих "хобі сервоприводів". Вони не контролюються ШІМ у загальноприйнятому розумінні цього терміна, а шириною імпульсів, які зазвичай мають бути від 1 до 2 мс, повторюваних кожні 20–50 мс або близько того. Якщо це питання дійсно стосується сервісів хобі, то його слід виправити, щоб зробити це зрозумілим.
Трикутна хвиля. Компаратор Поріг контролю. Це основний спосіб зробити це.
Якщо ви хочете керувати сервісом хобі, однак, це не найкращий спосіб. Робочий цикл коливається від 5% до 10% (ширина імпульсу від 1 мс до 2 мс за 20 мс), що є коротким, і, швидше за все, ви хочете контролювати його з деякою точністю. На 5В
Спочатку генерують 50 Гц квадратної хвилі. Найпростіший спосіб:
Для отримання ширини імпульсу, що змінюється від 1 мс до 2 мс, ви використовуєте C = 100nF і R = 10k в серії з 10k горщик.
Я міг би зробити це з двома LM555, але мені знадобиться більше зовнішніх компонентів.
редагувати (про мікроконтролери)
Я погоджуюся з Оліном (див. коментарі), що виключення мікроконтролера є недалекоглядим (Олін сказав "нерозумно"). Був час, коли розробка мікроконтролера була складною, але сьогодні це вже не так. Також ви можете мати інтерфейс програмування за кілька євро. Тоді рішення виглядатиме так просто, що жодне рішення, що не має контролера, не може конкурувати з ним: ви берете ATTiny5 (Олін бере PIC10F220) в SOT23-6. Підключіть конденсатор роз'єднання до силових з'єднань і потметр до входу АЦП. Це воно! 3 (три) компоненти. Перетворити зчитування АЦП у вихідний імпульс настільки просто, що це майже смішно, навіть для початківця програміста.
Коли ви почнете працювати з ними, ви побачите, що мікроконтролери часто пропонують більш просте і гнучкіше рішення, ніж для інших ІМС або дискретних компонентів.
примітка
З вашого іншого питання я бачу, що ви робите використання мікроконтролерів. Чому ти хочеш тут їх уникати?
Найпростіший спосіб генерування сигналу ШІМ - це подача пилоподібної хвилі або трикутної хвилі на один вхід аналогового компаратора, а керуюча напруга в інший. Якщо не можна отримати чисту трикутну хвилю, її можна досить наблизити, пропустивши квадратну хвилю через RC-фільтр таким чином, що вихід фільтра коливається між приблизно 1 / 4VDD та 3 / 4VDD, а потім масштабує керуючу напругу, що йде в компаратор, щоб керуюча напруга, яке повинно дати 0,01% робочого циклу, буде переведено на найнижчу напругу відфільтрованої квадратної хвилі, а керуюча напруга, яка повинна дати 99,99% робочого циклу, буде переведена на найвищу напругу відфільтрованої квадратна хвиля. Це дасть ширину імпульсу, яка не зовсім лінійно пропорційна амплітуді, але досить близька для багатьох цілей.
Я рекомендую використовувати низьковольтний (BiCMOS) контрольний блок живлення, такий як UCC3803 . Робочу частоту можна легко встановити за допомогою простого R і C, а керування робочим циклом легко робити за допомогою потенціометра. Він буде працювати на 5V-рейці.
UCC3803 є сумісною зі шпильками з контролерами PWM серії UCx84x. Якщо ви хочете зробити легку ШІМ, ви можете використовувати вищезазначені схеми, опускаючи R1, 2N2222 і 5k ISENSE регулюючий горщик (просто прив’яжіть штифт 3 до землі). Ви, ймовірно, також можете опустити два резистори 4,7k послідовно з горщиком регулювання підсилювача помилок і перейти безпосередньо до Vref та Gnd, або скористатися явним дільником напруги, якщо регулювання не потрібне. (Ви не вказали, чи потрібно легко змінювати робочий цикл).
СК здатний керувати струмом близько 1А. (Якщо ваш сервомотор має вхід ШІМ, це суперечка.)