Promotic
WikipediaLinkedInYoutubeTwitterFacebook

Komunikace s mikrokontrolerem Arduino

Arduino je otevřená platforma založená na mikrokontrolerech ATMega od firmy Atmel. Viz www.arduino.cc.
 
Mikrokontroler Arduino má mnoho možností komunikace s počítačem nebo s jinými mikrokontrolery.
 

Protokol Modbus

Pro komunikaci aplikace PROMOTIC s mikrokontrolerem Arduino se jeví jako nejvhodnější použít protokol Modbus.

Jako komunikační rozhraní lze použít (podle možností mikrokontroleru) sériovou linku (Modbus RTU) nebo Ethernet (Modbus TCP).

 
Postup pro Arduino:

- Ze stránek "code.google.com/p/arduino-modbus-slave/" stáhnout knihovnu "arduino-modbus-slave". V této knihovně je i příklad, který pomůže při používání této knihovny.
- Nainstalovat vývojový software pro Arduino ze stránek "www.arduino.cc".
- Spustit software.
- Nastavit komunikační port pro komunikaci s PC (v menu "Nástroje / Port").
- Přidat stáhnutou knihovnu (v menu "Projekt / Include Library / Add .ZIP Library").
- Podle příkladu v knihovně vytvořit projekt pro Arduino.

 
Postup pro PROMOTIC:

Pro tuto komunikaci lze v systému PROMOTIC použít: PmModbusMr - Ovladač pro komunikaci protokolem Modbus Master.

Pro snadné přidání tohoto ovladače do aplikace je vhodné použít:

Komunikace uživatelsky konfigurovaným protokolem

 
Postup pro PROMOTIC:

Pro tuto komunikaci lze v systému PROMOTIC použít: PmChar - Ovladač pro komunikaci uživatelsky konfigurovatelným ASCII/BIN protokolem.

Pro snadné přidání tohoto ovladače do aplikace je vhodné použít:

Programování Arduina

Arduino je možné programovat v jazyce C a C++. Nevyžaduje však praktické znalosti těchto programovacích jazyků.
 
Jednou z hlavních částí každého programu je funkce void setup() {}. Mezi složené závorky této funkce se píše kód, který se provede pouze jednou na začátku programu. To znamená, buď po připojení napájení, zmáčknutí tlačítka restart, nebo nahrání kódu do Arduina.
 
Druhou důležitou funkcí pro chod programu je funkce void loop() {}. Mezi složené závorky se zapisuje kód, který se bude opakovat neustále dokola, až do odpojení napájení.
 
Digitální vstupy a výstupy

Jelikož Arduino je určeno k dalšímu rozšiřování, obsahuje vstupy a výstupy nazývané piny. K těmto pinů se dá vodičem připojit další obvody, čipy, relé, paměti, atd. K práci s těmito piny má Arduino k dispozici jednoduché funkce.

- Funkce pinMode(p1, p2) je nutno volat pro určení zda se má s pinem pracovat jako se vstupem nebo výstupem. Parametr p1 je číslo pinu, parametr p2 určuje, zda se jedná o vstup nebo výstup.
- Funkce digitalWrite(p1, p2) slouží k ovládání výstupu. Parametr p1 je číslo pinu, parametr p2 určuje, zda má do pinu téct proud (HIGH = teče, LOW = neteče).
- Funkce value = digitalRead(p1) slouží ke čtení, zda proud do vstupu teče. Parametr p1 je číslo pinu. Funkce vrací hodnotu: HIGH = teče, LOW = neteče.
 
Analogové vstupy a výstupy

Programování analogových vstupních a výstupních hodnot je trochu komplikovanější a složitější než programování digitálních hodnot. Název "Analogové" hodnoty není totiž zcela přesný, protože se o žádné analogové hodnoty nejedná. Pokud by bylo zapotřebí opravdu použít analogovou hodnotu v rozsahu například 0-5V, musel by se použít externí D/A převodník. Tato funkce totiž na vybraných pinech generuje PWM signál, což je jakási digitální "náhražka" analogového signálu. Ta v praxi funguje tak, že rychle střídá 0 a 5V.

- Funkce value = analogWrite() slouží k nastavení analogové hodnoty. Tuto funkci je možné použít pouze na vybraných pinech označených PWM.
- Funkce analogRead() slouží ke čtení analogových hodnot na vstupních pinech, označených A.
© MICROSYS, spol. s r. o.Tavičská 845/21 703 00 Ostrava-Vítkovice