Это старая версия документа!


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

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

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

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

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

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

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

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

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

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

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

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