Avtomatska naprava za shranjevanje avtomobilskih baterij na PIC. Univerzalni polnilnik za mikrokrmilnike ATmega8 polnilec

Ki je bil sestavljen za testiranje v ohišju iz cd pogona. Izkazalo se je, da naprava s svojimi funkcijami odlično opravi, napolni in izprazni skoraj vsako baterijo, pri tem pa izračuna kapaciteto. Z izmeničnimi cikli polnjenja in praznjenja je mogoče obnoviti baterije. Na nedavnem tekmovanju idej je bilo predlagano, da bi naredili bolj človeško različico.

Novi univerzalni polnilnik se napaja prek USB-ja iz polnilnika za pametni telefon ali tablico. Lahko se napaja tudi iz računalniškega USB vhoda. Plošča ima nameščen micro-usb, lahko pa namestimo katero koli drugo možnost. Obstaja tudi priključek za standardni DC vtič; ko se preko njega napaja napetost z napetostjo več kot 5 voltov, se skakalec odstrani na plošči in logični del se začne napajati preko LDO stabilizatorja. Pri napajanju iz 5 voltov je treba namestiti mostiček (preprosto povzroči kratek stik na vhodu in izhodu +5 voltnega stabilizatorja).

Naprava je postavljena na ploščo 10 * 12 cm LCD indikator 16 * 2 z i2c-pretvornikom je pritrjen na pritrdilne stebre. Plošča ima vijačne sponke za priključitev akumulatorske baterije in bremena za praznjenje, ki je lahko žarnica ali močan 5W cementni upor z uporom na primer 4,7 ohmov. Upor tega upora se izračuna po formuli R = U / I, kjer je U napetost akumulatorja in I je želeni začetni tok praznjenja. Če praznjenje ni načrtovano, lahko breme ostane nepovezano. Upravljanje se izvaja s tremi gumbi. Podatki so prikazani na zaslonu, poleg tega se uporablja majhen pisk brez vgrajenega generatorja in LED. Čim svetlejša je LED dioda, širša je širina impulza v načinu polnjenja.

Tokokrog polnilnika je enak kot v originalni testni različici z manjšimi spremembami. Tranzistorji na polju morajo biti na logični ravni, najdete jih na računalniških ploščah. Tranzistorji poljskega gonilnika p-kanala morajo biti trenutni, na primer - SS8050 in SS8550. Induktor pretvornika mora biti sposoben vzdržati ustrezen tok.


kliknite za povečavo
Načini delovanja pametnega univerzalnega polnilnika:

  • Glavni meni. izbere parametre polnjenja, praznjenja, kalibriranja voltmetra
  • napolniti. na zaslonu so prikazani trenutni in nastavljeni parametri polnjenja, možno je spreminjanje parametrov neposredno med postopkom polnjenja. obstaja omejitev napetosti in toka na določene vrednosti z uporabo PWM. polnjenje je končano, ko je dosežena določena napetost in polnilni tok pade pod določeno.
  • praznjenje. nadzor je podoben polnjenju. praznjenje se konča, ko napetost ali tok pade pod določeno.
Pri tem se štejejo miliamper ure, prikazane so tudi na koncu. Na podlagi izračunanih vrednosti lahko določite stopnjo izgube zmogljivosti baterije, t.j. kako je obrabljena. Če baterija z zmogljivostjo 1A / h pobere 500 mA / h ali pobere 1 A / h in daje 500 mA / h, je njen vir že znatno izčrpan.

Umerjanje merjenja toka med polnjenjem in praznjenjem se izvaja s pomočjo trim uporov po navedbah zglednega ampermetra. Na enak način se izvede kalibracija voltmetra. Na plošči je na voljo priključek ISP za utripanje mikrokrmilnika.

Ta različica naprave je precej primerna za uporabo, vendar je mogoče marsikaj izboljšati. Ploščo lahko naredite bolj kompaktno tako, da držala baterij postavite neposredno nanjo. Morda bo obstajala še ena različica naprave, če bo zanimanje zanjo. To zanimanje lahko izrazite tako, da na katerem koli družbenem omrežju označite všeček, tako da kliknete gumb pod člankom. Več ko bo zanimanja, več bo spodbude za delo na tem projektu, informacije se bodo dopolnjevale.

Z željami, dopolnitvami in pojasnili - vabljeni v komentarje.

PCB: Kmalu
vdelana programska oprema: kmalu

"Ljudska" možnost skoraj univerzalnega polnjenja na Aliexpressu: Lii-100.

Rahla sprememba univerzalnega polnilnika, ki vam omogoča nastavitev toka praznjenja. Sprva je bil določen le z uporom obremenitvenega upora. S to modifikacijo se lahko tok prilagaja znotraj te vrednosti, t.j. največji tok določi obremenitveni upor, lahko pa nastavite nižjega.

Izboljšanje se lahko izvede s površinsko montažo ali na majhni plošči. Skupaj s tem se spreminjajo nekateri signali. Torej je signal polnjenja PWM (frekvenca okoli 66 kHz) zdaj vzet iz OC1A, PWM praznjenje - iz OC1B, zvok - iz OC2. Če želite to narediti, boste morali na ploščo vreči dva upora (na OC1A in OC2) in narediti prekinitev od neuporabljenega PB0. Spremembe na diagramu so prikazane rumeno.

Operacijski ojačevalnik je mogoče uporabiti na enak način kot za merjenje toka v glavnem delu vezja. Nismo našli MCP6002, namesto tega je bil nameščen TLC2272. Prilagoditev toka praznjenja deluje enako kot pri originalnem IMAX. V tem primeru se ne segreje samo obremenitveni upor, ampak tudi krmilnik polja Q1.

Ker smo napravo ves čas uporabe napajali izključno iz USB-ja, je strojna programska oprema optimizirana za izhodno napetost največ 5 voltov, je za skoraj vse "okrogle" baterije to dovolj: lahko polnite in praznite posamezne litijeve pločevinke ali dve zaporedno povezani nikljevi bateriji, največji tok - 2 ampera.

Merilnik frekvence na AT90S2313

Navidezni frekvenčni števec je "komplet" računalniškega programa in preproste merilne naprave, ki je priključen na COM vrata računalnika.Virtualni instrument vam omogoča merjenje frekvence, obdobja, časovnih intervalov in štetje impulzov.

Podrobnosti:http://home.skif.net/~yukol/FMrus.htm

Priporočam, da sestavite preprosto zasnovo, ki ne zahteva konfiguracije in kar je najpomembneje, da deluje! Programiran mikrokrmilnikprogramer PonyProg - odličen programer, preprost, širok nabor programabilnih mikrokrmilnikov,deluje pod Windows, vmesnik je ruski.


Radijska revija N1 2002 Za Ni-Cd baterije. Omogoča polnjenje 4 baterij.



Frekvenčni števec na sliki 16F84A

Specifikacije frekvenčnega merilnika:

Največja izmerjena frekvenca ............. 30 MHz;

Največja ločljivost izmerjene frekvence .. .10 Hz.

Vhodna občutljivost .................... 250 mV;

Napajalna napetost ................................. 8 ... 12 V:

Poraba toka ................................. 35 mA


Podrobnosti, vdelana programska oprema:http://cadcamlab.ru


Spajkalna postaja na Atmega 8


Preklapljanje spajkalnika in sušilnika za lase se izvaja s stikali osebnega računalnika. Sušilnik za lase krmili tiristor, ker 110v sušilnik za lase namesto R1 diodne katode na V.6.


Podrobnosti, vdelana programska oprema: http://radiokot.ru/forum


