Hirdetés

2024. június 9., vasárnap

Gyorskeresés

Téma összefoglaló

Téma összefoglaló

  • Utoljára frissítve: 2023-03-11 00:46:52

LOGOUT.hu

Arduino hardverrel és szoftverrel foglakozó téma. Minden mikrovezérlő ami arduinoval programozható, és minden arduino program, board, és hardverrel kapcsolatos kérdések helye.

Összefoglaló kinyitása ▼

Hozzászólások

(#801) dave0825


dave0825
őstag

Kiderült, hogy a 12V-ot simán rá lehet kötni a Vin-re, elbír vele a panel. Azt viszont nem tudom, hogy a szervónak nem lenne-e gáz, ha 5-6V-nál többet kap; vagy ezt szabályozza a panel, hogy ne 12V menjen rá, hanem csak fix 5? Vagy ez hogy van?

Huawei P30 // Suzuki DL650XT '15 <-- Kawasaki Z750 '07 <-- Aprilia RS 125 '99

(#802) tvamos válasza dave0825 (#800) üzenetére


tvamos
nagyúr

Nem ezt írtam! Próbáld ki, talán elmegy vele.
Azon az Arduinon is egy lineáris szabályozó van, fél Ampert fog talán vinni, egy kis szerencsével.
Én valami ilyesmit tennék.

[ Szerkesztve ]

"Mindig a rossz győz, és a jó elnyeri méltó büntetését." Voga János

(#803) aicon válasza dave0825 (#800) üzenetére


aicon
senior tag

Az én hibám, hogy nem írtam oda, hogy a hálózati töltőt használom egy USB kábellel,nem az autósat. :)

======== Sim kártyás routerek olcsón ======== https://hardverapro.hu/tag/aicon#aprohirdetesei

(#804) dave0825


dave0825
őstag

Ma kipróbálom, hogy rákötöm a 12V-ot, és megmérem, hogy mennyit kap a szervo. Ha 5V-ot, akkor tökéletes, ha többet, akkor rendelek egy olyat, amit tvamos ajánlottál.

aicon: az enyém is, csak hirtelen rápillantottam a képre, nem is figyeltem, hogy hálózati töltő is van rajt. :) Köszi azért, de szerintem maradok tvamos által linkelt olsóbb megoldásnál.

Huawei P30 // Suzuki DL650XT '15 <-- Kawasaki Z750 '07 <-- Aprilia RS 125 '99

(#805) aicon válasza dave0825 (#804) üzenetére


aicon
senior tag

Az egy feszültség szabályozó (annak elég jó), de kell hozzá megfelelő táp. 220V-ra nem köthető közvetlenül.

======== Sim kártyás routerek olcsón ======== https://hardverapro.hu/tag/aicon#aprohirdetesei

(#806) dave0825 válasza aicon (#805) üzenetére


dave0825
őstag

Tápnak autó-motor akksi lesz majd (de ezt írtam), vagy valami adapter, de egyelőre csak tartalékba kell.

Huawei P30 // Suzuki DL650XT '15 <-- Kawasaki Z750 '07 <-- Aprilia RS 125 '99

(#807) dave0825


dave0825
őstag

Tudnátok segíteni abban, hogy ha egy egyszerű órát szeretnék csinálni Arduino-val, akkor melyik fügvénnyel, vagy hogy érdemes kezdeni? A millis()-szel az a baj, hogy kiszámoltam, naponta kb. fél percet sietne, mert ha az Arduino oldalán lévő példát elindítom, majd soros porton figyelem, akkor 60 mp alatt 0,021 mp-cel többet ír, az 1 napra kiszámítva pedig kb. 30,24 mp. Ezen kívül még elvileg 50 naponta túlcsordul.
Egy teljesen alap óra, perc, másodperc jelző óra lesz, dizájnra lesz érdekes. :) Plusz 3 gombot szeretnék rárakni (meg egy főkapcsolót), az egyikkel az órát lövögetem fölfele, a másikkal a percet, a 3.-kal pedig nullázom a mp-et.

Huawei P30 // Suzuki DL650XT '15 <-- Kawasaki Z750 '07 <-- Aprilia RS 125 '99

(#808) tvamos válasza dave0825 (#807) üzenetére


tvamos
nagyúr

[link]
Nézd meg a doksiban, ők hogy csinálják.
Szerintem nálad nem a függvény a pontatlan, hanem az Arduino órajele.

"Mindig a rossz győz, és a jó elnyeri méltó büntetését." Voga János

(#809) dave0825 válasza tvamos (#808) üzenetére


dave0825
őstag

Ők nem Arduino-val csinálták, vagy csak én vagyok láma? :F
És ha az órajel rossz, azzal mit tudok kezdeni? Amúgy ilyen-em van.

Huawei P30 // Suzuki DL650XT '15 <-- Kawasaki Z750 '07 <-- Aprilia RS 125 '99

(#810) tvamos válasza dave0825 (#809) üzenetére


tvamos
nagyúr

Veszel egy real-time clock.

"Mindig a rossz győz, és a jó elnyeri méltó büntetését." Voga János

(#811) dave0825 válasza tvamos (#810) üzenetére


dave0825
őstag

Pl. ilyet? Ezzel gond nélkül menne, nem lenne eltérés, ugye? Nem használtam még ilyet (azért értetlenkedek itt :B), igazából azt sem tudom hogy kell, de ennek majd utána nézek.
Egy fontos kérdés: ha ilyet veszek és rákötöm az Arduino-ra, akkor azon attól még programozhatok olyat, hogy ha pl. óra 10 van, akkor egy bizonyos led világítson, ha már 11, akkor egy másik, ha 12, akkor egy 3., és így tovább?

[ Szerkesztve ]

Huawei P30 // Suzuki DL650XT '15 <-- Kawasaki Z750 '07 <-- Aprilia RS 125 '99

(#812) gyapo11 válasza dave0825 (#811) üzenetére


gyapo11
őstag

Azt csináltam, hogy beépítettem a programba egy korrekciót, és naponta egyszer módosítottam az időt. Így egész pontos lett. Aztán kivittem a hidegbe egy fél napra és több másodpercet elment. :)
Nekem egy DS3231 óramodulom van, nem nagyon pontos, legalábbis sokkal pontatlanabb, mint a 2 ppm amit tudnia kellene. Ezért mindenképpen be kell építeni egy pontosítási lehetőséget, és nem elég a tapasztalati korrekció, mert hőfok, öregedés, külső zavarforrások miatt úgyis el fog mászni. Márpedig egy óra legyen pontos.
Szóval vagy gps modulból kell venni az időt, vagy a Kossuth rádió 5 sípszóra délben ráhúzni (ha van még ilyen), vagy pc-vel szinkronizálni atomórához, vagy az embert beépíteni a funkcióba, és egy nyomógombbal behúzni egész órára. Ez utóbbit választottam, egyszerű, mindig olyan pontos lesz, amennyire hajlandó vagyok egész órakor megnyomni a gombot. Ha van pc-s kapcsolat, akkor óránként lehet szinkronizálni, és akkor 1 másodpercen, de lehet hogy tizedmásodpercen belül lesz az eltérés folyamatosan.

menyország -> mennyország, akadáj -> akadály, jótálás -> jótállás, Iphoneal > Iphone-nal, kisuly > kisujj, csővet > csövet

(#813) gyapo11 válasza dave0825 (#811) üzenetére


gyapo11
őstag

Az óramodultól még bármit programozhatsz ugyanúgy mintha nem is lenne. Írhatsz bele időt, kiolvashatod az időt, alarmot írhatsz bele, meg a ramba is írhatsz és olvashatod is. Elvileg amíg bírja az elem addig mindig rendelkezésre áll az összes beleírt adat és a dátum-idő.

menyország -> mennyország, akadáj -> akadály, jótálás -> jótállás, Iphoneal > Iphone-nal, kisuly > kisujj, csővet > csövet

(#814) Danex


Danex
addikt

Üdv, most rendelgettem cuccokat egy kis DC erősítő vezérléséhez. Leírnám mit rendeltem és milyen funkciókat tervezek és ha valamit elfelejtettem volna, vagy szimplán nem gondoltam rá ,hogy mit lehetne még beleépíteni akkor azt megköszönném :)

Szóval adott egy DC erősítő 5-18V-ig 2*15W.

Ehhez rendelkezem egy step-up converterrel, ezzel feltuningolom 13-14Vra a feszültséget így az erősítő kb 5V-tól 13-14V ig minden DC áramforrást megeszik.

Lenne még egy step down converter is 5V-ra, ez biztosítaná az áramot az USB-s bluetooth audio vevőnek és az arduino nano-nak. (Meg egy szervo motornak)

Rendeltem 4db relét, ebből 3db a bemenetet kapcsolná (vezeték - bluetooth), a 4. pedig a step-up convertert és vele együtt az erősítőt.

Jön még egy feszültség érzékelő modul is, amivel az akkumulátor feszültségét ezzel együtt a töltöttségi szintjét mérném.

A hangerő szabályozását úgy gondoltam, hogy egy kis szervot rákötnék az erősítő potméterére így azt már tudnám vezérelni az arduinoval.

Az arduino vezérlését nyomógombokkal gondoltam, 1 gomb a bemenetválasztáshoz, 2 gomb a hangerő fel-le és még egy gomb a be-ki kapcsoláshoz, plusz egy még a mute-hoz illetve egy az akksihoz.
Lenne még egy infra vevő is, így a telefonom infrájával is lehetne távvezérelni.

Visszajelzésnek egy 8db-os WS2812 digitális ledet néztem ki, 5Vról üzemeltetve. Bekapcsolt állapotban a hangerőt mutatná, akksi gomb megnyomásakor pedig a töltöttséget. Bemenetválasztáskor meg villogna egy színen ha váltott a bemenet.

Szóval szerintetek kellene-e még valami funkció ehhez a hordozható erősítőhöz amire nem gondoltam?
Attól félek még, hogy a Nano memóriája nem lesz elég.

(#815) dave0825 válasza gyapo11 (#813) üzenetére


dave0825
őstag

Értem, köszönöm a válaszaidat. Írtam is, hogy 3 gomb lenne rajta: óra+, perc+, és másodperc nullázó. A 3. gombbal így én is tudnám pontosítani, mert ha óramodul nélkül csinálnám, akkor naponta fél percet sietne, így naponta kellene nulláznom a másodpercet. Vagy most így belegondolva, ha olyat állítanék be, hogy pl.
unsigned long int time;
...
time = millis(); és ezt az értéket megszoroznám annyival (majd kiszámolom), amivel már nem sietne 30mp-et naponta, az nem lenne jó? A végén meg beállítanám, hogy 23:59:59-kor nullázza a "time" változót, és akkor nem is lenne túlcsordulás, mert elölről kezdené (mert elvileg valami 50 nap után túlcsordul a millis()).

Huawei P30 // Suzuki DL650XT '15 <-- Kawasaki Z750 '07 <-- Aprilia RS 125 '99

(#816) gyapo11 válasza dave0825 (#815) üzenetére


gyapo11
őstag

Nem tudom a millist lehet-e nullázni, szerintem nem. Az mindenképpen túl fog csordulni 50 nap után, ha addig nincs reset. Lekezelni viszont lehet és kell is egy hosszan működő alkalmazásban.
A sw-ből korrigálás működik, de mint írtam sok tényezőtől függ a pontosság, nem megbízható. Akkor már inkább az óramodul, és annak az eltérését korrigálni, az talán stabilabban hozza a pontatlanságot.

menyország -> mennyország, akadáj -> akadály, jótálás -> jótállás, Iphoneal > Iphone-nal, kisuly > kisujj, csővet > csövet

(#817) dave0825 válasza gyapo11 (#816) üzenetére


dave0825
őstag

És a fönt linkelt modul jó lehet? Mármint mit kell tudni róla, ismered valamennyire? Én nem értek hozzá. :B
Nem lehet 0-ázni tényleg, megpróbáltam. :(((

[ Szerkesztve ]

Huawei P30 // Suzuki DL650XT '15 <-- Kawasaki Z750 '07 <-- Aprilia RS 125 '99

(#818) dave0825 válasza gyapo11 (#816) üzenetére


dave0825
őstag

Utánanéztem a ds1307-nek, elvileg a ds3231-es sokkal pontosabb. Nekem szobába lesz, úgyhogy túl hidegnek, se túl melegnek nem lesz kitéve, talán nem fog nagyon elkóricálni az idő. Ha meg mégis, akkor marad a manuális utánaállítás. Majd kitapasztalom, hogy mennyit késik/siet, és olyan időközönként állítok utána. Így is sokba lesz a dizájn miatt, nem akarok több ezret költeni gps-re, pontosabb modulra, meg ilyenekre. :)

Huawei P30 // Suzuki DL650XT '15 <-- Kawasaki Z750 '07 <-- Aprilia RS 125 '99

(#819) gyapo11 válasza dave0825 (#818) üzenetére


gyapo11
őstag

Az úgy unalmas is lenne, ha egy zsák pénzért megvenné az ember a tökéletes órát. :)
Szerintem elég olcsón is lehet ügyeskedni. Pl. egy pontosabb kvarc és néhány 50 Ft-os osztóic már elég jó időalapot adhat, egy trimmerkondival elég pontosra lehet állítani. De ha termosztátba kerül, amit az arduino kiválóan tud vezérelni, akkor meg überszuper pontos lehet hidegben-melegben egyaránt.
Én is úgy tudom, hogy a 3231 pontosabb mint a 1307, utóbbi nekem nincs is. De mivel egyik sem elég pontos egy órához, mindenképpen korrigálni kell valamilyen időközönként. Akkor meg már mindegy, max az egyiket sűrűbben kell állítgatni. Ha viszonylag állandó a hőmérséklet, akkor esélyed van az állandó eltérésre, amit jól lehet kompenzálni. Nekem óramodul nélkül pusztán a millissel sikerült napi 1-2 tizedmásodpercet elérni a szobában. Csak ugye így egy áramszünet után nincs idő, míg óramodullal van, szóval nem érdemes kihagyni.

menyország -> mennyország, akadáj -> akadály, jótálás -> jótállás, Iphoneal > Iphone-nal, kisuly > kisujj, csővet > csövet

(#820) gyapo11 válasza dave0825 (#817) üzenetére


gyapo11
őstag

Biztos jó lesz a 1307 is az előbb leírt okok miatt.
Nem ismerem, a 3231-gyel nem volt gond, találtam hozzá példát, működik. Alarmot nem teszteltem. Gondolom a 1307 is hasonló, és valószínűleg a pontatlanabb nem azt jelenti, hogy ma siet, holnap meg késik, hanem egy viszonylag stabil értékkel tér el a pontostól, ami könnyen helyrehúzható egy adott értékkel. Esetleg ezt az értéket írathatod az óramodul memóriájába vagy a 24c32-be gombokkal menet közben is változtatható módon, és akkor pár hét alatt csúcspontosra finomíthatod.

menyország -> mennyország, akadáj -> akadály, jótálás -> jótállás, Iphoneal > Iphone-nal, kisuly > kisujj, csővet > csövet

(#821) dave0825 válasza gyapo11 (#820) üzenetére


dave0825
őstag

Köszi a válaszokat. Ez az óramodul egyébként hogy működik? Rákötöm az Arduino-ra a Vcc, GND, SDA, SCL pin-eket, de akkor miért kell külön elem a modulra, miért nem az Arduino tápját használja? Akkor miért kell a Vcc és GND-t rákötni? Egyébként ilyesmit szeretnék csinálni, csak magyarul, és nem negyed, fél, háromnegyed órákat ír, hanem minden percet, és nem láthatóak a betűk, hanem egy tükör mögé lenne téve az egész a szobámban ugyanígy képkeretbe szerelve, kék ledekkel. :) A ledeket 6x5-ös mátrixba kötöm Arduino-ra, és persze párhuzamosan összekötögetve, hogy a szavakat világítsa meg. Tehát olyat szeretnék, hogy programba beírni, hogy ha éppen 8 óra 14 perc van, akkor a NYOLC, a TIZEN és a NÉGY szavak mögötti ledek világítsanak. Nem bonyolult, nem? :B
Excel-ben így néz ki eddig a dolog. A fölső táblázat, a led-ek mátrixba rendezve, az alsó pedig ahogy majd a betűk lesznek egy lapon kivágva. Az ÓRA és a PERC led-ek folyamatosan világítanak, az nem megy bele a mátrixba.

[ Szerkesztve ]

Huawei P30 // Suzuki DL650XT '15 <-- Kawasaki Z750 '07 <-- Aprilia RS 125 '99

(#822) zka67 válasza dave0825 (#821) üzenetére


zka67
őstag

Szia, bocs, hogy beleszólok, csináltam már jónéhány órát. Nálam a szempont mindig az olcsóság, és az egyszerűség volt. Be lehet "lőni" egész pontosra az arduino-t is, külső RTC nélkül is. A trükk nálam az volt, hogy az internetes időt vettem alapul a "belövéshez". Első lépésben hagytam menni az órát egy teljes napig, majd megnéztem, hogy mennyi az eltérés (természetesen a PC-n minden alkalommal frissítettem előtte az internetes időt). Sietett mondjuk 30 mp-et. Ekkor beállítottam neki, hogy minden 86400/30-adik órajelet hagyja figyelmen kívül (én megszakítást használtam az időzítéshez és a kijelzők multiplexeléséhez, 1kHz-et). A következő lépés az volt, hogy hagytam így menni egy teljes hónapig, majd ugyanezt a számítást elvégeztem, és így kaptam egy olyan órát, ami évi 10mp-nél nem késett/sietett többet, ami szerintem elfogadható. (Ha késik, akkor 2x hívom meg az időszámláló rutint, ha siet, akkor kihagyok egy hívást)

Csináltam órát DS1307-el is, ezt is be lehet "lőni" egész pontosra, két darab 5pF-os kondenzátort kell kötni a kvarc lábai és a föld közé. Ezzel havi 5mp-es pontosságot tudtam elérni, ami szerintem még mindig elfogadható. A DS3231 sem pontosabb, mint a 1307-es, csak abba már beépítettek néhány kondenzátort,
amit a kvarc lábaira tudsz kapcsolni szoftverből, így lehet pontosabbá tenni, de atomóra abból sem lesz.

Egyébként az elem azért kell az RTC-nek, hogy ha áramszünet van, akkor is menjen az óra, és a ram-ban tárolt tartalmat is megőrizze. Ez jó dolog, ha csak pár beállítást akarsz tárolni, nem kell külön eeprom.

(Az RTC ram tartalmának ellenőrzésére érdemes egy checkusm-ot is használni, hogy tudd, hogy első
alkalommal indítottad el az órát, és az adatok érvénytelenek, vagy már inicializáltad őket, és érvényesek)

Ha atomóra kell, akkor kell hozzá egy wifi modul és le kell kérdezni az internetes időt. Az sem egy bonyolult dolog.

Remélem tudtam segíteni egy kicsit.

[ Szerkesztve ]

(#823) dave0825 válasza zka67 (#822) üzenetére


dave0825
őstag

Minden segítséget, ötletet szívesen fogadok, úgyhogy köszi. :)
Ezt valamelyik hsz-emben írtam is, hogy szorzom annyival "time" értékét, amennyivel késik, én durván számoltam csak egyelőre, 30mp-et siet naponta a millis() nekem. Szóval akkor ez is járható út. Viszont a kb. 50 napos túlcsordulást hogy oldottad meg?

Hogy érted, hogy ha áramszünet van, akkor is megy? Az Arduino-n lévő programot tudja futtatni olyankor is egy darabig elemről az RTC? Amúgy ez az eeprom, checksum, rutin, ezek nekem még kínaiak. :DDD Tanultam suliban Mikrovezérlők-et, de a tanár valahogy úgy tanította, hogy nem tudott érdekelni, viszont most később az Arduino elkezdett. Amúgy arról az óráról ezek a szavak ismerősek, de nem tudom, mit jelentenek. :B

Írtam, hogy szobába lesz dísznek igazából csak, úgyhogy nem gáz, ha pl. havonta rá kell állítanom esetleg gombokkal.

Tehát végszónak: egyszerű óra, perc számláló órát szeretnék, 1 óra állító, 1 perc állító, illetve 1 másodperc nullázó gombbal, így könnyen rá tudok állítani, ha ne adj isten elkószálna az idő, vagy valamiért kikapcsolnám, ilyesmi. A programba írnék olyan parancsokat, hogy adott perckor adott ledek világítsanak. Ennyi lenne. :)

[ Szerkesztve ]

Huawei P30 // Suzuki DL650XT '15 <-- Kawasaki Z750 '07 <-- Aprilia RS 125 '99

(#824) zka67 válasza dave0825 (#823) üzenetére


zka67
őstag

Én nem arduinot használok, de a lényeg szempontjából ez semmin nem változtat. Megszakítást generálok pl. 1ms-enként, és ezt használom időalapnak.

Ha konkrét megoldás is érdekel, írtam egy fejlesztőkörnyezetet a 8051-es mikrokontrollerekhez, ebben megtalálod példaként ezt az órát is:

Turbo51Studio letöltése
Digital clock példaprogram pascal nyelven

A turbo51 studioval ki is tudod próbálni az órát anélkül, hogy meg kellene építened az áramkört:

Az RTC számolja az órát, percet, napot, stb..., az arduino közben csinálhat mást. Amikor tudni akarod, hogy mennyi az idő, kiolvasod az RTC-ből. Magyarul az arduinotól függetlenül méri az időt. Az akku csak annyit csinál, hogy az RTC akkor is méri az időt, amikor az arduino nem kap tápot.

A checksum-ot, az RTC ramot, és az eepromot egyenlőre hagyd figyelmen kívül :)

[ Szerkesztve ]

(#825) dave0825 válasza zka67 (#824) üzenetére


dave0825
őstag

Megnéztem a programot, kicsit nagyon nem látom át, nekem kínai. :B Az RTC-s dolgot már értem, köszi. Tehát azt mondod, hogy ha késik/siet a DS3231, akkor 2db kondival egyszerűen megoldható?
Mondjuk már megrendeltem, ha megjön kipróbálom, megnézem pl. 1 nap alatt mennyit késik/siet, és írok majd ide, hogy mit érdemes tenni. :)

Huawei P30 // Suzuki DL650XT '15 <-- Kawasaki Z750 '07 <-- Aprilia RS 125 '99

(#826) zka67 válasza dave0825 (#825) üzenetére


zka67
őstag

Sebaj, elég ha a saját programodat átlátod majd :)

A DS3231-hez nem kell küldő kondi, abban szoftverből lehet állítani, hogy mennyit kapcsoljon a lábakra. A DS1307-hez kell külső kondi, mert abba nem tették bele ezt a funkciót.

(#827) dave0825 válasza zka67 (#826) üzenetére


dave0825
őstag

Jaaa, értem. :) Na, akkor kb. már mindent tudok. :DDD Megjön a DS3231, letesztelem, írok ide, szépen sorba mindent. :) Egyébként megvalósítható biztosan, amit följebb írtam, hogy mit szeretnék? Mert akkor amíg várok az RTC-re, addig csinálnám a dizájnt. :)

(#828) zka67: mármint az én "szakértelmemmel" gondoltam, hogy ilyen eeprom, rutin, meg ilyenek ismerete nélkül. :D

[ Szerkesztve ]

Huawei P30 // Suzuki DL650XT '15 <-- Kawasaki Z750 '07 <-- Aprilia RS 125 '99

(#828) zka67 válasza dave0825 (#827) üzenetére


zka67
őstag

Persze, minden megvalósítható :)

(#829) gyapo11 válasza dave0825 (#823) üzenetére


gyapo11
őstag

50 napos túlcsordulást hogy oldottad meg?

A lényeg, hogy 50 nap után megint 0-ról indul a millis és ezt kell figyelni.
Pl. óránként kiírom a reset óta eltelt órák számát. 1193-ig nincs gond, a millis megy föl 4294967296-ig, utána 0-val folytatja.
Alapból vizsgálom a millis értékét, hogy van-e már 3600000-rel nagyobb mint az előző óránál eltárolt érték. Ha ezt elérte eltelt egy óra, léptetem az óraszámot és kiírom, az aktuális millist elteszem az előző éréket tároló változóba.
Aztán egyszer csak észreveszem, hogy az aktuális millis értékből kivonva az előző tároltat negatív számot kapok, illetve hogy az aktuális millis kisebb, mint az eltárolt érték. Na ekkor csordult túl. Mi a teendő? Kivonom a maximálisból az előző tárolt értéket, ennyi idő telt el az előző órától a túlcsordulásig.
Pl. az előző tárolt érték legyen 4285563859.
4294967296-4285563859=9403437
Mivel negatív számot nem írhatok az unsigned longba, ezért egy órás ciklus idejére külön kell kezelni, és nem 3600000-at kell elérni, hanem 9403437-tel kevesebbet, mert az már eltelt az előző órától a túlcsordulásig.
Aztán ha ezt elérte, léptetem az óraszámlálót, beírom az előző értékbe az aktuális millist, és minden megy tovább megint 50 napig.

menyország -> mennyország, akadáj -> akadály, jótálás -> jótállás, Iphoneal > Iphone-nal, kisuly > kisujj, csővet > csövet

(#830) dave0825 válasza gyapo11 (#829) üzenetére


dave0825
őstag

Huh, ez sok volt egyszerre, de nagyjából értem. Megvárom inkább az RTC-t, megnézem azzal mire megyek. :)

Egyébként az normális dolog, hogy ha van egy program az Arduino-n, ami fut, és megnyitom a programban a Soros port gombot, akkor elölről kezdi a számlálást? Most konkrét példa a millis()-szel, hogy rátöltöm a programot, már villog is szépen, hogy fut, és mondjuk 10mp után nyomok rá a Soros port-ra, és 0-ról kezdi, tehát újraindul az egész program. :F

[ Szerkesztve ]

Huawei P30 // Suzuki DL650XT '15 <-- Kawasaki Z750 '07 <-- Aprilia RS 125 '99

(#831) gyapo11 válasza dave0825 (#830) üzenetére


gyapo11
őstag

Normális, használd az IDE-be épített soros terminál helyett pl. a cooltermet (http://freeware.the-meiers.org) vagy terminalt (http://sites.google.com/site/terminalbpp/).

menyország -> mennyország, akadáj -> akadály, jótálás -> jótállás, Iphoneal > Iphone-nal, kisuly > kisujj, csővet > csövet

(#832) dave0825 válasza gyapo11 (#831) üzenetére


dave0825
őstag

Ó, király, kösz szépen. Nem tudtam, hogy csak a beépített indítja újra a programot, az utóbb linkelt terminal tökéletes. :)

Huawei P30 // Suzuki DL650XT '15 <-- Kawasaki Z750 '07 <-- Aprilia RS 125 '99

(#833) tvamos válasza dave0825 (#832) üzenetére


tvamos
nagyúr

Én mindezek ellenére mégis egy DS1302 Real Time Clock-ot használnék. Ez (i2c) szerintem hasznosabb tudás. Másrészt az RTC kis árammal elmegy, a saját aksijáról, hónapokig, esetleg évekig. Harmadrészt a kvarc kalibrálással a hosszú idejű hibát nem kompenzálod.
Vagy, megszámlálnám a hálózati 50 Hz periódusait.

"Mindig a rossz győz, és a jó elnyeri méltó büntetését." Voga János

(#834) dave0825 válasza tvamos (#833) üzenetére


dave0825
őstag

De több helyen is írták, hogy a másik pontosabb, jobb. Majd meglátom, ha boldogulok vele, jó lesz a DS3231, vagy ha hamar lemerül majd, akkor beszerzek egy DS1302-t. Köszi.

Huawei P30 // Suzuki DL650XT '15 <-- Kawasaki Z750 '07 <-- Aprilia RS 125 '99

(#835) tvamos válasza dave0825 (#834) üzenetére


tvamos
nagyúr

Mindegy melyiket hasznalod, ugy ertettem, hogy RTC legyen.

"Mindig a rossz győz, és a jó elnyeri méltó büntetését." Voga János

(#836) dave0825


dave0825
őstag

Eszembe jutott egy probléma. Mégpedig az, hogy úgy tudom csak összeállítani a led-mátrixot (egyébként ehhez találtam tök jó leírást, már értem, hogy hogy lehet programozni :) ), hogy valamelyik pin-re 7db kék led jut párhuzamosan kötve. Ezt el tudja látni elegendő árammal az Arduino? Ezen a képen azt írják, hogy 40mA a max, amit tud pin-enként, viszont egy led-nek pedig 20-24mA kellene. :F Valahogy meg lehet oldani külső áramforrással? Így lennének összekötve a mátrixban a ledek, viszont pár nem 1db led lenne, hanem párhuzamosan kötve 5, esetleg 3, 7, ilyenek...

(#835) tvamos: ja értem, akkor jó, mert már megrendeltem a DS3231-es modult.

[ Szerkesztve ]

Huawei P30 // Suzuki DL650XT '15 <-- Kawasaki Z750 '07 <-- Aprilia RS 125 '99

(#837) zka67 válasza dave0825 (#836) üzenetére


zka67
őstag

Szia, a 40mA az abszolút maximum, a határérték, a javasolt 20mA egy lábon. Továbbá ha a kék ledeket 20mA-ről hajtod, ahhoz már fegyverviselési engedély kell, mert ki fogja égetni az agyadat is a fénye :D

De komolyra fordítva a szót, igen, meg lehet oldani mindent, még ezt is. Kell hozzá pluszban néhány filléres tranzisztor és ellenállás, remélem ezekben otthon vagy.

A tranzisztorok lehetnek BC337 (NPN) és BC327 (PNP) vagy hasonó típusúak.
A vezérlések invertálódnak, erre figyelj oda. Annyi ROW és COLUMN áramkör kell, ahány sorod és oszlopod lesz, a mátrixot nem rajzoltam fel külön, szerintem az menni fog neked is. A SELECT ROW kimenetek lehetnek OC-k is.

Még egy jótanács: LED-eket sose köss párhuzamosan, még ha egy sorozatból valók, akkor se. Mindig használj külön előtét ellenállást minden ledhez. Az okokra most nem térnék ki, fogadd el ezt így.

+5VO O +5V
| |
| -
| | |10K
| | |
E| - 4K7
\| | ---
PNP |--o---| |---< SELECT ROW (0)
C/| ---
|
|
---o---ROW
|
+
LED + 330R
-
|
---o---COLUMN
|
C| 1K0
\| ---
NPN |----| |-----< SELECT COLUMN (1)
E/| ---
|
---

[ Szerkesztve ]

(#838) dave0825 válasza zka67 (#837) üzenetére


dave0825
őstag

Ez jó volt. :C Ilyet rendeltem, itt néztem, hogy 24mA-t írnak, meg Google-be beírva, hogy "5mm led current", szinte mindenhol 20mA-t olvastam, de akkor az valami más lesz.
Amúgy nem annyira vagyok otthon tranzisztorokban sem (1x használtam, de már láttam többet is :D bázis, kollektor, emitter, ez megvan), ellenállásokat már használtam. :)
Mik azok az OC-k?

Amúgy így 1:45-kor nem annyira értem a kapcsolást, bocs, hogy láma vagyok. :F
Nagyjából így nézne ki egy részlete a mátrixnak, legalábbis így gondoltam a párhuzamosan kötéseket (amit annyira nem értek, hogy miért nem lehet, elég sokszor használtam ledeket párhuzamosan kötve, és nem szokott gond lenni, meg nem értem, hogy akkor máshogy hogy tudnám összekötni őket, sorosan nem jó. :F)

Ha nem így párhuzamosan, akkor hogy? Illetve be tudnád rajzolni (ha nem nagy munka/kérés) az ellenállásokat és tranzisztorokat? :B Mert már lassan 2-kor tényleg nem fog az agyam, bár szerintem du. sem érteném. :U

Huawei P30 // Suzuki DL650XT '15 <-- Kawasaki Z750 '07 <-- Aprilia RS 125 '99

(#839) zka67 válasza dave0825 (#838) üzenetére


zka67
őstag

Ilyet rendeltem... Mondom, hogy ki fogja égetni az agyadat :D

Az NPN tranzisztorok kollektorára kötöd a kék (led-) vezetékeket, a PNP tranzisztorok kollektorára pedig a piros (led+) vezetékeket. Ezután minden egyes leddel sorba kötsz egy-egy 330 ohmos ellenállást, különben el fognak égni az ellenállásaid a terheléstől (ha egy ellenállást teszel több ledhez).

A D3,D4,D5 megy majd a SELECT ROW-okra, a D6,D7,D8 pedis a SELECT COLUMN-okra, bár a te rajzodon pont fordítva vannak, de nincs jelentősége az elnevezéseknek.

Az OC az open-collector kimenetet jelenti, de felejtsd el amit írtam, nem érdekes, csak összezavar téged.

[ Szerkesztve ]

(#840) dave0825 válasza zka67 (#839) üzenetére


dave0825
őstag

Az a baj, hogy elsőre nem szoktam megérteni ezeket a dolgokat, másodszorra már igen. :D Úgyhogy tényleg csak összezavar az OC, de igazából mondom, elsőre minden. :DDD
Ezen a "ki fogja égetni az agyadat"-on megint meghaltam. :DD :)) Viszont idetartozik egy mellékes kérdés, hogy akkor mekkora az áramfelvétele az ilyesmi ledeknek? Nem árt, ha tudom. :)

Csak apróbb kérdések, hogy biztosra menjek:
- mindegyik piros szálra kell egy-egy tranzisztor, és ugyanúgy a kékekre is, ugye?
- ha mindegyik ledhez kötök egy 330 ohmos ellenállást, akkor már maradhatnak így párhuzamosan kötve? (tehát csak így értetted, hogy ne kössem párhuzamosan, hogy ellenállás nélkül, de ellenállásokkal már mehetnek így kötve?)
- lent a képen (lábak számát amúgy átírogattam) a D6-D7-D8-as lábakra is kell +5V-ot kötni? Ezt kicsit furcsának tartom, de az előző hsz-edben az ábrán ott is rá van kötve egy ellenállással sorba.

Így fog kinézni akkor a dolog?

[ Szerkesztve ]

Huawei P30 // Suzuki DL650XT '15 <-- Kawasaki Z750 '07 <-- Aprilia RS 125 '99

(#841) Feketemadár


Feketemadár
újonc

Sziasztok!
Össze szeretnék kötni egymással két arduinót soros vonalon kb. 5méter távolságra. Szerintetek kell-e valamilyen adaterősítő vagy lezáró ellenállás, vagy valamilyen speciális kábel hozzá?

Kösz és üdv. mindenkinek

(#842) tvamos válasza Feketemadár (#841) üzenetére


tvamos
nagyúr

Én egy 20 centis vezetéket is lezárnék. Egy 5m-esre, vevő oldalra betegnek egy-egy 470 ohmos felhúzót. Árnyékolt kábel sem árt, ha zajos a környezet...
Amúgy milyen sebességről beszélünk?

"Mindig a rossz győz, és a jó elnyeri méltó büntetését." Voga János

(#843) zka67 válasza dave0825 (#840) üzenetére


zka67
őstag

Szia, igen, úgy nézem, jó lesz a rajzod :)

Igen, minden piros és kék vezetékre kell egy-egy tranzisztor.
A ledeket így már kötheted párhuzamosan.
Egy nagyfényerejű kék lednek szerintem elég 5mA is, de majd meglátod.
A D6,D7,D8 lábakra nem +5V-ot kell kötni, hanem egy 10K ellenálláson keresztül kötöd a +5V-ra.
Csak azért rajzoltam bele, hogy ha netán mégis OC kimenetet állítanál be az arduinonak, akkor is
le legyen zárva rendesen a tranzisztor, ha nincs rá szükség. De szerintem el is hagyhatod, nem
fogod te OC-re állítani a kimenetet.

(#844) gyapo11 válasza zka67 (#843) üzenetére


gyapo11
őstag

Talán változtatni is kell a ledek meghajtóáramát a környezeti világosságtól függően. Beállítani a max áramot 24 mA-re, és pwm kimenetről meghajtani egy fényérzékelő jelétől függő értékkel.

menyország -> mennyország, akadáj -> akadály, jótálás -> jótállás, Iphoneal > Iphone-nal, kisuly > kisujj, csővet > csövet

(#845) dave0825 válasza zka67 (#843) üzenetére


dave0825
őstag

Úgy is rajzoltam be (mondjuk látom, hogy nem úgy írtam le, bocs :B), hogy 10k-s ellenálláson keresztül megy a +5V-ra, azt értettem, hogy így kell, csak azt nem, hogy miért, de akkor kihagyom.
Tehát, összeállítom a ledes mátrixot (ellenállásokkal), majd a tranzisztorokat a képen látható módon a portok elé kötöm, a GND-t és a +5V-ot pedig az Arduino-ról veszem le (gondolom). Nagyon szépen köszönök mindent! Sokat segítettél! :R

(#844) gyapo11: gondoltam rá, hogy egy potit is beiktatok, fényerőszabályzásnak, csak én úgy tudtam, hogy azt csak PWM-en lehet, de 3 láb kell a nyomógomboknak, a maradék 11 meg pont elfogy a ledes mátrixhoz, tehát úgy nem tudom, hogy csak PWM-re kötöm a ledeket. Vagy van valami más megoldás is a fényerőszabályzáshoz? Vagy úgy érted, hogy a +5V-ot nem az 5V-os lábról, hanem egy PWM-lábról levenni? És akkor egy potival már lehetne vezérelni a fényerőt. Viszont még mindig az a baj, hogy nincs szabad PWM-es láb. :F

[ Szerkesztve ]

Huawei P30 // Suzuki DL650XT '15 <-- Kawasaki Z750 '07 <-- Aprilia RS 125 '99

(#846) gyapo11 válasza dave0825 (#845) üzenetére


gyapo11
őstag

Pwm kimenet nélkül nincs pwm. Ha elfogytak a lábak, akkor át kell szervezni az egészet, pl. egy demultiplexer ic-vel. Vagy a fényerőszabályzást kell külső áramkörre bízni, csak az macera az analóg értékekkel, erre lenne pont jó az arduino.

menyország -> mennyország, akadáj -> akadály, jótálás -> jótállás, Iphoneal > Iphone-nal, kisuly > kisujj, csővet > csövet

(#847) dave0825 válasza gyapo11 (#846) üzenetére


dave0825
őstag

Akkor lehet, hogy hagyom a fényerőszabályzást. Vagy tudsz valami jó leírást ilyen ic alkalmazásához? Ezt találtam, de a kódot nem nagyon értem, viszont ezzel sokkal kevesebb láb lenne használva, és kb. 400,- a 10db ilyen ic. :Y Hasonló a kód az itt találhatóhoz, de ezt megértettem, a másikat viszont nem annyira. :F

Huawei P30 // Suzuki DL650XT '15 <-- Kawasaki Z750 '07 <-- Aprilia RS 125 '99

(#848) zka67 válasza gyapo11 (#846) üzenetére


zka67
őstag

Szia,

Pwm kimenet nélkül nincs pwm.

Ne mondj olyat, ami nem igaz :) Szoftverből is meg lehet oldani a pwm-es fényerőszabályzást.

dave0825: A fényerőszabályzást nem kell feltétlenül a környezethez állítani, lehet azt az időtől is függővé tenni. Az én órám pl. este 9-kor szépen, fokozatosan elhalványul, hogy éjjel ne zavarjon a fénye, és reggel 6-kor fordítva felerősödik. Ha megérted a pwm működését, akkor te is meg fogod tudni csinálni akár szoftverből is.

De segítek: ha halvány fényt akarsz, akkor rövid időre bekapcsolod a ledet, és hosszabb időre pedig ki. Ha erősebb fényt akarsz, akkor hosszabb időre kapcsolod be a ledet, és rövid időre ki. Ha teljes fényerőt akarsz,
akkor folyamatosan bekapcsolva hagyod a ledet. És mindezt legalább 100x mp-enként, hogy ne vedd észre a villogást.

(#849) dave0825 válasza zka67 (#848) üzenetére


dave0825
őstag

A villogást tegnap már teszteltem a mátrix programozásán, és persze, kell is hogy gyorsan villogjon, hogy ne lehessen észrevenni, hogy soronként pásztázza mátrixot. Én igazából potival szeretném állítani, mert pl. van, hogy nappal leengedem a redőnyt, és akkor szeretném ráadni a fényerőt, vagy ilyesmi. Csak egy példa volt, de mindenképp manuálisan szeretném, de akár lehetne 2 gombbal is, hogy egyikkel növelem, másikkal csökkentem a fényerőt, ha ez megoldható.

Huawei P30 // Suzuki DL650XT '15 <-- Kawasaki Z750 '07 <-- Aprilia RS 125 '99

(#850) dave0825 válasza dave0825 (#849) üzenetére


dave0825
őstag

Találtam Arduino oldalán egy leírást fényerő vezérlésére PWM láb használata nélkül, és tök jól működik. :) Annyi érdekessége van a dolognak, hogy ha 1000-et írok a HIGH után (így a LOW után 0 kerül), akkor nem a max. fényerő van, de 999-nél igen. Ugyanez fordítva is igaz, ha 0-t írok a HIGH után (a LOW után így 1000 lesz), akkor sem a min. fényerősségen van a led, de 1-nél igen. Potival szépen állítható.
És azt hiszem, hogy az itt található kód-ban a showPattern-en belül ha a digitalWrite(row[thisrow], HIGH); után írom a delayMicroseconds(poti);, a digitalWrite(col[thiscol], LOW); után pedig a delayMicroseconds(1000 - poti); sorokat, akkor egész jól változtatja a fényerőt (bár lehet, hogy a próba ledek tehetnek róla, hogy elég kis különbség van a min. és max. között), ahogy a potit állítom, viszont itt is 0-nál, és 1000-nél nem a min. és max. van, hanem nekiállnak villogni a ledek (a map-be 1-et és 999-et írtam min.-max.-nak, így jó).
Mi lehet az oka, hogy 0-nál és 1000-nél nem a min. és max. fényerő van? Az pedig, hogy ilyen kis intervallumon változik a fényerő, normális dolog? A led-ek tehetnek róla, és előfordulhat, hogy a feljebb linkelt megrendelt kék led-jeimnél nagyobb lesz a változás?

[ Szerkesztve ]

Huawei P30 // Suzuki DL650XT '15 <-- Kawasaki Z750 '07 <-- Aprilia RS 125 '99

Copyright © 2000-2024 PROHARDVER Informatikai Kft.