Automaatne salvestusseade autoakude jaoks PIC-is. Universaalne mikrokontrolleri laadija ATmega8 laadija

Mis sai testimiseks kokku pandud ümbrisesse cd-draivilt. Selgus, et seade teeb oma funktsioonidega suurepärast tööd, laeb ja tühjendab peaaegu iga akut, samas mahutavust arvutades. Laadimis- ja tühjendustsüklite vaheldumisega saab akusid taastada. Hiljutisel ideekonkursil soovitati teha inimlikum versioon.

Uus universaalne laadija saab toite USB kaudu nutitelefoni või tahvelarvuti laadijast. Seda saab toita ka arvuti USB-pordist. Plaadile on paigaldatud mikro-usb, kuid võimalik on paigaldada ka mõni muu võimalus. Standardse alalisvoolupistiku jaoks on ka pesa; kui selle kaudu antakse toide pingega üle 5 volti, eemaldatakse plaadilt hüppaja ja loogikaosa hakkab toite saama läbi LDO stabilisaatori. 5 volti toitel tuleb paigaldada hüppaja (see lihtsalt lühistab +5 V stabilisaatori sisendi ja väljundi).

Seade asetatakse 10 * 12 cm tahvlile Kinnituspostidele on kinnitatud LCD indikaator 16 * 2 koos i2c-muunduriga. Plaadil on kruviklemmid laetava aku ja tühjenemise koormuse ühendamiseks, milleks võib olla lambipirn või võimas 5W tsementtakisti, mille takistus on näiteks 4,7 oomi. Selle takisti takistus arvutatakse valemiga R = U / I, kus U on aku pinge ja I on soovitud algne tühjendusvool. Kui tühjenemist ei planeerita, võib koormuse jätta ühendamata. Haldamine toimub kolme nupuga. Infot näidatakse ekraanil, lisaks sellele kasutatakse väikest ilma sisseehitatud generaatorita piiksu ja LED-i. Mida heledam on LED-tuli, seda laiem on impulsi laius laadimisrežiimis.

Laadija vooluring on väikeste muudatustega sama, mis algsel testversioonil. Väljatransistorid peavad olema loogikatasemega, leiad arvutiplaatidelt. P-kanali väljadraiveri transistorid peavad olema vooluga, näiteks - SS8050 ja SS8550. Konverteri induktiivpool peab vastu pidama vastavale voolule.


suurendamiseks klõpsake
Nutika universaallaadija töörežiimid:

  • Peamenüü. see valib laadimise, tühjenemise ja voltmeetri kalibreerimise parameetrid
  • tasu. ekraanil kuvatakse praegused ja seatud laadimisparameetrid, parameetreid on võimalik muuta otse laadimisprotsessi käigus. PWM-i abil on pinge ja voolu piirang määratud väärtustega. laadimine on lõppenud, kui määratud pinge on saavutatud ja laadimisvool väheneb alla määratud pinge.
  • tühjenemine. juhtimine on sarnane laadimisega. tühjenemine lõpeb, kui pinge või vool langeb alla määratud.
Selle käigus loetakse milliampertunde, need kuvatakse ka lõpus. Arvutatud väärtuste põhjal saate määrata aku mahtuvuse kaotuse astme, s.t. kui kulunud see on. Kui 1A / h võimsusega aku kogub 500mA / h või 1A / h ja annab 500mA / h, siis on selle ressurss juba oluliselt ammendunud.

Voolu mõõtmise kalibreerimine laadimise ja tühjendamise ajal toimub trimmitakistite abil vastavalt eeskujuliku ampermeetri näidudele. Voltmeetri kalibreerimine toimub samal viisil. Mikrokontrolleri vilkumiseks on plaadil ISP-pistik.

See seadme versioon on kasutamiseks üsna sobiv, kuid palju saab parandada. Plaati saab muuta kompaktsemaks, asetades patareihoidjad otse sellele. Võib-olla tuleb seadmest veel üks versioon, kui selle vastu on huvi. Seda huvi saate väljendada, lisades meeldivaks mis tahes suhtlusvõrgustikus, klõpsates artikli all olevat nuppu. Mida suurem on huvi, seda suurem on stiimul selle projektiga tegelemiseks, info täieneb.

Soovide, täienduste ja täpsustustega - olete oodatud kommentaaridesse.

PCB: varsti
püsivara: varsti

"Inimeste" võimalus peaaegu universaalseks laadimiseks Aliexpressis: Lii-100.

Universaalse laadija väike modifikatsioon, mis võimaldab teil määrata tühjendusvoolu. Algselt määrati see ainult koormustakisti takistuse järgi. Selle modifikatsiooniga saab voolu reguleerida selle väärtuse piires, st. maksimaalse voolu määrab koormustakisti, kuid saab määrata ka madalama.

Täpsustamist saab teha pindpaigaldamisega või väikesele plaadile. Koos sellega muutuvad ka mõned signaalid. Niisiis, PWM-i laadimissignaal (sagedus umbes 66 kHz) on nüüd võetud OC1A-st, PWM-lahendus - OC1B-st, heli - OC2-st. Selleks peate lauale viskama kaks takistit (suundudes OC1A ja OC2-le) ja tegema pausi kasutamata PB0-st. Muudatused diagrammil on näidatud kollasena.

Operatsioonivõimendit saab rakendada samamoodi nagu voolutugevuse mõõtmiseks vooluahela põhiosas. Me ei leidnud MCP6002, selle asemel installiti TLC2272. Tühjendusvoolu reguleerimine toimib samamoodi nagu algsel IMAX-il. Sel juhul ei soojene mitte ainult koormustakisti, vaid ka väljakontroller Q1.

Kuna kogu seadme kasutamise aja andsime selle toite ainult USB-st, on püsivara optimeeritud kuni 5-voldise väljundpinge jaoks, peaaegu kõigi "ümmarguste" akude jaoks piisab sellest: saate laadida ja tühjendada üksikuid liitiumpurke. või kaks järjestikku ühendatud nikkelakut, maksimaalne vool - 2 amprit.

Sagedusmõõtur AT90S2313 peal

Virtuaalne sagedusloendur on arvutiprogrammi ja lihtsa mõõteseadme "komplekt", mis on ühendatud arvuti COM-porti.Virtuaalne instrument võimaldab mõõta sagedust, perioodi, ajavahemikke ja lugeda impulsse.

Üksikasjad:http://home.skif.net/~yukol/FMrus.htm