Digitalni merilnik kapacitivnosti brez spajkanja iz vezja

Opis je podan v reviji "Radio" št. 6 2009. Struktura je sestavljena na AT90S2313, brez sprememb v vdelani programski opremi, ki se uporablja Tiny2313. V Pon'ki sem postavil potrditvena polja za SUT1, CKSEL1, CKSEL0, ostala so prazna. MAX631 nisem namestil, za nas je drag, odločil sem se, da ga napajam iz napajalnika preko stabilizatorja 7805, R29, R32, R33, da ga napajam na plus. Poleg merilnika kapacitivnosti je v ohišje nameščena sonda za testiranje tranzistorjev brez spajkanja in generator LF RF signala.



Polprevodniški merilnik na osnovi ATmega8

Naprava lahko:

Določite vodnike polprevodnikov;
- določi vrsto in strukturo;
- meri statične parametre.
Meri diode, bipolarne tranzistorje, poljske tranzistorje JFET in MOS, upore, kondenzatorje.


Merilnik je izdelan v enakem ohišju kot merilnik FCL, indikator se med instrumenti preklaplja s PC stikalom.

Merilnik frekvence, kapacitivnosti in induktivnosti - FCL-meter

Spodaj opisana naprava omogoča merjenje frekvenc električnih nihanj, pa tudi kapacitivnosti in induktivnosti elektronskih komponent z visoko natančnostjo v širokem razponu. Zasnova ima minimalne dimenzije, težo in porabo energije.

Specifikacije:

Napajalna napetost, V: 6 ... 15

Porabni tok, mA: 14 ... 17

Meje meritev:

F1, MHz 0,01 ... 65 **

F2, MHz 10 ... 950

Od 0,01 pF ... 0,5 μF

L 0,001 μH ... 5 H


Diagram daljinske glave


Več podrobnosti: http://ru3ga.qrz.ru/PRIB/fcl.shtml


Miniaturni voltmeter na osnovi mikrokrmilnika ATmega8L


Tukaj obravnavamo zasnovo voltmetra samo na enem mikrokrmilniku ATmega8L in indikatorja iz elektronskega medicinskega termometra. Obseg izmerjenih enosmernih napetosti je ± 50 V. Kot dodatna funkcija je izveden način zvočne sonde za preverjanje celovitosti žic, žarnic z žarilno nitko. Ko ni meritev, naprava samodejno preide v stanje pripravljenosti. Mikrokrmilnik napajata dve miniaturni alkalni celici (baterije za ročno uro), 1 celico sem nastavil na 3v. Baterij ne bo treba pogosto menjati: trenutna poraba v aktivnem načinu je le 330 μA, v stanju pripravljenosti - manj kot 300 nA. Zaradi svoje miniaturne zasnove in zmogljivosti je naprava uporabna in praktična. Plošča se ni prilegala v ohišje termometra, jaz pa sem jo naredil v ohišju iz flamasterja. Naredil je svojo ploščo, upori R5-R7 so ​​bili vetikalno nameščeni na avtobusih. VADZZ je po zaslugi njega pomagal izdelati vdelano programsko opremo iz vira. Indikatorski zatiči od leve proti desni, zatiči spodaj in obrnjeni proti vam.

Shema (za diagram polne velikosti shranite sliko v računalnik).

Za več podrobnosti glejte: http://www.rlocman.ru/shem/schematics.html?di=63917

Pomnilnik s funkcijo merjenja kapacitivnosti

Želel sem izmeriti kapaciteto baterij, uvoženi števci so precej dragi, našel sem zanimivo vezje in ga sestavil. Deluje dobro, polni, meri, a s kakšno natančnostjo ne morem reči - standarda ni. Izmeril sem akumulatorje precej spodobnih podjetij 2700 ma / h - nameraval sem 2000. Baterije za igrače 700 ma / h -350; veliko bolj donosno kot baterije.


Naprava je zasnovana za polnjenje NiMH baterij in nadzor njihove zmogljivosti. Preklapljanje med načini polnjenja / praznjenja se izvaja s tipko SA1. Način delovanja označujejo LED diode in decimalna mesta prvih dveh števk sedemsegmentnega zaslona.
Takoj po vklopu se naprava preklopi v način polnjenja. Indikator prikazuje čas polnjenja. Po izteku programiranega obdobja se polnjenje ustavi. Konec polnjenja (in praznjenje je enako) dokazuje svetleča točka četrtega praznjenja. Polnilni tok je definiran kot C / 10, kjer je C zmogljivost baterije, ki jo nastavi trimer R14.
Načelo delovanja merilnika temelji na izračunu časa, v katerem bo napetost baterije padla na 1,1 V. Tok praznjenja mora biti enak 450 ma, nastavljen na R16. Če želite izmeriti kapaciteto, morate baterijo vstaviti v predal za praznjenje in začeti postopek s pritiskom na gumb! Naprava lahko izprazni samo eno baterijo.

Več podrobnosti:http://cxem.net

Univerzalna radijska peč za šunke

Peč za spajkanje SMD delov ima 4 programabilne načine.

Kontrolni blok diagram (za diagram polnega formata shranite sliko v računalnik).


Krmiljenje napajanja in grelnika


To strukturo sem sestavil za nadzor IR spajkalne postaje. Mogoče bom nekoč upravljal peč. Prišlo je do težave pri zagonu generatorja, kondenzatorje 22 pF z zatiči 7, 8 postavil na ozemljitev in se začel normalno zagnati. Vsi načini delujejo normalno, obremenjeni s 250 W s keramičnim grelcem.

Več podrobnosti: http://radiokot.ru/lab/hardwork/11/

Medtem ko ni peči, sem naredil tole spodnje ogrevanje za majhne deske:

Grelec 250 W, premer 12 cm, poslan iz Anglije, kupljen na EBAY.


Digitalna spajkalna postaja na osnovi PIC16F88x / PIC16F87x (a)

Spajkalna postaja z dvema istočasno delujočima spajkalnikom in sušilcem za lase. Uporabite lahko različne MCU-je (PIC16F886 / PIC16F887, PIC16F876 / PIC16F877, PIC16F876a / PIC16F877a). Zaslon je iz Nokia 1100 (1110). Število vrtljajev turbine sušilnika za lase je elektronsko nadzorovano, vključeno pa je tudi stikalo, vgrajeno v sušilnik za lase. V avtorjevi različici je bil uporabljen impulzni napajalnik, jaz sem uporabil transformatorsko napajanje. Ta postaja mi je vsem všeč, vendar z mojim spajkalnikom: 60W, 24V, s keramičnim grelcem, velikim zagonom in temperaturnimi nihanji. Hkrati imajo spajkalniki manjše moči z nikromskim grelcem manj nihanj. Hkrati moj spajkalnik z zgoraj opisano spajkalno postajo iz Mikhi-Pskov, z vdelano programsko opremo iz Voluja, vzdržuje temperaturo z natančnostjo do stopinje. Zato je potreben dober algoritem ogrevanja in vzdrževanja temperature. Kot poskus sem izdelal PWM regulator na časovniku, napajal krmilno napetost iz izhoda ojačevalnika termoelementa, odklopil, vklopil iz mikrokrmilnika, temperaturno nihanje se je takoj zmanjšalo na nekaj stopinj, kar potrjuje, da je pravilen algoritem krmiljenja potrebno. Zunanji PWM je seveda pornografija ob prisotnosti mikrokrmilnika, a dobra firmware še ni napisana. Naročil sem še en spajkalnik, če z njim ni dobre stabilizacije, bom nadaljeval s poskusi z zunanjim krmiljenjem PWM ali pa se bo morda pojavila dobra vdelana programska oprema. Postaja je bila sestavljena na 4 ploščah, ki so bile med seboj povezane s konektorji.

