- Potrebne komponente:
- Opis:
- Kružni dijagram i radno objašnjenje:
- Dizajn sklopova i PCB-a pomoću EasyEDA-e:
- Izračun i naručivanje uzoraka PCB-a putem interneta:
- Objašnjenje programiranja:
U ovom projektu izradit ćemo PIC sustav za nadzor automobila na PCB-u. Ovdje smo dizajnirali PCB koristeći mrežni simulator i dizajner PCB EASYEDA. Ovaj krug za nadzor akumulatora u automobilu koristi se za nadgledanje snage automobilskog akumulatora jednostavnim uključivanjem u utičnicu na armaturnoj ploči automobila. PCB također ima mogućnost da ga koristi kao napona alat za mjerenje ili voltmetar bez korištenja USB auto punjač. Ovdje smo pričvrstili terminalni blok za mjerenje napona drugih izvora napajanja, samo spajanjem dvije žice u njega iz izvora napajanja.
Potrebne komponente:
- PIC mikrokontroler PIC18F2520 -1
- Izrađena PCB ploča -1
- USB konektor -1
- 2-polni priključak terminala (opcionalno) -1
- Sedmosegmentni prikaz uobičajene anode (4 u 1) -1
- BC557 Tranzistor -4
- 1k otpornik -6
- 2k otpornik -1
- Otpornik 100R -8
- Kondenzator 1000uF -1
- 10uF kondenzator -1
- 28-pinska IC baza -1
- ženske prostirke -1
- 7805 Regulator napona -1
- USB punjač za automobil -1
- LED -1
- Zener dioda5.1v -2
- USB kabel (B-tip ili Arduino UNO kompatibilan) -1
- Kristal od 20 MHz -1
- 33pF kondenzator -2
Opis:
Općenito nije važno svaki put izmjeriti snagu akumulatora, ali često moramo znati o naponu akumulatora tijekom punjenja, kako bismo provjerili puni li se ili ne. Ovim možemo zaštititi kvar baterije zbog neispravnog sustava punjenja. Napon 12v automobilske baterije tijekom punjenja je oko 13,7v. Tako možemo prepoznati puni li se naša baterija dobro ili ne i možemo istražiti uzroke kvara baterije. U ovom ćemo projektu implementirati mjerač napona za automobilsku bateriju pomoću PIC mikrokontrolera. Upaljač za automobil ili automobilski USB punjač koristi se za dovod napona baterije na ADC pin mikrokontrolera uz pomoć kruga za razdvajanje napona. Zatim četveroznamenkasti sedmosegmentni zaslonkoristi se za prikaz naponske vrijednosti baterije. Ovaj krug može izmjeriti napon do 15v.
Kad se akumulator u automobilu puni, tada napon na stezaljkama akumulatora zapravo dolazi od alternatora / ispravljača, zato sustav očitava 13,7 volti. Ali kad se baterija ne puni ili motor automobila nije UKLJUČEN, tada je napon na priključku baterije stvarni napon baterije oko 12v.

Isti krug možemo koristiti i za mjerenje napona drugih izvora napajanja do 15v. U tu svrhu zalemili smo terminalni blok (plastični blok zelene boje) na PCB gdje možete spojiti dvije žice s izvora napajanja i nadzirati napon. Provjerite Video na kraju, gdje smo ga demonstrirali mjerenjem napona varijabilnog napajanja, USB banke napajanja i 12v AC-DC adaptera. Također provjerite jednostavni krug monitora baterije i krug punjača baterije od 12v.
Kružni dijagram i radno objašnjenje:
U ovom krugu za nadzor napona baterije očitali smo napon akumulatora u automobilu pomoću ugrađenog analognog pina PIC mikrokontrolera i ovdje smo odabrali pin AN0 (28) pina mikrokontrolera kroz krug djelitelja napona. Za zaštitu se koristi i zener dioda od 5.1v.

Zaslon 4 u 1 sa sedam segmenata koristi se za prikaz trenutne vrijednosti napona akumulatora u automobilu koji je spojen na PORTB i PORTC mikrokontrolera. Regulator napona 5v, naime LM7805, koristi se za napajanje cijelog kruga, uključujući sedam segmenta prikaza. Kristalni oscilator od 20 MHz koristi se za taktiranje mikrokontrolera. Krug napaja sam USB automobilski punjač pomoću LM7805. U PCB smo dodali USB priključak, tako da možemo automatski spojiti USB punjač za automobil na strujni krug.

