Fórum témák
» Több friss téma |
A klónok CH340 Soros-USB illesztőjének drivere (Letöltés)
Ha a Cycle() hívás nélkül jól működik, akkor lehet annak a kódjában érdemes keresni a bűnöst.
A programban a gomb ha le van nyomva, akkor 5V-ot kapcsol az analog bemenetre. Ha felhúzó ellenállással húzod le a GND-re, akkor a programban a LOW-t írd át HIGH-ra. Remélem, nem A6 és A7-et használsz, mert azokon nincs felhúzó ellenállás sem (Arduino nano/uno)!
Kezd igen érdekes lenni.
Ha a Cyclet kihagyom akkor a nyomogomb hibátlanul kapcsolja a status LEDet. Induláskor sötéten indul, ha megnyomom a gombot, akkor átkapcsol ( világit) azaz indulnia kellene a Cycle-nek ha ott lenne). Ha benne van a Cycle is a loopban akkor azonnal elindul sötét LEDdel ( igy kellene mennie) . Ha lefut, akkor a LED megint kigyullad, de már csak a addig alszik ki amig a gombot nyomom, de nem inditja ujra a Cycle alprogramot. A Cycle csak egy sereg kimenet kapcsolás mindenféle algoritmusokkal és mindez 10x ismétlödik. Lehet, hogy át kellene irnom State Machine formába. Az a gyanum, ha a Cycle meg a nyomogomb egy loopban van ami a gond. Lehet, hogy az kellene, hogy ha a Cycle lefut automatikusan billentse vissza a nyomogombot. Ez valahogy nem akar összejönni. Érdekes, ha e közé a digitalWrite(outPin, state); previous = READING; két sor közé rakom be a if (state ==0){ Cycle(); } hivást akkor a gomb müködik. Bekapcsoláskor lefut az egész program, a gomb továbbra is müködik, de nem indul ujra a Cycle.
Köszi. Tanulmányozom mindkét linkelt oldalt.
Idézet: - inkább az lenne az érdekes, ha beraknád a programot, úgy át lehetne nézni. „Érdekes, ha e közé a”
Nem akarom itt a nagyérdemüt zavarni, mert hosszu és meglehetösen sok dolog van benne, amit el kéne magyarázni ( azok már hiányoznak belöle), mert már vagy 2 éve müködik. Most csak azt a nyavajás START funkciot akartam belerakni.
Majd még leülök, lehet, hogy eszembe jut még valami.
Ha ez egy függvény, és a kód többi része használ megszakításokat, akkor a függvényben lévő változóknak esetleg lemaradt a volatile.
Nem vágom, de ilyenek tudnak problémát okozni. Nézzd meg a kódodban a megszakításokban, ha vannak egyáltalán, milyen változók vannak, és aztakarja-e változtatni a függvényed.
Nem használok ebben a programban megszakitásokat. Épp most gondolkolkodom, hogy más eljárással talán egyszerübb lesz. (switch - case), mert akkor az egyes szekciokat teljesen függetlenül hivná le a for függvény.
Igy számomra is talán áttekinthetöbb lenne a kod. Az egyes részek hibátlanul müködnek, igy azokat csak átmásolgatom a egyes case fejezetekbe. Egyenként természetesen és figyelve a müködést. Addig kösz mindenkinek a segitséget. ( az mindig bonyolult számomra, ha egy régi kodba kell beleturni.)
Lehet ez a kód nem jó. Mi van, ha 275-t olvas be? Lehet, hogy a hibát nem látod szabad szemmel, mert mikor a Cycle()-nélkül hívod meg, a loop igen hamar lefut. Ha benne hagyod a cycle()-t akkor elképzelhető olyan állás, mikor a prvious nem a valós korábbi értéket veszi fel esetleg. (prellezhet esetleg) OK, tudom nem biztos hogy ez a hiba, mert a többi kódot nem mutattad meg, de ilyesmi rejtett hiba is lehet ám! A másik, hogy ha a cycle() rutinban esetleg return-t használsz, akkor a változóid esetleg nem lettek kinullázva ahol kellettek volna, így rossz paraméterekkel fut bele ebbe a loop-ba újra. DE könnyű ezt kideríteni. A loop-be tegyél egy ciklust, ami 4x fut le. Adj megfelelő értékeket a változóidnak, majd a cikluson belül negáld. Azaz szimuláld le a gombnyomásokat. Természetesen 1-2s várakozás után. Namármost, ha úgy megy, akkor a gombnyomás nem biztos, hogy jó. Ha úgy sem megy, akkor a cycle() ben lesz rejtett hiba. Legalábbis szerintem. Idézet: „( az mindig bonyolult számomra, ha egy régi kodba kell beleturni.)” Ezért jó ha minden sor ki van kommentelve
Az a gyanum, hogy valamelyik meghivott alrutinban hasznalod valamelyik globalis valtozodat. Ha tippelnem kellene akkor a previous-t. Ezert mukodik a gomb ha azt az if vizsgalatot a previous=READING sor ele rakod. Ha a gomb mukodik akkor a ciklusnak is le kell futnia, mert a LED-et a state valtozo villogtatja, tehat a state erteke valtozik gombnyomaskor. Legalabbis azt feltetelezem, hogy a gomb mukodesere a LED valtozasabol kovetkeztetsz.
220 sor nem a világ, dobd be, akit untat az meg hagyja figyelmen nélkül.
Azzal nincs baj, már a tapasztalat alapján határoztam meg a szintet. A LED tarja magán a kb 3 Voltot, és ez az átkapcsolás gyönyörüen müködik.
A baj van amikor kiágozik a program mási részeire (Cycle (); Nem Cycle gyakoraltilag egy számlálo for 0-9 ig Void Cycle() { for (R; R<Repeat; R++) {. // itt még bizonytalan vagyok, hogy az R; helyett ne használja R=0; Itt van a 6 alprogram Void Valami(); } } Ez már évek ota jol müködik, csak az volt az igény, hogy a ciklus végén álljon meg, és gombnyomásra induljon ujra. Azaz a 6 alprogramot kell 10x ismételnie Semmi mas. és végigjátsza a 6 alprogramot 10 szer, majd megáll. A nyomogomb továbbra is müködik, de nem inditja ujra a Cycle rutint. A cél az lenne, hogy, ha befejezödik a Cycle rutin visszabillentse a nyomogomb állását kiindulási állapotban, és várjon a gombnyomásra. Ezt még nem sikerült megoldanom. Na még alszok rá egyet, vagy ujra irom az egészet.
A gomb hibátlanul müködik a Cycle nélkül. Amint az bekerül akkor 3 állapot fordult elö.
1. induláskor vár a gombra, majd lefut a ciklus, de nem indul ujra és nem müködik utánna a gomb 2. induláskor lefut a ciklus is, de a gomb nem müködik 3. a gomb folyton átkapcsol, de nem indul el a ciklus. A state=0 érték a feltétel a ciklus inditására. Ezt kellene átbillenteni a ciklus végén, de nem sikerült, illetve az megint megakasztotta a gomb müködését. Ezért gondoltam, hogy a gombbal egy ujabb változot generálnék, mondjuk egy Startot, ami elinditja a ciklust, majd a végén nullázná a Start változot és várna a gombnyomásra. De ezt még nem probáltam ki.
Majd holnap talán, ha addig nem sikerül kitalálni valamit.
Addig is kösz a segitséget. Igy az ember eldumálgat, és közben a fejemben ujabb ötletek születnek amit még ki szeretnék probálni.
Az R egy lokális változó? Kap ő valahol értéket? Arra gondolok, hogy, ha végig megy a for ciklus és utána az R értéke nem változik, akkor ez a for ciklus soha nem fog lefutni újra, hiszen az már nem lesz kisebb többé, mint a Repeat.
Idézet: „a gomb folyton átkapcsol, de nem indul el a ciklus.” Arra lennek kivancsi ez mibol derul ki. Felteszem az outPIN egy LED ami a state erteket tukrozi. Ha a feltevesem helyes a ciklusnak is le kell futni ilyenkor. Az egy masik dolog, hogy csak minden masodik gombnyomasra. Ugyebar minden elengedeskor belefut ide:
Igen am, de amikor 0 akkor egyre valt amikor 1 akkor pedig nullara. Vagyis csak minden masodik elengedeskor lesz a state erteke 0. Ha nem a LEDbol derul ki a gomb mukodese akkor tevedtem. Viszont meg mindig all, hogy hasznalsz valami valtozot a ciklusban meghivott rutinokban ami a foagban is szerepel.pl: a previousra tippeltem de akar a state is lehet. Masik dolog esetleg: A nyomogomb fel van huzva kulso ellenallassal? Tudom alap kerdes, de hatha. Keves reszletet adtal meg.
Igen az outPin egy LED.
Az tökéletesen müködik ha nincs a kodban a Cycle hivása. Ha ott van akkor a LED nem kapvsol át vagy csak arra az idöre amig nyomom a gombot. Na majd holnap a breadboardon csinálok egy teszt kapcsolást, csak a gombbal meg a Cicle alprogrammal. Nem a ciklusokban csak egy sereg LEDet müködtetek különbözö modusokban ( idö, villogás stb) Ott van néhány egybetüs változo, de csak kizárolag az alpromgramban kapcsolt LEDek sorrendjere stb.
Igen a kezdetben az R=0;
Eredetileg a for (R=0; stb volt, de késöbb kivettem, mert az R=9-l akartam a kapcsolot visszabillenteni, s utánna R=0 val ujra inditani a cyklus. Ha a for (R=0; van akkor meg folyton megy, azaz az R=9 után ujraindul. Itt holnap rendet teszek, mert a sok kisérletezés már egy kicsit összekuszálta a dolgokat.
Sziasztok.
...már a második Nano-t ölöm meg. Adott egy arduino nano-val felépített áramkör. Valami oknál fogva túlfeszt kap a tápon keresztül, és ez megöli a DC-DC step down tápot, a Nano-t, és a kijelzőn használt 74595-ös IC-ket. A Betáp 24V, ezután van egy DC-DC step down konverter, ami szolgáltatja az 5V-ot a Nanonak, a kijelzőnek és az egyéb perifériáknak. A Nano 5V jelű pin-jére kötöttem az 5V-os táp részt. Egy üzemben négy présgép üzemel. Ezeknek a DC24V-os részeit egy 24V-os nagy teljesítményű kapcsolóüzemű tápegység látja el feszültséggel. Jelenség: A DC 24V-os mágneskapcsoló bekapcsolja a 24V-os fő tápegységet. Ekkor az egyik présgépre felszerelt kiegészítő nano-s áramkör (ami semmilyen kapcsolatban nincs a présgép vezérlésével, teljesen autonóm eszköz, csak a tápot kapja) azonnal eldurran a DC-DC konverter, és visz magával mindent. Egy másik présgép esetén pedig a bekapcsolásnál még minden oké, de ha kikapcsolom a fő tápegységet a mágneskapcsolóval, akkor megy tönkre a DC-DC konverter, a nano, és a többi. Amire gondolok: Mágneskapcsoló által gerjesztett túlfeszültség (ez a második présgép esetén tapasztalom, ahol a bekapcsolás még ok, a kikapcsolásnál viszont megdöglik minden) Viszont az első présgép esetén, ahol rögtön a bekapcsolásnál hiccen el minden, nincs ötletem. Szükségem volna valami atom stabil tápegység kapcsolásra, vagy valami megbízható védelmi áramkörre. Túlfesz levezetés, vagy valami olyan bevált kapcsolásra, amit a DC24V-os bemeneti ágba beköthetek, egyfajta előtét védelem a nano-s áramkör bemeneti feszültség oldalra. Köszönöm.
AZ 5 V-os oldalon egy "helyreállító asztal biztosíték" (nem röhögni, nálunk a könyvelésen ilyen néven futott át a megrendelt "resettable fuse" alkatrész) meg egy Zener dióda, vagy egy szupresszor dióda talán megvédi az Arduino nanot és környékét.
Milyen DC/DC konvertert használsz? Gyaníthatóan az a gyenge láncszem. Ezt keresd: TEL 5-2411. A bemeneti oldalra pedig 30 V körüli szupresszor diódát.
Tégy a DC/Dc konverter elé egy 100uH+22R tagot, mögé pedig egy 27V-os zenert...
Szia!
Itt szerintem több gond is lehet. Egyrészt nem tudjuk, hogy az Arduino a szenzorain keresztül kaphat-e feszt, és milyen polaritással. De szerintem az történik, hogy mikor bekapcsolod a nagyteljesítményű 24V kapcsoló üzemű tápegységet, akkor vagy fordított polaritást kap rövid ideig (mikor kikapcsolod, akkor a tekercsekben tárolt energia felszbadul fordított polaritással ráadásul) és mindkét esetben 36V-nál sokkal nagyobb tüskékkel. A tüskéket szűrni kellene, és kellene pl. egy nagyteljesítményű Graetz híd is, ami több okból lehetne jó. Mikor kikapcsolás történik, akkor is megfelelő lesz a polaritás, illetve hülyebiztos lesz. Igaz elveszítesz pár voltot a hídon, de 24-be belefér. Erre kell keresni megoldást, mert ugyan házilag is összerakható, de nem ajánlott. Esetleg kellhetne még egy késleltető relé is, ami 0.5-1s késéssel kapcsol, mikor már stabil minden a 24V felől. De ezt is védeni kellene a túlfesz tüskéktől fordított polaritástól, szóval gyári cuccot kell keresni. Keresek, hátha találok. Esetleg ezt a tápegységek körében kell feltenni kérdésnek, de az itt lévő emberek értenek ehhez is! (rajtam kívül)
Ilyesmi megoldja?
Azért kérdezem, mert később nekem is fontos lehet, tanulnék belőle! Bővebben: Link Ez kikapcsol mikor túl nagy a fesz, majd visszakapcsol mikor minden renben van? Köszi!
Az Arduino bemeneti semmilyen kapcsolatban nincs a présgéppel. Kizárólag a présgép kisfeszültségű (DC 24V)tápját használjuk tápegység gyanánt. A Graetz hidat úgy értsem, hogy simán bekötöm a gratz híd váltó bemenetére a +/- vezetéket, (gyakorlatilag mindegy milyen polaritással) A graetz +/- kimenetét pedig polaritás helyesen az arduino-s kütyü tápjára.
A présgép DC24V-os rendszerét úgy csinálták meg, hogy a 230V/DC24V-os táp állandóan megy. Ha megnyomják a "zöld be" gombot, akkor egy mágneskapcsoló adja a DC24V-ot a présgépek felé. Ha megnyomják a "piros ki" gombot, akkor a mágneskapcsoló old, és lekapcsolja a DC24V-ot a présgépről. A 230/24VDC tápegység mindaddig működik amíg le nem kapcsolják a fő-fő-fő kapcsolót.
Nem lehet az, hogy amikor a présgép megindul, akkor izomból megrántja a tápját, mire az elkezdi pumpálni a kimenetét és túl nagy a lengése? Ez megmagyarázhatná hogy miért durrognak el a dolgaid. A gépnek meg tök mindegy hogy impulzusban mit kap, ledolgozza. Felteszem egy présgép azért nem móriczkajáték, kéri a kraftot.
Szerintem a 24V bemenetedre kellene tenni túlfesz védőt, de én is csak törpölök.. Tovább megyek: Az nem megoldás ha beteszel az áramkörödnek egy külön 12V-os trafót és el van intézve? Felteszem a javítási költségek erősen felülmúlják már az árát. Hely meg gondolom van hozzá. szerk.: trafó+greatz+kondi természetesen. A hozzászólás módosítva: Márc 28, 2023
Ez, ha túlfeszültséget kap (elegendő energiával), akkor feláldozza magát a többiek érdekében, ugyanakkor sokkal nagyobb energiát tud lenyelni, mint egy egyszerű szupresszor dióda. A kisebb energiákat általában maradandó károsodás nélkül túléli. Az, hogy mi a "kis" és "nagy" energia, katalógusadat.
|
Bejelentkezés
Hirdetés |