Diagram digitalnega dela naprave je prikazan na sliki, zaradi jasnosti sta prikazana dva MC: IC1 - PIC16F887, IC1 (*) - PIC16F876. Drugi MCU-ji so povezani na enak način, na ustrezna vrata.

Če želite spremeniti kontrast, morate najti 67 bajtov, njegova vrednost je "0x80", za začetek lahko postavite "0x90". Vrednosti morajo biti od "0x80" do "0x9F".

Glede zaslona 1110i (besedilo je prikazano zrcaljeno), če ne Kitajska, ampak original, odprite EEPROM, poiščite 75 bajtov, spremenite iz A0 v A1.

Na internetu obstaja ogromno število polnilnih vezij (polnilnikov) za avtomobilske baterije. Od najpreprostejših do najbolj zapletenih. V našem primeru bomo govorili o pomnilniku, izdelanem na mikrokrmilniku (MK) Atmega8. Uporaba MK, v nasprotju s vezjem na tranzistorjih, vam omogoča izvajanje zelo bogate funkcionalnosti za pomnilnik. Na primer, v tem polnilniku sem se odločil implementirati naslednje funkcije.

1. Enostaven za upravljanje. En kodirnik je dovolj. Obrnjen v smeri urinega kazalca - polnjenje je vklopljeno. Z obračanjem v smeri urinega kazalca ali v nasprotni smeri urinega kazalca izberete polnilni tok. Kodirnik se je odločil izbrati z utripom. S klikom nanjo lahko vstopite v meni z nastavitvami za dodatne funkcije.

2. Polnilni tok bo do 5A. Čeprav imam v avtu baterijo 85A / h, mi je 5A dovolj za polnjenje, le malo dlje se polni. Vendar pa bo po potrebi mogoče povečati polnilni tok na 10 A brez globalnih sprememb in ponovnega utripanja MK.

3. Polnilni tok bo mogoče spreminjati v korakih do 0,1A. Najmanjši tok lahko izberete do 0,1 A. To pomeni, da lahko polnite tudi majhne baterije. Poleg tega, če se kodirnik vrti nekoliko hitreje, bo korak povečanja / zmanjševanja polnilnega toka deloval znotraj 0,5 A.

4. Baterija se bo napolnila na 14,4 voltov.

5. Vklopljeno prikazovalnik bo prikazal podatke o trenutnem polnilnem toku in napetosti na akumulatorju, deloval bo tudi indikator napolnjenosti baterije, tako kot pri mobilnem telefonu. Zdelo se mi je, da bo to bolj vizualno.

6. Obstajati mora zaščita pred kratkim stikom sponk polnilnika. Če na primer skupaj sklenete kratek stik in hkrati vklopite polnilnik, mu to seveda ne bi smelo škoditi. In na splošno, dokler baterija ni priključena, na sponkah ne bo napetosti. Tudi, če je bila baterija pomotoma priključena z napačno polariteto, ne bo mogoče vklopiti polnjenja. Vsa ta zaščita bo implementirana v programski in strojni opremi.

7. Polnjenje baterije mora biti popolnoma avtomatizirano. To je povsem mogoče, saj se bo uporabljal MK. Avtomatizacija postopka polnjenja mora izključiti sodelovanje ljudi. To pomeni, da sem priključil baterijo, izbral polnilni tok in to je to. Ostalo naj naredi polnilnik. In sicer ohranjanje izbranega polnilnega toka med postopkom polnjenja. Če je baterija pokvarjena in polnjenje ni več možno, je treba baterijo samodejno odklopiti, sicer bo samo neskončno vrela in je ne potrebujemo.

8. Funkcija "shranjevanje baterije pozimi" se je zdela priročna. Karkoli že rečemo, ima popolnoma vsaka baterija v naravi svojo notranjo samopraznjenje. To pomeni, da če pustite baterijo za določeno obdobje brez nadzora, se bo zaradi toka samopraznjenja izpraznila, kar bo na koncu povzročilo sulfacijo plošč. In za baterijo je to smrt. Poleg tega čas samopraznjenja in sulfacije ni tako dolg. Včasih je dovolj že par mesecev. Da se to ne bi zgodilo, bo funkcija implementirana"shramba baterije pozimi". Deluje preprosto, polnilnik priključimo na akumulator, baterije pa ni treba odstraniti iz avtomobila. Poleg tega bo polnilnik vsake pol ure spremljal napetost na bateriji. Če napetost pade pod normo, se samodejno polnjenje vklopi, po koncu cikla polnjenja pa se polnilnik znova preklopi v način nadzora napetosti akumulatorja. Poleg tega uporabnik sam nastavi odzivni prag v meniju, v meniju pa lahko izberete tudi trenutno moč. Osebno sem zase nastavil prag 12,5 voltov in polnilni tok 0,5A. Polnjenje z nizkimi tokovi je učinkovitejše od visokih tokov.

9. Morda bo uporabna funkcija "nadaljuj s polnjenjem po izpadu električne energije". Čeprav se takšno naključje lahko zgodi enkrat na 150 let, pa ta funkcija obstaja. Polnilec se vedno »zapomni«, da je postopek polnjenja vklopljen in če je elektrika izklopljena/vklopljena, se bo polnjenje preprosto nadaljevalo. V vsakem primeru lahko vse funkcije onemogočite ali omogočite po izbiri v meniju. Če izklopite vse funkcije, bo polnilnik preprosto postal "navadni polnilec", ki bo napolnil baterijo in se izklopil.

10. In končno, programski časovnik bo deloval v pomnilniku. Časovnik bo nenehno tiktakal naprej 0..1.2 in tako naprej. Če se baterija polni, se bo to videlo po tem, kako se napetost na njej postopoma dvigne na 14,4 voltov. Torej, takoj ko se napetost na akumulatorju rahlo dvigne, se časovnik takoj ponastavi na 0 in še naprej šteje 0 ... 1,2 ... Če pa je baterija pokvarjena ali stara ali gostota elektrolita ni povsem pravilno, potem je pri določenem pragu polnjenje nadalje nemogoče. In ta prag je lahko pod 14,4 voltov. Kako biti? V tem primeru se časovnik neha ponastaviti. In ko bo dosegel določeno točko, bo preprosto izklopil polnjenje s sporočilom na zaslonu. Baterije nima smisla dodatno vreti. Časovnik lahko izklopite v meniju ali vklopite tako, da nastavite razpon od 30 minut do 3 ure. Zaslon bo prikazal, kako bo časovnik odšteval in se občasno ponastavil, če polnjenje pušča v običajnem načinu.

Zdaj pa pojdimo na razpravo o vezju polnilnika.

Napajanje.
V tem primeru bomo uporabili kateri koli stikalni napajalnik (UPS). Izhodna napetost od 16 do 20 voltov. Ker bo polnilni tok do 5A, mora biti izhodni tok UPS-a z rezervo nekje do 6A. Uporabil sem IPBPOMENI DOBRORS-75-15 ki ima izhodno napetost 15 voltov, vendar je v enoti trimer s katerim lahko dvignete napetost na 16,5 voltov. Prednost UPS-a je, da je lahek, kompakten in ima vgrajeno zaščito pred visokimi tokovi, kratkimi stiki itd. Zato vam ni več treba skrbeti zanj. Načelo je primerno za vse druge IPI. Vsaj iz prenosnika. Če ima vaš UPS tok manjši od 5 A, ga lahko tudi uporabite, le paziti morate, da ne nastavite polnilnega toka, ki je večji od UPS. Transformatorska napajalna enota v našem primeru ni primerna. Polnilec na transformatorju je ločena tema in ločen članek. Napajalni tokokrog bo torej izgledal nekako takole.

