Popis vodičů pro Arduino

Čas čtení: 6 min.

Minipočítače Arduino nabízejí svým uživatelům množství výstupů, které mohou využít, a právě to je činí ideálními pro mnoho různých a zajímavých projektů. Tento článek obsahuje popis a funkce jednotlivých pinů desky Arduino UNO R3 založené na 8-bitovém mikrokontroléru AVR ATmega328P.

Arduino - přehled vodičů

Většina modelů Arduino, včetně nejoblíbenějšího modelu Arduino UNO R3, je vybavena 8bitovým mikrokontrolérem AVR ATmega328P. Dráhy na desce plošných spojů byly vedeny tak, aby tvořily spojení mezi vodiči mikrokontroléru a vývodovými pásky, což nám umožňuje připojit desku Arduino k externím zařízením, mezi něž patří moduly Arduino Shield (např. komunikační moduly) a také jednotlivé součástky, jako jsou LED diody, tranzistory, senzory, potenciometry a další. Rozložení pinů desky Arduino UNO R3, obsahuje 14 digitálních pinů, šest analogových pinů, dále napájecí konektory, konektor USB a konektor pro volitelný externí programátor USB-ASP. Vývody desky Arduino UNO R3 jsou znázorněny na obrázku 1.

Obr. 1 – rozložení pinů na originální desce Arduino UNO R3

Arduino - napájení

Stejně jako u jiných elektronických zařízení je pro fungování desky Arduino nutné napájecí napětí. Arduino UNO R3 lze napájet třemi způsoby.

Prvním způsobem je připojení externího síťového adaptéru do 5,5mm/2,1mm zásuvky. Doporučené výstupní napětí síťového adaptéru je v rozmezí 7 až 12 V DC. Napájecí napětí ve stejném rozsahu lze také přivést ze zdroje do kontaktních desek nebo jiného podobného modulu jejich připojením k vývodu “VIN”. Napájení lze také zajistit přes vestavěný konektor USB typu B – buď když je Arduino připojeno k hostitelskému počítači, nebo je napájeno z nabíječky chytrého telefonu.

Typ napájení je třeba zvolit podle požadavků na napájení aplikace, kterou vytváříte na desce Arduino. Vývod “VIN” je připojen k plusové straně napájecího zdroje přes usměrňovací diodu, která zabraňuje poškození modulu v případě připojení napětí opačné polarity. Naproti tomu napájecí zdroj USB poskytuje maximální proudovou kapacitu 500 mA. Piny Arduino mohou pracovat s napětím 3,3 V nebo 5,0 V (piny “3V3”, resp. “5V”) podle specifikace externího hardwaru.

Bez ohledu na zvolený zdroj napájení se obvod musí uzavřít přes GND – na desce Arduino je pět pinů “GND”, které jsou vzájemně galvanicky propojeny. Naproti tomu pin ‘RESET’ po zkratování na GND (např. pomocí tlačítka na desce) způsobí dočasné odpojení napájení a restartování Arduino. Na desce najdete také pin “IOREF”, na který se přivádí referenční napětí, s nímž má mikrokontrolér pracovat.

Arduino - analogové vývody

Analogové piny na Arduino (‘A0’ – ‘A5’) jsou přes multiplexor připojeny ke vstupu analogově-digitálního převodníku, který je nedílnou součástí mikrokontroléru ATmega328P. Analogově-digitální převodník (ADC) umožňuje převádět napětí (analogový signál) v rozsahu 0 V až 5 V na digitální formu vyjádřenou v bitech. Rozlišení ADC v Arduino je 10 bitů. To znamená, že počet úrovní kvantifikace napětí na vstupu převodníku je 1024 (nabývá hodnot 0-1023) a napětí je měřeno s rozlišením 4,89 mV.

Rozlišení můžeme také rozšířit přivedením napětí nižšího než 5 V na pin „AREF“, na který by mělo být přivedeno referenční napětí, vůči němuž převodník měří napětí na vstupech, které jsou do něj přiváděny. Vzorkovací frekvence ADC je na druhou stranu přibližně 9600 Hz, což znamená, že na vstup převodníku můžeme přivádět signál, který bude bezchybně převeden do digitální podoby, dokud nejvyšší frekvence obsažená v jeho spektru nepřesáhne polovinu vzorkovací frekvence ADC v Arduinu, tj. nejvýše 4800 Hz. Typické aplikace pro ADC a Arduino, zahrnují analogové senzory, potenciometry, stejně jako ovládání hlasových příkazů přes mikrofon (VoIP), které mohou být odeslány na dálku do jiného zařízení přes internet.

