Jas LED, cyklus For, PWM

Pro úpravu jasu LED využijeme pulzně šířkové modulace (PWM) – viz obrázek níže. Signál je ve vysoké frekvenci (490× za vteřinu) vypínán a zase zapínán. LED tak chvíli svítí a chvíli zase ne. Díky setrvačnosti to ale vypadá, že LED jen svítí měně jasně.

PWM je v Arduino realizováno pomocí funkce analogWrite(), která má dva parametry. První je číslo pinu, na kterém chceme mít PWM signál (na desce musí být takový pin označen vlnovkou)  a druhý je hodnota střídy v rozmení 0 – 255.

Pulzně šířková modulace v pojetí Arduina

Pro postupné zhasínání a rozsvicování je potřeba užít cyklus. Základním cyklem je For cyklus. Vyžaduje tři parametry. Proměnnou s přiřazenou počáteční hodnotou, podmínku při jejímž splnění se cyklus provádí a operaci, co se má s proměnnou stát po provedení každého cyklu.

Změna jasu LED pomocí pulzně šířkové modulace (PWM)

Kód

byte jas = 0; // začínáme se zhaslou LED

void setup()
{
pinMode(9, OUTPUT); // pin 9 umí PWM
}

void loop()
{ // PWM se realizuje fcí analogWrite()
for (jas = 0; jas < 255; jas += 5) { // For cyklus
analogWrite(9, jas); // postupně rozsvicuje
delay(30); // čeká 30 ms kvůli našemu oku
}
for (jas = 255; jas > 0; jas -= 5) {
analogWrite(9, jas); // postupně zhasíná
delay(30); // abychom to stíhali vidět
}
}