Arduino

Vstupy a výstupy IO

Arduino obsahuje různé druhy vstupů a výstupů. Jsou to digitální a analogové. Analogové výstupy můžeme rozdělit na tzv. pseudo analogové, které jsou pulzně modulované PWM a jsou označené vlnovkou ~ a lze u nich použít funkci analogWrite(). Nebo klasické analogové výstupy s číslicově analogovým převodníkem označené DACx.

Digitální vstupy a výstupy

Vstupy a výstupu nabývají hodnot 0 a 1. Kdy arduino využívá pozitivní TTL kdy logická 1 zhruba odpovídá napájecímu napětí. Dle typu arduina nabývá hodnota napětí logické jedničky 5V u UNO a ve verzi Nano 3,3V.

Pomocí funkce pinMode(<číslo digit. výstupu>,<INPUT|OUTPUT|INPUT_PULLUP>) nastavíme čtení nebo zápis na daný výstup/pin. Hodnota INPUT_PULLUP nám aktivuje vnitřní pullup rezistor na vstupu, který je vhodný například pro tlačítka atd. Funkcí digitalWrite(<číslo digit. výstupu>,<HIGH|LOW>) zapíšeme hodnotu na výstup. Pomocí funkce digitalRead(<číslo digit. vstupu>) načteme hodnotu z daného vstupu/pinu. Analogové vstupy jsou označeny Axx a DACxx, digitální xx, kde xx je číslo pinu.

Analogové vstupy a výstupy

Analogový vstup je označený jako A a jde o desetibytový tj 2^10 vstup a pracuje v rozpětí 0 – 5V.

Kde hodnota napětí analogRead() se vypočítá dle U=Vcc*x/2^10. Kde U je vypočtené napětí, Vcc napájecí napětí, x vyčtená hodnota z funkce analogRead(), 2^10 tj. 0-1024 možných stavů .

Běžné artduino nemá standardní analogový výstup, ale jen PWM modulovaný výstup obdelníkového tvaru. Je to tzv. pulzně šířková modulace. Hodnotou analogWrite() měníme tzv. střídu, to je podíl délky pulzu a celkového času periody. Výstup pracuje na frekvenci 490Hz. Piny 5 a 6 mají vyšší frekvenci vzorkování a to 980Hz.

Hodnotu napětí výstupu vypočteme dle vzorce U = Vcc * x / 256 [V], kde Vcc je napájecí napětí (5V nebo 3,3V), x hodnota funkce analogWrite(), 256 je 2^8 což je rozsah hodnota analogWrite() od 0 do 255.

Jednou z vyjímek, která obsahuje opravdový analogový výstup je andruino due. Konkrétně jsou to výstupy označené DAC0 a DAC1.

Sériová linka

Obvykle na pinu D0 a D1. Více na stránce

https://www.arduino.cc/en/Reference/Serial

Datové typy, výrazy a operátory a funkce

https://www.arduino.cc/en/Reference/HomePage

Ohmův a Kirchhoffovy zákony

Ohmův zákon

U= R * I [V, Ω, I]

Často při výpočtu předřadného odporu budeme vycházet z nominálního proudu a napětí součástky. U LED diod je proud v propustném směru kolem 20mA a v katalogu jej najdeme pod hodnotou Forward Current neboli IF a napětí v propustném směru (také úbytek napětí na diodě) Forvard Voltage Vf 2,5V. Takže předřadný odpor vypočteme VCC – VF = R * IF takže R = (5-2,5)/0,02 tj. R=125Ω. Aby nedošlo k poškození LED vždy dáme odpor s vyšší hodnotou než je vypočtená. Více o charakteristikách LED diod v propustném směru najdete https://cs.wikipedia.org/wiki/LED#Charakteristick.C3.A9_hodnoty_nap.C4.9Bt.C3.AD_v_propustn.C3.A9m_sm.C4.9Bru

První Kirchhoffův zákon

Součet proudů vstupujících do uzlu se rovná součtu proudů z uzlu vystupujících. Jinými slovy též: Algebraický součet proudů v uzlu je roven nule.

Metoda uzlů:
V obvodu se najdou a označí všechny uzly.
Libovolně zvolenému uzlu se přiřadí nulový elektrický potenciál.
Všem zbývajícím se přiřadí neznámá napětí oproti referenčnímu uzlu.
Pro každý z uzlů kromě referenčního se sestaví rovnice podle 1. Kirchhoffova zákona.
Tato soustava rovnic se poté vyřeší.

Druhý Kirchhoffův zákon

Součet úbytků napětí na spotřebičích se v uzavřené části obvodu (smyčce) rovná součtu elektromotorických napětí zdrojů v této části obvodu. Jinými slovy též: Algebraický součet napětí ve smyčce je roven nule.

Metoda smyček:
Na schématu se najdou elementární smyčky, tzn. smyčky, které neobsahují menší vnořené smyčky.
Každé takové smyčce se přidělí proud, který jí obíhá.
Pro každou smyčku se zapíše rovnice podle 2. Kirchhoffova zákona, ve které se jako neznámá použije proud protékající smyčkou.
Tato soustava rovnic se poté vyřeší.

Zkratky

ADC – analogově digitální převodník
DAC – digitálně analogový převodník
PWM – pulzně šířková modulace
UART – univerzální asynchronní vysílač a přijímač
RX – receive, příjem (název signálu v rozhraní UART)
TX – transmit, transmission, vysílání (název signálu v rozhraní UART)
Vcc – napájecí napětí
GND – uzemnění

Zajímavé odkazy a zdroj

Arduino
https://www.arduino.cc/
http://docs.uart.cz/docs/obsah/
Ohmův a Kirchhoffův zákon
http://uart.cz/30/metoda-smyckovych-proudu/
http://elektross.gjn.cz/elektrina/el_proud/vedeni_proudu/kovy/kirch_zak.html
https://cs.wikipedia.org/wiki/Kirchhoffovy_z%C3%A1kony
Sériová komunikace
http://arduino.cz/arduino-a-processing/

Zapojení LED diod:
http://www.tajned.cz/2015/08/zakladni-zapojeni-led-diod-ii-spojovani/

Ostatní:
http://www.arduino8.cz/category/projekty-s-arduinem/
https://cs.wikipedia.org/wiki/Pull_up_rezistor
https://www.arduino.cc/en/Tutorial/DigitalPins