Soovitan kokku panna lihtsa disaini, mis ei vaja seadistamist ja mis peamine, see töötab! Mikrokontroller programmeeritudprogrammeerija PonyProg - suurepärane programmeerija, lihtne, suur valik programmeeritavaid mikrokontrollereid,töötab Windowsi all, liides on venekeelne.


Raadioajakiri N1 2002 Ni-Cd akude jaoks. Võimaldab laadida 4 akut.



Sagedusloendur pildil 16F84A

Sagedusmõõturi tehnilised andmed:

Maksimaalne mõõdetud sagedus .............. 30 MHz;

Mõõdetud sageduse maksimaalne eraldusvõime .. .10 Hz.

Sisendtundlikkus .................. 250 mV;

Toitepinge .......................... 8 ... 12 V:

Voolutarve ............................... 35 mA


Üksikasjad, püsivara:http://cadcamlab.ru


Jootejaam aadressil Atmega 8


Jootekolvi ja fööni ümberlülitamine toimub arvuti lülitite abil. Fööni juhib türistor, sest 110 V föön R1 dioodkatoodi asemel kuni V. 6.


Üksikasjad, püsivara: http://radiokot.ru/forum


Digitaalne mahtuvusmõõtur ilma vooluringist jootmiseta

Kirjeldus on toodud ajakirjas "Raadio" nr 6 2009. Konstruktsioon on kokku pandud AT90S2313 peal, muutmata kasutatud Tiny2313 püsivara. Panin Pon'kasse märkeruudud SUT1, CKSEL1, CKSEL0, ülejäänud on tühjad. Ma ei installinud MAX631, see on meie jaoks kallis, otsustasin toita selle toiteallikast läbi stabilisaatori 7805, R29, R32, R33, panin selle pluss toiteallikale. Lisaks mahtuvusmõõturile on korpusesse monteeritud sond ilma jootmiseta transistoride testimiseks ja LF RF signaali generaator.



ATmega8 baasil pooljuhtmõõtur

Seade suudab:

Määrake pooljuhtide juhtmed;
- määrata tüüp ja struktuur;
- mõõta staatilisi parameetreid.
Mõõdab dioode, bipolaartransistore, JFET ja MOS väljatransistore, takisteid, kondensaatoreid.


Arvesti on valmistatud samas korpuses nagu FCL-mõõtur, indikaatorit vahetatakse instrumentide vahel PC-lülitiga.

Sagedusmõõtur, mahtuvus- ja induktiivsusmõõtur - FCL-meeter

Allpool kirjeldatud seade võimaldab suure täpsusega laias vahemikus mõõta elektriliste võnkumiste sagedusi, aga ka elektroonikakomponentide mahtuvust ja induktiivsust. Disainil on minimaalsed mõõtmed, kaal ja energiatarve.

Tehnilised andmed:

Toitepinge, V: 6 ... 15

Tarbevool, mA: 14 ... 17

Mõõtmispiirid:

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

F2, MHz 10 ... 950

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

L 0,001 μH ... 5 H


Kaugpea diagramm


Rohkem detaile: http://ru3ga.qrz.ru/PRIB/fcl.shtml


Miniatuurne voltmeeter, mis põhineb ATmega8L mikrokontrolleril


Siin käsitleme voltmeetri konstruktsiooni ainult ühel ATmega8L mikrokontrolleril ja elektroonilise meditsiinitermomeetri indikaatorit. Mõõdetud alalispinge vahemik on ± 50 V. Lisafunktsioonina rakendatakse helisondi režiimi juhtmete, hõõglampide terviklikkuse kontrollimiseks. Seade läheb automaatselt ooterežiimi, kui mõõtmisi pole. Mikrokontrolleri toiteallikaks on kaks miniatuurset leeliselementi (käekellale patareid), 1 elemendi seadsin 3v peale. Akusid pole vaja sageli vahetada: voolutarve aktiivses režiimis on vaid 330 μA, ooterežiimis - alla 300 nA. Tänu oma miniatuursele disainile ja võimalustele on seade kasulik ja praktiline. Tahvel ei mahtunud termomeetri korpusesse ja tegin selle flamasterist korpusesse. Ta tegi ise oma tahvli, bussidele paigaldati vetikaalselt takistid R5-R7. VADZZ aitas tänu temale teha püsivara allikast. Indikaatorinõelad vasakult paremale, tihvtid allosas ja enda poole.

Skeem (täissuuruses diagrammi jaoks salvestage pilt arvutisse).

Lisateabe saamiseks vaadake: http://www.rlocman.ru/shem/schematics.html?di=63917

Mälu mahtuvuse mõõtmise funktsiooniga

Tahtsin mõõta akude mahtuvust, imporditud arvestid on päris kallid, leidsin huvitava skeemi ja panin kokku. Töötab hästi, laeb, mõõdab, aga millise täpsusega ma võin öelda – standardit pole. Mõõtsin päris korralike firmade akud 2700 ma/h - mõtlesin 2000. Mänguasjade patareid 700 m/h -350, palju tulusam kui patareid.


Seade on mõeldud NiMH akude laadimiseks ja nende võimsuse kontrollimiseks. Laadimis- / tühjendusrežiimide vahel vahetamine toimub nupu SA1 abil. Töörežiimi näitavad LED-id ja seitsmesegmendilise ekraani kahe esimese numbri kümnendkohad.
Vahetult pärast toite sisselülitamist lülitub seade laadimisrežiimi. Indikaator näitab laadimisaega. Pärast programmeeritud aja möödumist laadimine peatub. Laadimise lõppemisest (ja tühjenemine on sama) annab tunnistust neljanda tühjenemise põlemispunkt. Laadimisvool on määratletud kui C / 10, kus C on aku võimsus, mille määrab trimmer R14.
Arvesti tööpõhimõte põhineb aja arvutamisel, mille jooksul aku pinge langeb 1,1 V-ni. Tühjendusvool peaks olema võrdne 450 ma väärtusega R16. Mahtuvuse mõõtmiseks tuleb aku sisestada tühjenduskambrisse ja protsessi käivitada nupuvajutusega! Seade suudab tühjendada ainult ühte akut.

Rohkem detaile:http://cxem.net

Universaalne sinkraadio pliit

SMD osade jootmiseks mõeldud pliidil on 4 programmeeritavat režiimi.

Juhtplokiskeem (täisvormingus diagrammi jaoks salvestage pilt arvutisse).


Toiteallika ja küttekeha juhtimine


Panin selle konstruktsiooni kokku IR-jootmisjaama juhtimiseks. Võib-olla kunagi saan pliidi hakkama. Generaatori käivitamisel tekkis probleem, pange 22 pF kondensaatorid kontaktidelt 7, 8 maandusse ja hakkasid normaalselt käima. Kõik režiimid töötavad normaalselt, koormatud 250 W keraamilise küttekehaga.