Kondenzatorja 1000uF načeloma ni mogoče namestiti, saj je na izhodu že nameščen v stikalnem napajalniku, če pa ga namestite, ne bo slabše. Kondenzator C2 je boljši, če je elektrolit, vendar sem dal keramični smd. Stabilizator 7805 je potreben za napajanje MK, LCD zaslona in drugih pasov.

Zdaj povejmo baterijo in tranzistor z učinkom polja.



Kot lahko vidite, je vse preprosto. Tranzistor bo uravnaval tok skozi baterijo. Rele K1 bo prevzel vlogo zaščite, vklopil se bo šele, ko je baterija priključena in pravilno priključena. Cementni upor R18 deluje kot shunt. Pri toku 5 A bo imela napetost 0,5 volta. To napetost bomo povečali in jo napajali na MK ADC, tako da bo MK vedel, kakšen tok je v tokokrogu polnjenja in to vrednost je mogoče prikazati. Zdaj je čas, da MK priključite na vezje.

Kot lahko vidite, je shema postala nekoliko bolj zapletena. Ampak ne veliko. Na terminal PB0 priključimo rele, kateri koli rele za 12V, katerega kontakti morajo vzdržati tok 5A. Dušilni upor približno 200 ohmov mora biti povezan z relejem zaporedno, saj se bo rele napajal iz napetosti 16-20 voltov. Zaščitna dioda mora biti nameščena vzporedno s tuljavo releja (kakršna koli, vstavljenaLL4148), brez diode se lahko prebije tranzistor VT4. VT4 je lahko katera koli vrsta npn, uporablja se MMBT4401LT1.

Na zatiče PD7, PC1, PC0 je priključen dajalnik. Uporabil tega ali tega. Na izhode, na katere je priključen dajalnik, je potrebno priključiti 0,1 uF kondenzatorje in 10k pull-up upori. To bo zmanjšalo stike.

Zaslon je bil uporabljen v dveh vrsticah po 16 znakov. Zaslon ima tudi vgrajeno rusko pisavo. Če priključite zaslon brez ruskih znakov, bo zaslon počen. Ker Atmega8 MK nima veliko nog, je bil zaslon povezan preko 4-bitnega vodila. Zatiči zaslona DB3-DB0 se ne uporabljajo.

Na pin MK PB2 so priključeni Schottky dioda BAT54S, dva kondenzatorja 0,1uF in 100 Ohmski upor. Zakaj je to potrebno? Dejstvo je, da vezje uporablja operacijski ojačevalnik LM358, ki ni "tirnica na tirnico". V takih op-ojačevalnikih brez negativne napajalne napetosti na negativnem napajalnem terminalu izhod op-amp nikoli ne bo imel 0 voltov. Zato ta veriga elementov, povezanih z zatičem PB2, ustvari negativno napetost približno -4V za napajanje op-amp. Da bi veriga na zatiču PB2 delovala in ustvarila -4V, je treba nanjo uporabiti PWM signal z delovnim ciklom 50%. Tako je na zatiču PB2 vedno PWM s frekvenco 62,5 kHz.

PWM je vedno prisoten na pinu PB3, vendar je delovni cikel signala v tem primeru od 0 do 100 % že reguliran z vrtenjem dajalnika. Upor R18 in kondenzator C11 tvorita integracijsko vezje, ki zgladi PWM v konstantno napetost. Upori R19 in trimer R20 so napetostni delilniki. Kako nastavim R20? Multimeter priključimo na pin PB3 in vrtimo dajalnik, dokler naprava ne pokaže 2,5 voltov. Nato zavrtimo trimerni upor R20 tako, da je na neinvertirajočem izhodu op-amp napetost 0,25 voltov. S tem je nastavitev R20 končana.

Kako delujeta regulacija in krmiljenje tranzistorjev? Recimo, da je neinvertirajoči izhod op-amp (+) 0,5 volta. Ena od lastnosti operacijskega ojačevalnika je, da si prizadeva izenačiti potencialno razliko med svojima dvema vhodoma. To naredi s svojim izhodom, tako da dvigne ali zniža napetost na njem. Torej je na zatiču (+) 0,5 voltov, na zatiču (-) pa 0 voltov. Kaj je naslednje? Op-amp bo takoj začel povečevati napetost na izhodu, ki je povezan z vrati tranzistorja IRF540. Tranzistor se začne odpirati. Tok začne teči skozi baterijo, tranzistor in shunt. Tokovni tok povzroči padec napetosti na šantu R18. Operacijski ojačevalnik bo vklopil tranzistor, dokler na shuntu ne bo napetosti 0,5 volta. Napetost iz šanta se preko R13 dovaja na (-) terminal. Takoj, ko je na zatiču (-) 0,5 volta (enako kot na (+) pinu), bo op-amp prenehal vklapljati tranzistor. V tem primeru bo polnilni tok 5A.

Če dajalnik zmanjša napetost na terminalu (+) na 0,25 voltov, bo operacijski ojačevalnik zmanjšal napetost na vratih tranzistorja na tako vrednost, da na terminalu (-) postane tudi 0,25 voltov, ta vrednost ustreza polnilnemu toku 2,5 A. Izkazalo se je, da se regulacija toka polnjenja izvaja v strojni opremi z op-amp. In to je zelo dobro, saj operacijski ojačevalnik nikoli ne bo zmrznil in je hitrost grabljenja takojšnja. To krmilno vezje je običajen linearni vir toka. Priročnost tega vezja je v tem, da je preprosta, pomanjkljivost pa je, da se celotna napetostna razlika med stikalnim napajanjem in napetostjo na bateriji sprošča v obliki toplote na tranzistorju.

Na primer, UPS oddaja 20 voltov, napetost na akumulatorju na začetku polnjenja je 12 voltov, polnilni tok pa 5 A. Koliko moči je dodeljeno tranzistorju? (20-12) * 5 = 40 W. 40W je veliko !!! Potrebujete zajeten hladilnik in pet ventilatorjev. Tako dobro za nič. Čeprav bo tranzistor IRF540 zdržal 150 vatov, nima smisla segrevati polnilnika s tranzistorjem. Kako zmanjšati proizvodnjo toplote? Napetost UPS lahko na primer znižate na 16 voltov. Potem (16-12) * 5 = 20 W dvakrat manj je že bolje. Toda ogrevanje se lahko izvede tudi manj do 5 vatov ali manj. Kako?

V IPB podobnega tipa kotPOMENI DOBRORS-75-15 vedno obstaja trim upor, ki lahko prilagodi izhodno napetost znotraj 10%. To pomeni od 13,5 do 16,5, v mojem primeru se je izkazalo od 13 do 17 voltov. Trimer lahko spajkate iz ISB in namesto tega spajkate izhod MK, tako da lahko uporabimo MK za regulacijo napetosti na izhodu ISB, to bo zmanjšalo proizvodnjo toplote na tranzistorju na minimum. Na primer, če ima baterija 12 voltov, znižamo napetost na 13 voltov in dobimo (13-12) * 5 = 5 W toplote na tranzistorju, bolje od 40. Tako nadgradimo vezje


