Jméno

analogWrite — Write an analog value (PWM wave) to a pin

Přehled

void analogWrite(pin, value);
int pin;
int value;

Posílá na pin analogový signál ve formě PWM. Hodnota value je v rozsahu 0 (vypnuto) až 255 (plně zapnuto).

Parametr pin smí nabývat na Arduinu jen hodnot 9, 10 a 11. Souvisí to s tím, že jen k těmto pinům jsou připojeny obvody generování PWM signálu. Na jiných mikropočítačích ATmega to mohou být jiné piny, a může jich být také jiný počet.

Popis

Pomocí analogWrite můžeme Arduinem generovat analogový signál. Mikropočítač ATmega použitý v Arduinu nemá analogový výstup. Analogový signál se vytváří integrováním PWM signálu na kondenzátoru. Funkce analogWrite zajišťuje tedy generování PWM signálu o stanovené střídě.

Protože se PWM signál generuje pomocí vnitřních obvodů čítačů/časovačů, můžeme použít jen takové piny, na které je signál OCn mikropočítače vyveden.

PWM signál je generovaný na kmitočtu cca 490Hz.

PWM signál generovaný na pinech 5 a 6 je v konfliktu s funkcemi milis() a delay.

Tabulka 40.32.

čipPWM piny
ATmega8d9,d10,d11
ATmega1683, 5, 6, d9,d10,d11
ATmega3283, 5, 6, d9,d10,d11
Arduino Mega2 — 13
int pin = 11;   // LED
int pulseWidth = 127;   // Libovolná hodnota mezi 0 až 255

void setup()
{
        /* pro analogWrite není potřeba žádné inicializace */
}

void loop()
{
        analogWrite(pin, pulseWidth);
}

Odkazy

Související informace: digitalWrite, map, pinMode

Licence Creative Commons
Elektronika a počítače, jejímž autorem je Radek Hnilica, podléhá licenci Creative Commons Uveďte autora-Nevyužívejte dílo komerčně-Zachovejte licenci 3.0 Česká republika .