Rohkem detaile: http://radiokot.ru/lab/hardwork/11/

Sel ajal, kui ahju pole, tegin selle põhjakütte, väikeste laudade jaoks:

Keris 250 W, läbimõõt 12 cm, saadetud Inglismaalt, ostetud EBAY-st.


Digitaalne jootmisjaam, mis põhineb PIC16F88x / PIC16F87x (a)

Jootejaam kahe samaaegselt töötava jootekolbi ja fööniga. Saate kasutada erinevaid MCU-sid (PIC16F886 / PIC16F887, PIC16F876 / PIC16F877, PIC16F876a / PIC16F877a). Ekraan pärineb telefonist Nokia 1100 (1110). Fööni turbiini kiirust juhitakse elektrooniliselt ning kaasatud on ka fööni sisse ehitatud pilliroo lüliti. Autori variandis kasutati impulss-toiteallikat, mina kasutasin trafo toiteallikat. See jaam meeldib mulle kõigile, aga minu jootekolbiga: 60W, 24V, keraamilise küttekehaga, suure ülestõusmise ja temperatuurikõikumisega. Samas on väiksema võimsusega, nikroomsoojendiga jootekolbidel kõikumisi vähem. Samal ajal hoiab minu jootekolb ülalkirjeldatud jootejaamaga Mihhi-Pihkvast ja Volu püsivaraga temperatuuri kuni kraadise täpsusega. Seega on vaja head kütte ja temperatuuri säilitamise algoritmi. Katse korras tegin taimeriga PWM regulaatori, andsin termopaari võimendi väljundist juhtpinge, ühendasin lahti, lülitasin mikrokontrollerist sisse, Temperatuuri kõikumine langes kohe mitme kraadini, see kinnitab, et õige juhtimisalgoritm on vaja. Väline PWM on loomulikult pornograafia mikrokontrolleri juuresolekul, kuid head püsivara pole veel kirjutatud. Tellisin teise jootekolvi, kui sellega head stabiliseerimist pole, jätkan katseid välise PWM-juhtimisega või äkki ilmub hea püsivara. Jaam oli kokku pandud 4 plaadile, mis ühendati omavahel pistikutega.

Seadme digitaalse osa skeem on näidatud joonisel, selguse huvides on näidatud kaks MC-d: IC1 - PIC16F887, IC1 (*) - PIC16F876. Teised MCU-d on ühendatud samamoodi, vastavatesse portidesse.

Kontrastsuse muutmiseks peate leidma 67 baiti, selle väärtus on "0x80", alustuseks võite panna "0x90". Väärtused peavad olema vahemikus "0x80" kuni "0x9F".

Seoses 1110i ekraaniga (tekst kuvatakse peegelpildis), kui mitte Hiina, vaid originaal, avage EEPROM, otsige 75 baiti, muutke see A0 asemel A1.

Internetis on tohutul hulgal autoakude laadimisahelaid (laadijaid). Kõige lihtsamast kuni kõige keerulisemani. Meie puhul räägime Atmega8 mikrokontrollerile (MK) tehtud mälust. MK kasutamine, erinevalt transistoride vooluringist, võimaldab teil rakendada mälu jaoks väga rikkalikku funktsionaalsust. Näiteks otsustasin selles laadijas rakendada järgmisi funktsioone.

1. Lihtne kasutada. Piisab ühest kodeerijast. Pööratakse päripäeva - laadimine lülitati sisse. Päri- või vastupäeva keerates valitakse laadimisvool. Kodeerija otsustas valida taktiga. Sellel klõpsates pääsete lisafunktsioonide seadistustega menüüsse.

2. Laadimisvool on kuni 5A. Kuigi mul on autos 85A/h aku, piisab mulle laadimiseks 5A-st, laadimine võtab lihtsalt veidi kauem aega. Vajadusel on aga võimalik ilma globaalsete muudatusteta ja MK-d uuesti vilkumata tõsta laadimisvoolu 10A-ni.

3. Laadimisvoolu saab muuta kuni 0,1A sammuga. Minimaalset voolu saab valida kuni 0,1A. See tähendab, et saate laadida ka väikeseid akusid. Veelgi enam, kui kooderit veidi kiiremini pöörata, töötab laadimisvoolu suurendamise / vähendamise samm 0,5 A piires.

4. Aku laetakse 14,4 voltini.

5. Peal ekraanil kuvatakse info aku praeguse laadimisvoolu ja pinge kohta, samuti töötab aku laetuse indikaator nagu mobiiltelefonis. Mulle tundus, et see oleks visuaalsem.

6. Laadija klemmidel peab olema kaitse lühise eest. Näiteks kui lühistate klemmid kokku ja lülitate samal ajal laadija sisse, siis loomulikult ei tohiks see teda kahjustada. Ja üldiselt, kuni aku pole ühendatud, pole klemmidel pinget. Samuti on laadimist võimatu sisse lülitada, kui aku ühendati kogemata vale polaarsusega. Kogu see kaitse rakendatakse tarkvaras ja riistvaras.

7. Aku laadimine peaks olema täielikult automatiseeritud. See on täiesti võimalik, kuna MK-d kasutatakse. Laadimisprotsessi automatiseerimine peaks välistama inimeste osaluse. See tähendab, et ühendasin aku, valisin laadimisvoolu ja kõik. Laadija peaks tegema ülejäänu. Nimelt valitud laadimisvoolu säilitamine laadimisprotsessi ajal. Kui aku on vigane ja laadimine pole enam võimalik, tuleks aku automaatselt lahti ühendada, muidu läheb see lihtsalt lõputult keema ja meil pole seda vaja.

8. Funktsioon "talvel aku hoidmine" tundus mugav olevat. Mida iganes võib öelda, looduses on absoluutselt igal akul oma sisemine isetühjenemine. See tähendab, et kui jätate aku lihtsalt teatud perioodiks järelevalveta, tühjeneb see isetühjenemisvoolu tõttu, mis viib lõpuks plaatide sulfatsioonini. Ja aku jaoks on see surm. Pealegi pole isetühjenemise ja sulfatsiooni aeg nii pikk. Mõnikord piisab paarist kuust. Selle vältimiseks rakendatakse funktsioon"aku hoidmine talvel". See toimib lihtsalt, ühendame laadija aku külge ja akut pole vaja autost eemaldada. Lisaks jälgib laadija iga poole tunni järel aku pinget. Kui pinge langeb alla normi, lülitub sisse automaatne laadimine, pärast laadimistsükli lõppu lülitub laadija uuesti aku pinge juhtimisrežiimile. Veelgi enam, reageerimisläve määrab menüüs kasutaja ise ning menüüst saab valida ka voolutugevuse. Isiklikult panin enda jaoks läveks 12,5 volti ja laadimisvooluks 0,5A. Madala vooluga laadimine on tõhusam kui suurte vooludega.