Automobilski USB punjač ili upaljač za cigarete osiguravaju 5v regulirano napajanje iz 12v električne utičnice automobila, ali moramo izmjeriti stvarni napon automobilske baterije tako da smo doradili automobilski punjač. Morate otvoriti USB punjač za automobil, a zatim pronaći terminale 5v (izlazni) i 12v (ulazni), a zatim ukloniti 5v vezu trljajući ga brusnim papirom ili nekom tvrdom stvari i izravno spojiti USB izlazni terminal na 12v. Prvo otvorite 5v vezu s USB priključka u automobilskom USB punjaču, a zatim spojite 12v na USB priključak na koji je bio spojen 5v. Kao što je prikazano na donjoj slici, izrezali smo crvenu kružnu vezu, ona se može razlikovati u vašem automobilskom punjaču.



Da bismo ovdje konfigurirali ADC, odabrali smo analogni pin AN0 s unutarnjim referentnim naponom od 5v i f / 32 takta za ADC pretvorbu.
Za izračunavanje napona akumulatora u automobilu iz vrijednosti ADC koristili smo sljedeću formulu:
Napon = (vrijednost ADC / faktor otpornika) * referentni napon Gdje je: vrijednost ADC = izlaz djelitelja napona (mikrokontrolerom pretvara u digitalni) Faktor otpora = 1023,0 / (R2 / R1 + R2) // 1023 je maksimalna vrijednost ADC (10- bit) Referentni napon = 5 volti // odabrana unutarnja referenca od 5v
Izračun faktora otpornika:
U ovom projektu očitavamo napon akumulatora u automobilu koji je (općenito) oko 12v-14v. Dakle, ovaj smo projekt izveli pod pretpostavkom da max 15v znači da se ovaj sustav može čitati max do 15v.
Dakle, u krugu smo koristili R1 i R2 otpornik u dijelu djelitelja napona, a vrijednosti su:
R1 = 2K
R2 = 1K

Faktor otpornika = 1023,0 * (1000/2000 + 1000)
Faktor otpornika = 1023,0 * (1/3)
Faktor otpornika = 341,0 do 15 volti
Dakle, konačna formula za izračun napona bit će sljedeća, a mi smo se poslužili kodeksom navedenim na kraju ovog članka:
Napon = (ADC vrijednost / 341,0) * 5,0
Dizajn sklopova i PCB-a pomoću EasyEDA-e:
Da bismo dizajnirali sklop za nadzor napona akumulatora u automobilu, koristili smo EasyEDA koji je besplatni mrežni EDA alat za stvaranje bežičnih krugova i PCB-a. Prethodno smo naručili nekoliko PCB-a od EasyEDA-e i još uvijek koristimo njihove usluge jer smo pronašli čitav postupak, od crtanja krugova do naručivanja PCB-a, prikladnijih i učinkovitijih u usporedbi s drugim proizvođačima PCB-a. EasyEDA nudi besplatno crtanje, simulaciju i dizajn PCB-a, a također nudi i kvalitetnu, ali nisku cijenu prilagođenu uslugu PCB-a. Ovdje provjerite cjelovitu lekciju o tome kako koristiti Easy EDA za izradu shema, izgleda PCB-a, simulacije krugova itd.
EasyEDA se poboljšava iz dana u dan; dodali su mnoge nove značajke i poboljšali cjelokupno korisničko iskustvo, što EasyEDA čini lakšim i upotrebljivijim za projektiranje sklopova. Uskoro će lansirati njegovu verziju za radnu površinu, koja se može preuzeti i instalirati na vaše računalo za izvanmrežnu upotrebu.
U EasyEDA-i možete učiniti svoj dizajn kruga i PCB-a javnim, tako da ih drugi korisnici mogu kopirati ili urediti i od toga imati koristi. Također smo za ovaj monitor napona akumulatora za automobile učinili javnim cijeli raspored krugova i PCB-a , provjerite donju poveznicu:
easyeda.com/circuitdigest/PIC_based_Car_Battery_Monitoring_System-63c2d5948eaa48c5bcbbd8db49a6c776
Ispod je Snimka gornjeg sloja izgleda PCB-a tvrtke EasyEDA, možete pregledati bilo koji sloj (gornji, donji, gornji dio dna, dno itd.) PCB-a odabirom sloja iz prozora "Slojevi".

Izračun i naručivanje uzoraka PCB-a putem interneta:
Nakon dovršetka dizajna PCB-a možete kliknuti ikonu izlaza za izradu koja će vas odvesti na stranicu za narudžbu PCB-a. Ovdje možete pregledati svoju PCB u pregledniku Gerber Viewer ili preuzeti Gerber datoteke s PCB-a i poslati ih bilo kojem proizvođaču, a puno je lakše (i jeftinije) naručiti je izravno u EasyEDA-i. Ovdje možete odabrati broj PCB-a koje želite naručiti, koliko slojeva bakra trebate, debljinu PCB-a, težinu bakra, pa čak i boju PCB-a. Nakon što odaberete sve mogućnosti, kliknite "Spremi u košaricu" i dovršite narudžbu, a nakon nekoliko dana dobit ćete svoje PCB-ove.