Arduino - digitální piny

Arduino Uno má 14 digitálních pinů (“D0” – “D13”), které lze konfigurovat jako vstupy nebo výstupy, přičemž digitální pin “D13” je připojen k vestavěné LED diodě, která umožňuje kontrolovat správnou funkci desky, např. pomocí krátkého programového kódu, který řídí cyklické blikání LED diody. Maximální proudová kapacita jednoho digitálního pinu je 20 mA. Digitální piny pracují v logických stavech, které představují bitovou hodnotu – nízký stav představuje nulový bit a vysoký stav představuje jedničkový bit.

Když jsou digitální piny Arduina nastaveny jako výstupy, je napětí pro nízký stav 0 V a pro vysoký stav 5 V. Na druhou stranu, pokud jsou digitální piny nastaveny jako vstupy přijímající signály z externích zařízení, jsou jednotlivé logické úrovně definovány rozsahy napětí. Arduino tedy interpretuje vstupní napětí mezi 0,0 V a 0,8 V jako nízký stav (“0”) a mezi 2,0 V a 5,0 V jako vysoký stav (“1”). Naproti tomu interval 0,8V – 2,0V představuje zakázaný stav, ve kterém nesmí dojít k žádné změně logického stavu.

Arduino - digitální piny s funkcí generování PWM průběhů

Digitální piny „D3“, „D5“, „D6“, D9“, ‚D10‘ a ‚D11‘ mohou kromě své standardní funkce sloužit ke generování PWM vlny.
(obdélníkový průběh s proměnným činitelem plnění). Ve výchozím nastavení je frekvence PWM signálu v Arduino nastavena na přibližně 490 Hz. Naproti tomu faktor vyplnění určuje, po jakou část trvání jedné periody se na digitálním pinu v režimu PWM objeví nízký stav, a určuje průměrnou hodnotu signálu za celou periodu.

Pokud je například faktor plnění signálu PWM generovaného na vývodu „D3“ 40 %, pak při špičkové hodnotě napětí 5 V bude průměrná hodnota napětí takového signálu za celou periodu 2 V. Čím vyšší je tedy hodnota plnicího faktoru, tím vyšší je celoperiodová průměrná hodnota průběhu PWM. Typické aplikace pro signál PWM na Arduino jsou regulátory otáček elektromotorů, regulátory jasu LED osvětlení a hudební syntezátory.

Arduino - komunikační piny - rozhraní UART

Pro komunikaci s externími zařízeními používá Arduino několik různých komunikačních protokolů. Jedním z nich je protokol UART (Universal Asynchronous Receiver-Transmitter). Jedná se o sériový protokol, který je realizován pomocí digitálních pinů “D0” (“RX” – přijímač – přijímá signál z externího zařízení) a “D1” (“TX” – vysílač – vysílá signál do externího zařízení). Toto rozhraní umožňuje komunikaci s externími moduly i s počítačem – připojuje se k vývodům pro port USB.

Arduino - komunikační piny - rozhraní SPI

Dalším rozhraním, které Arduino používá ke komunikaci s externími zařízeními, je SPI (Serial Peripheral Interface) – jedná se o sériový protokol, který umožňuje mikrokontroléru komunikovat s jedním a více zařízeními a také umožňuje synchronní komunikaci s jiným mikrokontrolérem, a to v topologii master-slave, kdy master je master a slave je slave, přičemž ve standardní topologii je master mikrokontrolér. Na čipu Arduino UNO R3 jsou piny rozhraní SPI následující:

  • SS (Slave Select) – pin “D10”. – volba adresy podřízeného zařízení, se kterým má mikrokontrolér komunikovat;
  • SCK (Serial Clock) – pin “D13”. – hodinový signál, který synchronizuje přenos dat v obou směrech;
  • MISO (Master Input Slave Output) – pin “D12” – linka, která posílá informace z podřízených zařízení do řídicího zařízení.
  • MOSI (Master Output Slave Input) – pin “D11”. – linka, která posílá informace z masteru do slave zařízení.

Arduino - komunikační piny - rozhraní I2C

