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


Эксперимент 13. Лампа настроения

Теперь будем управлять яркостью сразу трех цветов, чтобы получить различные их сочетания. Но если мы будем управлять тремя цветами одновременно, то получим лишь пульсирующий белый цвет. Ведь все три составляющие вместе дают белый, интесивностью которого мы управляем. Как же получить плавно переливающиеся цвета? Будем управлять каждым цветом по функции синуса, но с разными периодами.

Exp13.py
  1. from machine import Pin, PWM
  2. import time
  3. import math
  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. pwmG.duty(int(math.sin(i / 75 * math.pi) * 500 + 500))
  26. pwmR.duty(int(math.sin(i / 25 * math.pi) * 500 + 500))
  27. time.sleep_ms(30)