Fórum témák
» Több friss téma |
A klónok CH340 Soros-USB illesztőjének drivere (Letöltés)
Szia!
Nemértem mi a gond pontosan, reggel van. ![]() 50 nap bele sem fér az unsigned long-ba. 50*24*3600*1000=4 320 000 000 ms. Unsigned long:4,294,967,295 (2^32 - 1) maximum ekkora számot tud tárolni. Lehet jobban járnál egy olcsó RTC órával, abban pl kalendár is van, meg pl ébresztés, idő lejártának figyelése, stb. A hozzászólás módosítva: Dec 6, 2016
Erre régen volt egy egyszerű rutin, igaz az egy plusz változó, de így legalább nem függ a port terheléstől.
led = 1-led; digitalwrite ( ledpin,led); Idézet: „50 nap bele sem fér az unsigned long-ba. 50*24*3600*1000=4 320 000 000 ms.” Igen, csak úgy írják a doksiban, hogy kb. 50 nap ( pontosabban valami 49,7 nap, ahogy írtad ! ) !
Szerintem az RTC éppen erre való, lehet vele feléleszteni arduino-t, interrupt is megy vele, szóval sokkal jobb, mint számolgatni az arduino-val.
Ha nincs RTC akkor pedig az eltelt időt számolni ugyan milis()-el, de külön változóba pl. eltelt perc számlálás, 50 napi perc pedig belefér már a változóba. ha eltelt idő>= 60 sec akkor eltelt perc=eltelt perc+1 és eltelt idő=0 ha eltelt perc= 50*24*60 akkor tegyen valamit, majd nullázza ki az eltelt percet is, hogy induljon újra a következő 50 nap. A hozzászólás módosítva: Dec 6, 2016
Igen, ha órát akarsz csinálni, akkor nagyon jó az RTC... De ha pl. valami várakozás kell pl. 170 ms ( mondjuk az alatt tölt meg egy flakont az automata ), akkor az RTC felejtős
!
A kérdés az, hogy mennyire lesz pontos 50 nap után az arduino-s számolgatás. Millis(1000), szerintem lesz pár milisec csúszás minden másodpercben, viszont 50 nap alatt ez jelentős lehet. RTC 25 ft, vagy mennyi, 250 ft bele az elem.
Igen, az lehet, de 50 nap...
Nem arra kell használni ( egyébként a millis() is lehet pl. kvarc alapú vagy külső órajelgenerátorral ( ez nem biztos, mert nem láttam a doksiját
! ) működtetett és akkor olyan pontos lehet, mint az RTC !) ! A hozzászólás módosítva: Dec 6, 2016
Nincs semmi baj az 50 nappal, ez csak annyi, hogy maximum ennyit tud mérni átfordulás nélkül... de ha számolom az átfordulásokat, akkor akár éveket is
!Abbahagyom, ne off-oljunk tovább !
Ez sajnos nem így van!
Ha megnézed az óra kvarcok jóval kisseb méretűek. A kisebb felületen kisebb hő tágulás történik, ezáltal kisebb rezonancia eltérések keletkeznek, hőmérsékletváltozás esetén. Ebből meg következi az óra kvarcok jobb pontossága. A hozzászólás módosítva: Dec 6, 2016
Akkor ez igaz az SMD méretű, 2x2mm tokozású kvarcokra is?
Nem inkább az lehet, hogy az óra kvarcok alacsonyabb frekvencián működnek és ezért másképpen metszik őket? A hozzászólás módosítva: Dec 6, 2016
Idézet: „külső órajelgenerátorral” Ez sokkal pontosabb is lehet, mint az órakvarc ( csak pénz kérdése !), ill. a működtető kvarc is lehet órakvarc, csak akkor másra nem jut annyi idő ( de az óra pontos lesz!) ! A hozzászólás módosítva: Dec 6, 2016
Látom, teljesen tévúton jársz, az millis() túlcsordulás probléma megoldásával!
Én ezt így csinálnám:
A hozzászólás módosítva: Dec 6, 2016
Ezt vettem most, 200Ft és már a kvarc is az IC be van integrálva:
DS3231
Szia!
Szerintem ez jobb megoldás: if ((later_time - earlier_time ) >=duration ) {action} Bővebben: Link
Meg kérdőjelezem!
Pedig még 4 ig kellett volna számolnia! És mekkora lenne a tévedés nagyobb, 4 Byte-es számoknál? KO! Az eredményünk nem pontos! Mivel a 0 elérésénél teljesül a feltétel a túlcsordulás miatt! A hozzászólás módosítva: Dec 6, 2016
És amivel CrossRoads védekezik:
then the rollover does generally not come into play. ![]() Szerinte + szerintem, hogy ez előforduljon nagyon kicsi az esélye! De érdekes volt eljátszani a gondolattal A hozzászólás módosítva: Dec 6, 2016
Van e valakinek tapasztalata a Si7021-es szenzorral. A kereső nem talál semmit róla itt a fórumon.
Nekem jó taasztalatom van vele, de Arduinos példát nem tudok adni. Mi a kérdés?
Akadt 1 klubtag, aki értékelte a ténykedésemet!
Részben az Ő kedvéért legyen itt 1 LED villogtató példa. Ami nem használ delay-t és ráadásul 5.nap biztos.
A hozzászólás módosítva: Dec 7, 2016
Szia!
Szerintem a Tavír fejlesztette nem kapható máshol. Üdv!
Ez nem ugy látszik mind ha meg álna a proci vagy kifagyna számlálást kezdi elöröl!?
Mi a gond a kodal amit linkeltem?
Van olyan alkalmazás ahol nem igazán van szükség pontos idöre (RTC tagra) elég nekem böven az mcu belsö számláloja is az az fix eltelt idöt számolni 10..20 perc pl ha most hoszabb 5..10sec is nincs gond belöle meg ha csuszik azal sincs ....
A te kódod azt csinálja, hogy:
Beolvassa a millist(), Majd kiírja az értékét. Aztán álldogál itt: delay(1000); ennyi ideig nem csinál semmit! És ezt kezdi elölről. Ha neked jó? Nekem semmi bajom a kódoddal! Bár az egész millis() olvasásnak semmi értelme, ha az időzítést a delay(1000); sor végzi! És ki mondta itt, hogy kifagy a program a millis() átfordulásakor? Mi azt mondtuk, hogy olyankor téveszti az időzítést, ha nem figyel rá a program. Ezzel szemben az én programom, minden kanyarban megnézi, hogy letelt e már a beállított idő? H még nem? Megy, tovább csinálja a dolgát, nem bénul meg a delay(ban)! Majd ha ideje van, elvégzi a dolgát. A hozzászólás módosítva: Dec 9, 2016
Sziasztok!
Wifivel kapcsolatos kérdésem lenne. Hogyan lehet megoldani, egy Arduino-t használó atmega328-cal, hogy wifi routerre csatlakozva mérési adatokat küldjön a program? ESP8266 melyik verziója a bevált? Kb 30 méterre van a router és böngészőbe beírva a wifi modul ip címét láthatóvá váljanak a küldött adatok. Nem kész programot kérek, csak iránymutatást, vagy valaki találkozott-e hasonló projekttel és megosztaná velem. Köszönöm!
Azért ha pontosabban megnézed, igyekszik lekezelni az átfordulást, és az átfordulástól függetlenül megy tovább a számlálója. A delay gondolom azért kell, hogy legyen mit mérni a millissel.
(bár lehet benéztem valamit). A hozzászólás módosítva: Dec 9, 2016
(Fel adtam! Reménytelen eset!)
Különben sem fogja észrevenni, ha 5 naponta 1 szer 1000 helyett csak mondjuk 100 lesz a késleltetése! ![]() A hozzászólás módosítva: Dec 9, 2016
|
Bejelentkezés
Hirdetés |












