Page
Stránky / Arduino / Pod kapotou Arduina /
Arduino Uno používa mikrokontrolér ATmega328P a praktický každý mikrokontrolér v sebe obsahuje časovače. Časovače sa dajú využívať na množstvo úloh. Postupne sa s týmito možnosťami oboznámime.
Mikrokontrolér obsahuje 3 časovače:
Mikrokontrolér obsahuje 2 časovače:
Mikrokontrolér obsahuje 1 časovač:
Mikrokontrolér obsahuje 6 časovačov:
Časovač potrebuje na svoju činnosť zdroj hodinového signálu. Ten môže byť rôzny a od toho závisí, ako sa bude časovač prejavovať.
Generovaný signál sa môže tvoriť v rôznych režimoch. Každý režim má svoje špecifické nastavenie registrov. Arduino napríklad tieto režimy používa na generovanie PWM signálu.
V článkoch sa na generátor zdrojového textu budem obracať často. Preto je vhodné, ak si zapamätáte tento hypertext a budete ho používať vo svojich projektoch.
Arduino Uno má 6 PWM kanálov na pinoch 3, 5, 6, 9, 10 a 11. V tomto článku si ukážeme, že to nemusí byť konečný počet. Hardverové PWM ale musíme nahradiť vlastným kódom. V tomto príklade využijeme timer, pomocou ktorého si budeme generovať prerušenie na dostatočne vysokej frekvencii, aby sme boli schopní simulovať PWM na ôsmich kanáloch naraz.
Pomocou timera si môžete zjednodušiť viaceré úlohy. Môžete ho využiť aj na kontrolu stavu tlačidla. V tomto článku si ukážeme, ako môžeme kontrolovať dve tlačidlá, ktoré menia hodnotu premennej. Jedno tlačidlo hodnotu znižuje a druhé ju zvyšuje. Počas stlačenia tlačidla sa všetko deje s minimom kódu a v tomto špeciálnom prípade nie je ani potrebné ošetrovať zákmity na tlačidlách.
Arduino má implicitne všetky PWM kanály nastavené na 8-bitové rozlíšenie. Toto nie je maximálne rozlíšenie. Timer1 vie použiť až 16-bitové rozlíšenie. V tomto článku si ukážeme, ako to urobiť.
Stmievanie LED diódy možno naprogramovať viacerými spôsobmi. V tomto článku sa zameriame na to, aby sme nemali v programe funkciu delay, ktorá brzdí beh programu tak, že sa už nemôže venovať ničomu inému. Nebudeme ani používať funkciu millis, ktorou sa dá odstrániť zdržiavanie programu. Namiesto toho budeme používať timer, ktorý si nastavíme tak, aby nám v pravidelných intervaloch dával signál, kedy máme vykonať ďalší krok stmievania.
Funkcia analogWrite v Arduine podporuje iba 8-bitový mód. Na timeri1 si možete zapnúť aj 9 a 10-bitový mód, ktorý vám poskytne vyššie rozlíšenie pre PWM signál. V tomto článku si ukážeme, ako sa to dá urobiť.
V tomto článku si ukážeme, ako sa používa 10-bitový mód na timeri1. Aby sme si mohli hodnotu striedy pohodlne nastavovať, použijeme jeden potenciometer. Analógové meranie poskytuje 10-bitové rozlíšenie a preto nemusíme robiť žiadnu konverziu. Nameranú hodnotu analógového vstupu si zobrazime na OLED displeji.
24.01.2017