===== Эксперимент 12. Функция управления яркостью ===== Что ж, мы разобрались с принципом получения цвета, научились подключать RGB светодиод и даже успели поэкспериментировать с получением нужного цвета. Попробуем управлять цветом по определенному закону, по функции синуса. Подобное мы уже делали в [[products:laboratory_iot:exp9|эксперименте 9]]. ==== Схема эксперимента ==== Оставим собранной без изменений схему из прошлого эксперимента {{ :products:esp-iot:6.2_sch.png?nolink |}} //Рисунок 1. Электрическая принципиальная схема эксперимента// Токоограничительные резисторы в схеме обязательны! {{ :products:esp-iot:exp6.2_mont.png?direct&600 |}} //Рисунок 2. Монтажная схема эксперимента// ==== Программный код эксперимента ==== from machine import Pin, PWM import math import time _init() LedPinB = 15 LedPinG = 14 LedPinR = 13 ledB = Pin(LedPinB, Pin.OUT) ledG = Pin(LedPinG, Pin.OUT) ledR = Pin(LedPinR, Pin.OUT) pwmB = PWM(ledB) pwmG = PWM(ledG) pwmR = PWM(ledR) pwmB.freq(500) pwmG.freq(500) pwmR.freq(500) while True: for i in range(100): pwmB.duty(int(math.sin(i / 50 * math.pi) * 500 + 500)) time.sleep_ms(30) В этой программе мы разбили период синуса на 100 шагов и устанавливаем яркость синего цвета на каждом шаге в соответствии с формулой. После чего даем возможность светодиоду светить 30 миллисекунд с установленной яркостью прежде, чем мы ее изменим на следующем шаге. ==== Дополнительные задания ==== Попробуй ускорить или замедлить процесс изменения цвета с помощью изменения количества шагов и/или времени задержки на каждом шаге