9. Võib-olla on kasulik funktsioon "jätkake laadimist pärast voolukatkestust". Kuigi selline kokkusattumus võib juhtuda kord 150 aasta jooksul, on see funktsioon siiski olemas. Laadija "mäletab" alati, et laadimisprotsess on sisse lülitatud ja kui elekter välja/sisse lülitada, siis laadimine lihtsalt jätkub. Igal juhul saab kõiki funktsioone menüüs valikuga keelata või lubada. Kui lülitate kõik funktsioonid välja, muutub laadija lihtsalt "tavaliseks laadijaks", mis laadib akut ja lülitub välja.

10. Ja lõpuks, programmi taimer töötab mälus. Taimer tiksub pidevalt edasi 0...1,2 ja nii edasi. Kui aku laeb, on see näha, kuidas selle pinge järk-järgult tõuseb 14,4 voltini. Nii et niipea, kui aku pinge on veidi tõusnud, lähtestub taimer kohe nullile ja jätkab uuesti loendamist 0 ... 1,2 ... Aga kui aku on vigane või vana või elektrolüüdi tihedus pole päris õige, siis teatud läve juures on tasu veelgi võimatu. Ja see lävi võib olla alla 14,4 volti. Kuidas olla? Sel juhul taimer lõpetab lähtestamise. Ja kui ta on jõudnud teatud punkti, lülitab ta laadimise lihtsalt välja ekraanil kuvatava sõnumiga. Akut pole mõtet edasi keeta. Taimeri saab menüüst välja lülitada või sisse lülitada, kui seadistada tiksumisvahemikuks 30 minutit kuni 3 tundi. Ekraanil on näha, kuidas taimer aeg-ajalt tiksub ja lähtestub, kui laadimine tavarežiimis lekib.

Liigume nüüd laadija vooluringi arutamise juurde.

Toiteallikas.
Sel juhul kasutame mis tahes lülitustoiteallikat (UPS). Väljundpinge 16 kuni 20 volti. Kuna laadimisvool saab olema kuni 5A, siis UPSi väljundvool peaks olema varuga kuskil kuni 6A. Kasutasin IPB-dTÄHENDAB HÄSTIRS-75-15 mille väljundpinge on 15 volti, kuid seadmes on trimmer, millega saab pinget tõsta 16,5 volti. UPS-i eeliseks on see, et see on kerge, kompaktne ja sellel on sisseehitatud kaitse tugevate voolude, lühiste jms eest. Seetõttu ei pea te enam selle pärast muretsema. Põhimõte sobib igale teisele IPI-le. Vähemalt sülearvutist. Kui teie UPS-i vool on alla 5A, võite seda ka kasutada, peate lihtsalt jälgima, et te ei sea laadimisvoolu suuremaks, kui UPS suudab anda. Trafo toiteplokk meie puhul ei sobi. Trafo laadija on eraldi teema ja eraldi artikkel. Nii et toiteahel näeb välja umbes selline.

1000uF kondensaatorit ei saa põhimõtteliselt paigaldada, kuna see on juba väljundis lülitustoiteallikasse paigaldatud, kuid kui installite, pole see halvem. Kondensaator C2 on parem, kui on elektrolüüt, aga ma panen keraamilise smd. Stabilisaatorit 7805 on vaja MK, LCD-ekraani ja muude rihmade toiteks.

Nüüd ühendame aku ja väljatransistor.



Nagu näete, on kõik lihtne. Transistor reguleerib voolu läbi aku. Relee K1 võtab kaitse rolli, see lülitub sisse ainult siis, kui aku on õigesti ühendatud ja ühendatud. Tsemenditakisti R18 toimib šuntina. Voolutugevusel 5A on selle pinge 0,5 volti. Suurendame seda pinget ja anname selle MK ADC-le, nii et MK teab, milline vool on laadimisahelas ja seda väärtust saab kuvada. Nüüd on aeg ühendada MK vooluringiga.

Nagu näete, on skeem muutunud veidi keerulisemaks. Aga mitte palju. PB0 klemmiga ühendame relee, mis tahes relee 12 V jaoks, mille kontaktid peavad taluma voolu 5A. Releega tuleb järjestikku ühendada umbes 200-oomine summutustakisti, kuna relee toide saab 16-20-voldist pinget. Relee mähisega paralleelselt tuleb paigaldada kaitsediood (mis tahes, pannaLL4148), ilma dioodita võib VT4 transistor läbi murda. VT4 võib olla mis tahes npn tüüpi, kasutatud on MMBT4401LT1.

Kooder on ühendatud kontaktidega PD7, PC1, PC0. Kasutanud seda või seda. Väljunditel, millega kooder on ühendatud, on vaja ühendada 0,1 uF kondensaatorid ja 10 k tõmbetakistid. See vähendab kontakte.

Ekraani kasutati kahel real 16 tähemärgist. Ekraanil on ka sisseehitatud vene font. Kui ühendate ekraani, millel pole vene tähemärke, läheb ekraan mõranenud. Kuna Atmega8 MK-l pole palju jalgu, ühendati ekraan 4-bitise siini kaudu. Kuva kontakte DB3-DB0 ei kasutata.

MK PB2 kontaktiga on ühendatud BAT54S Schottky diood, kaks 0,1uF kondensaatorit ja 100 oomi takisti. Miks seda vaja on? Fakt on see, et vooluahel kasutab op-amp LM358, mis ei ole "rööpast rööpale". Sellistes operatsioonivõimendites, millel pole negatiivse toiteklemmiga negatiivset toitepinget, ei ole operatsioonivõimendi väljundis kunagi 0 volti. Seetõttu tekitab see PB2 viiguga ühendatud elementide ahel operatsioonivõimendi toiteks umbes -4 V negatiivse pinge. Selleks, et PB2 viigu juures olev kett töötaks ja tekitaks -4V, tuleb sellele rakendada PWM signaal, mille töötsükkel on 50%. Seega on kontaktis PB2 alati PWM sagedusega 62,5 kHz.

