Fórum témák
» Több friss téma |
A klónok CH340 Soros-USB illesztőjének drivere (Letöltés)
Ha ezt így lehet akkor tényleg nem kell semmi más
Köszi!
Lehet. Már csináltam.
Itt pl. az elem feszét mértem így: Bővebben: Link A hozzászólás módosítva: Nov 30, 2017
Most lehet hogy baromságot kérdezek, de a mai napnak már úgy is mindegy.
Nálam, 6 V akkuról megy rendszer, az arduino-nak, van egy 3,3 V saját tápja, A2 láb előtt van egy ellenállás osztó. Simán ADC-vel megmérem a lábat és abból kiszámolom az akku feszt. Van ennél egyszerűbb ? Akkor jobb (kell) használni a belső referencia feszültséget, ha az rendszert pl. direktben táplálja egy elem vagy akku?
Ha direktben táplálod a mikrokontrollert (amit 6V-ról nem tehetsz meg), akkor nincs állandó referenciafeszültséged hisz az a folyamatosan változó tápfesz lesz. Ilyenkor működik az általam vázolt mód.
A te esetedben két lehetőség van. Ha jobb fajta regulátort használsz (kicsi hőmérséklet drift, stabil pontos kimenet, pl. MCP1702-es sorozat) akkor a regulátortól jövő tápfeszt használhatod referenciaként, majd ellenállásosztóval leoszthatod a mérni kívánt jelet biztonságos szintre, két schottky diódával (pl. BAT54S) pedig védheted az analóg bemenetet hülyeség ellen. A másik lehetőség, hogy a belső 1.1V-os referenciát használod és jobban leosztod a bejövő jelet (ki kell mérni az 1V1-es referencia valódi értékét, nagyon szór ugyanis), diódákkal ugyanúgy javasolt védeni. Diódás védelem esetén nem szabad nagyon nagy értékű ellenállásokat használni a feszosztókhoz, mert megnöveli a szivárgó áram okozta hibaofszetet.
MP2315 használok most tápnak.
Dióda nincs a mérőkörben, és viszonylag nagy értékű ellenállásokat használok, mert úgy tudom azok kevesebbet fogyasztanak, és nekem minden uA számít(hat) . Inkább a mérési pontosságból áldozok be.
A diódák védelmi szerepet töltenek be. Ha nem használod őket, akkor mehetnek a nagyobb ellenállások, az MCU analóg bemenetén csak nagyon kis áram folyik.
A DC/DC táp nem igazán használható referenciának (elég szép Vpp-jük szokott lenni). Használd a beépített 1V1-et. A hozzászólás módosítva: Nov 30, 2017
Magyarul, ha szórt mérési eredményt kapok akkor (ezt nem vettem észre), táp lehet a ludas?
Vagy mindenképpen használjam az 1V1-t?
Az 1V1 pontosabb eredményt fog ilyenkor adni.
Bővebben: Link
El alapján csináltam, de ezt hogyan tudom átvariálni, hogy 1V1 referenciával mérje az A2 lábat?
Nem kell átvariálni (ha a végeredmény belefér 1.1V-ba persze). Csak ki kell a konverzió előtt választani az 1V1 referenciát.
Sziasztok , azzal a kéréssel fordulnek hozzátok hogy egy 1307 óra modul adott , ami kiirja a datumot napokat viszont szeretnék vele minden napra egy nevnapot is kiiratni , csak sehogy nem tudom ezt megcsinalni , vagyis egyfelekeppen működött úgy hogy if honap == 1 & nap==1 akkor irjon nevet es igy tovább de igy attól félek rengeteg memoriat fog követelni ha mind a 365 re végig irkalom , valaki erre esetleg nincs egy példa programja mert en mashogy nehezen fogom tudni ..
Nagyon köszönöm elore is ..
Úgy kell méreteznem az osztót, hogy 1,1 V alá kerüljek? (bocs, ha hülyéket kérdezek).
Ez egy kicsit trükkösebb de megoldható. Elöljáróként egy kis elmélet.
Az AVR-ek hardvard architektúrájú 8-bites mikrokontrollerek, amelyek 64k memóriaterületet tudnak a 16bites címzésükkel megcímezni. Ez ugye elég kevés ezért trükkökkel élnek. Az egyik az, hogy a flash, az sram, az eeprom nem ugyanabban a címtartományban van, a C és a C++ viszont ezt nem szereti ezért különleges csak AVR alatt működő eljárásokra, makrókra, stb. van szükség, hogy mégis programozhassuk őket C-ben. Ennek hátulütője, hogy ha nem használjuk ezeket a makrókat, akkor a rendszer elkezdi pazarolni a memóriánkat és betölti az SRAM-ba is a szövegkonstansainkat, hogy a sima C-ből fordított program elérje (pl. csak 2kB SRAM van egy UNO-ban, miközben a flash-ben is tároljuk a neveket, abból pedig már 32kB van). Na akkor a bevezető után nézzük meg mit is tehetünk. Első lépésként definiáljuk az összes nevet oly módon, hogy azok csak a flash-ben legyenek eltárolva. pl.:
Ezután összefogjuk őket egy tömbbe:
Ezután ha ki akarunk olvasni egy nevet, némi trükközésre van szükség hisz azok nem elérhetőek a normál címtérben (PROGMEM attribútum!).
A _buffer változó tartalmazza majd a nevet. A hozzászólás módosítva: Nov 30, 2017
Pontosan.
És ez a kód hol tartalmazza, hogy melyik bemenetet mérem?
Ez a sor hibás:
result = 1100L * 1024L / result; // AVcc kiszámítása [mV] Inkább így: result = 1100L * result / 1024L; // AVcc kiszámítása [mV] result *= ellenallasosztokonstansa; És a válasz: ADMUX = _BV(REFS0) | _BV(MUX3) | _BV(MUX2) | _BV(MUX1); A MUX1 + MUX2 + MUX3 az ADC 7-re utal, ami pedig az analog input 7-re, azt viszont nem vezették ki az Arduinora (csak az SMD-s verzióban elérhető ugyanis). A nagyobbik probléma, hogy nem az 1.1V-os refet választottad ki. ADMUX = _BV(REFS0) | _BV(REFS1) | _BV(MUX2) | _BV(MUX1); // ez már okésabb, 3-as bemenet, 1,1V-os reffel
Programot nem én írtam, a korábban linket oldalról származik.
Kiokoskodom, hogy mérhetem a D2 lábat, mert a nyák adott, és átvariálom az osztót. Köszönöm, a válaszod !
D2 az A2 . Bocs.
Ha lehetséges, én minden fv-be, ahol nincs timeout, és vár valamire, kijavítanám. Így nem tud megakadni a program soha. Számomra dühítő a timeout nélküli fv., hiszen bármi közbe jöhet, akármilyen zavar.
Azt nem tudom, hogy ha a while-ban vizsgálgatok valamit akkor az mennyire terheli le a rendszert és nem-e lesz csak még több adat az i2c buszon mire olvasom.
Ennek ellenére betehetnék egy számlálót vagy millis-t nézve hogy ne tartson mondjuk 50msecnél tovább a ciklus. A másik probléma pedig, hogy hogy resetelen a szenzort hisz az is read/write és azzal is lehet interferencia... de persze meg kell próbálni.
Bármely analóg lábat használhatod. Én csak adtam egy példát.
A nyákon A2-van tervezve a mérés, azon kell megvalósítanom, A3 -n más megy.
Egy mindentől független megoldást használnék timeout-hoz. A millis függ az interruptoktól. Fognék egy változót, a várakozó ciklusba beraknék egy fix minimális delay-t, a változót közbe növelném. Várhatsz akár 100mS-ig is, elvileg csak nagyon ritkán következik be hiba.
Nem teljesen ide kapcsolódik a téma, SIM800 modulom szeretném kipróbálni lítium akkuról is. De a SIM minimális feszültségére 3,4 V-t írnak, de ez a feszültség alatt még van bőven kihasználható kapacitása litium-os cellának. Van valami okos kapcsolás amivel, kit tudnám használni azt a kapacitás rész? Elég volna ha 0,3 V -t emelne a fezsültségen, minimális veszteséggel. Akkor még a teljesen feltöltött akkut is elviselné a SIM, és sok akku kapacitást ki tudnék használni.
DC-DC step up. Én ilyet használok ezekre a feladatokra.
A hozzászólás módosítva: Dec 1, 2017
Attól függ. Ha a terhelés kicsi (mondjuk 0,1C, az is 280mA egy normálisabb cellánál), illetve szobahőmérsékleten tervezed használni, akkor 3,4V-on már csak kis kapacitás lesz a cellában és nem érdemes vele vesződni (ha folyamatosan step-upon keresztül táplálod az áramkört, többet vesztesz mint nyersz).
Ez el kültéri szerkezet.
Step-up-t próbáltam több félét is, de több a veszteség, mint a haszon. Azt meg lehet oldani, hogy csak 3,4 V felett direktben táplálja a rendszert, és után kapcsoljon át a step-up-ra? Megpróbálom, egy 18650-el mennyi ideig bírja, aztán vagy beválik, vagy marad a 6V riasztó akku. Csak annál meg az önkisülés aggaszt kicsit, most kb. 2 mA/h a fogyasztás, hosszú ideig bírja riasztó akkuval is, de hosszú idő alatt nagyobb az önkisülés. Köszönöm a választ, beszámolok majd az eredményről. A hozzászólás módosítva: Dec 1, 2017
Ha kint lesz, akkor mindenképpen kell step-up, mivel télen a hidegben nagyon leesik a cellafeszültség. A képen egy tipikus 18650-es karakterisztikája különböző hőmérsékleteken.
Márciustól szeptemberig lesz kint, méhészei dolog ez.
Meg lehet, kell hozzá két kis belső ellenállású P-MOS, és egy schottky dióda. Az alábbi képen is látható egy hasonló tápválasztás. Az USB betápot leválasztja a DC/DC konverter ha van 12V-os táp (a mintában step-down van). A te esetedben egy másik mosfet kapcsolná be a step-up konvertert ha az MCU túl alacsony tápfeszt mér (de csak akkor, amikor kommunikálni akarsz), amikor felpörgött a step-up, a mosfet automatkusan lezár és a step-up felől jön majd a delej egy diódán keresztül.
A hozzászólás módosítva: Dec 1, 2017
|
Bejelentkezés
Hirdetés |