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


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

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

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

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

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

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

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

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

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

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

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

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