PWM on PB3 viigul alati olemas, kuid signaali töötsükkel on antud juhul 0 kuni 100% juba reguleeritud kooderi pöörlemisega. Takisti R18 ja kondensaator C11 moodustavad integreerimisahela, mis silub PWM-i konstantseks pingeks. Takistid R19 ja trimmer R20 on pingejagurid. Kuidas ma saan R20 seadistada? Ühendame multimeetri PB3 tihvtiga ja pöörame kodeerijat, kuni seade näitab 2,5 volti. Järgmisena pöörame trimmeri takistit R20 nii, et operatsioonivõimendi mitteinverteerivas väljundis oleks pinge 0,25 volti. See viib R20 seadistamise lõpule.

Kuidas transistori reguleerimine ja juhtimine toimib? Oletame, et operatsioonivõimendi (+) mitteinverteeriv väljund on 0,5 volti. Operatsioonivõimendi üks omadusi on see, et see püüab võrdsustada kahe sisendi potentsiaalide erinevust. Ta teeb seda oma väljundi abil, tõstes või langetades selle pinget. Nii et (+) viigul on 0,5 volti ja (-) viigul 0 volti. Mis järgmiseks? Op-amp hakkab kohe suurendama pinget väljundis, mis on ühendatud IRF540 transistori väravaga. Transistor hakkab avanema. Vool hakkab voolama läbi aku, transistori ja šundi. Vooluvool põhjustab R18 šundi pingelanguse. Op-amp lülitab transistori sisse, kuni šundi pinge on 0,5 volti. Šundist saadav pinge suunatakse läbi R13 klemmile (-). Niipea, kui (-) viigul on 0,5 volti (sama, mis (+) viigul), lõpetab operatsioonivõimendi transistori sisselülitamise. Sel juhul on laadimisvool 5A.

Kui kooder vähendab (+) klemmi pinget 0,25 voltini, vähendab op-amp transistori paisu pinget sellise väärtuseni, et (-) klemmi juures muutub see samuti 0,25 voltiks, see väärtus. vastab laadimisvoolule 2,5A. Selgub, et laadimisvoolu reguleerimine toimub riistvaras op-ampi abil. Ja see on väga hea, kuna op-amp ei külmu kunagi ja harutamiskiirus on hetkeline. See juhtimisahel on tavaline lineaarne vooluallikas. Selle vooluringi mugavus on see, et see on lihtne, kuid puuduseks on see, et kogu lülitustoiteallika ja aku pinge vaheline pinge eraldub transistoril soojuse kujul.

Näiteks UPS annab välja 20 volti, aku pinge laadimise alguses on 12 volti ja laadimisvool 5A. Kui palju võimsust on transistorile eraldatud? (20-12) * 5 = 40 W. 40W on palju!!! Teil on vaja kopsakat jahutusradiaatorit ja viit ventilaatorit. Nii hea asjata. Kuigi IRF540 transistor peab vastu 150 vatti, pole mõtet transistoriga laadijat soojendada. Kuidas soojuse teket vähendada? UPS-i pinget saate alandada näiteks 16 voltini. Siis (16-12) * 5 = 20 W kaks korda vähem on juba parem. Kuid kütmist saab teha isegi vähem, kuni 5 vatti või vähem. Kuidas?

Sarnast tüüpi IPB-s naguTÄHENDAB HÄSTIRS-75-15 alati on trimmitakisti, mis suudab reguleerida väljundpinget 10% piires. See tähendab 13,5–16,5, minu puhul osutus see 13–17 volti. Võite jootma trimmeri ISB-st ja selle asemel jootma MK väljundit, nii et saame MK-ga reguleerida ISB väljundi pinget, see vähendab transistori soojuse teket miinimumini. Näiteks kui akul on 12 volti, siis alandame pinge 13 volti ja saame (13-12) * 5 = 5 W soojust transistorile, parem kui 40. Seega uuendame vooluahelat


Ühendage PC123 optronid või muu sarnane PB1 kontaktiga. PB1 viigul on alati töös ka pwm signaal, mis on integreeritud R22 ja C13 ahelaga. Jootme UPS-is trimmeri takisti ja jootame selle asemel tavalise 1,2 kOhm takisti. Nüüd saab MK UPS-i väljundi pinget optroni kaudu juhtida. Kui optronid on välja lülitatud, on UPS-i väljundi pinge minimaalne, sisselülitamisel takisti R23 maandatakse, pinge tõuseb. Sujuv optroni sulgemine / avamine PWM-signaali abil PB1 kontaktis, reguleerides sujuvalt pinget UPS-i väljundis.

Et teada saada, millal ja kui palju UPS-i väljundis pinget reguleerida, peate teadma, kui palju volte on toitetransistoril üldiselt. Seejärel peame UPS-i väljundis pinget alandama, et aku pinge ja UPS-i väljundi pinge vahe oleks võimalikult väike. Selleks mõõdame MK ADC abil PC2 väljundiga transistori äravoolu pinget. Seda tehakse R9 ja R10 jaoturi abil. Nüüd, teades vajalikke parameetreid, juhib MC programm ise PWM-i töötsüklit PB1 viigul.

Nüüd on jäänud väga vähe. See on mõeldud laadimisahela voolu mõõtmiseks ja selle kuvamiseks ekraanil. Ja jääb üle aku pinget mõõta ja ka ekraanile kuvada.

Aku pinget mõõdetakse diferentsiaalmeetodil. Eemaldame väärtuse PC5 tihvtilt. Takistid R5 ja R6 peaksid olema kumbki täpselt 3 kOhm ning takistid R2 ja R4 kumbki 1 kOhm, soovitavalt täpsusega vähemalt 1%, nii et mul sellist R4 trimmeriks ei olnud. Põhimõte on see, et selliste takistite nimiväärtuste korral on op-võimendi sisendite ja selle väljundi pingesuhe 3: 1. Kui aku pinge muutub 0–15 volti, muutub pinge op-amp väljundis 0–5 volti. Selle ahela seadistamiseks peate aku asemel ühendama 14,4 volti, näiteks labori toiteallikast. Seejärel keerame trimmerit R4 nii, et LCD-ekraan oleks samuti 14,4 volti. Pinge mõõtmise ahela seadistamine on nüüd lõpetatud.

