Это старая версия документа!
Диммер — электронное устройство, предназначенное для изменения электрической мощности (регулятор мощности). Обычно используется для регулировки яркости света, излучаемого лампами накаливания или светодиодами.
Регулировку яркости светодиода будем производить при помощи переменного резистора, это устройство состоит из полукруглой пластины,
покрытой веществом, имеющим электрическое сопротивление,
и скользящего контакта с ручкой. У переменного резистора
три вывода — по концам пластины и скользящий контакт.
Сопротивление меняется в зависимости от длины отрезка
резистивной пластины от ее начала до скользящего контакта. Чем
больше этот путь, тем выше сопротивление.
Рисунок 1. Переменный резистор. Внешний вид, устройство и условное обозначение
Переменный резистор можно представить как схему из двух резисторов
С помощью переменного резистора будем получать аналоговый сигнал. Используем широко распространенную схему резисторного делителя напряжения. Резисторный делитель — это два последовательных участка цепи, называемых плечами, сумма напряжений на которых равна напряжению питания. Плечо между минусом питания и средней точкой называют нижним, а другое — верхним.
Резисторный делитель используется для деления напряжения. Например, если верхнее и нижнее плечи имеют одинаковые сопротивления, то напряжение на средней точке делителя равно половине напряжения питания. Такой делитель делит напряжение на 2. Подключим нижнее плечо с земле, а верхнее к напряжению питания. Тогда при вращении ручки переменного резистора на его средней точки напряжение будет изменяться от 0 до 5 в. Подключим среднюю точку ко входу аналого- цифрового преобразователя (на контроллере это A0…A5) и будем измерять напряжение на ней.
Микроконтроллеры Atmega, содержат шестиканальный аналого-цифровой преобразователь (АЦП). Разрешение преобразователя составляет 10 бит, что позволяет на выходе получать значения от 0 до 1023. Основным применением аналоговых входов большинства платформ Arduino является чтение аналоговых датчиков.
from machine import Pin, PWM _init() LedPin = 15 led = Pin(LedPin, Pin.OUT) pwmLed = PWM(led) adc = machine.ADC(0) while True: value = adc.read() pwmLed.duty(value)
В этой программе для нас нет ничего нового. Как обычно мы настроили вывод для светодиода, создали объект пина для него. Создали объект ШИМ. Создали объект АЦП. В бесконечном цикле считываем показания АЦП и передаем их в объект ШИМ как коэффициент заполнения.