Řadič vlaku Arduino 2 v 1: 4 kroky
Řadič vlaku Arduino 2 v 1: 4 kroky
Anonim
Řadič vlaku Arduino 2 v 1
Řadič vlaku Arduino 2 v 1

Před čtyřiceti lety jsem pro pár přátel navrhl modelovou škrtící klapku založenou na operačním zesilovači a pak asi před čtyřmi lety jsem ji znovu vytvořil pomocí mikrokontroléru PIC. Tento projekt Arduino obnovuje verzi PIC, ale také přidává možnost používat připojení Bluetooth namísto ručních spínačů pro ovládání plynu, brzdy a směru. Zatímco design, který zde uvádím, je určen pro 12voltový model železničního motoru, lze jej snadno upravit pro řadu dalších aplikací pro řízení stejnosměrných motorů.

Krok 1: Modulace šířky pulsu (PWM)

Modulace šířky pulsu (PWM)
Modulace šířky pulsu (PWM)

Pro ty z vás, kteří neznají PWM, to není tak děsivé, jak to zní. Pro naši jednoduchou aplikaci pro řízení motoru to opravdu znamená, že generujeme čtvercovou vlnu o určité frekvenci a poté změníme pracovní cyklus. Pracovní cyklus je definován jako poměr času, kdy je výstup logicky vysoký ve srovnání s periodou průběhu. Na výše uvedeném diagramu to můžete jasně vidět s horním průběhem při 10% pracovním cyklu, středním průběhem při 50% pracovním cyklu a spodním průběhem při 90% pracovním cyklu. Přerušovaná čára překrytá na každém tvaru vlny představuje ekvivalentní stejnosměrné napětí, které vidí motor. Vzhledem k tomu, že Arduino má vestavěnou schopnost PWM, je opravdu velmi jednoduché generovat tento typ řízení stejnosměrného motoru. Další výhodou použití PWM je, že pomáhá udržovat motor před spouštěním, které může nastat při použití přímého stejnosměrného proudu. Jednou nevýhodou PWM je, že někdy je z frekvence motoru PWM slyšitelný hluk z motoru.

Krok 2: Hardware

Hardware
Hardware
Hardware
Hardware
Hardware
Hardware

První obrázek ukazuje připojení Arduino pro přepínače a modul ovladače motoru LM298. Arduino má slabé výsuvné odpory, takže pro přepínače nejsou potřeba žádné stahovací odpory. Přepínač směru je jednoduchý přepínač SPST (jednopólový jednoházkový). Spínače škrticí klapky a brzdy jsou zobrazeny jako normálně otevřená, dočasná kontaktní tlačítka.

Druhý obrázek ukazuje připojení Arduino pro modul Bluetooth a modul ovladače motoru LM298. Výstup Bluetooth TXD se připojuje přímo k sériovému vstupu Arduino RX.

Třetí obrázek je dvojitý H-můstkový modul L298N. Modul LM298 má integrovaný 5voltový regulátor, který lze aktivovat propojkou. Potřebujeme +5 voltů pro Arduino a Bluetooth, ale chceme +12 voltů k pohonu motoru. V tomto případě přivedeme +12 voltů na vstup „ +12V napájení“L298N a ponecháme propojku „5V povolit“na místě. To umožňuje, aby 5voltový regulátor vystupoval na připojení „+5 napájení“na modulu. Připojte to k Arduinu a Bluetooth. Nezapomeňte připojit zemnicí vodiče pro vstup +12 a výstup +5 k modulu „napájení GND“.

Chceme, aby se výstupní napětí motoru lišilo v závislosti na PWM generovaném Arduinem, místo aby byl plně zapnutý nebo úplně vypnutý. Za tímto účelem odstraníme propojky z „ENA“a „ENB“a připojíme náš výstup Arduino PWM k „ENA“na modulu. Pamatujte, že skutečný aktivační pin je ten, který je nejblíže okraji desky (vedle pinů „vstupu“). Zadní kolík pro každé povolení je +5 voltů, takže se chceme ujistit, že se k tomu nepřipojíme.

Piny „IN1“a „IN2“na modulu jsou připojeny k příslušným pinům Arduino. Tyto kolíky ovládají směr motoru a ano, existuje dobrý důvod nechat je ovládat Arduino namísto jednoduchého připojení přepínače k modulu. Uvidíme proč v diskuzi o softwaru.

Krok 3: Modul Bluetooth

Modul Bluetooth
Modul Bluetooth

