Přetečení funkce analogWrite, funkce map

Wiring, C++, C, Java, ...
Pravidla fóra
Toto subfórum slouží k řešení obecných otázek kolem programování (konstrukce, knihovny, alokace paměti, ...)
Odpovědět
Tomas Z
Příspěvky: 12
Registrován: 26 led 2018, 09:37
Reputation: 0

Přetečení funkce analogWrite, funkce map

Příspěvek od Tomas Z » 26 led 2018, 09:51

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.

ohruska
Příspěvky: 235
Registrován: 08 pro 2017, 20:56
Reputation: 0

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

Příspěvek od ohruska » 26 led 2018, 10:10

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.

zbysek
Site Admin
Příspěvky: 125
Registrován: 22 úno 2017, 15:18
Reputation: 0

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

Příspěvek od zbysek » 26 led 2018, 12:35

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

Odpovědět

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 63 hostů