Převodník USB / UART je doplněk pro Arduino. Tento programátor obsahuje čip CP2102, který obstarává samotný převod z USB na signály sériové linky. Jak si můžete všimnout na obrázku, naproti USB konektoru se na desce nachází hlavních 6 pinů a po stranách dalších 8 pinů. Pro běžné programování Arduino desek nám ale bude stačit hlavních 6, respektive pouze 5 pinů. Pro napájení programovaného modulu si můžeme vybrat mezi napětím 3,3 a 5 V.
Pro úspěšné propojení programátoru CP2102 a Arduino Mini desky stačí zapojit 5 vodičů. Propojíme piny DTR, piny RXD a TXD do kříže, poté vybereme napětí pro naši desku, a nakonec propojíme zemnící piny GND. Dalších 8 pinů po stranách lze využít pro jiné komplikovanější desky či zapojení, ale pro náš příklad nejsou důležité.
Pro otestování správné komunikace mezi programátorem a Arduinem jsem vytvořil jednoduchý ukázkový kód, který pracuje se sériovou linkou a vestavěnou LED diodou. Na jeho začátku vytvoříme proměnné pro uložení stavu LED diody a načtení znaku ze sériové linky.
V podprogramu setup provedeme zahájení komunikace po sériové lince a nastavíme vestavěnou LED diodu jako výstup. Jak si můžete všimnout, nemusíme dále řešit, na jakém pinu je připojena LED dioda, protože využíváme toho, že je tato informace uložena přímo v IDE pro podporované desky.
V nekonečné smyčce loop v první kroku kontrolujeme, jestli není k dispozici nějaký znak na sériové lince. Pokud ano, provedeme jeho načtení do proměnné a poté vytištění po sériové lince. V dalším kroku zapíšeme na pin LED diody aktuální stav. Tento stav je poté znegován pomocí znaku „!“ a po nastavené pauze po dobu jedné sekundy se program opakuje.
// Test LED a sériové linky // uložení stavu LED diody a znaku bool stav = 0; char znak; void setup() { // zahájení komunikace po sériové lince // rychlostí 9600 baud Serial.begin(9600); // nastavení LED pinu jako výstupu, // LED_BUILTIN je odkaz na vestavěnou LED, // tento odkaz je uložený v IDE // pro jednotlivé desky pinMode(LED_BUILTIN, OUTPUT); } void loop() { // pokud je načtený nějaký znak, // vytiskneme ho po sériové lince while (Serial.available()) { znak = Serial.read(); Serial.print(znak); } // zapíšeme na LED pin aktuální stav digitalWrite(LED_BUILTIN, stav); // pro další běh smyčky uložíme pomocí // "!" do proměnné opačný stav stav = !stav; // pauza 1000 ms delay(1000); }
Nyní pro nahrání musíme správně nastavit IDE. První věc je druh desky, který zvolíme v nabídce Nástroje-Vývojová deska-„Arduino Pro or Pro Mini“. Po zvolení desky se nám v nabídce Nástroje zobrazí ještě nová volba Procesor, kde si vybereme typ naší Arduino Mini desky – v mém případě se jedná o variantu „3.3V, 8 MHz“.
Pokud nevíte, jaký krystal (8 nebo 16) máte na desce, můžete jako první zvolit 16 MHz a po nahrání programu si ověřit na blikání LED diody, jestli odpovídá nastavený časový interval. A pokud Vám cykly svícení budou trvat dvojnásobný čas, máte na desce 8 MHz krystal.
Tento programátor se často používá s deskami Arduino Mini, které neobsahují vlastní USB převodník. Pokud tedy chceme použít Arduino v takovém projektu, kde nebudeme využívat časté připojení do počítače pro komunikaci či nahrávání nových programů, můžeme využít Arduino Mini. Může se tedy jednat například o bezdrátové čidlo, meteostanici či jiné zařízení s vlastním zobrazovačem dat. Spojenou výhodou je pak menší cena a také menší spotřeba Arduino desky díky absenci převodníku.
Seznam použitých komponent:
https://dratek.cz/arduino/1158-prevodnik-6pin-usb-ttl-uart-reset-pin-1449940303.html
https://dratek.cz/arduino/880-arduino-mini-atmega328-5v-16m-1420492039.html