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

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

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

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

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

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

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

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

Exp11.py
  1. #define LED_PIN_B 15
  2. #define LED_PIN_G 14
  3. #define LED_PIN_R 13
  4.  
  5. void setup() {
  6. pinMode(LED_PIN_B, OUTPUT);
  7. pinMode(LED_PIN_G, OUTPUT);
  8. pinMode(LED_PIN_R, OUTPUT);
  9. analogWriteFreq(500);
  10. analogWriteRange(1024);
  11. analogWrite(LED_PIN_B, 1023);
  12. analogWrite(LED_PIN_G, 1023);
  13. analogWrite(LED_PIN_R, 1023);
  14. }
  15.  
  16. void loop() {
  17. for (int i = 0; i < 100; i++) {
  18. analogWrite(LED_PIN_B, int(sin(i / 50.0 * PI) * 500 + 500));
  19. delay(30);
  20. }
  21. }

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

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

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