Fórum témák
» Több friss téma |
A klónok CH340 Soros-USB illesztőjének drivere (Letöltés)
Akkor Uno-n ugyanazt műveld mint a terminal progiban, ugyanazzal a baud rate-val küldj AT parancsot, és figyeld mit ad vissza. Ha nem megy akkor az UNO-t kösd a soros-usb átalakítóval a PC-re, és ellenőrizd mit ad... Utána kösd össze az UNO-t az ESP-el, próbáld a PC-ről csak az UNO TX-re a RX vonalat bekötni, így látod mit küld az UNO... Kösd át a PC RX vonalat az ESP TX vonalára akkor láthatod az ESP mit válaszol az UNO-nak...
A hozzászólás módosítva: Jún 14, 2020
Én nem szeretnék készíteni olyan áramkört, csak a vázolt problémára szerettem volna egy gondolatébresztő lehetséges megoldást.Sargarigo kolléga már itt leírta hogy mire kellene koncentrálnunk és nagyon helyesen írta szerintem.
Idézet: „Béke! ![]()
Sziasztok!
Adott egy számláló áramkör, ami 8 digites led kijelzőn mutatja az értékeket, ami relatív nagy fogyasztást eredményez. Áramkimaradás esetén a belső eepromba szeretném menteni az aktuális értéket. Ez időnként működik, máskor random értéket kapok vissza induláskor. Feltételezem, hogy a nagy fogyasztás miatt nincs ideje a mentésre, ez okozza a hibás értékeket. Az arduino saját EEPROM.write funkcióját használom. Az áramkör betápján van egy 1000 µF elkó, ami ad egy kis plusz időt az íráshoz. A loop elején mérem a feszültséget az egyik analóg porton, egy 10k/2,2k osztón keresztül, belső 2,5 V-os referencia használatával. A feszültség mérére egy avdweb_AnalogReadFast könyvtárat használok, ami sokkal gyorsabb mérést ígér az eredeti analogRead-től. Az járható út, hogy ha a mért feszültség a beállított érték alá csökken, először lekapcsolom a kijelzőket közvetlen porthozzáféréssel, utána irom az eepromot, így tovább tart az elkóban tárolt feszültség? Vagy van valami más ötletetek a problémámra? Az elkó értékének növelése nem igazán járható út helyhiány miatt. A hozzászólás módosítva: Jún 16, 2020
uC-el táp lábaival párhuzamosan még egy nagyobb elkó 2-300 uF?
Nem igazán próbáltam még. Az viszont megfordult a fejemben, hogy a feszmérés osztóját az elkó elé kéne kötni, lehet az is a probléma oka, hogy a legközelebbi tápvonalra van kötve.
Arduino táp ágába betenni egy diódát, utána a kondit, a kijelzőt meg a feszültség osztót a dióda előttről megtáplálni?
Ezt ki is próbálom. Köszi az ötletet.
Pont ugyanilyen áramkört én is tervezgettem már, aztán persze nem így lett megvalósítva, úgyhogy nem tudom, hogy működött volna-e... Ami trükköt még gondoltam bele az az, hogy a tápfeszt analóg komparátorral mértem volna, az azonnal jelez, amikor a tápfesz adott érték alá megy, nincs késleltetése.
Arra figyelni kell, hogy az EEPROM íráshoz magasabb a minimális tápfeszültség, mint simán a működéshez! Lamprológushoz hasonlót terveztem, hogy a kondiról csak a CPU működik, és mindent leolt azonnal, amikor a _külső_ tápvonal (tehát a diódán kívüli) feszültsége egy érték alá csökkent. A "benti" akkor még alig rezzen, mivel a CPU csak logikai jeleket ad ki, a LED-ek egy meghajtóról mennek, amit viszont a külső forrás táplál. Így a végén még az is probléma lehetett volna, hogy a proci egyáltalán nem áll le egy rövid szünet alatt. Ezért azt is kitaláltam, hogy miután megvolt a mentés, akkor bekapcsol egy kis kisütő ellenállást a proci, hogy a saját tápja le tudjon esni. Amit nem tudtam pontosan megtervezni az az, hogy nem történik-e meg az, hogy amikor a belső feszültség magasabb mint a külső, akkor a meghajtók adat lába "táppá válik", mert mondjuk a mikrokontrollerhez hasonlóan van benne egy védő-dióda a táp felé. Emiatt a jelenség miatt szerintem biztos ami biztos érdemes minden fogyasztót lekapcsolni a diódás leválasztás ellenére is.
Ez sem működik. Pedig az elkót is kipótoltam még egy 2200 µF-al. Mostmár a kínai Mega128-ra gyanakszom. Az az érdekes, hogy Arduino Mega lappal már minden működött. Most kicsit átírva a kódot az eltérő bekötés miatt, már két napja szenvedek vele és csak nem akarja azt amit én. Az, hogy minden külön tápot kapjon, az egész áramkör újragondolását jelentené, mert a kijelzők multiplexálva vannak, közvetlenül az uC hajtja őket. A Megával ráadásul soros ellenállásokat sem használtam, már 100 Ohm esetén is túl halványan mentek a ledek. Most 47 Ohmok vannak áramkorlátnak. Tudom nem sok, de 50 ns. belapcsolt állapot mellett ettől több már sok lenne.
Lehet, hogy napi egy fix mentés lesz a vége, az is több mint 10 év élettartamot jelent ha a 100000 írást veszem figyelembe. Így a mentett érték megközelíti majd a valóságot. A hozzászólás módosítva: Jún 16, 2020
Szia, nem ismerem a programod, de esetleg még az is lehet hogy alacsony feszültség esetén elindul a mentés, majd tovább fut a program és újra belefut a tápfigyelés részbe és újra ment egész addig amíg esetleg leáll az MCU és hibásan írja az EEPROM ot. Próbáld hogy amikor mentett az EEPROM -ba utána egy végtelen ciklusba fusson a program(esetleg eközben csak a tápot figyelje ha mégis visszajönne a táp mielőtt leáll teljesen, nehogy ez esetben a végtelen ciklusban ragadjon).
Mégiscsak összejött. A programban is volt egy elírás, meg a kijelzőt is lekapcsolom, utána mentek. Na meg a Lamprologus által javasolt dióda is benne van, (Schottky, a feszültségesés miatt) és előtte mérem a feszültséget. Így bőven elég az eredileg tervezett 1000 µF puffer.
Köszönöm az ötleteket!
A. Stabkocka előtti puffert mem tudod mérni?
Nincs stabilizátor ic. 5 V-os kapcsolóüzemű tápja van, az is kb. fél méterre egy másik dobozban. Védelemnek meg tettem a bemeneti elkóval párhuzamosan egy BZW06-5V8 supressor diódát.
A hozzászólás módosítva: Jún 16, 2020
Én lehet kicserélném a tápot nagyobb feszültségűre, és tennék egy stabkockát. A táp megszűnést a a stab előtt figyelném, így a pufferben nagyobb energia marad a mentő progihoz. atmegában nem vagyok túl otthon, van a procidban "brown out" funkció? akkor azt is lejjebb kellene állítani
Most már én is így csinálnám, de a tápok már megvannak. A panel is kész. A csatlakozók a táp és a nyák között megvannak. Az már túl nagy pluszköltség + idő lenne, ha egy csomó hozzávalót újra kéne rendelni.
Jelenleg működik, folyamatos a tesztelés. Majd kiderül hosszútávon is rendben lesz-e. Igen van BOD. 2,7 V-ra állítottam.
Az is kérdés a loop milyen hosszú... Nem lehetne inkább megszakításból figyelni a tápot?
Sziasztok! Mostanában folyton feljön nekem ez a hirdetés.
Valaki már dolgozott ilyennek? Elvileg Arduino periféria kompatibilis... Sony Spresense
Sziasztok!
Olyan stoppert szeretlen kesziteni ami ms ban mer. A millis fuggvennyel probalkozom de nem okea dolog.
Sziasztok,
Hogyan lehet DS18B20 szenzorokat gyorsan beolvasni? Amelyik projekten most dolgozom azon a 7 szegmenses kijelzők multiplexálva vannak meghajtva és nagyon zavaró amikor az Arduino a szenzor beolvasásával tölti az időt. A legkisebb felbontásra állítva kb. 200 msec idő ameddig beolvassa a 2 szenzort, az egyik weboldalon azt láttam hogy 5 msec alatt is lehetséges lenne beolvasni a mért értékeket. A választ előre is köszönöm.
Először lel kell végeztetni a mérést majd kb egy másodperc mulva lekérdezed
Az 5ms maximum a scratchpad kiolvasási ideje lehet. A konverziós idővel nem tudsz mit kezdeni.
A Legjobb megoldás az, ha mindenkinek kiadod a mérési parancsot, a konverziós időben elvégzed azt a feladatot amit tudsz, aztán egymás után kiolvasod belőlük az értékeket, majd visszatérhetsz ahhoz amit éppen csinált a vezérlő. A hozzászólás módosítva: Jún 19, 2020
Köszönöm a válaszokat, igyekeztem a kezdetektől úgy megírni, de sajnos lassú úgy is.
A hozzászólás módosítva: Jún 19, 2020
Nem így gondoltam. Azt sem tudom most alkalmas-e a felhasznált program így lekérdezni.
Ami a programot illeti, a loopban folyamatosan annyi fut le hogy a tur és retur értékeket multiplexálva kiírja a kijelzőre (tizedes pont nélkül, a kijelzőn a tizedes pont fixen van bekötve), semmi egyéb nincsen benne, szerintem átalakítható bármire.
A hozzászólás módosítva: Jún 19, 2020
ds.write(0x44,1); // start conversion, with parasite power on at the end
később ds.write(0xBE); // Read Scratchpad
Tehát a sensors.requestTemperatures(); helyett legyen ds.write(0x44,1); ?
A dallas könyvtárat nem használom csak a onewire-t, mert nálam 7 szenzort kellett lekérdezni multiplexelve és nem használok szenzor címeket.
Itt ha egy szenzor van akkor: sensors.reset(); sensors.skip(); sensors.write(0x44); Konverziós időben elvégzed amit akarsz. sensors.reset(); sensors.skip(); sensors.write(0xBE); És én magam végzem a celsius-á alakítást. A dallaskönyvtárban ez máshogy megy mert az címekkel dolgozik, ott előbb le kell kérni a címét azt hiszem aztán tudod megszólítani. A hozzászólás módosítva: Jún 19, 2020
|
Bejelentkezés
Hirdetés |