Fórum témák

» Több friss téma
Fórum » Folyamatábrás mikrokontroller programozás Flowcode-dal
Lapozás: OK   346 / 360
(#) niedziela válasza Horváth P Tamás hozzászólására (») Szept 10, 2021 /
 
Ebben semmi nincs csak egy led villogtatás, amit minden gond nélkül fordít.
Küld el a képét a fordító ablaknak.
Jelöld ki az ablak első sorát, nyomj Ctrl+a és másold be ide
(#) Bakman válasza Horváth P Tamás hozzászólására (») Szept 10, 2021 /
 
Flowcode töröl, gép újraindít, Flowcode telepít. Talán.
(#) Horváth P Tamás válasza niedziela hozzászólására (») Szept 11, 2021 /
 
Lehet hogy nálad , a te gépeden lefordul HEX be , de nálam az én gépemen nem hajlandó.
(#) niedziela válasza Horváth P Tamás hozzászólására (») Szept 11, 2021 /
 
Ha csak annyit árulsz el hogy nálad nem megy, azzal legfeljebb te tudsz valamit kezdeni, mi meg őszintén sajnálni.
Lehet azért kértem hogy küld el a fordító hibaüzenetét, hogy tudjunk segíteni.
(#) Horváth P Tamás válasza niedziela hozzászólására (») Szept 11, 2021 /
 
Nagyon köszönöm a segítséget. Újratelepítettem az egész progit . Igy tökéletesen fordítja. Most már csak a kódókkal lesz problémám.Valahová a gép helyére elkevertem biztonságos helyre ahol még én sem találom meg .
(#) bubuszoft válasza niedziela hozzászólására (») Szept 14, 2021 /
 
Köszi, de Olasz, az élettbe soha többet
(#) gepesz13 hozzászólása Okt 3, 2021 /
 
Sziasztok!
Tudna valaki valami könyvet leírást ehhez a programhoz? Persze ha lehet magyart. Vagy esetleg segítene megcsinálni egy programot? Részleketeket privátban megbeszéljük.
Üdv: gepesz13
(#) Bakman válasza gepesz13 hozzászólására (») Okt 3, 2021 /
 
Miért nem itt kérdezel? Hátha másnak is hasznára válik.
(#) Horváth P Tamás válasza gepesz13 hozzászólására (») Okt 6, 2021 /
 
https://www.matrixtsl.com/wiki/index.php?title=Flowcode_Help_Overview. Szia szívesen segítek , ha tudok . Írd meg , hogy milyen progit szeretnél .
(#) mhatalyak hozzászólása Nov 2, 2021 /
 
Sziasztok!

A 10napos karanténem első napja alkalmából elővettem újra a Flowcode-ot.

Máris egy számítási akadályba ütköztem, amit nem tudok kimatekozni.. (Igen, kellett volna figyelni az iskolában, meg felejt is az ember.)

A lényeg, hogy sebességet szeretnék mérni.

Hogyan tudnám ezt a számításba begépelni?

Adott egy kerék, melynek kerülete: 161cm
Egy fordulat alatt 2db jel van.
A timer 500ms-onként nullázódik, tehát fél másodpercig tartanak a mérések és a frissítés a kijelzőn.
Milyen egyenletet és hogyan írjak be a számításba, hogy Km/h-t kapjak?

Illetve szeretném a megtettkilométereket számolni is, erre milyen megoldások lehetnek? Egy változóhoz hozzáadom a mondjuk percenkénti megtett távolságot, majd a végén mentem a RAM-ba, ujbóli indításkor pedig egy kiolvasás és így tovább? A ram mentést persze nem minden ciklusban szeretném, csak mondjuk ha már egy ideje nincs beérkező sebességjel.

Előre is köszönöm a segítségeteket!
(#) Ferkógyerek válasza mhatalyak hozzászólására (») Nov 2, 2021 /
 
Szia!

Ezzel az elvvel alacsony sebességnél nagyon pontatlan lesz a mérés.
Én másfelől közelíteném meg a problémát.
A mikrovezérlő órajelének leosztott értékével hajtanék egy számlálót, mondjuk TMR3-at.
A reed vagy Hall szenzor jelével megszakítást generálnék, amely megszakításban kiolvasnám TMR3 értékét, melyet mentenék majd nulláznám a számlálót hadd pörögjön tovább.
Ha jól választod meg TMR3 számláló frekvenciáját, nem a megszakításit, mondjuk 277,777778Hz-re (csak kvarc kérdése), akkor leegyszerűsödik a matek.
Csak elosztod a 805-öt (két impulzus között megtett út hossza mm-ben) TMR3 kiolvasott értékével és rögtön Km/h-ban megkapod a sebességet.
A méter számláló is egyszerű, minden egyes megszakításkor hozzáadsz 805mm-t az előzőleg megtett úthoz.
Az EEPROM-ba való mentésre a PIC HLVD áramkörét ajánlom, ha van, ez kikapcsoláskor (a tápfeszültség erős csökkenésekor) megszakítást generál, amely megszakításban felülírható az EEPROM tartalma.
(#) mhatalyak válasza Ferkógyerek hozzászólására (») Nov 2, 2021 /
 
Nem annyira számít a pontosság, kismotorra lenne maximum 55-öt tudok vele menni, inkább csak olyan megközelítőleges lenne a dolog, kvarcot nem is használok. Csak egy nagyjáboli üzemóra számláló az olajcsere végett, és hogy kb mennyivel megyek.

Egyébként az ötlet jó. Hall szenzorral van megoldva (Biviklikilométeróra van jelenleg) Olyan lassan frissít, hogy zavar.
(#) mhatalyak hozzászólása Nov 2, 2021 /
 
Feltöltöm, hogy mit kreáltam.

A kijelző felső sorában van az index, lámpa és a sebességfokozat visszajezés. (Később eszembe jutott, hogy ellenállás létrával elég lett volna 1 láb is)
Második sor, fordulatszám
Harmadik sor a sebesség
Alsó sor pedig választható: olajhőfok, külső hőfok, összes üzemóra, napiszámláló, összes km. (ezeknél akadtam el)
Illetve még tervezek bele egy 10órás visszaszámlálót az olajcserére, ami nullázható. (Az összes üzemóra is nullázható ha a választó gombot nyomvatartva kap tápfeszültséget)
Az üzemóra számlálót minden alkalomkor menti egyszer, ha a fordulatszám 0-ra esik.

5-6 óra alatt eddig jutottam, minden része működik, csak a képlet hiányzik a sebességméréshez
A hozzászólás módosítva: Nov 2, 2021

pit.fcf
    
(#) Bakman válasza mhatalyak hozzászólására (») Nov 3, 2021 / 1
 
v=(2πr)/T

r: a kerék sugara (méterben), T: a periódusidő (másodpercben), v: sebesség (m/s -ban).

A tört számlálójában a kör kerülete van, ami egy állandó, nálad 1,61 m. m/s és km/h közötti váltószám 3.6. Ha km/h-ban szeretnéd látni az eredményt, a számlálót kell 3.6-tal szorozni, kapsz 5.796-ot. Mivel egy fordulat alatt kétszer kapsz jelet, a mért idő fele lesz a teljes periódusnak, a számlálót is osztani kell kettővel, marad 2.898.

Célszerű egy számlálót 1 ms-onként növelni, ez egy másodperc alatt 1000-et jelent. Az ezres szorzó miatt a számlálót is 1000-rel kell szorozni, így a számlálóban már is könnyen kezelhető szám marad: 2898.

v=2898/x ahol v: km/h, x: a mért idő ms-ban.

Pl.:
v = 2898/491 = 5 km/h

Mivel az ilyen számításoknál a kontroller "eldobja" a maradékot/tizedes értékeket, a számlálót érdemes további tízzel szorozni. Ekkor az eredmény így alakul:

v = 28980/491 = 59

Ez az eredmény így mindig tízszer több, mint a valós. Innen már csak két művelet szétválasztani a számokat:

tized = v mod 10 (=9)
egesz = v / 10 (=5)

Már csak ki kell írni az eredményt:

print number egesz
print string "," (tizedes vessző)
print number tized

Dióhéjban kb. ennyi. Egy megoldandó feladat mindenképpen marad, hogyan reagáljon a kontroller arra, ha sokáig nem érkezik impulzus. Ha a két jel befutása közötti idő 2 mp (1.449 km/h), akkor itt is lassú lesz a kijelzés. Egy fordulat alatti két impulzussal ezt lehet elérni.

Jobb lenne újabb kontroller, amelyikben ügyesebb Timer 1/3/5 van, kicsit egyszerűsödne a feladat (single-pulse and toggle combined mode) de 886-tal is megoldható. Esetleg CCP modul Capture üzemmód de ha nem tudod hogyan működik, akkor nem feltétlen fárasztanálak vele. A jeladók számát is érdemes lenne növelni.
(#) mhatalyak válasza Bakman hozzászólására (») Nov 3, 2021 /
 
Köszönöm szépen a szájbarágós választ, ám még valami mindig nem tiszta.
Az általan megadott egyenletbe ugyebár a jelek közti időt kell behelyettesíteni, nálam viszont csak egy számláló növekszik a beérkező jelek alapján, amiből csak az derül ki, hogy 1másodperc alatt hány fordulatot tett a kerék.
(#) Bakman válasza mhatalyak hozzászólására (») Nov 3, 2021 /
 
Ez egy viszonylag hosszú preiódusidejű jel. Ne azt számold hogy egy másodperc alatt hány impulzus fut be, hanem azt mérd, két impulzus között mennyi idő telik el.
(#) mhatalyak válasza Bakman hozzászólására (») Nov 3, 2021 /
 
Tehát, ha jól gondolom, akkor egy változóban elkezdem számolni a beérkező jelet, ami egy fordulat alatt ugye 2, a számlálóm ms-onként számol 1-et. Ha beérkezett a 2 jel, akkor megnézem,hogy a számláló hány ms-ig jutott így megkapom az eltelt időt? indítok egy új projektet, aztán hasikerül összehozni, akkor utána át alakítom a meglévőt.
(#) Bakman válasza mhatalyak hozzászólására (») Nov 3, 2021 /
 
Amikor befut az első jel, elindítod a számlálást, amikor befut a második, megállítod. A számláló az eltelt időt fogja mutatni.
(#) mhatalyak válasza Bakman hozzászólására (») Nov 3, 2021 /
 
Ennyit tudtam kihozni a dologból.

sebesseg.fcf
    
(#) Bakman válasza mhatalyak hozzászólására (») Nov 3, 2021 /
 
Inkább valahogy így, lásd melléklet. Amíg zajlik a mérés, addig lehet más csinálni, a kontroller nem várakozik a mérésre. Minimális sebesség 1 km/h. Ha gyorsabban mész, sűrűbben fogja kijelezni a sebességet. Majd meglátjuk, hogy az mennyire lesz jó vagy nem. Ahhoz érdemes még egy Timer-t indítani, hogy legrosszabb esetben se tudjon másodpercenként többször frissíteni, maximum kétszer.

Majd visszatérünk rá, ha aktuális lesz.
(#) pucuka válasza mhatalyak hozzászólására (») Nov 3, 2021 /
 
Nemmellesleg már ha a hálózati frekvenciát szeretnénk pontosan mérni, akkor is célszerűbb (periódus)időt mérni, pedig az 50 Hz = 20 ms. Nálad a periódusidő sokkal nagyobb.
(#) mhatalyak válasza Bakman hozzászólására (») Nov 3, 2021 /
 
Ezzel így most tökéletesen mér, igen gyors a reakcióidő is. Át gépeltem a sajátomba így a megértése is könyebb volt, legalább mostmár megtanultam, hogy hogyan kell bemenetre megszakítást generálni.
(#) Zoli_bácsi hozzászólása Nov 8, 2021 /
 
Sziasztok!

Ez milyen hibára utal?

FC_ERROR.png
    
(#) Bakman válasza Zoli_bácsi hozzászólására (») Nov 9, 2021 /
 
Ha jól látom, kevés neki az operációs rendszer.
(#) Zoli_bácsi válasza Bakman hozzászólására (») Nov 10, 2021 /
 
A videokártya OpenGl-re panaszkodik, mint kiderült. De ha átállítom "software" módra az OpenGl-t, akkor a hiba nem jön elő, de a 2D Dashboard-on a komponensek nem látszódnak, csak a sziluett.
(#) Bakman válasza Zoli_bácsi hozzászólására (») Nov 10, 2021 /
 
Milyen rendszeren akarod használni? Már a 7-es sem megy XP-n. Jól látom, hogy azon próbálod futtatni?
(#) Zoli_bácsi válasza Bakman hozzászólására (») Nov 15, 2021 /
 
Win7, 32bit. Ha átállítom hardveres OpenGL-re, akkor hibaüzenetet dob, de működik minden. Felvettem a kapcsolatot a supporttal, azt javasolják, hagyjam figyelmen kívül a hibajelzést, ha működik a program.
A hozzászólás módosítva: Nov 15, 2021
(#) bubuszoft válasza Zoli_bácsi hozzászólására (») Nov 15, 2021 /
 
Csak a befordításnál lehetnek majd gondok szerintem
(#) Zoli_bácsi hozzászólása Nov 30, 2021 /
 
Összeraktam egy programot. A szimulációban minden rendben, működik, de a valóságban a gombokra nem reagál semmit. Ha készítek egy nagyon egyszerű ON-OFF led kapcsolgató programot, akkor megy a gomb. Amit összeraktam programot, abban a gomb kezelés tök egyforma az ON-OFF led gombkezeléssel, viszont a valóságban mégsem megy. A Hardver jó, mivel az egyszerű ledes program működik. A "nagy" program viszont a szimulációban teljesen jól, és helyesen működik. Csak a valóságban nem...

Tudom, látatlanban nehéz bármit is mondani. Csak mint elmélet, -lennék rá kíváncsi - hogy van e valami alapvető gond, amit nem veszek észre.
Következő: »»   346 / 360
Bejelentkezés

Belépés

Hirdetés
XDT.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem