Arduino - jednoduché aplikace pro malá kolejiště.

Schémata, zapojení, návody, dotazy a postupy k využití v železničním modelářství.

Moderátoři: Michal Dalecký, Jarda H., Rudolf, 123.marek

Re: Arduino - jednoduché aplikace pro malá kolejiště.

Příspěvekod sidlo » čtv 18 říj, 2018 6:33 am

Každá deska má svoje referenční schema. Např. UNO má schema https://content.arduino.cc/assets/UNO-TH_Rev3e_sch.pdf. Z toho se dá vyčíst na co je který pin připojen. Podle tohoto schematu jsou všechny piny 5V propojeny. Zároveň je tam nakresleno, že 5 V z USB je odděleno od 5V za stabilizátorem.
Uživatelský avatar
sidlo
 
Příspěvky: 2164
Registrován: ned 27 dub, 2014 7:32 am

Re: Arduino - jednoduché aplikace pro malá kolejiště.

Příspěvekod Kajinek11 » ned 28 říj, 2018 8:40 pm

Opět se ozývám s dalším postupem zapojování a programování Arduina. Díky vašim radám, jsem Arduino Mega úspěšně zapojil do kolejiště a běží. Všechny komponenty, čidla, spínače, relátka, vše reaguje. Až na 4 zaměněné drátky vše běželo od počátku.

Co mě ale nedošlo, bylo, že v programu mám hodně krát použitou funkci "delay", která jak jsem zjistil, zablokuje na dobu čekání celý program! A TO JE PROBLÉM!

Chtěl jsem přes tuto funkci blikat diodama. To bych ještě oželel. Ale chtěl jsem přes funkci delay podržet relátka odjezdu ze SN po nějakou dobu (10s),ale je nemožné aby se mi vše ostatní zablokovalo.. Bohužel nemám relátko čím shodit.

Existuje nějaký jiný příkaz, který by blokoval jen část programu a ne celý?
TT segmenty, DCC - DR5000 + 2x MM, IV. epocha.
Kajinek11
 
Příspěvky: 496
Registrován: stř 07 pro, 2011 11:12 pm
Bydliště: Rumburk

Re: Arduino - jednoduché aplikace pro malá kolejiště.

Příspěvekod JOHNZ » ned 28 říj, 2018 8:47 pm

Kajinek: Cez delay sa to naozaj nerobí. Existuje mnoho spôsobov ako to riešiť, a to podľa toho aká presnosť sa požaduje a ako je vybavený mikroprocesor. Môže sa použiť Timer, môžem si do pamäte uložiť okamih, kedy som relé zapol a potom sa do tej pamäte periodicky dívať a po uplynutí určenej doby relé zasa vypnúť, atď.
JOHNZ
 
Příspěvky: 82
Registrován: sob 05 led, 2008 9:24 pm

Re: Arduino - jednoduché aplikace pro malá kolejiště.

Příspěvekod sidlo » pon 29 říj, 2018 5:56 am

Článků o tom proč nepoužít delay, a jak to udělat, je hodně
https://arduino.cz/arduino-zaklady-blikani-bez-funkce-delay/
https://www.electronicshub.org/arduino-millis-tutorial/
https://dzone.com/articles/arduino-using-millis-instead-of-delay

Prakticky žádný program se bez funkce čekání neobejde. Postupuji takto:
Výstup je v nějakém stavu - ZAPNUTO, VYPNUTO, ZAPNUTO-ČEKÁ-NA_VYPNUTÍ - a stav je uložen v proměnné.
Pokud je ve stavu ZAPNUTO-ČEKÁ-NA_VYPNUTÍ tak je v proměnné OKAMŽIK-ZAPNUTÍ. V jiné proměnné je DOBA-SEPNUTÍ.
Z hlavní smyčky loop volám obsluhující proceduru, která kontroluje stav, okamžik zapnutí, dobu zapnutí, vypočte okamžik vypnutí, a pokud ten nastal tak vypne. Při změně stavu výstupu se aktualizují proměnné stav, začátek a doba.

Je to použito např. tady https://sites.google.com/site/sidloweb/elektrika/22-uni16ard-8vyh/23-uni16ard-8vyh-v4 v programu dole na stránce.
Uživatelský avatar
sidlo
 
Příspěvky: 2164
Registrován: ned 27 dub, 2014 7:32 am

Re: Arduino - jednoduché aplikace pro malá kolejiště.

Příspěvekod Kajinek11 » pon 29 říj, 2018 6:17 am

Díky, prostuduji a modifikuji program.
TT segmenty, DCC - DR5000 + 2x MM, IV. epocha.
Kajinek11
 
Příspěvky: 496
Registrován: stř 07 pro, 2011 11:12 pm
Bydliště: Rumburk

Re: Arduino - jednoduché aplikace pro malá kolejiště.

Příspěvekod belgarat » pon 29 říj, 2018 6:45 am

Daji se najit i nejake knihovny na "planovani" odlozenych cinnosti. Funguji prave tak, jak popsal sidlo - ve v loop() se vola funkce a "az nastane cas", zavolaji .... neco co jsi predtim naridil. Nebo pouzivaji HW casovace, ale takova presnost je, pro to co asi potrebujes, zbytecna. Prohrabej arduino knihovny a vyber si podle toho jak se popasujes s popisem a dokumentaci -- musi se Ti predevsim dobre pro tvuj ucel pouzivat.
TT epocha IVa-b; analog + NanoX, DR5000.
Nemodelar, greenhorn, pseudoprogramator, pindac nesmyslu
belgarat
 
Příspěvky: 1332
Registrován: čtv 27 pro, 2012 9:36 pm
Bydliště: Hřebeč u Kladna

Re: Arduino - jednoduché aplikace pro malá kolejiště.

Příspěvekod zdeno » pon 29 říj, 2018 7:24 am

naprosto idealni je pouzit nejaky volny casovac a ten nastavit na nejkratsi dobu, kterou potrebujes.
A do toho preruseni dat nascitavat potrebne promenne a ty potom v hlavnim programu vyhodnocovat.
Tak muzes pouziavat skoro neomezeny pocet casovanych useku od mS do tisice sekund.
Potom ale musis zvolit vhodnou promennou, ktera to dokaze zabezpecit.
Tezko lze pouzit Byte na cas nad minutu ;-) Potom se musi pouzit Word nebo Dword.


dodatek:
jinak je lepsi odcitavat a testovat na "0", ale to jen pro opravdu znale, kteri vedi, co delaji.


dodatek2:
to se pouziva tehdy, kdyz nechces, aby ti cekaci smycky omezovaly hlavni program.
Ono treba 10mS cekani ti dokaze uplne rozbit prijem DCC signalu a teda se ztraceji data.
Naposledy upravil zdeno dne pon 29 říj, 2018 8:25 am, celkově upraveno 1
Uživatelský avatar
zdeno
 
Příspěvky: 1728
Registrován: pon 11 črc, 2011 8:54 am

Re: Arduino - jednoduché aplikace pro malá kolejiště.

Příspěvekod belgarat » pon 29 říj, 2018 8:00 am

Kajinek11: omlouvam se ze to tak reknu, ale vybodni se na Zdena. Je to hardwarar, a jakkoliv ma pravdu kdyz potrebuje generovat presny signal, tady je mimo misu. Presnost loop() a currentMillis() je dostatecna, o 10ms min nebo vic asi nesejde. Zdeno neumi pouzivat knihovny a ty Arduinacke nezna (ktere tohle mmch na Arduinu delaji, a zprijemnuji pro programatora). Hlavni hledisko je, aby se Tobe dobre psalo, dalsi rozdily jsou o nekolik radu min podstatne. Ostatni rady si musim prenest z "cehosi" do C++, typ "Dword" jen tak nenajdes.

Ten pripodotek o odecitani do 0 nevzrusuj se - jde o rozdil jedne porovnavaci instrukce v prelozenem kodu, nepodstatny detail na kterem si dokazuje mistrovstvi.

(Edit: cenzurovano)
TT epocha IVa-b; analog + NanoX, DR5000.
Nemodelar, greenhorn, pseudoprogramator, pindac nesmyslu
belgarat
 
Příspěvky: 1332
Registrován: čtv 27 pro, 2012 9:36 pm
Bydliště: Hřebeč u Kladna

Re: Arduino - jednoduché aplikace pro malá kolejiště.

Příspěvekod zdeno » pon 29 říj, 2018 9:02 am

zdeno píše:dodatek:jinak je lepsi odcitavat a testovat na "0", ale to jen pro opravdu znale, kteri vedi, co delaji.

Zase mi pisal jeden na mail, jak to myslim ?
---
Je to o tom, ze nastaveni casoveho intervalu zarizuje volajici cast programu a ne vyhodnocovaci.
Teda staci jen jedna promenna a ta se inicializuje pokazde jinak, presne podle potreby.
A vyhodnoceni je stale stejne.
Problem je rozliseni, kdo tuto cekaci smycku volal, proto pisem, ze to neni jednoduche a musi se to umet.
Uživatelský avatar
zdeno
 
Příspěvky: 1728
Registrován: pon 11 črc, 2011 8:54 am

Re: Arduino - jednoduché aplikace pro malá kolejiště.

Příspěvekod vvitty » pon 29 říj, 2018 9:22 am

zdeno píše:Teda staci jen jedna promenna a ta se inicializuje pokazde jinak, presne podle potreby.
A vyhodnoceni je stale stejne.
Problem je rozliseni, kdo tuto cekaci smycku volal, proto pisem, ze to neni jednoduche a musi se to umet.


