_@¡ použijte menu „FILTROVAT TÉMA...“ pro výběr
Jak ovládat osm motůrků zároveň
Zadání
Je připojených 8 stejnosměrných motorů.
Pro každý motor chceme mít možnost přehledně nastavit následující sekvenci:
čekej
pohybuj se nastavenou dobu nastaveným směrem
čekej
pohybuj se nastavenou dobu nastaveným směrem
opakuj sekvenci
Potřebujeme nějakou možnost kontroly, aby bylo vidět pro všechny motory najednou, která část sekvence právě běží.
K čemu to slouží?
Zapnutí
Při zapnutí si načte nastavení z vnitřní paměti EEPROM. Všechna nastavení rychlostí, časů, směrů si pamatuje.
Po zapnutí přepne na zobrazení průběhů.
Pokud minutu nikdo nesáhne na tlačítko, vypne podsvícení displeje.
Stisk jakéhokoliv tlačítka displej rozsvítí.
Ovládání (šipky)
má jen JEDNO ovládací tlačítko a čtyři směrové šipky
RST = reset - resetuje celý systém
Nastavení - SELECT
SELECT dlouhý stisk - vstup do nastavení
a každý další stisk SELECT si přepíná motor, který chceme nastavovat
motor 0 až 7 pořád v cyklu
LEFT, RIGHT - pohyb po jednotlivých položkách - bliká tam čtveratý kurzor
UP, DOWN - nastavení hodnoty - je to v cyklu, takže při 0 DOWN nastaví 99 a při 99 UP nastaví 0.
opakuje dokola sekvenci
pro motor číslo čekej rychlost směr doba běhu
čekej rychlost směr doba běhu
– časy jsou 0-99 sekund
– rychlost jsou %, kde 0 je velmi pomalu a 99 je maximální rychlost
– směr má tři možnosti tam < zpět > stojí –
např. když má motor jet pořád bez pauzy jedním směrem naplno, tak tam bude něco jako
čekej rychlost směr doba běhu
0s 99% > 10s
0s 99% > 0
při nastavování se změny dějí hned a stisk
SELECT uloží nastavení a přesune se na nastavení dalšího motoru
Když deset vteřin není v nastavení stisknuta žádná klávesa
—- přejde na zobrazení průběhu
ODPOJENÍ MOTORU - pro motory, které nejsou připojeny
KDYŽ nastavím obě délky času běhu na nulu 0s
tak je motor odpojen, neřídí se a nezobrazuje se v zobrazení průběh
Zobrazení průběhů
Tohle se zobrazí hned po zapnutí - zobrazuje průběhy toho, co se zrovna děje a dlouhý stisk SELECT přepne do nastavení parametrů
Pokud jsou všechny motory odpojeny (délka běhu 0s), tak to vypíše, že nic neběží
Příklad nastavení - motor 2 má toto nastavení a ostatní motory jsou odpojeny
takže pak v zobrazení průběhů to postupně vypadá takto:
první sekvence - motor strojí a čeká - běží odpočet
čeká, zbývá 11 vteřin
až doběhne do 0 je pořád sekvence první (1 tečka) a ukáže směr pohybu nebo – pokud motor má stát
běží, zbývá 7 vteřin
až doběhne počitadlo sekund délky prvního běhu do nuly,
druhá sekvence - motor stojí a čeká
čeká, zbývají 5 vteřiny
až doběhne do nuly,
pokračuje další krok sekvence dvě (dvě tečky)
odpočet doby běhu motoru
běží, zbývá 9 vteřin
až doběhne do nuly druhá sekvence,
vrací se na začátek a zase opakuje od začátku - jedna tečka - dvě tečky v cyklu
Příklad je uveden pouze s jedním motorem proto, že pro osm motorů zároveň zobrazuje tohle zároveň pro všechny motory, co se kde děje (aby se to dalo nějak rozumně ladit) a displej je plný - vždy dva a dva znaky pod sebou pro jeden motor
Pokud minutu nikdo nesáhne na tlačítko, vypne podsvícení displeje.
Stisk jakéhokoliv tlačítka displej rozsvítí.
Reálný náhled toho průběhu zobrazení - vždycky po dvou znacích pod sebou
a ano, je to solidní bordýlek
a to je celé, asi přidám ještě použitý modul na řízení motorů
Modul pro řízení motoru
na IN jsou připojeny digitální piny a podle nastavení řídí směr
na EN je připojen PWM pin, který umí řídit rychlost motoru - pokud by měl motor jet pouze naplno, nemusí být připojeno a místo toho se tam dá propojka
L298N
řízení jednoho krokové motoru
nebo dvou stejnosměrných motorů (náš případ)
Držák na motor pro LEGO
silný motor s převodovkou
JGB37 320 otáček / min
napětí 12V
držák pro motor kompatibilní s LEGO
https://www.thingiverse.com/thing:5715931
Správné napětí pro motory!
motory s převodovkou, které máme vybrané, silné
jsou na 12V, takže přímo ze zdroje 12V připojím +12V na modulu řízení
Pokud bychom chtěli řídit malé žluté motůrky, které jsou jen na 6V bude potřeba použít snižující měnič.
Takový step-down / snižující měnič bude použitý i pro napájení Arduino Mega, které to celé řídí - ono teoreticky umi jet na 12V, má svůj měnič v sobě, ale protože je to čínský klon, a ty vždy krmíme pouze 7.3 až 7.5 volty. Pak to netopí a vydrží.
Zapojení pinů
použitý klon Arduino MEGA 2560
LCD shield (s klávesami)
LCD shield s klávesami má piny 2,3,11,12,13 vyvedené nahoře,
je nutné napájet kousek lišty
Zadrátování bedny
Kompletní zdrojový kód
Pro Arduino Mega 2560, stačí vložit do Arduino IDE a zkompilovat a nahrát
používá pouze standardní knihovny, které jsou vždy k dispozici
viz rizeni8xmotor.ino směřuje na:
https://docs.google.com/document/d/1qQYbHK5hOYE1Phpi1sDHe5QA3aBLsGm9bgkhj8Z2mQg/edit?usp=sharing