Povežite optični sklopnik PC123 ali podobno na pin PB1. Na pinu PB1 je vedno dežuren tudi pwm signal, ki je integriran z verigo R22 in C13. Upor trimerja spajkamo v UPS in namesto tega spajkamo običajni 1,2 kOhmski upor. Zdaj lahko MK krmili napetost na izhodu UPS prek optičnega sklopnika. Ko je optični sklopnik izklopljen, je napetost na izhodu UPS minimalna, ko je vklopljen, se upor R23 preklopi na zemljo, napetost naraste. Gladko zapiranje / odpiranje optospojnika s pomočjo PWM signala na pinu PB1, gladko uravnavanje napetosti na izhodu UPS.

Če želite vedeti, kdaj in koliko uravnavati napetost na izhodu UPS, morate vedeti, koliko voltov je na splošno na močnostnem tranzistorju. Nato moramo znižati napetost na izhodu UPS, tako da je razlika med napetostjo na akumulatorju in napetostjo na izhodu UPS čim nižja. Da bi to naredili, izmerimo napetost na odtoku tranzistorja z izhodom PC2 z uporabo MK ADC. To se naredi z delilnikom za R9 in R10. Zdaj, ko pozna potrebne parametre, bo program v MC sam nadzoroval delovni cikel PWM na pinu PB1.

Zdaj je ostalo zelo malo. To je za merjenje toka v tokokrogu polnjenja in njegovo prikazovanje na zaslonu. In še vedno je treba izmeriti napetost na bateriji in jo tudi prikazati na zaslonu.

Napetost baterije se meri na diferencialni način. Odstranimo vrednost iz nožice PC5. Upora R5 in R6 naj bosta vsak natanko 3 kOhm, upora R2 in R4 pa po 1 kOhm, po možnosti vsaj 1 % natančnost, zato takega R4 nisem imel kot trimer. Bistvo je, da je pri takšnih ocenah uporov razmerje napetosti na vhodih op-amp in na njegovem izhodu 3: 1. Ko se napetost na bateriji spremeni od 0 do 15 voltov, se bo napetost na izhodu op-amp spremenila od 0 do 5 voltov. Če želite nastaviti to verigo, morate namesto baterije priključiti 14,4 voltov, na primer iz laboratorijskega napajanja. Nato trimer R4 zavrtimo tako, da je tudi LCD zaslon 14,4 voltov. Nastavitev vezja za merjenje napetosti je zdaj končana.

Tok se meri skozi padec napetosti na šantu, ki ga predvaja običajen cementni upor. Naš tok je od 0 do 5A. Napetost na shuntu se giblje od 0 do 0,5 volta. Vrednosti uporov R16 in R17 so izbrane tako, da je bila napetost na izhodu op-amp od 0 do 5 voltov. Prikaz polnilnega toka nastavimo po naslednji verigi. Priklopimo baterijo in naredimo tok 2,5 A. Vzporedno z baterijo priključimo 12-voltno žarnico. Odklopimo baterijo in pustimo žarnico. Prepričamo se, da je tok 2,5 ampera. Če je napetost na shuntu 0,25 voltov, potem je tok 2,5 A. če ne, zavrtite dajalnik, dokler ni shunt 0,25 voltov. Sedaj zavrtimo trimer R17 tako, da se na zaslonu prikaže tok 2,5 A. Nastavitev trenutnega zaslona je zdaj končana.

Kaj bi se dalo poenostaviti? Na primer, če ni želje, da bi se motili z delilnikom napetosti v UPS, potem lahko vse, kar je spajkano na nogo MK PB1, vržete iz vezja. A vse ostalo bi moralo biti na svojem mestu. Toda v tem primeru bo celotna napetostna razlika med baterijo in na izhodu UPS pristala v obliki toplote na močnostnem tranzistorju. V tem primeru nam ni žal, da smo vzeli več radiatorja.

Če potrebujete polnilni tok do 10 A, vzporedno s šantom, spajkamo isti šant z vrednostjo 0,1 Ohm. Vzamemo rele s kontakti, ki vzdržijo do 10A, in vzporedno s tranzistorjem IRF540 spajkamo še enega istega. Tranzistorje privijemo na zajeten radiator in naredimo test. Edina stvar je, da je treba vrednost toka na zaslonu v mislih pomnožiti z 2. Če se na zaslonu prikaže 5A, bo v resnici že 10A. Osebno tega nisem storil sam, a v teoriji bi moralo delovati.

Na koncu bo dobljeni diagram videti takole:


Ne vidim ničesar, s čimer se strinjam, zato prenesite shemo od tod .

Nekaj ​​fragmentov vdelane programske opreme.