A kvuli tomu aby na tu jednu promennou nesahal kde kdo se pouziva systemovy cas ktery si funkce pozadujici pauzu precte, ulozi a cas od casu vyhodnoti.
Stavebnice, díly, nářadí pro modeláře, osvětlení modelů, DCC - http://www.pojezdy.eu/eshop
Uživatelský avatar
vvitty
 
Příspěvky: 2100
Registrován: pát 28 pro, 2007 7:11 pm
Bydliště: Praha

Re: Arduino - jednoduché aplikace pro malá kolejiště.

Příspěvekod belgarat » pon 29 říj, 2018 9:26 am

Prosim aby se to tu nezvrhlo (jeste vic) v putku o interruptech, synchronizaci, zamykani atd ... udelejte si vlastni tema. Dik.
TT epocha IVa-b; analog + NanoX, DR5000.
Nemodelar, greenhorn, pseudoprogramator, pindac nesmyslu
belgarat
 
Příspěvky: 1332
Registrován: čtv 27 pro, 2012 9:36 pm
Bydliště: Hřebeč u Kladna

Re: Arduino - jednoduché aplikace pro malá kolejiště.

Příspěvekod vvitty » pon 29 říj, 2018 10:44 am

Rady v tomto vlakne jsou urcene zacatecnikum kteri prave objevili stinne stranky funkce delay(100) a podle toho by mely vypadat. { Kajinek - to neni mineno negativne, naopak je dobre se ptat }
Tezko cekat ze clovek co se zrovna rozkoukava bude resit napr. zakazovani preruseni od casovace po dobu kdy AVR modifikuje globalni vicebajtovou promennou.
Stavebnice, díly, nářadí pro modeláře, osvětlení modelů, DCC - http://www.pojezdy.eu/eshop
Uživatelský avatar
vvitty
 
Příspěvky: 2100
Registrován: pát 28 pro, 2007 7:11 pm
Bydliště: Praha

Re: Arduino - jednoduché aplikace pro malá kolejiště.

Příspěvekod zdeno » pon 29 říj, 2018 11:27 am

napisal jsem reseni, jak by se to melo delat, bud se to nauci nebo ne ;-)
---
Ja osobne pouzivam rizeni udalostmi, teda pokud mozno netestovat (necekat), udalost se musi ozvat sama.
Ale to je fakt mimo rozsah zacatecniku a nebudem to rozvadet.
Uživatelský avatar
zdeno
 
Příspěvky: 1728
Registrován: pon 11 črc, 2011 8:54 am

Re: Arduino - jednoduché aplikace pro malá kolejiště.

Příspěvekod Kajinek11 » pon 29 říj, 2018 1:00 pm

Preste tak, procetl jsem si to a blikani LED udelam pomoci toho navodu, co jste posleli v odkazu. Zapremyslel jsem a asi bude jednodussí shazovat relatka dalsim IR senzorem :-) Uz takhle je ten program pro SN na hranici spolehlivosti. V jednoduchosti je sila :-)

Ano jsem zacatecník. Pred 1/2 roku jsem poprve slysel o Arduino jako takovem. Pred 2 mesici jsem dokoncil svuj 1. program a pred 14 dni mi teprve prisel prvni HW. Za uspech povazuji, ze jsem vse zapojil a +- to funguje. Teda zatim jen jednotlive celky. Jako celek se to ukaze az SN zabuduju do kolejiste a zapojim na panel. To se teprve budou dit veci :lol: Ale kazdopadne ikdyz jsou nektere odpovedi na me slozite, to nesnizuje muj diky za vasi pomoc. Kdo vi, treba me to nadchne a budu program rozsirovat a zbytek se doucim.

Uz diky 1. uspechu s Arduinem na kolejisti uvazuju ze udelam automaticke zavirani dveri kurniku pro kachny.. Tak se mi ta technologie zalibila.. :roll:
Naposledy upravil Kajinek11 dne pát 02 lis, 2018 5:59 pm, celkově upraveno 1
TT segmenty, DCC - DR5000 + 2x MM, IV. epocha.
Kajinek11
 
Příspěvky: 496
Registrován: stř 07 pro, 2011 11:12 pm
Bydliště: Rumburk

Re: Arduino - jednoduché aplikace pro malá kolejiště.

Příspěvekod vvitty » pon 29 říj, 2018 1:52 pm

Na ten kachink bacha aby to nezavrelo kdyz jeste bude nejaka kachna na toulkach a nebo vystrkovat krk ven :-)
Stavebnice, díly, nářadí pro modeláře, osvětlení modelů, DCC - http://www.pojezdy.eu/eshop
Uživatelský avatar
vvitty
 
Příspěvky: 2100
Registrován: pát 28 pro, 2007 7:11 pm
Bydliště: Praha

PředchozíDalší

Zpět na Elektrika a elektronika

Kdo je online

Uživatelé procházející toto fórum: zdeno a 1 návštěvník