Ovu PCB možete izravno naručiti ili preuzeti Gerber datoteku pomoću ove poveznice.
Nakon nekoliko dana naručivanja PCB-a, dobio sam uzorke PCB-a



Nakon što sam nabavio PCB-ove, montirao sam sve potrebne komponente preko PCB-a, i konačno smo pripremili naš sustav za nadzor akumulatora, provjerite ovaj krug u radu u videu navedenom na kraju.

Objašnjenje programiranja:
Program ovog projekta malo je težak za početnike. Za pisanje ovog koda potrebne su nam zaglavne datoteke. Ovdje koristimo MPLAB X IDE za kodiranje i XC kompajler za izgradnju i kompajliranje koda. Kôd je napisan na C jeziku.
U ovom kodu očitali smo napon baterije pomoću analognog pina, a za kontrolu ili slanje podataka na četveroznamenkasti sedmosegmentni zaslon koristili smo rutinu prekidača s vremenskim prekidom u PIC mikrokontroleru. Sav proračun za mjerenje napona vrši se u glavnoj programskoj rutini.
Prvo, u kod smo uključili zaglavlje, a zatim konfigurirali PIC mikrokontroler pomoću konfiguracijskih bitova.
#include
A zatim se prikazuju deklarirane varijable i definirani pinovi za sedam segmenata
nepotpisani int brojač2; nepotpisani položaj znaka = 0; nepotpisani znak k = {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; int znamenka1 = 0, znamenka2 = 0, znamenka3 = 0, znamenka4 = 0; # define TRIS_seg1 TRISCbits.TRISC0 #define TRIS_seg2 TRISCbits.TRISC1 #define TRIS_seg3 TRISCbits.TRISC2 #define TRIS_seg4 TRISCbits.TRISC3 #define TRIS_led1 TRISAbits.TRISA2 #define TRIS_led2 TRISAbits.TRISA5 #define TRIS_led3 TRISAbits.TRISA0 #define TRIS_led4 TRISAbits.TRISA1 #define TRIS_led5 TRISAbits.TRISA………………
Sada smo stvorili rutinu prekida s odbrojavanjem za vožnju sedmosegmentnog prikaza:
prekid praznine low_priority LowIsr (void) {if (TMR0IF == 1) {counter2 ++; if (brojač2> = 1) {if (pozicija == 0) {seg1 = 0; seg2 = 1; seg3 = 1; seg4 = 1;………………
Sada u void main () funkciji, inicijalizirali smo timer i prekid.
GIE = 1; // GLOBAL INTRRUPT OMOGUĆUJE PEIE = 1; // periferna zastavica prekida T0CON = 0b000000000; // vrijednost pretkalera stavlja TMR0IE = 1; // omogućavanje prekida TMR0IP = 0; // prioritet prekida TMR0 = 55536; // start brojača nakon ove vrijednosti TMR0ON = 1;
A onda u while petlji čitamo analogni ulaz na analognom pinu i pozivamo neku funkciju za izračun.
while (1) {adc_init (); za (i = 0; i <40; i ++) {Vrijednost = adc_value (); adcValue + = Vrijednost; } adcValue = (plutajuće) adcValue / 40,0; pretvoriti (adcValue); kašnjenje (100); }
S obzirom adc_init () funkcija se koristi za inicijalizaciju ADC
void adc_init () {ADCON0 = 0b00000011; // odabir adc kanala ADCON1 = 0b00001110; // odabir analognog i digitalnog i / p ADCON2 = 0b10001010; // vrijeme izjednačavanja vrijeme zadržavanja ADON = 1; }
S obzirom adc_value funkcija koristi za čitanje ulaz s analognog pin i izračunati napon.
plutajuća adc_value (void) {plutajuća adc_data = 0; dok je (GO / DONE == 1); // veći bitni podaci započinju pretvorbu vrijednost adc_data = (ADRESL) + (ADRESH << 8); // Spremi 10-bitni izlaz adc_data = ((adc_data / 342.0) * 5.0); vrati adc_data; }
A zadana funkcija pretvorbe koristi se za pretvaranje vrijednosti napona u podržane vrijednosti segmenta.
pretvoriti prazninu (float f) {int d = (f * 100); znamenka1 = d% 10; d = d / 10; znamenka2 = d% 10; d = d / 10; znamenka3 = d% 10; znamenka4 = d / 10; }
Potpuni kôd za ovaj projekt provjerite u nastavku s demonstracijskim videom.