#include "define.h" #include "init_mcu.h" #include "lcd.h" #include "text.h" #include "bits_macros.h" #include "fun.h" #include "encoder.h" # vključi "servise.h" #include "main.h" #include #vključi #vključi #vključi #vključi #vključi #vključi #define RELAJ PB0 uint8_t lcd_time, lcd_track, lcd_count, enc_interval, enc_speed, off_charge; uint8_t U_bat_tim, I_bat_tim = 255, stok_reg, energy_flag, count; uint16_t I_reg, enc_block, bat_count, bat_save, bat_off; EEMEM uint8_t energy_off; struct zastavica (_Bool lcd_clr_txt0: 1; _Bool lcd_clr_txt1: 1; _Bool count_timer0: 1; // za obravnavo prekinitev _Bool start_charging: 1; // izklopi rele, če je elektrika izklopljena, ko se bat polni; _b lock o1) zastave; ISR (TIMER0_OVF_vect) // Prekinitev prelivanja časovnika 0 vsakih 1 ms. (TCNT0 = 0x6; flags.count_timer0 = 1;) void reg_I (uint16_t reg_val) // zmanjšaj polnilni tok, ko je dosežen 14,4 voltov (če (I_reg> reg_val) (I_reg = 0; off_charge = 1; če (OCR2! = 0) (OCR2--; enc_data = OCR2;))) void charg_off (void) (če (BitIsSet (PORTB, RELAY)) (eeprom_update_byte (& energy_off, 0);) ClearBit (PORTB, RELAY); ClearBit (TCCR2, COM21); // onemogočil izhod strojne opreme PWM na pinu PB3 OCR1A = 0; // znižal napajanje impulznega generatorja na 12,5 voltov.off_charge = 0; flags.start_charging = 0; flags.ocr1a_block = 0; enc_data = 0; I_bat_tim = 255; count = 0; OCR2 = 0;) int main (void) (#if 1 // inicializacija MCU_init_ports (); MCU_init_adc (); MCU_init_an_comp (); MCU_init_timer0 (); MCU_init2 MCU_timer1) (); ; LCD_init_flash , 0); LCD_string_of_flashXY (text_2,3,1); _delay_ms (1500); LCD_string_of_flashXY (text_3,3,0); LCD_string_of_flashXY (text_4,2,1); _delay_ms (besedilo_4,2,1); _delay_ms (besedilo_4,2,1); (PIND , PUSH)) (servise ();) // vstopite v servisni meni, če (eeprom_read_byte (& energy_off) && u_batt ()> 20) (enc_data = eeprom_read_byte (& i_pusk); ) drugače (eeprom_update_byte (& energy_off, 0);) MCU_init_wdt (); sei (); #endif while (1) (wdt_reset (); uint8_t u_bat = u_batt (); uint8_t i_bat = i_batt (); #if 1 / * določi, ali je baterija priključena * / if (u_bat> 30) // 30 * 0,0585 = 1,7 voltov na bateriji, priključen (if (flags.lcd_clr_txt0 == 0) (flags.lcd_clr_txt0 = 1; LCD_clear ();) if (lcd_time> 200) (lcd_time = 0; LCD_string_of_flashXY,f_string_of_flashXY,f_string_of_flashXY,f); XY (besedilo 7,0); LCD_string_of_flashXY (text_11,13,0); char puffer; uint16_t U = (u_bat * 59) / 100; utoa ((uint8_t) U, puffer, 10); // prikaže napetost, če (( uint8_t ) U> = 100) (LCD_dataXY (medpomnilnik, 2,0); LCD_data (medpomnilnik); LCD_data ("."); LCD_data (medpomnilnik); LCD_string_of_flashXY (text_10,6,0);) drugače če ((uint8_t) U > = 10 && (uint8_t) U<=99) { LCD_dataXY(buffer,2,0); LCD_data("."); LCD_data(buffer); LCD_string_of_flashXY(text_10,5,0); } else { LCD_dataXY("0",2,0); LCD_data("."); LCD_data(buffer); LCD_string_of_flashXY(text_10,5,0); } uint16_t I=(i_bat*20)/100; utoa((uint8_t)I, buffer, 10);//выводим ток на дисплей c шунта if ((uint8_t)I>9) (LCD_dataXY (medpomnilnik, 10,0); LCD_data ("."); LCD_data (medpomnilnik);) drugače (LCD_dataXY ("0", 10,0); LCD_data ("."); LCD_data (medpomnilnik); ))) else // ni povezan (LCD_string_of_flashXY (text_5,0,0); LCD_string_of_flashXY (text_6,0,1); flags.lcd_clr_txt0 = 0; eeprom_update_byte (& energy_off, 0);;) #endif #if zastavica prekinitve timer0 procesa * / if (flags.count_timer0 == 1) (flags.count_timer0 = 0; lcd_time ++; enc_interval ++; I_reg ++; lcd_track ++; if (enc_speed! = 100) // določi kodirnik hitrost vrtenja. (enc_speed ++;) if (enc_block > = 1) (enc_block ++; if (enc_block> = 500) (enc_block = 0;)) if (BitIsSet (PORTB, RELAY)) (bat_count ++;) else (bat_count = 0; bat_off = 0; bat_save ++;) stok_reg ++; if (flags.start_charging && count! = 255) (count ++;)) #endif #if 1 / * Prejemanje podatkov iz kodirnika * / if (enc_interval> = 5) (enc_interval = 0; OCR2 = kodirnik (); // preberi kodirnik vrednosti. #if 0 // začasno za testni medpomnilnik; utoa (OCR2, bu ffer, 10); če (OCR2> = 100) (LCD_dataXY (medpomnilnik, 0,1); LCD_data (medpomnilnik); LCD_data (medpomnilnik);) drugače če (OCR2> = 10 && OCR2<=99) { LCD_dataXY("0",0,1); LCD_data(buffer); LCD_data(buffer); } else { LCD_dataXY("0",0,1); LCD_data("0"); LCD_data(buffer); } #endif if (OCR2==0)//отключаем все. { charg_off(); } else//начали заряд { if (flags.ocr1a_block==0) { flags.ocr1a_block=1; OCR1A=255;//подняли питание импульсника до 17 вольт. } SetBit(TCCR2,COM21); SetBit(PORTB,RELAY); } } #endif #if 1 /*уменьшение тока заряда при достижении 14.4вольта*/ if (u_bat==246 && OCR2>0) (reg_I (3000); // enkrat na 3 sekunde) drugače if (u_bat == 255 && OCR2> 0) (reg_I (100); // enkrat na 100 ms) drugače if (u_bat> 246 && OCR2> 0 ) (reg_I (500); // enkrat na 500 ms) #endif #if 1 / * Izklopite polnjenje, ko polnilni tok doseže 0,1 A * / if (off_charge == 1 && enc_block == 0) (if (i_bat<=5)//5*0.02=0.1 А ток в батарее. { charg_off(); flags.lcd_clr_txt1=1; LCD_string_of_flashXY(text_13,0,1);//"БАТАРЕЯ ЗАРЯЖЕНА" } } //отключение реле если при заряде бат откл. электричество. if (OCR2>0 && i_bat> 4) // 4 * 0,02 = 0,08A (flags.start_charging = 1;) if (flags.start_charging == 1 && i_bat<2 && count==255)//2*0.02=0.04 А ток в батарее. { ClearBit(PORTB,RELAY); } #endif #if 1 /*Бегущий индикатор на дисплее*/ if (OCR2>0) (if (flags.lcd_clr_txt1 == 1) (flags.lcd_clr_txt1 = 0; LCD_string_of_flashXY (text_8,0,1);) if (lcd_track> = 200) (lcd_track = 0; lc_count (cd_count) (cd_count) primer 0 : LCD_data_of_flashXY (text_15,8,1); prelom; primer 1: LCD_data_of_flashXY (text_16,8,1); prelom; primer 2: LCD_data_of_flashXY (text_17,8,1); prelom; primer 3: LCD_data_of_y_8f_8 ,1); prelom; primer 4: LCD_data_of_flashXY (text_19,8,1); prelom; primer 5: LCD_data_of_flashXY (text_20,8,1); prelom; primer 6: LCD_data_of_flashXY (text_21,8,1); prelom; primer 7 : LCD_data_of_flashXY (text_22,8,1); break; primer 8: #if 1 if (off_charge == 1) (lcd_count = 5; break;) if (u_bat<232)// 13.57V/0.0585=230 на АЦП. { lcd_count=255; LCD_string_of_flashXY(text_12,8,1); } else if (u_bat<=234) { lcd_count=0; } else if (u_bat<=236) { lcd_count=1; } else if (u_bat<=238) { lcd_count=2; } else if (u_bat<=240) { lcd_count=3; } else if (u_bat<=242) { lcd_count=4; } else if (u_bat<=244) { lcd_count=5; } else { lcd_count=5; } break; #endif default:lcd_count=5; break; } } } else { lcd_count=255; if (flags.lcd_clr_txt1==0) { flags.lcd_clr_txt1=1; LCD_string_of_flashXY(text_8,0,1); } } #endif #if 1 /*Аварийный таймер отключения*/ if (bat_count>= 60000 && eeprom_read_byte (& timer_time)) // msec 60000 (bat_count = 0; bat_off ++; #if 1 // za odpravljanje napak LCD_string_of_flashXY (text_37,0,1); char buffer; utoa, bat_off,); if (bat_off > = 100) (LCD_dataXY (medpomnilnik, 2,1); LCD_data (buffer); LCD_data (buffer); LCD_string_of_flashXY (text_38,5,1);) else if (bat_off> = 10 && bat_off<=99) { LCD_dataXY(buffer,2,1); LCD_data(buffer); LCD_string_of_flashXY(text_38,4,1); } else { LCD_dataXY(buffer,2,1); LCD_data(" "); LCD_string_of_flashXY(text_38,4,1); LCD_dataXY(" ",7,1); } #endif } if (u_bat>U_bat_tim && off_charge == 0) // ponastavi časovnik napetostnega alarma (bat_off = 0; U_bat_tim = u_bat;) če (i_bat = eeprom_read_word (& tim_dlitl)) // 180 minut privzeto (charg_off (); LCD_string_of_flashXY (text_14,0,1); bat_off = 0; flags.lcd_clr_txt1 = 1;) #endif #if 1 / * Regulacija napetosti na izhodu napajalnika * / if (stok_reg> = 100) (stok_reg = 0; uint8_t u_stok = u_stokk (); if (u_stok> 62) // 0,0195 * 51 * 2 = 2 volta na umivalniku. (če (OCR1A! = 0) (OCR1A--;)) drugače če (u_stok<60) { if (OCR1A!=255) { OCR1A++; } } #if 0//временно для теста char buff; utoa(u_stok, buff, 10); if (u_stok>= 100) (LCD_dataXY (buff, 3,1); LCD_data (buff); LCD_data (buff);) drugače če (u_stok> = 10 && u_stok<=99) { LCD_dataXY("0",3,1); LCD_data(buff); LCD_data(buff); } else { LCD_dataXY("0",3,1); LCD_data("0"); LCD_data(buff); } #endif } #endif #if 1 /*Режим хранения батареи*/ if (bat_save>= 60000 && eeprom_read_byte (& save_on)! = 0) (bat_save = 0; če (u_bat<=eeprom_read_byte(&u_start))//12.5V / 0.0585=213,6 на АЦП { enc_data=eeprom_read_byte(&i_pusk); } } #endif #if 1 /*Режим отключения питания*/ if (enc_data && eeprom_read_byte(&power_off) && energy_flag==0) { energy_flag=1; eeprom_update_byte(&energy_off,1); } #endif } } #if 1 //тексты на дисплей const uint8_t PROGMEM text_1="Зарядное"; const uint8_t PROGMEM text_2="устройcтво"; const uint8_t PROGMEM text_3="SIRIUS 5А "; const uint8_t PROGMEM text_4="Для АКБ 12В"; const uint8_t PROGMEM text_5="Подключи батарею"; const uint8_t PROGMEM text_6="УЧТИ полярность."; const uint8_t PROGMEM text_7="U="; const uint8_t PROGMEM text_8=" "; const uint8_t PROGMEM text_9=" I="; const uint8_t PROGMEM text_10="В "; const uint8_t PROGMEM text_11="А "; const uint8_t PROGMEM text_12=" "; const uint8_t PROGMEM text_13="БАТАРЕЯ ЗАРЯЖЕНА"; const uint8_t PROGMEM text_14="ЗАРЯД ОТКЛЮЧЕН! "; // const uint8_t PROGMEM text_15={0xFF,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0}; // 1 const uint8_t PROGMEM text_16={0xFF,0xFF,0x20,0x20,0x20,0x20,0x20,0x20,0}; // 12 const uint8_t PROGMEM text_17={0xFF,0xFF,0xFF,0x20,0x20,0x20,0x20,0x20,0}; // 123 const uint8_t PROGMEM text_18={0xFF,0xFF,0xFF,0xFF,0x20,0x20,0x20,0x20,0}; // 1234 const uint8_t PROGMEM text_19={0xFF,0xFF,0xFF,0xFF,0xFF,0x20,0x20,0x20,0}; // 12345 const uint8_t PROGMEM text_20={0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x20,0x20,0}; // 123456 const uint8_t PROGMEM text_21={0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x20,0}; // 1234567 const uint8_t PROGMEM text_22={0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0}; // 12345678 const uint8_t PROGMEM text_23 ="Режим сохр. "; const uint8_t PROGMEM text_24 ="ВКЛ "; const uint8_t PROGMEM text_25 ="ВЫКЛ"; const uint8_t PROGMEM text_26 ="U запуска <"; const uint8_t PROGMEM text_27 =" СЕРВИСНОЕ МЕНЮ "; const uint8_t PROGMEM text_28 =" ВЫХОД ИЗ МЕНЮ "; const uint8_t PROGMEM text_29 ="I запуска "; const uint8_t PROGMEM text_30 ="Режим отключения"; const uint8_t PROGMEM text_31 ="питания "; const uint8_t PROGMEM text_32 ="Аварийный Таймер"; const uint8_t PROGMEM text_33 =" ВКЛ "; const uint8_t PROGMEM text_34 =" ВЫКЛ "; const uint8_t PROGMEM text_35 ="задержка "; const uint8_t PROGMEM text_36 =" мин"; const uint8_t PROGMEM text_37 ="T="; const uint8_t PROGMEM text_38 ="min"; #endif