Voolu mõõdetakse läbi šundi pingelanguse, mida mängib tavaline tsemenditakisti. Meie vool on 0 kuni 5A. Pinge üle šundi varieerub vastavalt 0 kuni 0,5 volti. Takistite R16 ja R17 väärtused valitakse nii, et operatsioonivõimendi väljundis oleks pinge vahemikus 0 kuni 5 volti. Seadistame laadimisvoolu kuva vastavalt järgmisele ahelale. Ühendame aku ja teeme voolu 2,5 A. Paralleelselt akuga ühendame 12-voldise lambipirni. Ühendame aku lahti ja jätame lambipirni. Jälgime, et vool oleks 2,5 amprit. Kui šundi pinge on 0,25 volti, siis vool on 2,5 A. kui ei, siis pöörake kodeerijat, kuni šunt on 0,25 volti. Nüüd keerame trimmerit R17 nii, et ekraanil oleks voolutugevus 2,5A. Praeguse kuva seadistamine on nüüd lõpetatud.

Mida saaks lihtsustada? Näiteks kui pole tahtmist UPSis pingejaguriga jamada, siis võib kõik, mis MK PB1 jala külge joodetud, vooluringist välja visata. Aga kõik muu peaks paigas olema. Kuid sel juhul maandub kogu pinge erinevus aku ja UPS-i väljundi vahel soojuse kujul toitetransistorile. Sel juhul me ei kahetse, et radiaatorit juurde võtsime.

Kui vajate laadimisvoolu kuni 10A, paralleelselt šundiga, jootame sama šundi väärtusega 0,1 Ohm. Võtame kuni 10A taluvate kontaktidega relee ja paralleelselt IRF540 transistoriga jootme veel ühe samasuguse. Keerame transistorid kopsaka radiaatori külge ja läheme, teeme testi. Ainuke asi on see, et ekraanil oleva voolu väärtus tuleb korrutada silmas pidades 2-ga. Kui ekraan näitab 5A, siis tegelikult on see juba 10A. Mina isiklikult pole seda ise teinud, aga teoreetiliselt peaks see toimima.

Lõppkokkuvõttes näeb saadud diagramm välja järgmine:


Ma ei näe midagi, millega nõustun, nii et laadige skeem alla siit .

Paar püsivara fragmenti.

#include "define.h" #include "init_mcu.h" #include "lcd.h" #include "text.h" #include "bits_macros.h" #include "fun.h" #include "encoder.h" # kaasa "teenindus.h" #include "main.h" #include #kaasa #kaasa #kaasa #kaasa #kaasa #kaasa #define RELAY 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, energia_lipp, arv; uint16_t I_reg, enc_block, bat_count, bat_save, bat_off; EEMEM uint8_t energia_väljas; struct lipp (_Bool lcd_clr_txt0: 1; _Bool lcd_clr_txt1: 1; _Bool count_timer0: 1; // katkestuste töötleja jaoks _Bool start_charging: 1; // lülitage relee välja, kui elektrienergia on bat laadimise ajal välja lülitatud ;1a)boolb lockocrocro lipud; ISR (TIMER0_OVF_vect) // Taimeri 0 ülevoolukatkestus iga 1 ms järel. (TCNT0 = 0x6; lipud.count_timer0 = 1;) void reg_I (uint16_t reg_val) // vähendage laadimisvoolu, kui saavutatakse 14,4 volti (kui (I_reg> reg_val) (I_reg = 0; off_charge = 1; if (OCR2! =) 0) (OCR2--; enc_data = OCR2;))) void Charg_off (void) (if (BitIsSet (PORTB, RELAY)) (eeprom_update_byte (& energy_off, 0);) ClearBit (PORTB, RELAY); ClearBit (TCCR2, COM21); // keelas riistvaralise pwm-väljundi PB3 viigul OCR1A = 0; // alandas impulssgeneraatori toiteallika pingele 12,5 volti.off_charge = 0; flags.start_charging = 0; flags.ocr1a_block = 0; enc_data = 1 ; LCD_init_flash , 0); LCD_string_of_flashXY (tekst_2,3,1); _delay_ms (1500); LCD_string_of_flashXY (tekst_3,3,0); LCD_string_of_flashXY (tekst_4,2,1); _delay_ms (LCD-ar0), kui 150 (150) (PIND , PUSH)) (teenindus ();) // sisenege teenindusmenüüsse, kui (eeprom_read_byte (& energy_off) && u_batt ()> 20) (enc_data = eeprom_read_byte (& i_pusk); ) else (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 / * määrake, kas aku on ühendatud * / if (u_bat> 30) // 30 * 0,0585 = 1,7 volti akul, ühendatud (if (flags.lcd_clr_txt0 == 0) (flags.lcd_clr_txt0 = 1; LCD_clear ();) if (lcd_time> 200) (lcd_time = 0; LCD_string_of_flashXY,0); XY (tekst 7,0); LCD_string_of_flashXY (tekst_11,13,0); tähepuhver; uint16_t U = (u_bat * 59) / 100; utoa ((uint8_t) U, puhver, 10); // kuva pinge, kui (( uint8_t ) U> = 100) (LCD_dataXY (puhver, 2,0); LCD_data (puhver); LCD_andmed ("."); LCD_data (puhver); LCD_flashXY_string (tekst_10,6,0);) else if ((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 (puhver, 10,0); LCD_andmed ("."); LCD_data (puhver);) else (LCD_dataXY ("0", 10,0); LCD_andmed (."); LCD_andmed (puhver); ))) else // pole ühendatud (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 1 / * protsessi taimer0 katkestuse lipp * / if (lipud.count_timer0 == 1) (lipud.count_timer0 = 0; lcd_time ++; enc_interval ++; I_reg ++; lcd_track ++; if (enc_speed! = 100) // määrake kodeerija pöörlemiskiirus. (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 (lipud.start_charging && count! = 255) (count ++;)) #endif #if 1 / * Andmete vastuvõtmine kodeerijast * / if (enc_interval> = 5) (enc_interval = 0; OCR2 = kodeerija (); // loe väärtuse kodeerijat. #if 0 // ajutiselt testsümbolite puhvri jaoks; utoa (OCR2, bu ffer, 10); if (OCR2> = 100) (LCD_dataXY (puhver, 0,1); LCD_data (puhver); LCD_andmed (puhver);) else if (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); // üks kord iga 3 sekundi järel) else if (u_bat == 255 && OCR2> 0) (reg_I (100); // kord iga 100 ms järel) else if (u_bat> 246 && OCR2> 0 ) (reg_I (500); // üks kord iga 500 ms) #endif #if 1 / * Lülitage laadimine välja, kui laadimisvool jõuab 0,1A * / 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,08 A (lipud.start_charging = 1;) if (lipud.start_charging == 1 && i_bat<2 && count==255)//2*0.02=0.04 А ток в батарее. { ClearBit(PORTB,RELAY); } #endif #if 1 /*Бегущий индикатор на дисплее*/ if (OCR2>0) (if (lipud.lcd_clr_txt1 == 1) (lipud.lcd_clr_txt1 = 0; LCD_flashXY_string (tekst_8,0,1);) if (lcd_track> = 200) (lcd_track = 0; + lc; lüliti (_count; + lc; lüliti 0 ,1 ); paus; 4. juhtum: LCD_flashXY_andmed (tekst_19,8,1); paus; 5. juhtu: LCD_flashXY_andmed (tekst_20,8,1); paus; 6. juhtu: LCD_flashXY_andmed (tekst_21,8,1); paus; 7. juhtum : LCD_flashXY_andmed (tekst_22,8,1); break; juhtum 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 // silumiseks LCD_string_of_flashXY (text_37,0,1); char buffer; off, utoaffer, _1); if (bat_off > = 100) (LCD_dataXY (puhver, 2,1); LCD_data (puhver); LCD_data (puhver); LCD_flashXY_string (tekst_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) // lähtestab pingehäire taimeri (bat_off = 0; U_bat_tim = u_bat;) if (i_bat = eeprom_read_word (& tim_dlitl)) // Vaikimisi 180 minutit (charg_off (); LCD_string_of_flashXY (text_14,0,1); bat_off = 0; flags.lcd_clr_txt1 = 1;) #endif #if 1 / * Pinge reguleerimine väljundis toiteallikast * / if (stok_reg> = 100) (stok_reg = 0; uint8_t u_stok = u_stokk (); if (u_stok> 62) // 0,0195 * 51 * 2 = 2 volti valamu juures. (if (OCR1A! = 0) (OCR1A--;)) else if (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 (puhver); LCD_andmed (puhver);) else if (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; if (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

