Эксперимент 12. Функция управления яркостью

Что ж, мы разобрались с принципом получения цвета, научились подключать RGB светодиод и даже успели поэкспериментировать с получением нужного цвета. Попробуем управлять цветом по определенному закону, по функции синуса. Подобное мы уже делали в эксперименте 9.

Схема эксперимента

Оставим собранной без изменений схему из прошлого эксперимента

Рисунок 1. Электрическая принципиальная схема эксперимента

Токоограничительные резисторы в схеме обязательны!

Рисунок 2. Монтажная схема эксперимента

Программный код эксперимента

Exp11.py
  1. from machine import Pin, PWM
  2. import math
  3. import time
  4. _init()
  5.  
  6. LedPinB = 15
  7. LedPinG = 14
  8. LedPinR = 13
  9.  
  10. ledB = Pin(LedPinB, Pin.OUT)
  11. ledG = Pin(LedPinG, Pin.OUT)
  12. ledR = Pin(LedPinR, Pin.OUT)
  13.  
  14. pwmB = PWM(ledB)
  15. pwmG = PWM(ledG)
  16. pwmR = PWM(ledR)
  17.  
  18. pwmB.freq(500)
  19. pwmG.freq(500)
  20. pwmR.freq(500)
  21.  
  22. while True:
  23. for i in range(100):
  24. pwmB.duty(int(math.sin(i / 50 * math.pi) * 500 + 500))
  25. time.sleep_ms(30)

В этой программе мы разбили период синуса на 100 шагов и устанавливаем яркость синего цвета на каждом шаге в соответствии с формулой. После чего даем возможность светодиоду светить 30 миллисекунд с установленной яркостью прежде, чем мы ее изменим на следующем шаге.

Дополнительные задания

Попробуй ускорить или замедлить процесс изменения цвета с помощью изменения количества шагов и/или времени задержки на каждом шаге