Tukaj postavljamo vprašanja [email protected] com
Če kdo potrebuje flashed mikrokrmilnik, ga lahko naroči od tod... Vse ostalo seveda poberemo in naredimo sami.

Zdaj je nekaj videoposnetkov in fotografij. Tako je izgledal prvi prototip.

Takole je izgledala prva plošča.

Kasneje je bilo izvedeno bolj civilizirano plačilo.

Potem je bilo izumljeno telo.

Potem se je vse to zbralo.

Na koncu se je zgodilo tole.

Lahko prenesete diagram polnilnika.
Lahko naročite flashed mikrokrmilnik.
Dodatne informacije., Tiskano vezje.
Vprašanja in želje [email protected]

Ta naprava je namenjena merjenju kapacitete Li-ion in Ni-Mh baterij, kot tudi polnjenju Li-ion baterij z izbiro začetnega polnilnega toka.

Nadzor

Napravo priključimo na stabilizirano napajanje 5V in tok 1A (na primer iz mobilnega telefona). Indikator za 2 sekundi prikaže rezultat prejšnje meritve zmogljivosti "xxxxmA / s" in v drugi vrstici vrednost registra OCR1A "S.xxx". Vstavimo baterijo. Če morate napolniti baterijo, nato na kratko pritisnite gumb CHARGE, če želite izmeriti kapaciteto, nato na kratko pritisnite gumb TEST. Če morate spremeniti polnilni tok (vrednost registra OCR1A), dolgo (2 sekundi) pritisnite gumb CHARGE. Gremo v okno za prilagoditev registra. Spustite gumb. S kratkim pritiskom na tipko CHARGE spremenimo vrednosti (50-75-100-125-150-175-200-225) registra v krogu, prva vrstica prikazuje tok prazne baterije pri izbrani vrednosti (pod pogojem, da imate v vezju upor 0), 22 Ohm). Na kratko pritisnite tipko TEST, vrednost registra OCR1A se shrani v nehlapni pomnilnik.
Če ste z napravo opravili različne manipulacije in morate ponastaviti uro, izmerjeno kapaciteto, nato dalj časa pritisnite gumb TEST (vrednost registra OCR1A se ne ponastavi). Takoj, ko je polnjenje končano, se osvetlitev zaslona izklopi, za vklop osvetlitve ozadja na kratko pritisnite tipko TEST ali CHARGE.

Logika naprave je naslednja:

Ko je napajanje vključeno, indikator prikaže rezultat prejšnjega merjenja kapacitete baterije in vrednost registra OCR1A, shranjenega v nehlapnem pomnilniku. Po 2 sekundah naprava preklopi v način določanja vrste baterije po napetosti na sponkah.

Če je napetost večja od 2V, potem je to Li-ion baterija in polna napetost praznjenja bo 2,9V, sicer je Ni-MH baterija in polna napetost praznjenja bo 1V. Kontrolni gumbi so na voljo šele po priključitvi baterije. Nato naprava počaka, da se pritisne gumba Test ali Charge. Na zaslonu se prikaže "_STOP". Ko na kratko pritisnete gumb Test, se obremenitev poveže prek MOSFET-a.

Velikost toka praznjenja je določena z napetostjo na 5,1 Ohmskem uporu in se vsako minuto sešteje s prejšnjo vrednostjo. Naprava uporablja 32768Hz kvarc za delovanje ure.

Zaslon prikazuje trenutno vrednost zmogljivosti baterije "xxxxmA / s" in torus praznjenja "A.xxx", kot tudi čas "xx: xx: xx" od trenutka, ko je bil gumb pritisnjen. Prikazana je tudi animirana ikona nizke baterije. Na koncu testa za Ni-MH baterijo se pojavi napis "_STOP", rezultat meritve se prikaže na zaslonu "xxxxmA / s" in se shrani.