Esitame siin küsimusi [e-postiga kaitstud] com
Kui kellelgi on vaja flashiga mikrokontrollerit, siis selle saab tellida siit... Kõik muu kogume loomulikult kokku ja teeme ise.

Nüüd on mõned videod ja fotod. Selline nägi välja päris esimene prototüüp.

Selline nägi välja esimene laud.

Seejärel tehti tsiviliseeritud makse.

Siis leiutati keha.

Siis koguti see kõik kokku.

Lõpuks juhtus nii.

Laadija skeemi saate alla laadida.
Saate tellida välguga mikrokontrolleri.
Lisainfo., Trükkplaat.
Küsimused ja soovid [e-postiga kaitstud]

See seade on mõeldud liitiumioon- ja Ni-Mh akude mahu mõõtmiseks, samuti liitiumioonakude laadimiseks alglaadimisvoolu valikuga.

Kontroll

Ühendame seadme stabiliseeritud toiteallikaga 5V ja vooluga 1A (näiteks mobiiltelefonist). Indikaator näitab 2 sekundi jooksul eelmise mõõtmise tulemust "xxxxmA / s" ja teisel real OCR1A registri väärtust "S.xxx". Sisestame aku. Kui teil on vaja akut laadida, vajutage korraks CHARGE nuppu, kui teil on vaja mõõta mahtu, siis vajutage korraks nuppu TEST. Kui teil on vaja muuta laadimisvoolu (OCR1A registri väärtus), siis vajutage pikka aega (2 sekundit) CHARGE nuppu. Me läheme registri reguleerimise aknasse. Laske nupp lahti. Lühidalt CHARGE nupule vajutades muudame ringikujuliselt registri väärtusi (50-75-100-125-150-175-200-225), esimene rida näitab tühja aku laadimisvoolu valitud väärtusel. (eeldusel, et ahelas on 0 takisti) , 22 oomi). Vajutage korraks nuppu TEST, OCR1A registri väärtus salvestatakse püsimällu.
Kui olete seadmega teinud erinevaid manipuleerimisi ja teil on vaja nullida kell, mõõdetud võimsus, siis vajutage nuppu TEST pikka aega (registri OCR1A väärtust ei nullita). Niipea kui laadimine on lõppenud, lülitub ekraani taustvalgus välja, taustvalgustuse sisselülitamiseks vajutage korraks nuppu TEST või CHARGE.

Seadme loogika on järgmine:

Kui toide on sisse lülitatud, kuvab indikaator aku laetuse eelmise mõõtmise tulemuse ja püsimällu salvestatud OCR1A registri väärtuse. 2 sekundi pärast lülitub seade aku tüübi määramise režiimile klemmide pinge järgi.

Kui pinge on üle 2V, siis on tegu liitiumioonakuga ja täislahenduspinge on 2,9V, vastasel juhul on tegu Ni-MH akuga ja täislahenduspinge on 1V. Alles pärast aku ühendamist on juhtnupud saadaval. Seejärel ootab seade, kuni vajutatakse nuppu Test või Laadi. Ekraanil kuvatakse "_STOP". Kui vajutate lühidalt nuppu Test, ühendatakse koormus MOSFET-i kaudu.

Tühjendusvoolu suurus määratakse 5,1 oomi takisti pingega ja iga minuti järel summeeritakse see eelmise väärtusega. Seade kasutab kella juhtimiseks 32768 Hz kvartsi.

Ekraanil kuvatakse aku võimsuse praegune väärtus "xxxxmA / s" ja tühjendustoru "A.xxx", samuti kellaaeg "xx: xx: xx" nupu vajutamise hetkest. Kuvatakse ka animeeritud tühja aku ikoon. Ni-MH aku testi lõpus kuvatakse kiri "_STOP", mõõtmistulemus kuvatakse ekraanil "xxxxmA / s" ja see salvestatakse.

Kui aku on Li-ion, siis kuvatakse mõõtmistulemus ka ekraanile "xxxxmA / s" ja jäetakse meelde, kuid laadimisrežiim lülitub kohe sisse. Ekraanil kuvatakse registri OCR1A "S.xxx" sisu. Kuvatakse ka animeeritud aku laadimise ikoon.

Laadimisvoolu juhib PWM ja see on piiratud 0,22-oomise takistiga. Riistvaras saab laadimisvoolu vähendada, suurendades takistust 0,22 oomi võrra 0,5-1 oomini. Laadimise alguses suureneb vool järk-järgult kuni OCR1A registri väärtuseni või kuni pinge aku klemmidel jõuab 4,22V-ni (kui aku oli laetud).

Laadimisvoolu väärtus sõltub OCR1A registri väärtusest – mida suurem väärtus, seda suurem on laadimisvool. Kui aku klemmide pinge on 4,22 V, siis OCR1A registri väärtus väheneb. Laadimisprotsess jätkub, kuni OCR1A registri väärtus on võrdne 33-ga, mis vastab umbes 40 mA voolule. See lõpetab laadimise. Ekraani taustvalgus lülitub välja.

