Arduino v prostredí Simulink
Práca s digitálnymi a analógovými vstupmi a výstupmi
V tomto návode naviažeme na poznatky z predošlých návodov. Povieme si, ako môžeme v Simulinku pracovať s digitálnymi a analógovými vstupmi a výstupmi. Ukážeme využitie škálovania pre úpravu vstupov a výstupov. Na záver vytvoríme opäť samostatnú aplikáciu pre Arduino.
Č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
- Powerbanka
- Simulink Support Package for Arduino
Schéma
Zapojte súčiastky podľa uvedenej schémy


Zostrojenie modelu
Model zostrojíme z nasledujúcich blokov
- Simulink Support Packlage for Arduino Hardware - Common - Analog Input
- Simulink Support Packlage for Arduino Hardware - Common - Digital Input
- Simulink Support Packlage for Arduino Hardware - Common - Digital Output
- Simulink Support Packlage for Arduino Hardware - Common - PWM
- Simulink - Sinks - Display
- Simulink - Sinks - Scope
- Simulink - Math Operation - Gain
Pomocou uvedených blokov poskladajte v Simulinku model podľa obrázku. Model si nezabudnite priebežne ukladať.

Nastavujeme parametre
Schému sme rozdelil na 2 logické časti. Vrchná sa týka digitálnych signálov, spodná analógových. Jedná sa samozrejme iba o usporiadanie blokov. Pustime sa najskôr do nastavení blokov digitálnej vetvy.
- Digital Input - Pin number=8, Sample time=0.01
- Digital Output - Pin number=7
- Scope - Settings - Y-Axis - Y-Axis limits - [-1 2]
Nastavenie blokov analógovej vetvy
- Analog Input - Pin number=0, Sample time=0.01
- Gain - Gain=1/1023
- Gain1 - Gain=255
- PWM - Pin number=9
- Scope - Settings - Y-Axis - Y-Axis limits - [0 255]
Pristavme sa na chvíľku pri nastavení oboch blokov Gain. Výstup z bloku Analog Input je pre Arduino Mega 2560 v rozsahu 0-1023. Ak chceme tento rozsah dostať na rozsah 0-1 (normovať), tak potrebujeme signál vynásobiť 1/1023. Ďalší blok Gain súvisí s výstupom PWM. Ten požaduje pre Arduino Mega 2560 rozsah 0-255. Aby sme interval 0-1 dostali na rozsah 0-255 musíme signál vynásobiť konštantnou 255. Týmto škálovaním transformujeme rozsah 0-1023 na rozsah 0-255.
Spustenie simulácie
Nastavte simuláciu tak, aby čas simulácie bol nekonečno (inf). Pripojte Arduino k počítaču a spustite simuláciu pomocou tlačidla Monitor & Tune. To, že simulácia beží môžete sledovať v dolnom stavovom riadku, kde beží čas. Skúste pootočiť potenciometrom a sledujte hodnoty v bloku Display. Hodnoty by sa mali meniť od 0 do 255. Stlačte tlačidlo a pozorujte čo sa deje na bloku Display1. Mala by sa meniť hodnota z 0 na 1. Kliknite na Scope1 v analógovej vetve a pootočte potenciometrom. Graf bude ukazovať priebeh. Obdobne bude pracovať aj Scope v digitálnej vetve. Tam bude graf zobrazovať hodnotu 0 alebo 1. Práve táto možnosť zobrazovania dát v reálnom čase je veľmi užitočná pri vývoji a ladení riadiacich algoritmov.



Ak je program vyladený, opäť ho môžeme nahrať priamo do Arduina a vytvoriť samostatnú aplikáciu pre Arduino. Kliknete na ikonu Build, Deploy & Start a overte správanie.
