Він призначений для широтно-імпульсної модуляції Де знаходить застосування цей метод перетворення сигналів

Останнім часом він все частіше знаходить застосування при створенні підсилювачів низької частоти Підсилювачі низької частоти великої потужності в цьому режимі, які називаються підсилювачами класу D, мають дуже високий ККД Звідси невеликі габарити і невелика розсіює потужність Підсилювачі меншої потужності легко інтегруються в мікросхеми, що забезпечує їм широке застосування

Особливістю такого рішення є використання вихідних транзисторів у ключовому режимі, тобто, транзистор або включений, або вимкнений В обох випадках потужність, що розсіюється на транзисторі мінімальна

Дуже часто режим ШІМ (PWM) використовують для регулювання швидкості обертання двигунів постійного струму Це можна використовувати в будь-яких моделях автомобілів або катерів для управління їх руху

Модуль є не у всіх мікроконтролерах Але там, де його немає, можна організувати роботу, правда, з меншими зручностями, програмно, використовуючи один з виходів порту

Для мікроконтролера PIC16F628A, у якого є модуль PWM, додати його в програму можна, використовуючи розділ основного меню Мехатроніка На жаль, використання макросу компонента PWM не настільки очевидно, як інших макросів А перевага використання модуля перед програмною реалізацією в тому, що виведення сигналу не припиняється при зміні налаштувань вихідних імпульсів

У програмі, куди ми додали дві кнопки (задіяли опитування двох входів), будемо керувати скважностью імпульсів, перша кнопка буде збільшувати тривалість включеного стану виходу, а друга зменшувати (Для них створені змінні more і less)

Як налаштувати макрос компонента PWM

Почнемо з того, що дозволимо роботу модуля, додавши до входу в цикл блок ініціалізації, де буде перше звернення до макросу

Рис 2528 Дозвіл роботи модуля PWM

Параметр nldx(BYTE) ставиться до вибору каналу, оскільки є моделі мікроконтролерів мають кілька каналів виходу для імпульсів Номер каналу має тип байт, тобто, його значення не може перевищувати 255

Тепер задамо період коливань

Рис 2529 Завдання періоду коливань

Два параметра, які слід задати: nPeriodVal(BYTE) і nPrescalerVal(BYTE) Перший відноситься до періоду, другий задає коефіцієнт розподілу тактової частоти, обидва типи байт Якщо не задати

слово конфігурації і не вибрати частоту генератора, то виникне явна помилка в очікуваному і реальному періоді коливань (в мікросекундах)

Потім створимо змінну pulse_h, для якої в блоці ініціалізації програми задамо значення рівне 10

Останній макрос компонента в блоці ініціалізації задає початкове значення шпаруватості

Рис 2530 Завдання початкового значення тривалості імпульсу

Тут фігурує вже знайомий нам параметр – номер каналу, а в якості початкової тривалості ми виберемо змінну

Далі ми додаємо, як звичайно, нескінченний цикл, всередині якого опитуємо першу кнопку:

Якщо кнопка натиснута (на вході нуль), то ми збільшимо змінну, я збільшую її на 10 Потім нову змінну відправляємо в модуль PWM, змінюючи тривалість імпульсу викликом макросу

Перед цими операціями варто пауза в 2 секунди Настільки тривала пауза зручна при налагодженні Але й після налагодження паузу слід додати, щоб кнопка виконувала одна зміна за одне натискання Можна і не додавати паузу, але тоді слід передбачити блок програми, який дозволить їй тривати тільки тоді, коли ви відпустіть кнопку Ми так уже робили

Рис 2531 Початок основної програми

Для другої кнопки, що зменшує тривалість імпульсу, програма така ж, з однією відмінністю, ми не збільшуємо, а зменшуємо змінну

Запустивши програму, ви можете переконатися, що імпульси на виході (RВ3) є, і що, маніпулюючи кнопками, ви можете подовжити або вкоротити імпульс

Рис 2532 Управління тривалістю імпульсу

Якщо ви ще не прийняли рішення про складання генератора прямокутних імпульсів для своєї лабораторії, то можете використовувати цей механізм Якщо використовуєте PIC16F628A, ATmega168 або аналогічний контролер, у якого є ШІМ

Джерело: Гололобов ВН, – Самовчитель гри на паяльнику (Про електроніці для школярів і не тільки), – Москва 2012