Če je baterija Li-ion, se rezultat meritve prikaže tudi na zaslonu "xxxxmA / s" in se zapomni, vendar se način polnjenja takoj vklopi. Na zaslonu je prikazana vsebina registra OCR1A "S.xxx". Prikazana je tudi animirana ikona polnjenja baterije.

Polnilni tok je nadzorovan s PWM in je omejen z 0,22 Ohmskim uporom. V strojni opremi je mogoče polnilni tok zmanjšati s povečanjem upornosti 0,22 Ohm na 0,5-1 Ohm. Na začetku polnjenja se tok postopoma povečuje na vrednost registra OCR1A oziroma dokler napetost na sponkah akumulatorja ne doseže 4,22V (če je bila baterija napolnjena).

Vrednost polnilnega toka je odvisna od vrednosti registra OCR1A – večja kot je vrednost, večji je polnilni tok. Ko je napetost na sponkah akumulatorja 4,22 V, se vrednost registra OCR1A zmanjša. Postopek polnjenja se nadaljuje, dokler vrednost registra OCR1A ni enaka 33, kar ustreza toku približno 40 mA. S tem se bremenitev konča. Osvetlitev zaslona se izklopi.

Prilagajanje

1. Priključite napajalnik.
2. Priključite baterijo.
3. Voltmeter priključimo na baterijo.
4. Z začasnima tipkama + in - (PB4 in PB5) dosežemo sovpadanje odčitkov voltmetra na prikazovalniku in na referenčnem voltmetru.
5. Pritisnite tipko TEST dalj časa (2 sekundi), pomnjenje se izvede.
6. Odstranimo baterijo.
7. Voltmeter priključimo na upor 5,1 Ohm (po diagramu blizu tranzistorja 09N03LA).
8. Regulirano napajalno enoto priključite na sponke akumulatorja, jo nastavite na 4V napajalno enoto.
9. Na kratko pritisnite gumb TEST.
10. Izmerimo napetost na 5,1 Ohmskem uporu - U.
11. Izračunajte izpustni tok I = U / 5.1
12. Z začasnima gumboma + in - (PB4 in PB5) nastavite izračunani izpustni tok I na indikatorju "A.xxx".
13. Pritisnite tipko TEST dalj časa (2 sekundi), pomnjenje se izvede.

Naprava se napaja iz stabiliziranega vira z napetostjo 5 voltov in tokom 1A. Quartz pri 32768Hz je zasnovan za natančno merjenje časa. ATmega8 taktira notranji 8 MHz oscilator, zaščita EEPROM pa mora biti nastavljena z ustreznimi konfiguracijskimi biti. Pri pisanju kontrolnega programa so bili uporabljeni vadniški članki s te strani.

Trenutne vrednosti napetostnih in tokovnih koeficientov (Ukof. Ikof) si lahko ogledate, če v tretji vrstici priključite zaslon 16x4 (za odpravljanje napak je zaželeno 16x4). Ali v Ponyprogu, če odprete datoteko vdelane programske opreme EEPROM (berete iz krmilnika EEPROM).
1 bajt - OCR1A, 2 bajta - I_kof, 3 bajta - U_kof, 4 in 5 bajtov so rezultat prejšnje meritve zmogljivosti.

Video o napravi:

Včasih se sprehodiš mimo parkiranih avtomobilov in s kotičkom očesa opaziš, da je nekdo, sodeč po medlem sijaju svetilk, za dalj časa pozabil ugasniti luč. Nekdo sam je tako dobil. Dobro je, če je redni indikator, da luč ni ugasnjena, in ko tega ni, bo pomagalo: Nepozabni lahko škripa, ko luč ni ugasnjena, in zna potisniti palico v vzvratno prestavo.

Digitalno vezje indikatorja nivoja goriva ima visoko stopnjo ponovljivosti, tudi če so izkušnje z mikrokrmilniki zanemarljive, zato razumevanje zapletenosti postopka sestavljanja in nastavitve ne povzroča težav. Gromov programer je najpreprostejši programer, ki je potreben za programiranje avr mikrokrmilnika. Goromovov programator je zelo primeren za programiranje v vezju in standardno vezje. Spodaj je diagram krmiljenja merilnika goriva.

Gladko prižiganje in izklapljanje LED diod v katerem koli načinu (vrata so odprta in lučka sveti). Tudi samodejni izklop po petih minutah. In minimalna poraba toka v stanju pripravljenosti.

Možnost 1 - minus komutacija. (z uporabo N-kanalnih tranzistorjev) 1) "minus preklapljanje", to je taka možnost, pri kateri je ena napajalna žica svetilke priključena na + 12V baterije (napajanje), druga žica pa komutira tok skozi svetilko in jo tako prižge. V tej varianti bo na voljo minus. Za taka vezja je treba kot izhodna stikala uporabiti N-kanalne tranzistorje z učinkom polja.

Sam modem je majhen, poceni, deluje brez težav, jasno in hitro in na splošno ni nobenih pritožb glede tega. Edini minus zame je bila potreba po vklopu in izklopu z gumbom. Če ga ne izklopite, se je modem napajal z vgrajeno baterijo, ki se je na koncu usedla in je bilo treba modem znova vklopiti.

Načelo delovanja je preprosto: z vrtenjem gumba se prilagodi glasnost, ob pritisku pa se zvok izklopi in vklopi. Pisati morate v sistemu Windows ali Android

Sprva je v Lifan Smily (in ne samo) način zadnjega brisalca edini in se imenuje "vedno zamahni". Takšen režim je še posebej negativno zaznan v prihajajoči deževni sezoni, ko se na zadnjem steklu nabirajo kapljice, vendar v nezadostni količini za en prehod brisalca. Torej morate poslušati škripanje gume na steklu ali upodobiti robota in občasno vklopiti / izklopiti brisalec.

Nekoliko sem spremenil vezje časovnega zakasnitvenega releja za vklop notranje osvetlitve avtomobila Ford (vezje je bilo razvito za zelo specifičen avto, kot zamenjava za standardni rele Ford 85GG-13C718-AA, vendar je bilo uspešno nameščeno v domača "klasika").

To ni prvič, da so se takšne obrti izmuznile. Toda iz nekega razloga se ljudje oklepajo vdelane programske opreme. Čeprav večinoma temeljijo na projektu elmchan "Simple SD Audio Player z 8-pin IC". Izvorna datoteka se ne odpre z argumentom, da je bilo treba projekt popraviti, da je moja kakovost boljša ... in tako naprej. Skratka, vzeli so odprtokodni projekt, ga sestavili in izdali za svojega.

Torej. Mikrokrmilnik Attiny 13 je tako rekoč srce te naprave. Dolgo sem trpel z njegovo firmware, nikakor je nisem mogel flashati.Niti 5 ožičenje preko LPT, niti Gromov progromator. Računalnik preprosto ne vidi krmilnika in to je to.

V zvezi z novostmi v prometnih pravilih so ljudje začeli razmišljati o uvedbi dnevnih luči. Eden od možnih načinov je vklop dolgih luči za del moči, o tem govori ta članek.

Ta naprava bo omogočila, da se kratke luči samodejno vklopijo, ko začnete voziti in prilagodi napetost na luči, kratke luči, odvisno od hitrosti, s katero vozite. S tem bo tudi vožnja varnejša in podaljšana življenjska doba svetilk.