Page
Stránky / Arduino / Pod kapotou Arduina /
Arduino Uno používá mikrokontrolér ATmega328P a praktický každý mikrokontrolér v sobě obsahuje časovače. Časovače se dají využívat k množství úkolů. Postupně se s těmito možnostmi seznámíme.
Mikrokontrolér obsahuje 3 časovače:
Mikrokontrolér obsahuje 2 časovače:
Mikrokontrolér obsahuje 1 časovač:
Mikrokontrolér obsahuje 6 časovačů:
Časovač potřebuje na svou činnost zdroj hodinového signálu. Ten může být různý a od toho závisí, jak se bude časovač projevovat.
Generovaný signál se může tvořit v různých režimech. Každý režim má své specifické nastavení registrů. Arduino například tyto režimy používá pro generování PWM signálu.
V článcích se na generátor zdrojového textu budu obracet často. Proto je vhodné, pokud si zapamatujete tento hypertext a budete ho používat ve svých projektech.
Arduino Uno má 6 PWM kanálů na pinech 3, 5, 6, 9, 10 a 11. V tomto článku si ukážeme, že to nemusí být konečný počet. Hardwarové PWM ale musíme nahradit vlastním kódem. V tomto příkladu využijeme timer, pomocí kterého si budeme generovat přerušení na dostatečně vysoké frekvenci, abychom byli schopni simulovat PWM na osmi kanálech najednou.
Pomocí timeru si můžete zjednodušit několik úkolů. Můžete ho využít i ke kontrole stavu tlačítka. V tomto článku si ukážeme, jak můžeme kontrolovat dvě tlačítka, které mění hodnotu proměnné. Jedno tlačítko hodnotu snižuje a druhé ji zvyšuje. Během stisknutí tlačítka se vše děje s minimem kódu a v tomto speciálním případě není ani nutné ošetřovat zákmity na tlačítkách.
Arduino má implicitně všechny PWM kanály nastaveny na 8-bitové rozlišení. Toto není maximální rozlišení. Timer1 umí použít až 16bitové rozlišení. V tomto článku si ukážeme, jak to udělat.
Stmívání LED diody lze naprogramovat několika způsoby. V tomto článku se zaměříme na to, abychom neměli v programu funkci delay, která brzdí běh programu tak, že se už nemůže věnovat ničemu jinému. Nebudeme ani používat funkci millis, kterou se dá odstranit zdržování programu. Namísto toho budeme používat timer, který si nastavíme tak, aby nám v pravidelných intervalech dával signál, kdy máme provést další krok stmívání.
Funkce analogWrite v Arduine podporuje pouze 8bitový mód. Na timeru1 si můžete zapnout i 9 a 10-bitový mód, který vám poskytne vyšší rozlišení pro PWM signál. V tomto článku si ukážeme, jak se to dá udělat.
V tomto článku si ukážeme, jak se používá 10bitový mód na timeru1. Abychom si mohli hodnotu střídy pohodlně nastavovat, použijeme jeden potenciometr. Analogové měření poskytuje 10bitové rozlišení a proto nemusíme dělat žádnou konverzi. Naměřenou hodnotu analogového vstupu si zobrazit na OLED displeji.
20.07.2020