Převodník / programátor USB-UART CP2102

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

Další podobné články