===== Эксперимент 12. Функция управления яркостью ===== Что ж, мы разобрались с принципом получения цвета, научились подключать RGB светодиод и даже успели поэкспериментировать с получением нужного цвета. Попробуем управлять цветом по определенному закону, по функции синуса. Подобное мы уже делали в [[products:laboratory_iot_с:exp9|эксперименте 9]]. ==== Схема эксперимента ==== Оставим собранной без изменений схему из прошлого эксперимента {{ :products:esp-iot:6.2_sch.png?nolink |}} //Рисунок 1. Электрическая принципиальная схема эксперимента// Токоограничительные резисторы в схеме обязательны! {{ :products:esp-iot:exp6.2_mont.png?direct&600 |}} //Рисунок 2. Монтажная схема эксперимента// ==== Программный код эксперимента ==== #define LED_PIN_B 15 #define LED_PIN_G 14 #define LED_PIN_R 13 void setup() { pinMode(LED_PIN_B, OUTPUT); pinMode(LED_PIN_G, OUTPUT); pinMode(LED_PIN_R, OUTPUT); analogWriteFreq(500); analogWriteRange(1024); analogWrite(LED_PIN_B, 1023); analogWrite(LED_PIN_G, 1023); analogWrite(LED_PIN_R, 1023); } void loop() { for (int i = 0; i < 100; i++) { analogWrite(LED_PIN_B, int(sin(i / 50.0 * PI) * 500 + 500)); delay(30); } } В этой программе мы разбили период синуса на 100 шагов и устанавливаем яркость синего цвета на каждом шаге в соответствии с формулой. После чего даем возможность светодиоду светить 30 миллисекунд с установленной яркостью прежде, чем мы ее изменим на следующем шаге. ==== Дополнительные задания ==== Попробуй ускорить или замедлить процесс изменения цвета с помощью изменения количества шагов и/или времени задержки на каждом шаге