Что ж, мы разобрались с принципом получения цвета, научились подключать RGB светодиод и даже успели поэкспериментировать с получением нужного цвета. Попробуем управлять цветом по определенному закону, по функции синуса. Подобное мы уже делали в эксперименте 9.
Оставим собранной без изменений схему из прошлого эксперимента
Рисунок 1. Электрическая принципиальная схема эксперимента
Токоограничительные резисторы в схеме обязательны!
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 миллисекунд с установленной яркостью прежде, чем мы ее изменим на следующем шаге.
Попробуй ускорить или замедлить процесс изменения цвета с помощью изменения количества шагов и/или времени задержки на каждом шаге