Использование ШИМ в Raspberry Pi Pico


В данной статье мы рассмотрим использование широтно-импульсной модуляции (ШИМ) в плате Raspberry Pi Pico. Мы будем постепенно изменять яркость светодиода с помощью программирования. Поскольку пульсирующий свет похож на дыхание, мы даем ему магическое название – дышащий светодиод. Мы достигнем этого эффекта с помощью широтно-импульсной модуляции (ШИМ).

Использование ШИМ в Raspberry Pi Pico

Широтно-импульсная модуляция или ШИМ — это распространенная техника, используемая для изменения ширины импульсов в последовательности импульсов. ШИМ имеет множество применений, таких как управление сервоприводами и контроллерами скорости, ограничение эффективной мощности двигателей и светодиодов.

Необходимые компоненты

  1. Плата Raspberry Pi Pico (купить на AliExpress).
  2. Светодиод любого цвета (купить на AliExpress).
  3. USB-кабель.
  4. Макетная плата.
  5. Соединительные провода.

Реклама: ООО "АЛИБАБА.КОМ (РУ)" ИНН: 7703380158

Широтно-импульсная модуляция (ШИМ)

Широтно-импульсная модуляция (ШИМ, в англ. Pulse width modulation, PWM) — это метод получения аналоговых результатов цифровыми средствами. Цифровое управление используется для создания прямоугольной волны, сигнала, переключаемого между включенным и выключенным состояниями. Этот шаблон включения-выключения может имитировать напряжения между полным включением (5 В) и выключением (0 В), изменяя часть времени, которое сигнал проводит во включенном состоянии, по сравнению со временем, которое сигнал проводит в выключенном состоянии.

Длительность «времени включения» называется шириной импульса. Чтобы получить различные аналоговые значения, вы изменяете или модулируете эту ширину. Если вы достаточно быстро повторите этот шаблон включения-выключения с каким-либо устройством, например, светодиодом, то это будет выглядеть так: сигнал представляет собой постоянное напряжение от 0 до 5 В, управляющее яркостью светодиода.

Принцип широтно-импульсной модуляции (ШИМ)

Вы увидите, что чем меньше значение ШИМ, тем меньше будет значение после преобразования в напряжение. Тогда светодиод соответственно становится тусклее. Таким образом, мы можем управлять яркостью светодиода, управляя значением коэффициента заполнения/шириной импульса ШИМ.

ШИМ-контакты платы Raspberry Pi Pico

Микроконтроллер RP2040 в ядре Raspberry Pi Pico имеет 8 слайсов ШИМ, и каждый слайс независим от других. Это просто означает, что мы можем установить параметры каждого слайса, не влияя на другие слайсы.

Таблица соответствия между контактами платы Raspberry Pi Pico и ШИМ каналами

Блок ШИМ RP2040 имеет 8 идентичных слайсов (срезов) ШИМ, каждый с двумя выходными каналами (A/B), где вывод B также может использоваться как вход для измерения частоты и рабочего цикла. Это означает, что каждый слайс может управлять двумя выходными сигналами ШИМ или измерять частоту или рабочий цикл входного сигнала. Это дает в общей сложности до 16 управляемых выходов ШИМ. Все 30 выводов GPIO платы Raspberry Pi Pico могут управляться блоком ШИМ.

Интересно вспомнить в этот момент о такой возможности ШИМ на RP2040, как изменение значения коэффициента заполнения (Duty Cycle) на 0% и на 100% без ложных пиков, как это происходит на большинстве других микроконтроллеров. Кроме того, можно иметь два выхода одного и того же слайса Slice с инвертированными фазовыми сигналами.

ШИМ-контакты платы Raspberry Pi Pico

На приведенной выше схеме контактов контакты 21/GP16 и 22/GP17 относятся к одному и тому же срезу: GP16 — это выход A, а GP17 — это выход B.

Использование ШИМ в Raspberry Pi Pico

В этом примере мы будем использовать вывод ШИМ платы Raspberry Pi Pico со светодиодом. Благодаря широтно-импульсной модуляции яркость свечения светодиода будет управляться таким образом, чтобы он постепенно загорался, а затем постепенно выключался, чтобы сформировать эффект дышащего света в цикле.

Подключите положительный контакт светодиода к контакту Pi Pico GP2, а отрицательный контакт — к GND.

Собранная на макетной плате схема подключения светодиода к плате Raspberry Pi Pico

Код программы на MicroPython

Скопируйте приведенный выше код и запустите скрипт.

Светодиод, подключенный к Raspberry Pi Pico, будет вести себя как «дышащий» светодиод, поскольку его освещенность и яркость будут меняться через равные промежутки времени.

Тестирование работы проекта

Частота (led.freq) сообщает Raspberry Pi Pico, как часто включать и выключать светодиод. Рабочий цикл сообщает светодиоду, как долго он должен быть включен каждый раз. Для Raspberry Pi Pico в MicroPython это может быть в диапазоне от 0 до 6502565025 будет соответствовать 100% времени, поэтому светодиод будет оставаться все время ярким. Значение около 32512 будет означать, что он должен быть включен половину времени.

(Проголосуй первым!)
Загрузка...
12 просмотров

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *