1 Arduino v prostredí MATLAB
Práca s digitálnymi a analógovými vstupmi a výstupmi
Prostredie MATLAB umožňuje komunikáciu s Arduinom pomocou podporného balíčka. MATLAB nahrá na Arduino komunikačný server, ktorý umožní zapisovať a čítať rôzne periférie. V tomto návode si pozrieme ako môžeme pracovať s digitálnymi a analógovými vstupmi a výstupmi.
Čo budeme potrebovať?
- Arduino MEGA 2560
- USB kábel typu A-B
- bread board (BB-301)
- 2x rezistor 220 Ohm a 1x rezistor 10 kOhm
- 2x LED (napr. červená a modrá)
- tlačidlo
- potenciometer
- prepojovacie drôty
- počítač/notebook s prostredím MATLAB
- MATLAB Support Package for Arduino
Schéma
Zapojte súčiastky podľa uvedenej schémy


Spojenie s Arduinom
Pre spojenie prostredia MATLAB s Arduino doskou potrebujeme vytvoriť do premennej objekt arduino. MATLAB väčšinou dokáže rozpoznať typ a port, na ktorom sa nachádza Arduino. Objektu arduino ich však môžete tiež špecifikovať. Percento v nasledujúcom kóde reprezentuje komentár - riadok, ktorý sa nevykoná.
% vytvorenie objektu a pre spojenie s Arduinom
a=arduino
% alternatívny príkaz pre špecifikáciu dosky a portu
% a=arduino('COM3','MEGA2560')
Digitálny výstup
Digitálny výstup môžeme zapnúť a vypnúť funkciou writeDigitalPin objektu arduino v premennej a. Funkcia potrebuje pin Arduina a logickú 1 (5 Voltov) pre zapnútie výstupu a logickú 0 (0 Voltov), pre jeho vypnutie.
% Zapnutie LED na pine D7
a.writeDigitalPin('D7',1)
% Vypnutie LED na pine D7
% a.writeDigitalPin('D7',0)
Pre blikanie LED môžeme vytvoriť nasledujúci program. Cyklus for 10x zapne a vypne LED na pine D7, pričom medzi blikaniami urobí 0.5s prestávky.
for x=1:10
a.writeDigitalPin('D7',1)
pause(0.5)
a.writeDigitalPin('D7',0)
pause(0.5)
end
Analogový výstup
Arduino nemá analógový výstup v pravom slova zmysle. Vie ho ale vytvárať pomocou PWM na digitálnom výstupe. Analógový výstup môžeme nastaviť funkciou writePWMVoltag objektu arduino v premennej a. Funkcia potrebuje pin Arduina a hodnotu analogového výstupu v rozsahu 0 až 5 Voltov.
% Analogový výstup 5V
a.writePWMVoltage('D9',5)
%% Analogový výstup 2V
a.writePWMVoltage('D9',2)
%% Analogový výstup 0.5V
a.writePWMVoltage('D9',0.5)
Nasledujúci kód postupne rozsvecuje a stmavuje LED s krokom 0.5 Volta.
for x=0:0.5:5
a.writePWMVoltage('D7',x)
pause(0.1)
end
for x=5:-0.5:0
a.writePWMVoltage('D7',x)
pause(0.1)
end
Digitálny vstup
Digitálny vstup môžeme prečítať funkciou readDigitalPin objektu arduino v premennej a. Vyskúšajte nasledujúci príkaz so stlačeným tlačidlom na pine D8 a následne zopakujte s uvoľneným tlačidlom. Čo výpíše MATLAB do prikazového riadku? Jedna hodnota reprezentuje logickú 1 a druhá logickú 0.
% Čítanie digitálneho pinu
a.readDigitalPin("D8")
Analógový vstup
Analógový vstup môžeme prečítať funkciou readVoltage objektu arduino v premennej a. Analógový signál z potenciometra prečítame na pine A0.
% Čítanie analogového pinu
a.readVoltage("A0")
Naučené príkazy môžeme skombinovať v nasledujúcom príklade. Stlačte tlačídlo, pootočte poteciometrom, sledujte čo robia LED a čo sa deje na vašej obrazovke.
tic
% program pobeží 60 sekúnd
while toc<60
% prečítaj digitálny vstup
di=a.readDigitalPin('D8');
% prečítaj analógový vstup
ai=a.readVoltage('A0');
% zapíš na digitálny výstup
a.writeDigitalPin('D9',di);
% zapíš PWM
a.writePWMVoltage('D7',ai);
% výpis na obrazovku
[di ai toc]
end
Zrušenie spojenia s Arduinom
Pre uvoľnenie spojenia s Arduinom potrebujeme zmazať objekt arduino v premennej a. Funkcia clear zmaže všetky premenné z pracovného prostredia, prípadne môžeme priamo špecifikovať konkrétnu premennú. Pred prácou so Simulinkom nezabudnite uvoľniť objekt arduino.
clear
% clear a