Kohandamine

1. Ühendage toiteallikas.
2. Ühendage aku.
3. Me ühendame voltmeetri akuga.
4. Ajutiste nuppude + ja - (PB4 ja PB5) abil saavutame voltmeetri näitude kokkulangevuse näidikul ja võrdlusvoltmeetril.
5. Vajutage TEST nuppu pikka aega (2 sek), toimub mällu salvestamine.
6. Me eemaldame aku.
7. Ühendame voltmeetri 5,1 oomi takistiga (vastavalt 09N03LA transistori lähedal olevale skeemile).
8. Ühendage reguleeritud toiteplokk aku klemmidega, seadke see 4V toiteplokile.
9. Vajutage korraks nuppu TEST.
10. Mõõdame 5,1 oomi takisti pinget - U.
11. Arvutage tühjendusvool I = U / 5.1
12. Seadke ajutiste nuppude + ja - (PB4 ja PB5) abil indikaatoril "A.xxx" arvutatud tühjendusvool I.
13. Vajutage TEST nuppu pikka aega (2 sek), toimub mällu salvestamine.

Seade saab toidet stabiliseeritud allikast, mille pinge on 5 volti ja vool 1A. Kvarts sagedusel 32768 Hz on mõeldud täpseks ajastamiseks. ATmega8 takti teeb sisemine 8 MHz ostsillaator ja EEPROM-i kaitse tuleb seadistada vastavate konfiguratsioonibittidega. Juhtprogrammi kirjutamisel kasutati selle saidi õpetusartikleid.

Pinge- ja voolukoefitsientide (Ukof. Ikof) praeguseid väärtusi näete, kui ühendate kolmandale reale 16x4 ekraani (silumiseks on eelistatav 16x4). Või Ponyprogis, kui avate EEPROM-i püsivara faili (loe EEPROM-i kontrollerist).
1 bait - OCR1A, 2 baiti - I_kof, 3 baiti - U_kof, 4 ja 5 baiti on eelmise mahumõõtmise tulemus.

Video seadmest:

Vahel kõnnid mööda pargitud autodest ja silmanurgast märkad, et keegi unustas lampide tuhmi kuma järgi otsustades pikaks ajaks tule välja lülitada. Keegi ise sai nii. Hea, kui on tavaline valguse kustutamata indikaator ja kui seda pole, siis aitab: Unustamatu oskab piiksuda, kui tuli pole välja lülitatud ja oskab tagurduskäigul pulka pista.

Digitaalse kütusetaseme näidiku vooluringil on kõrge korratavus, isegi kui kogemused mikrokontrolleritega on tühised, nii et montaaži- ja häälestusprotsessi keerukuse mõistmine ei tekita probleeme. Gromovi programmeerija on lihtsaim programmeerija, mis on vajalik avr-mikrokontrolleri programmeerimiseks. Goromovi programmeerija sobib hästi nii vooluahelasiseseks kui ka standardse vooluahela programmeerimiseks. Allpool on diagramm kütusenäidiku juhtimisest.

LED-tuled sujuvalt sisse ja välja lülitada mis tahes režiimis (uks on avatud ja lamp põleb). Samuti automaatne väljalülitamine viie minuti pärast. Ja minimaalne ooterežiimi voolutarve.

1. valik – miinuskommutatsioon. (kasutades N-kanaliga transistore) 1) "miinuslülitus", see tähendab selline võimalus, kus lambi üks toitejuhe on ühendatud aku + 12 V (toiteallikaga) ja teine ​​juhe kommuteerib voolu läbi aku. lamp, lülitades selle seeläbi sisse. Selle variandi puhul tarnitakse miinus. Selliste vooluahelate jaoks on vaja väljundlülititena kasutada N-kanaliga väljatransistore.

Modem ise on väike, odav, töötab probleemideta, selgelt ja kiiresti ning üldiselt pole selle kohta kaebusi. Ainus negatiivne minu jaoks oli vajadus seda nupuga sisse ja välja lülitada. Kui te seda välja ei lülita, sai modemi toite sisseehitatud akust, mis lõpuks istus ja modem tuli uuesti sisse lülitada.

Tööpõhimõte on lihtne: nuppu keerates reguleeritakse helitugevust, vajutades lülitatakse heli välja ja sisse. Peate kirjutama Windowsis või Androidis

Esialgu on Lifan Smilys (ja mitte ainult) tagumise klaasipuhasti režiim ainuke ja seda nimetatakse "alati kiigutamiseks". Eriti negatiivselt tajutakse sellist režiimi vihmaperioodi alguses, kui tilgad kogunevad tagaklaasile, kuid klaasipuhasti ühe läbikäigu jaoks ebapiisavalt. Niisiis, peate kas kuulama klaasil kummi kriuksumist või kujutama robotit ja perioodiliselt klaasipuhasti sisse / välja lülitama.

Muutsin veidi Fordi auto sisevalgustuse sisselülitamise viiterelee ahelat (ahel töötati välja väga spetsiifilise auto jaoks, asendades tavalise Fordi 85GG-13C718-AA relee, kuid paigaldati edukalt kodumaine "klassika").

See pole esimene kord, kui selline käsitöö läbi lipsab. Kuid millegipärast klammerduvad inimesed püsivara külge. Kuigi suures osas põhinevad need elmchani projektil "Simple SD Audio Player with an 8-pin IC". Lähtefaili ei avata väitega, et projekti tuli parandada, et minu kvaliteet on parem ... ja nii edasi. Lühidalt öeldes võtsid nad kasutusele avatud lähtekoodiga projekti, panid selle kokku ja edastasid selle enda omana.

Niisiis. Attiny 13 mikrokontroller on selle seadme süda, kui nii võib öelda. Kannatasin kaua selle püsivaraga, ei saanud kuidagi vilkuma.Ei 5 juhet läbi LPT ega Gromovi progromaatorit. Arvuti lihtsalt ei näe kontrollerit ja kõik.

Seoses liiklusreeglite uuendustega hakati mõtlema päevatulede rakendamisele. Üks võimalikest viisidest on kaugtulede sisselülitamine osa võimsusest, sellest see artikkel räägibki.

See seade lubab lähituledel automaatselt sisse lülituda, kui hakkate sõitma, ja reguleerib tulede ja lähitulede pinget olenevalt sõidukiirusest. Samuti muudab see sõitmise ohutumaks ja pikendab laternate eluiga.