Zde zobrazený obrázek je typický pro dostupné moduly Bluetooth. Když hledáte nějaký ke koupi, můžete vyhledat výrazy „HC-05“a HC-06”. Rozdíly mezi těmito dvěma jsou ve firmwaru a obvykle v počtu pinů na desce. Výše uvedený obrázek je o modulu HC-06 a je dodáván se zjednodušeným firmwarem, který umožňuje pouze velmi základní konfiguraci. Je také nastaven jako zařízení Bluetooth pouze „Slave“. Jednoduše řečeno to znamená, že může reagovat pouze na příkazy ze zařízení „Master“a nemůže vydávat příkazy samostatně. Modul HC-05 má více konfiguračních možností a lze jej nastavit jako zařízení „Master“nebo „Slave“. HC-05 má obvykle šest kolíků místo čtyř výše uvedených pro HC-06. Stavový pin není ve skutečnosti důležitý, ale pokud chcete provést jakoukoli konfiguraci, je vyžadován klíč PIN (někdy je označován jinými názvy, například „EN“). Moduly obecně nepotřebují žádnou konfiguraci, pokud jste v pořádku s výchozí přenosovou rychlostí 9600 a nezáleží vám na tom, abyste modulu dali konkrétní název. Mám několik projektů, kde je používám, takže je rád odpovídajícím způsobem pojmenuji.

Konfigurace modulů Bluetooth vyžaduje, abyste si koupili nebo vytvořili rozhraní pro sériový port RS-232 nebo USB port. V tomto příspěvku nebudu popisovat, jak jej vytvořit, ale měli byste najít informace na webu. Nebo si jen kupte rozhraní. Konfigurační příkazy používají AT příkazy podobné těm, které se používaly v dávných dobách s telefonními modemy. Zde jsem připojil uživatelskou příručku, která obsahuje příkazy AT pro každý typ modulu. Jedna věc, kterou je třeba poznamenat, je, že HC-06 vyžaduje příkazy UPPERCASE a řetězec příkazů se musí dokončit do 1 sekundy. To znamená, že některé delší řetězce pro věci, jako je změna přenosové rychlosti, bude nutné vyjmout a vložit do terminálového programu, nebo budete muset nastavit textové soubory pro odesílání. Požadavek UPPERCASE je pouze v případě, že se pokoušíte odeslat konfigurační příkazy. Běžný komunikační režim může přijmout libovolných 8 bitů dat.

Krok 4: Software

Software je velmi jednoduchý jak pro manuální verzi, tak pro verzi Bluetooth. Chcete -li vybrat verzi Bluetooth, jednoduše odkomentujte prohlášení „#define BT_Ctrl“.

Když jsem psal kód PIC, experimentoval jsem s frekvencí PWM a nakonec jsem se usadil na 500 Hz. Zjistil jsem, že pokud je frekvence příliš vysoká, pak modul LM298N nebyl schopen reagovat dostatečně rychle na pulsy. To znamenalo, že výstup napětí nebyl lineární a mohl trvat velké skoky. Arduino má integrované příkazy PWM, ale umožňují pouze měnit pracovní cyklus, nikoli frekvenci. Naštěstí je frekvence asi 490 Hz, takže je dostatečně blízko k 500 Hz, které jsem použil na PIC.

Jednou z „funkcí“škrticích ventilů je pocit hybnosti pro zrychlení a brzdění, který simuluje fungování skutečného vlaku. K tomu je do smyčky pro ruční verzi softwaru vloženo jednoduché časové zpoždění. Při zobrazené hodnotě trvá přechod z 0 na 12 voltů nebo z 12 voltů zpět na nulu přibližně 13 sekund. Zpoždění lze snadno upravit na delší nebo kratší dobu. Jediným případem, kdy hybnost není účinná, je změna přepínače směru. Pro účely ochrany je pracovní cyklus PWM okamžitě nastaven na 0%, kdykoli je tento přepínač změněn. Díky tomu se přepínač směru zdvojnásobí jako nouzová brzda.

Aby byla zajištěna okamžitá manipulace se směrovým přepínačem, vložil jsem jeho kód do obsluhy přerušení. To nám také umožňuje použít funkci „přerušení při změně“, takže nezáleží na tom, zda je změna z nízké na vysokou nebo vysokou na nízkou.

Verze softwaru Bluetooth používá jednopísmenné příkazy k zahájení funkcí vpřed, vzad, brzdění a škrcení. Přijaté příkazy ve skutečnosti nahrazují ruční přepínače, ale způsobují stejné reakce. Aplikace, kterou používám pro ovládání Bluetooth, se od Next Prototypes nazývá „Bluetooth Serial Controller“. Umožňuje konfigurovat virtuální klávesnici a pro každou klávesu nastavit vlastní příkazové řetězce a názvy. Umožňuje také nastavit frekvenci opakování, takže tlačítka Brake a Throttle nastavím na 50 ms, což poskytne asi 14 sekund hybnosti. Vypnul jsem funkci opakování pro tlačítka Vpřed a Zpět.

To je pro tento příspěvek vše. Podívejte se na mé další Instructables. Pokud vás zajímají projekty mikrokontrolérů PIC, podívejte se na mé webové stránky www.boomerrules.wordpress.com