Funkce jsou jako malé pomocníci ve tvém kódu, kteří ti pomáhají organizovat a strukturovat tvé projekty tak, aby byly čitelné, efektivní a snadno rozšiřitelné.
Úvod
"Funkce nám slouží jako nástroj pro organizaci a strukturování našich programů v Arduino. Jsou to úseky kódu, které provádějí určité úkoly, a mohou být volány z různých částí našeho programu. Používáním funkcí můžeme zlepšit čitelnost a efektivitu našeho kódu a usnadnit jeho údržbu a rozšiřování.
Jednotlivé funkce
pinMode()
Funkce pinMode() je základní funkcí v programování mikrokontrolérů Arduino, která slouží k nastavení režimu pinu. Pomocí této funkce můžete nastavit pin jako vstupní nebo výstupní. Tato funkce je důležitým nástrojem v programování Arduino a je nezbytné jí správně používat pro nastavení pinů podle potřeb vašeho projektu.
Parametry
* pin - Číslo pinu, který chcete nastavit
* mode - Režim pinu, který chcete nastavit. Může být buď “INPUT” pro nastavení pinu jako vstupní, nebo “OUTPUT” pro nastavení pinu jako výstupního.
INPUT
Pokud nastavíte pin jako “INPUT”, je pin připojený ke vstupu, což znamená, že bude přijímat data ze senzoru, tlačítka nebo jiného zařízení.
OUTPUT
Pokud nastavíte pin jako “OUTPUT”, je pin připojený k výstupu, což znamená, že bude ovládat aktuátory, LED DIODY NEBO JINÁ ZAŘÍZENÍ.
digitalWrite()
Funkce digitalWrite() je základní funkcí v programování mikrokontrolérů Arduino, která slouží k ovládání digitálních výstupních pinů. Pomocí této funkce můžeme nastavit stav digitálního výstupního pinu na HIGH (logická hodnota 1) nebo LOW (logická hodnota 0), což umožňuje ovládat různá periferie, jako jsou LED diody, relé a motor. Funkce digitalWrite() je důležitým nástrojem v programování Arduino a je často používán pro ovládání různých periferií v elektronických projektech.
Parametry
* pin - Číslo pinu, který chceme ovládat.
* value - Hodnota kterou chceme nastavit na pin. Může být buď “HIGH” nebo “LOW”.
HIGH
Pokud nastavíme pin na “HGH”, aktivuje se napětí pinu, což znamená, že se například zapne LED dioda nebo spustí motor.
LOW
Pokud nastavíme pin na “LOW”, deaktivuje se napětí na pinu, což znamená, že se například LED dioda vypne nebo motor zastaví.
Funkce digitalWrite() je důležitým nástrojem v programování Arduino a je často používán pro ovládání různých periferií v elektronických projektech.
digitalRead
Funkce digitalRead() je základní funkcí v programování mikrokontrolérů Arduino, která slouží ke čtení stavu digitálního vstupního pinu. Tato funkce umožńuje uživatelům získávat informace o stavu připojených digitálních zařízení, jakou tlačítka, senzory a další. Funkce digitalRead() se často používá ve spojení s digitálními vstupními piny ke čtení stavu tlačítek nebo digitálních senzorů. Pokud je na pinu detekována napěťová úroveň vyšší než určitá prahová hodnota, funkce vrátí “HIGH”. V opačném případě “LOW”. Před použitím funkce difitalRead() je nutné pin nastavit jako vstupní pomocí funkce pinMode(). Funkce analogRead() je klíčovým nástrojem pro čtení analogových hodnot ze senzorů v Arduino projektech a je široce používána v různých aplikacích.
Parametry
* pin - Číslo pinu, který chcete číst.
Návratové hodnoty
* Funkce digitalRead() vrátí hodnotu “HIGH” (logická hodnota 1), pokud je na pinu detekována napěťová úroveň odpovídající logické jedničce (např. 5V).
* Funkce digitalRead vrátí hodnoty na “LOW” (logická hodnota 0), pokud je na pinu detekována napěťová úroveň odpovídající logické nule (např. 0V).
analogRead()
Funkce analogRead() je základní funkcí v programování mikrokontrolérů Arduino, která slouží k čtení analogových hodnot ze vstupních analogových pinů. Tato funkce umožňuje uživatelům číst hodnoty z analogových senzorů, jako jsou například teplotní senzory, potenciometry nebo fotoodpory. Funkce analogRead() je používána k čtení analogových hodnot ze senzorů, které poskytují spojitou škálu hodnot namísto jednoduchého zapnutí nebo vypnutí. Pro čtení analogových hodnot je třeba použít analogové piny na desce Arduino, které jsou speciálně určené pro tento účel. Před použitím funkce analogRead() je nutné pin nastavit jako vstupní pomocí funkce pinMode().
Parametry
*pin: Číslo analogového pinu, který chcete číst. Na desce Arduino UNO jsou analogové piny označeny čísly A0 až A5.
Návratová hodnota
Funkce analogRead() vrátí hodnotu v rozmezí 0 až 1023, což odpovídá rozsahu 0 až 5 voltů. Hodnota 0 reprezentuje napětí 0V na pinu, zatímco hodnota 1023 reprezentuje napětí 5V na pinu.
analogWrite()
Funkce analogWrite() je základní funkcí v programování mikrokontrolérů Arduino, která slouží k generování modulovaného signálu (PWM - Pulse Width Modulation) na digitálních výstupních pinech. Tato funkce umožňuje uživatelům ovládat různé periferie, jako jsou například LED diody, motory nebo serva, pomocí změny průměrného výstupního napětí. Funkce analogWrite() generuje modulovaný signál PWM na digitálním pinu, který je schopen emulovat změnu průměrného výstupního napětí. Modulový signál PWM funguje tak, že periodicky mění úroveň výstupního signálu mezi logickou nulou a logickou jedničkou s různými poměry zapnutí a vypnutí. To umožňuje simulovat změnu průměrného výstupního napětí, což má za následek změnu jasu LED, rychlosti motoru nebo polohy serva.
Funkce analogWrite() je užitečným nástrojem pro ovládání různých periferií s proměnou úrovní výstupního signálu a je často používána v projektech, které vyžadují regulaci jasu, rychlosti nebo polohy. Hodnoty parametru “value” určují poměr zapnutí (duty cycle) modulovaného signálu PWM. Čím vyšší je hodnota, tím delší dobu je signál ve stavu HIGH (zapnuto) a tím je průměrné výstupní napětí vyšší. Funkce delay() je užitečným nástrojem pro řízení časových intervalů v programu a je často používána pro řízení časově citlivých operací v Arduino projektech.
Parametry:
* pin - Číslo digitálního pinu, který chcete ovládat. Na desce Arduino UNO jsou digitální pony označeny čísly 0 až 13.
* value - Hodnota, kterou chcete nastavit pro modulovaný signál. Může být v rozmezí 0 (žádný signál) až 255 (plný signál)
delay()
Funkce delay() je základní funkcí v programování mikrokontrolérů Arduino, která slouží k vytvoření pauzy v kódu. Tato funkce umožňuje uživatelům zpomalit běh programu a čekat určitý časový interval před pokračováním dalších instrukcí. Funkce delay() zastaví vykonávání programu na určitý časový interval, který je určen parametrem ms. Časový interval musí být kladné celé číslo. Pokud je hodnota záporná, chování funkce delay() není definováno. Během pauzy v kódu mikrokontrolér nevykonává žádné další instrukce a čeká na uplynutí časového intervalu. Doba, po kterou je vykonávání programu pozastaveno, závisí na frekvenci procesoru mikrokontroléru. Standardní hodnota časového intervalu je udávána v milisekundách.
Parametry:
* ms - Délka pauzy v milisekundách. Jedna sekunda (1000 ms) odpovídá hodnotě 1000.
Serial-begin()
Funkce Serial.begin() je základní funkcí v programování mikrokontrolérů Arduino, která slouží k inicializaci sériového komunikace mezi Arduino a počítačem nebo jinými zařízeními. Tato funkce umožňuje uživatelům vytvářet sériové spojení pro výstup a vstup dat pomocí sériového portu. Funkce Serial.begin() inicializuje sériovou komunikaci mezi Arduino a jiným zařízením, jako je počítač, prostřednictvím sériového portu. Parametr “speed” určuje rychlost přenosu dat (baudovou rychlost), která musí být nastavena na obou stranách komunikace (v Arduinu a v počítači nebo jiném zařízení). Při inicializaci sériové komunikace musí být Arduino připojeno k počítači prostřednictvím USB kabelu nebo k jinému zařízení pomocí sériového portu.
Funkce Serial,begin() je klíčovým nástrojem pro vytváření sériové komunikace mezi Arduino a jinými zařízeními a je často používána pro ladění a monitorování stavu programu. Po inicializaci sériové komunikace může Arduino posílat data na sériový port (výstup) a přijímat data ze sériového portu (vstup).
Parametry:
* speed - Baudová rychlost sériové komunikace v baudových bodech. Baudová rychlost určuje, jak rychle jsou přenášena data mezi Arduinem a jiným zařízením.
Serial.println()
Funkce Serial.begin() je základní funkcí v programování mikrokontrolérů Arduino, která slouží k inicializaci sériového komunikace mezi Arduino a počítačem nebo jinými zařízeními. Tato funkce umožňuje uživatelům vytvářet sériové spojení pro výstup a vstup dat pomocí sériového portu.
Funkce Serial.begin() inicializuje sériovou komunikaci mezi Arduino a jiným zařízením, jako je počítač, prostřednictvím sériového portu. Parametr “speed” určuje rychlost přenosu dat (baudovou rychlost), která musí být nastavena na obou stranách komunikace (v Arduinu a v počítači nebo jiném zařízení). Při inicializaci sériové komunikace musí být Arduino připojeno k počítači prostřednictvím USB kabelu nebo k jinému zařízení pomocí sériového portu.
Funkce Serial,begin() je klíčovým nástrojem pro vytváření sériové komunikace mezi Arduino a jinými zařízeními a je často používána pro ladění a monitorování stavu programu. Po inicializaci sériové komunikace může Arduino posílat data na sériový port (výstup) a přijímat data ze sériového portu (vstup).
Parametry:
* data -Data, která chcete vypsat na sériový port. Může to být textový řetězec, celé číslo, desetinné číslo nebo jiný datový typ.
random()
Funkce random() je základní funkcí v programování mikrokontrolérů Arduino, která slouží k generování náhodných celočíselných hodnot. Tato funkce umožňuje uživatelům vytvářet náhodné čísla v určitém rozsahu pro různé aplikace, jako je simulace, hry nebo generování náhodných událostí. Funkce random() je užitečným nástrojem pro generování náhodných hodnot v Arduino projektech a může být využita pro různé aplikace, jako je simulace, hry nebo generování náhodných událostí.
Funkce random() generuje náhodné číslo v určeném rozsahu “min” až “max”. Parametry “min” a “max” určují dolní a horní hranici rozsahu generovaných náhodných čísel. Čísla v rozsahu jsou vybírána rovnoměrně. Pokud není specifikovaný žádný rozsah, funkce random() vrací náhodné číslo v rozsahu od 0 do “RAND_MAX”., kde “RAND_MAX” je maximální hodnota, kterou může funkce random() vrátit.
Před použitím funkce random() je nutné inicializovat generátor náhodných čísel pomocí funkce randomSeed().
Parametry:
* min -Nejnižší hodnota v rozsahu generovaných náhodných čísel (včetně).
* max -Nejvyšší hodnota v rozsahu generovaných náhodných čísel (vyloučena).
Návratová hodnota
Funkce random() vrátí náhodné číslo v rozsahu od “min” (včetně) do “max” (vyloučeno).
Praktická část
Teď, když jsme se seznámili se základy funkcí v programování, je čas přejít k praktické ukázce. V tomto videu si prozkoumáme různé typy funkcí, jejich syntaxi a využití v jazyce C/C++.
Video
Závěr
V dnešní lekci jsme prozkoumali základní koncepty funkcí v programování. Naučili jsme se, jak definovat a volat funkce v jazyce C/C++, a porozuměli jsme důležitým prvkům, jako jsou parametry, návratové hodnoty a rekurze. S funkcemi jsme si vyzkoušeli strukturovat náš kód, čímž jsme zlepšili jeho čitelnost a znovupoužitelnost. Díky této lekci jsme získali důležitý nástroj pro tvorbu efektivních a organizovaných programů v Arduinu i v dalších programovacích jazycích. Pokud máte nějaké dotazy nebo potřebujete další pomoc, neváhejte se na mě obrátit. Těším se na naši další lekci spolu!
Na co si dát pozor
Správné použití parametrů a návratových hodnot: Ujistěte se, že správně definujete a používáte parametry funkcí tak, aby odpovídaly očekávaným vstupům a výstupům. Dejte si pozor na správné nastavení návratových hodnot, aby vaše funkce vracející hodnoty byly konzistentní a předvídatelné.
Ošetření chybových stavů a výjimek: Zajistěte, aby vaše funkce byly robustní a měly mechanismy pro zvládání neočekávaných situací, jako jsou chybové stavy nebo výjimky. To může zahrnovat kontrolu vstupních dat, ošetření výjimek a zajištění správného chování programu i v případě problémů.
Optimalizace výkonu a paměti: Při vytváření funkcí se snažte minimalizovat zátěž na procesor a paměť vašeho zařízení. To může zahrnovat efektivní použití datových struktur, minimalizaci zbytečných operací a optimalizaci algoritmů. Dbejte na to, aby vaše funkce byly co nejefektivnější a šetrné k prostředkům vašeho systému.