Stránka 1 z 1

Přetečení funkce analogWrite, funkce map

Napsal: 26 led 2018, 09:51
od Tomas Z
Dobrý den, Ahoj,

předem díky všem co píší spousty návodů a zapojení pro arduino, protože nám začátečníkům moc pomáháte se učit a příjemně trávit čas s pokusy. :-)

Měl bych dotaz ohledně jednoho pokusu z knížky "Průvodce světem Arduina" kterou pomalu pročítám a zkouším.
V kapitole 15 - Příklad: Regulace jasu LED je tato poznámka:

"V programu si musíme dát pozor na hodnoty, se kterými funkce pracují. Z funkce analogRead() vychází hodnoty 0 až 1023, kdežto analogWrite() čeká na rozsah hodnot 0 až 255. Musíme tedy zajistit převod hodnot"

Moje otázka je, co by se stalo, když na tento převod při nějakém z pokusů zapomenu a nevydělím vystup na hodnotu 255. Poškodím nějakým způsobem arduino, nebo jen pokus nebude fungovat a nic se nestane?
Moc díky.

Re: Rubrika --> Začiatočníci

Napsal: 26 led 2018, 10:10
od ohruska
Zdravím.
Nic se nestane. Funkce bude pracovat od 0 do 255 a od 256 do 1023 bude svítit jako 255.
Pro tyto případy se používá funkce:

Kód: Vybrat vše

y = map(x, 0, 1023, 0, 255);
Tato funkce přepočítá danou hodnotu čísla v poměru rozsahů jednoho k poměru rozsahů druhého.

Re: Rubrika --> Začiatočníci

Napsal: 26 led 2018, 12:35
od zbysek
Teď to nemám ne čem odzkoušet, ale jestli se nepletu, tak hodnota “přeteče”.
Takže když do analogWrite posílate postupne hodnoty 0-1023, tak se čtyřikrát zvýší jas z 0-255