Ovládání osmi DC motůrků zároveň...

 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ěží.

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