Fórum témák
» Több friss téma |
A klónok CH340 Soros-USB illesztőjének drivere (Letöltés)
Nem ismerem az SSR eszközöket ezért lehet hülyeséget kérdezek: Hány On-Off kapcsolást bír az élete során az SSR?
Ne vard, hogy mas megcsinalja. Probalkozzal ha nem megy akkor itt segitenek, de indulj el valahogy.
Itt egy egyszerű minta, ha ennek a működését átlátod akkor lépjél tovább.
minta-elore-szamlalo
Ha nincsenek feszegetve a határai, a reléknél nagyságrendekkel többet. A bekapcsolása megoldható egy tranzisztorral és egy ellenállással, nem kell túlvariálni. Ennyit ne sajnálj rá, 100 Ft-ból megvan.
Sziasztok. Természetesen nem várom el, hogy valaki megcsinálja, ráadásul abból nem is tanulnék, csak útbaigazítás kellene, (sajnos nem igazán értem, még!).
Az előzőleg linkelt kódot kicsit „takarítgattam”, eddig jutottam.
Még csak olyan kódokkal foglalkoztam, amiben csak a void loop volt, azt se tudom minek kell a void TimeUpdate és a void TimingISR. Ezeket nem lehet összevonni? Lehet benne még felesleges rész? És a kijelző fényének kikapcsolására sem jöttem rá. Előre is köszönöm az építő jellegű hozzászólásokat.
Az hogy hány ciklust bírnak ki, eléggé relatív. Azon múlik, milyen környezetben dolgozik, hogy lett méretezve, és gyártófüggő is lehet. Jó hűtés és megfelelő méretezés mellett (1f esetén 3kW kb 14-15A, erre 25A SSR illik), megfelelő biztivel (szereti az UR-t) a gyártók sok millió ciklust emlegetnek. De sima 20A automata bizti mellett, az első melegítőzárlatánál/földzárlatnál kuka lesz.
A TimingISR egy megszakításkezelő rutin (ISR - Interrupt Service Routine), megszakításvezérelten hívódik másodpercenként. Ez azt jelenti, hogy akárhol is tart éppen a program, másodpercenként mindig automatikusan meghívódik ez a függvény. Növeli az értékeket, és jelzi, hogy lehet frissíteni a kijelzőt. A loop ezt észreveszi, és kiírja az értékeket. A TimeUpdate a kétjegyű számokból maradékos osztással előállítja a helyiértékeket. A két függvényt össze lehet vonni, de általánosságban az a jó programozási gyakorlat, ha a megszakítási rutinok a lehető legrövidebbek és leggyorsabbak (számításokat végezni, függvényt hívni megszakításban általában nem illik).
A hozzászólás módosítva: Jan 25, 2016
Az egyik kérdésedre nem válaszoltam: a kijelző kikapcsolása a
függvénnyel lehetséges, a set függvénnyel pedig a fényerő is állítható. Legalábbis a driver forráskódjából úgy látom. Kipróbálni nem tudom, nincs ilyen kijelzőm. A hozzászólás módosítva: Jan 25, 2016
Igen, a set-el tudtam állítani a fényerőt, (a void setup-ban benne van).
De a tm1637.clearDisplay(); nincs, ezt hogy tudom a kódba beilleszteni?
Hát amikor ki szeretnéd kapcsolni a kijelzőt, akkor hívd meg ezt a függvényt...
Hát valami nem tökéletes.
A fent beillesztet kód 40. sora után raktam be, mikor nyomom a nyomógombot csak villog a kijelző, ha elengedem akkor meg normál fényerővel megy.
Ez így is van rendjén, mivel a 34. sorban az inditas változó értékétől függetlenül kiírod a kijelzőre az aktuális tartalmat.
Megvan. Köszi.
A 40. sor után az Update-t OFF-ra állítom és így a 32. sor utáni rész nem teljesül. A 45. sort meg átraktam a 47.-be. A kódot viszont lehet még egyszerűsíteni?
Sziasztok.
Egy hp nyomtatóból bontottam egy enkóder tárcsát a hozzá tartozó optóvillával,de a neten fellelhető programok közül egyikkel sem működik helyesen.Tudna valaki egy működő példát feltenni? A cél az lenne ,hogy kiírja hogy mennyit forgattam jobbra illetve balra. Köszönöm előre is.
Kérdezni akartam, hogy milyen SSR néztél ki, de visszaolvastam és látom hogy Fotek 25 A. Mivel kínában másmilyenek az amperok, árban meg kicsi a különbség, válaszd a 40 A+ hűtőborda. Ide már jó a 20 A kismegszakító. Vezérelni meg tranzisztoron keresztül kellene, mint ahohy Bakman is írta.
Mit értesz az alatt hogy nem működik rendesen? Kevesebbet vagy többet mutat? Ismerned kell' hogy hány impulzust ad a tárcsa egy körön.
Szia.
Itt egy példa kód.
Szépen be is jön az lcd-n a kép és a számok futnak össze vissza fel's alá. Az analog pinekre kötöttem az enkóder adatszálait. Így nem igazán értem mi baj lehet ![]() U.I.: egy LCD Keypad shield van hozzá. A hozzászólás módosítva: Jan 26, 2016
Ez a belinkelt program egy orsón számítja az elmozdulást. TH_PER_IN a menetek száma inch-enként, a tárcsa pedig 48 impulzust ad körönként (CT_PER_REV). Az impulzusokat a PIND0 és PIND1 lábakon számolja. Nem használ interrupt-ot, csak simán beolvassa a D portot, majd kimaszkolja a D0 és D1 (67. sor). Az értéket összehasonlítja a táblázattal (30. sor). A kombináció alapján növeli vagy csökkenti a számlálót (70. sor). A 74. sorban meg átszámolja a számláló értékét mm-be és kiírja az LCD-re.
Ehhez képest neked mi van? Van-e orsód vagy nincs, hány menet/inch v mm, hány impulzust ad a tárcsád körönként,stb? Mit ír a kijelződ? Ez a megoldás csak lassú mozgásoknál alkalmazható, kis impulzus szám mellett. Ha az ardu mást is csinál, nem "ér rá" megszámolni az összes impulzust, az eredmény meg pontatlan lesz. Pontosan csak megszakításokkal lehet mérni.
Szia.
Van az orsóm amin van a tárcsa tárcsa felbontását megszámolni szabad szemmel lehetetlen, De úgy 2000 körülire saccolom. Ahogy írod valószínűleg a lassú mozgás hibbádzik ![]() mást nem csinál az arduino csak ere figyel,tehát van ideje számolni. A kijelzőn meg fut a szám fel le attól függetlenül,hogy mozgatom-e a tárcsát vagy sem.
A 2000 impulzus az jó sok, megszakítások nélkül nem fog menni. Ez a program inkább csak lyukacsos tárcsára való, mint ahogy írtam, a páldaprogram is 48 impulzusra van írva.
Értem,és köszönöm szépen.és az mitől lehet,hogy hozzá sem érek mégis számol felfele a kijelző?
Bocsi az alap kérdésért,de a 0x03 mit csinál?
Próbálok közben utána olvasni,de eddig nem sok sikerrel ![]()
Az ardu változást érzékel a bemeneteken, a két leolvasás között. Mint ahogy írtad, a beosztásod annyira finom, hogy megszámolhatatlan. A megszakításoknál felfutó és lefutó éleket kezelsz, de ilyen impulzusszám mellett valszeg kell még szűrés/prellmentesítés is. A másik dolog, hogy milyen fényre reagálnak a fototranzisztorok az olvasó részen. Mert ugye a nyomtatóban tök sötét van, csak a dióda világít át a tárcsa résein, itt meg kint van. Meg hát ilyen felbontásnál az olvasónak hiperérzékenynek kell lennie.
Itt keverik kicsit az arduino környezetet az AVR C-vel. A 0x03 egy hex maszk, a beolvasott port 8 bites, mivel csak az első két lábat olvasod, logikai és-sel eldobod a többit (0x03 = 00000011 b).
Nem tudom milyen ardud van, de most eszméltem rá egy szarvashibára. A program a D port 0 és 1 bitjét olvassa, ami az Uno-n, Nano-n, nem más mint az RX, TX. Ezért a soros portot számolja. Írd át az összes PORTD-t és PIND-t, PORTC-re ás PINC-re, mert ezek az analóg bemenetek. A tárcsát az A0 és A1-re kötötted?
Jogos valóban PIND volt benne de az A1 A2-re tettem a villa adatlábait
![]() Uno-m van. Szóval akkor az analóg lábakon csak az A1 és az A2 lábat figyeli? Ez nem valami jó,mert az A0 az LCD Key shield miatt nyomógombra van kötve ![]() Az hogy tudnám elérni,hogy az A1..... A5 -ig használja ?
A 63. sorban a D portot olvassa be, ami ardunál D0-D7. Ha átírod mindenhol a PORT és PIND-t C-re, mint ahogy írtam, és a maszkot megváltoztatod, a 67. és 68. sorokban 0x03 helyett 0x06 (0000 0110 b), akkor a C port 1 és 2 bitjét figyeled, ami az ardun az A1 és A2.
Átírtam most jön a teszt
![]() ![]()
A 36. és 37. sorokat is átírtad? Mivel használsz már más lábakat a C porton, jobb lenne csak az A1 és A2 pinMode-dal bemenetként definiálni, és aktiválni a felhúzó elleállást digitalWrite()-tal. Az eredeti program az egész portot írja egyszerre. Ha ez sem segít, és nem az LCD panelod könyvtára írja felül a portot, akkor még mindig marad a hozzászólásban leirtak.
Átírtam ahogy mondtad.De csak futnak a számok felfele
![]() ![]() Köszönöm a segítséget.
Sziasztok.
Egy kis segítséget kérnék. Építettem agy kazán vezérlőt ami a szoba hőmérsékletének függvényében szabályozza a kazánt. lm35 a szoba hőmérő 5 méterre van a vezérlőtől. De messzebbre kellene vinnem. Vezeték nélkül meg lehet valahogy oldani a hőmérést? Valami olyan kellene amihez nem kell net. Olyasmit kellene csinálnom mint egy szoba termosztát. Előre is köszi |
Bejelentkezés
Hirdetés |