Регулировка яркости светодиода с помощью ШИМ на Pico
В своих самых первых программах для Pico вы полностью включали или полностью выключали светодиод. Это как выключатель, у которого всего два положения. Но настоящий регулятор яркости позволяет задать свет на 10%, 50%, 90% — любую яркость по вашему желанию. Как же микросхема, которая понимает только числа 0 и 1, может зажечь светодиод наполовину?
Ответ — это красивый приём под названием ШИМ — широтно-импульсная модуляция. Вывод по-прежнему выдаёт только 0 или 1, но переключается между ними тысячи раз в секунду. Управляя тем, какую долю времени вывод остаётся включённым, вы управляете тем, насколько ярким кажется светодиод. В этом уроке вы соберёте регулятор яркости, заставите светодиод плавно разгораться и гаснуть и создадите знаменитый эффект «дышащего» светодиода.
Что вы узнаете
- Почему обычный цифровой вывод сам по себе не может выдать «половину» напряжения.
- Основную идею ШИМ: быстрое переключение вкл/выкл и коэффициент заполнения.
- Как использовать класс
PWMв MicroPython:freq()иduty_u16(). - Что означает «16-битный коэффициент заполнения», с реальными расчётами (почему 50% = 32768).
- Как плавно менять яркость светодиода в циклах и построить эффект дыхания.
- Почему яркость выглядит нелинейной (идея гаммы / восприятия).
- Как выбрать частоту ШИМ и избежать заметного мерцания.
- Что тот же самый приём ШИМ управляет и сервоприводами, и двигателями, и зуммерами.
1. Почему цифровой вывод не может создать «половину» напряжения
Каждый вывод общего назначения (GPIO) на Pico — это цифровой вывод. «Цифровой» означает, что у него ровно два выходных состояния:
- ВЫСОКИЙ (HIGH) — вывод подключён примерно к 3,3 вольтам (это логическая «1»).