04. Транзисторни цифрови изходи

/*
В този пример червения, зеления и синия светодиод се димират последователно.

Трите светодиода (LED-R, LED-G и LED-B) са свързани съответно към пинове D4, D2 и D25.
*/

// константи, описващи използваните пинове
const int LEDR_pin = 4;
const int LEDG_pin = 2;
const int LEDB_pin = 25;

// константи, описващи използваните PWM канали
const int LEDR_ch = 0;
const int LEDG_ch = 1;
const int LEDB_ch = 2;

void setup() {
// настройване на PWM каналите, използване за димиране на светодиодите:
ledcSetup(LEDR_ch, 5000, 8);      // канал 0, честота 5 kHz, 8 бита (0-255)
ledcSetup(LEDG_ch, 5000, 8);      // канал 1, честота 5 kHz, 8 бита (0-255)
ledcSetup(LEDB_ch, 5000, 8);      // канал 2, честота 5 kHz, 8 бита (0-255)

// свързване на каналите към светодиодните пинове:
ledcAttachPin(LEDR_pin, LEDR_ch); // червен светодиод към канал 0
ledcAttachPin(LEDG_pin, LEDG_ch); // зелен светодиод към канал 1
ledcAttachPin(LEDB_pin, LEDB_ch); // син светодиод към канал 2
}

void loop() {
// увеличаване на яркостта на червения светодиод
for(int dc = 0; dc <= 255; dc++){   
    ledcWrite(LEDR_ch, dc);
    delay(15);
}

// намаляване на яркостта на червения светодиод
for(int dc = 255; dc >= 0; dc--){
    ledcWrite(LEDR_ch, dc);
    delay(15);
}


// увеличаване на яркостта на зеления светодиод
for(int dc = 0; dc <= 255; dc++){   
    ledcWrite(LEDG_ch, dc);
    delay(15);
}

// намаляване на яркостта на зеления светодиод
for(int dc = 255; dc >= 0; dc--){
    ledcWrite(LEDG_ch, dc);
    delay(15);
}


// увеличаване на яркостта на синия светодиод
for(int dc = 0; dc <= 255; dc++){   
    ledcWrite(LEDB_ch, dc);
    delay(15);
}

// намаляване на яркостта на синия светодиод
for(int dc = 255; dc >= 0; dc--){
    ledcWrite(LEDB_ch, dc);
    delay(15);
}
}