Arduino je také vybaveno sběrnicí I2C, která umožňuje komunikaci mezi dvěma součástkami prostřednictvím jediné desky plošných spojů. U desky UNO R3 je komunikace přes I2C realizována prostřednictvím dvou pinů:

  • SDA (Series Data) – pin pro přenos dat na sběrnici I2C;
  • SCL (Serial Clock) – hodinový signál, který synchronizuje přenos dat po sběrnici I2Cv obou směrech.

Každé externí zařízení komunikující s Arduinem prostřednictvím sběrnice I2Cmá svou vlastní jedinečnou adresu (např. 0x23 v šestnáctkové soustavě) a na stejnou sběrnici může být připojeno až 255 zařízení současně. Na zařízení Arduino UNO R3 jsou vývody “SDA” a “SCL” umístěny na analogových vývodech “A4” a “A5”.

Arduino - přerušovací piny

V mikrokontrolérech, včetně těch, jako je ATmega238P zabudovaný v Arduinu, lze spustit proceduru externího přerušení. Externí přerušení je systémové přerušení, které je pod vlivem přerušení mimo mikrokontrolér iniciováno automaticky z párovacího zařízení nebo ručně od uživatele.

Typickým, nejjednodušším příkladem použití Arduino je počítání počtu pulzů a čtení frekvence z externího obdélníkového zdroje signálu nebo ukončení rutiny přerušení, aby bylo možné pokračovat v normálním toku programu nahraného do paměti mikrokontroléru. Na Arduinu UNO R3 jsou pod digitálními piny “D2” a “D3” k dispozici piny přerušení “INT0” a “INT1” a aktivaci a deaktivaci každého přerušení lze v programu nastavit individuálně pro typ změny logické úrovně a zahrnuje spouštění sestupnou a vzestupnou hranou i spouštění v nízkém a vysokém stavu.

Konektor ICSP v Arduino UNO R3

ICSP (In-Circuit Serial Programming) je šestipinový konektor pro připojení externího programátoru USB-ASP. Toto řešení bylo implementováno pro uživatele, kteří dávají přednost “tradičnímu” programování v jazycích C a Assembler a chtějí ušetřit dalších 5 kB paměti mikrokontroléru, které zabírá zavaděč Arduino (software zavaděče nutný pro spouštění programů napsaných s překryvem syntaxe Arduino v jazycích C/C++). Vývody ICSP plní následující funkce:

  • SCK (Serial Clock) – hodinový signál, který synchronizuje přenos dat mezi pamětí mikrokontroléru a externím počítačem;
  • MISO (Master Input Slave Output) – linka, která posílá informace z podřízených zařízení do masteru (externího počítače).
  • MOSI (Master Output Slave Input) – linka, která posílá informace z masteru (externího počítače) do slave zařízení.
  • VCC – 5V pomocné napájecí vedení;
  • GND – pomocné uzemnění napájení;
  • RESET – reset mikrokontroléru.

Arduino - co dalšího je třeba vědět o vodičích v Arduino?

Deska Arduino UNO R3 je v současnosti jednou z nejoblíbenějších desek pro prototypování. Zde uvedený popis vodičů se týká jejich základní funkčnosti. V závislosti na specifikách cílové aplikace, včetně specializovaných knihoven podporujících specifický externí hardware, lze jejich funkční rozsah odpovídajícím způsobem rozšířit v pokročilejším pohledu.

Při výběru desky Arduino pro náš projekt je důležité si uvědomit její omezení a maximální možnosti, ale také skutečnost, že pomocí správných triků a dalšího hardwaru lze možnosti Arduino dále rozšířit, např. multiplexováním pinů se naše vývody na desce výrazně rozšíří a umožní nám připojit například více ovládacích tlačítek – opravdová lahůdka pro nadšence počítačů a hudebních klávesnic!

Jak hodnotíte tento článek na blogu?

Klikněte na hvězdičku a ohodnoťte!

Průměrné hodnocení 4.7 / 5. Počet hlasů 17

Zatím nejsou žádné hlasy! Buďte první, kdo ohodnotí tento článek.

Sdílet:

Picture of Maciej Figiel

Maciej Figiel

Je všestranný a rád přijímá výzvy, protože věří, že je to nejrychlejší způsob, jak se rozvíjet. Oceňuje kontakt s přírodou a aktivní odpočinek. Vášnivě se zajímá o automobily a nové technologie.

Viz více:

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *

Z důvodu bezpečnosti je nutné používat službu reCAPTCHA společnosti Google, která podléhá zásadám ochrany osobních údajů a podmínkám používání společnosti Google. S těmito podmínkami souhlasím..