- Potrebne komponente:
- Delovna razlaga:
- Pojasnilo vezja:
- Pojasnilo programiranja:
- Oblikovanje vezij in tiskanih vezij s pomočjo EasyEDA:
- Izračun in naročanje PCB-jev prek spleta:
V našem domu pogosto opazimo nihanja napetosti v oskrbi z električno energijo, kar lahko povzroči okvare v naših domačih AC napravah. Danes gradimo nizkocenovno visoko in nizkonapetostno zaščitno vezje, ki bo prekinilo napajanje naprav v primeru visoke ali nizke napetosti. Na zaslonu LCD 16x2 bo prikazano tudi opozorilno sporočilo. V tem projektu smo uporabili mikrokrmilnik PIC za branje in primerjavo vhodne napetosti z referenčno napetostjo in ustrezno ukrepanje.
To vezje smo izdelali na PCB in dodali dodatno vezje na PCB za isti namen, vendar tokrat z uporabo op-amp LM358 (brez mikrokrmilnika). Za predstavitev smo izbrali mejo nizke napetosti kot 150v in visoko napetost kot 200v. Tu v tem projektu nismo uporabili nobenega releja za izklop, temveč smo ga prikazali z LCD-jem, preverite video na koncu tega članka Toda uporabnik lahko na to vezje pritrdi rele in ga poveže s GPIO PIC-a.
Nadalje preverite naše druge projekte PCB tukaj.
Potrebne komponente:
- Mikrokrmilnik PIC PIC18F2520
- PCB (naročeno pri EasyEDA)
- IC LM358
- 3-polni priključek priključka (neobvezno)
- 16x2 LCD
- Tranzistor BC547
- 1k upor
- Upor 2k2
- 30K upor SMD
- 10k SMD
- Kondenzatorji - 0,1uf, 10uF, 1000uF
- 28-polna IC osnova
- Moške / ženske krste
- 7805 Regulatorji napetosti - 7805, 7812
- Programer Pickit2
- LED
- Zener dioda - 5.1v, 7.5v, 9.2v
- Transformator 12-0-12
- 12MHz kristal
- 33pF kondenzator
- Regulator napetosti (regulator hitrosti ventilatorja)
Delovna razlaga:
V tem visokonapetostnem in nizkonapetostnem odklopnem vezju smo odčitali izmenično napetost z uporabo mikrokrmilnika PIC s pomočjo transformatorja, mostičnega usmernika in napetostnega delilnika in prikazali na LCD 16x2. Nato smo primerjali izmenično napetost z vnaprej določenimi mejami in na LCD-prikazovalniku ustrezno prikazali opozorilno sporočilo. Tako kot če je napetost pod 150v, smo prikazali "Nizka napetost" in če je napetost nad 200v, smo na LCD-prikazovalniku prikazali besedilo "Visoka napetost". Te omejitve lahko spremenimo v kodi PIC, podani na koncu tega projekta. Tu smo uporabili regulator ventilatorja za povečanje in zmanjšanje dohodne napetosti za demonstracijske namene v videu.
V to vezje smo dodali tudi preprosto in napetostno zaščitno vezje brez uporabe mikrokrmilnika. V tem preprostem vezju smo za primerjavo vhodne in referenčne napetosti uporabili primerjalnik LM358. V tem projektu imamo torej tri možnosti:
- Izmerite in primerjajte izmenično napetost s pomočjo transformatorja, mostičnega usmernika, vezja delilnika napetosti in mikrokrmilnika PIC.
- Zaznavanje nad in pod napetosti z uporabo LM358 s pomočjo transformatorja, usmernika in primerjalnika LM358 (brez mikrokrmilnika)
- Zaznajte podnapetostno in prenapetostno napetost z uporabo primerjalnika LM358 in podajte njegov izhod mikrokrmilniku PIC za ukrepanje s kodo.
Tu smo prikazali prvo možnost tega projekta. V katerem smo znižali vhodno napetost AC in jo nato z uporabo mostovnega usmernika pretvorili v enosmerno napetost, nato pa to enosmerno napetost spet preslikali na 5v in nato to napetost dokončno podali v mikrokrmilnik PIC za primerjavo in prikaz.
V mikrokrmilniku PIC smo prebrali to preslikano enosmerno napetost in na podlagi preslikane vrednosti izračunali dohodno izmenično napetost s pomočjo dane formule:
volt = ((adcValue * 240) / 1023)
kjer je adcValue enakovredna vrednost enosmerne vhodne napetosti na zatiču ADC krmilnika PIC, volt pa uporabljena izmenična napetost. Tu smo za največjo vhodno napetost vzeli 240v.
ali pa lahko uporabimo dano metodo za preslikavo enakovredne enosmerne vhodne vrednosti.
volt = zemljevid (adcVlaue, 530, 895, 100, 240)
kjer je adcValue enakovredna vrednost vhodne enosmerne napetosti na zatiču ADC krmilnika PIC, je 530 enakovredna najmanjša enosmerna napetost in 895 enakovredna vrednost enosmerne napetosti. In 100v je najmanjša napetost preslikave in 240v največja napetost preslikave.
Pomeni 10mV DC vhod na PIC ADC pin enak 2.046 ADC ekvivalentni vrednosti. Torej, tukaj smo izbrali 530 kot najmanjšo vrednost, napetost na PIC-ovem ADC-zatiču bo:
(((530 / 2.046) * 10) / 1000) Volt
2.6v, ki bo preslikana najmanjša vrednost 100VAC
(Isti izračun za najvišjo mejo).
Preverite, ali je funkcija zemljevida na koncu podana v programski kodi PIC. Tukaj preberite več o vezju delilnika napetosti in preslikavi napetosti z uporabo ADC.
Delo s tem projektom je enostavno. V tem projektu smo za prikaz uporabili regulator ventilatorja z izmenično napetostjo. Na vhod transformatorja smo pritrdili regulator ventilatorja. In potem s povečanjem ali zmanjšanjem njegovega upora smo dobili želeno izhodno napetost.
V kodi smo določili največje in najnižje vrednosti napetosti za zaznavanje visoke in nizke napetosti. Določili smo 200v kot mejo prenapetosti in 150v kot spodnjo napetost. Zdaj po vklopu vezja lahko vidimo LCD vhodno napetost na LCD-ju. Ko se vhodna napetost poveča, lahko vidimo spremembe napetosti na LCD-ju in če napetost postane večja od zgornje meje napetosti, nas bo LCD opozoril z “HIGH Voltage Alert” in če bo napetost nižja od spodnje napetosti, nas bo LCD opozoril s prikazom “ Sporočilo LOW Voltage Alert. Na ta način se lahko uporablja tudi kot elektronski odklopnik.
Nadalje lahko dodamo rele za priključitev vseh AC naprav na samodejni izklop pri nizki ali visoki napetosti. Dodati moramo samo vrstico kode za izklop naprave, pod opozorilnim sporočilom LCD, ki prikazuje kodo. Označite tukaj, če želite uporabljati rele z napravami z izmeničnim tokom.
Pojasnilo vezja:
V visokonapetostnem in nizkonapetostnem zaščitnem vezju smo uporabili opcijski ojačevalnik LM358, ki ima dva izhoda, povezana z 2 in 3 številskimi nožicami mikrokrmilnika PIC. In delilnik napetosti se uporablja za delitev napetosti in poveže svoj izhod na 4. številčnem zatiču mikrokrmilnika PIC. LCD je priključen na PORTB PIC v 4-bitnem načinu. RS in EN sta neposredno povezana na B0 in B1, podatkovni zatiči D4, D5, D6 in D7 LCD pa na B2, B3, B4 in B5. V tem projektu smo uporabili dva regulatorja napetosti: 7805 za napajanje mikrokrmilnika in 7812 za vezje LM358. In zniževalni transformator 12v-0-12v se uporablja tudi za znižanje izmenične napetosti. Preostali deli so prikazani na spodnjem vezju.
Pojasnilo programiranja:
Programiranje dela tega projekta je enostavno. V tej kodi moramo samo izračunati izmenično napetost z uporabo preslikane napetosti 0-5v, ki prihaja iz vezja delilnika napetosti, in jo nato primerjati z vnaprej določenimi vrednostmi. Po tem projektu lahko preverite celotno kodo PIC.
Najprej smo v kodo vključili glavo in konfigurirali nastavitvene bite mikrokrmilnika PIC. Če ste novi pri kodiranju PIC, se tukaj naučite mikrokrmilnika PIC in njegovih nastavitvenih bitov.
Nato smo uporabili nekaj funkcij za pogon LCD-ja, na primer void lcdbegin () za inicializacijo LCD-ja, void lcdcmd (char ch) za pošiljanje ukaza na LCD, void lcdwrite (char ch) za pošiljanje podatkov na LCD in void lcdprint (char * str) za pošiljanje niza na LCD. Preverite vse funkcije v spodnji kodi.
Spodaj podana funkcija se uporablja za preslikavo vrednosti:
dolg zemljevid (dolg x, dolg in_min, dolg in_max, dolg out_min, dolg out_max) {return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min; }
Dana funkcija int analogRead (int ch) se uporablja za inicializacijo in branje ADC:
int analogRead (int ch) {int adcData = 0; če (ch == 0) ADCON0 = 0x03; // adc kanal 0 else if (ch == 1) ADCON0 = 0x0b; // izberemo adc kanal 1 else if (ch == 2) ADCON0 = 0x0b; // izberemo adc kanal 2 ADCON1 = 0b00001100; // izberemo analogni i / p 0,1 in 2 kanal ADC ADCON2 = 0b10001010; // čas izenačevanja čas zadrževanja med (GODONE == 1); // začetek pretvorbe vrednost adc adcData = (ADRESL) + (ADRESH << 8); // Shrani 10-bitni izhod ADON = 0; // adc off return adcData; }
Dane črte se uporabljajo za pridobivanje vzorcev ADC in izračun povprečja le-teh ter nato izračun napetosti:
while (1) {long adcValue = 0; int volt = 0; for (int i = 0; i <100; i ++) // jemanje vzorcev {adcValue + = analogRead (2); zamuda (1); } adcValue / = 100; #if method == 1 volt = (((float) adcValue * 240.0) /1023.0); #else volt = zemljevid (adcValue, 530, 895, 100, 240); #endif sprintf (rezultat, "% d", volt);
In končno dana funkcija se uporablja za izvedbo rezultatov:
če (volt> 200) {lcdcmd (1); lcdprint ("Visoka napetost"); lcdcmd (192); lcdprint ("Opozorilo"); zamuda (1000); } sicer če (volt <150) {lcdcmd (1); lcdprint ("Nizka napetost"); lcdcmd (192); lcdprint ("Opozorilo"); zamuda (1000); }
Oblikovanje vezij in tiskanih vezij s pomočjo EasyEDA:
Za oblikovanje tega VISOKEGA in NIZKEGA napetostnega vezja smo izbrali spletno orodje EDA EasyEDA. Pred tem smo že večkrat uporabili EasyEDA in se nam je zdel zelo priročen za uporabo v primerjavi z drugimi proizvajalci PCB. Tukaj si oglejte vse naše projekte PCB. EasyEDA ni samo rešitev na enem mestu za shematsko zajemanje, simulacijo vezja in oblikovanje PCB-jev, ponujajo tudi poceni storitev za prototip in komponente PCB. Pred kratkim so uvedli svojo storitev nabave komponent, kjer imajo veliko zalogo elektronskih komponent, uporabniki pa lahko naročijo njihove zahtevane komponente skupaj z naročilom PCB.
Med načrtovanjem vezij in tiskanih vezij lahko svoje načrte vezij in tiskanih vezij objavite tudi tako, da jih lahko drugi uporabniki kopirajo ali urejajo in lahko izkoristijo prednosti, za to visoko in nizko napetost pa smo objavili tudi celotno postavitev vezij in PCB Zaščitni tokokrog, preverite spodnjo povezavo:
easyeda.com/circuitdigest/HIGH_LOW_Voltage_Detector-4dc240b0fde140719c2401096e2410e6
Spodaj je Snapshot of Top layer of PCB layout from EasyEDA, lahko si ogledate katero koli plast (Top, Bottom, Topsilk, bottomomskil itd.) PCB-ja tako, da v oknu 'Layers' izberete plast.
Pogled fotografije na PCB lahko preverite tudi s pomočjo EasyEDA:
Izračun in naročanje PCB-jev prek spleta:
Po končanem oblikovanju PCB-ja lahko zgoraj kliknete ikono Fabrication output . Nato boste odprli stran PCB order to download Gerber files of your PCB in jih poslali kateremu koli proizvajalcu, prav tako je veliko lažje (in ceneje), da jo naročite neposredno v EasyEDA. Tu lahko izberete število PCB-jev, ki jih želite naročiti, koliko bakrenih plasti potrebujete, debelino PCB-ja, težo bakra in celo barvo PCB-ja. Ko izberete vse možnosti, kliknite »Shrani v košarico« in dokončajte naročilo, nato boste nekaj dni kasneje dobili svoje PCB-je. Uporabnik lahko s svojim lokalnim prodajalcem PCB izdela tudi PCB s pomočjo datoteke Gerber.
Dostava EasyEDA je zelo hitra in po nekaj dneh naročanja PCB sem dobil vzorce PCB:
Spodaj so slike po spajkanju komponent na PCB:
Tako lahko enostavno zgradimo nizkonapetostno zaščitno vezje za svoj dom. Poleg tega morate dodati rele, s katerim nanj priključite vse AC naprave, da ga zaščitite pred nihanji napetosti. Preprosto povežite rele s katerim koli splošnim namenom PIC MCU in napišite kodo, da bo ta pin visok in nizek skupaj s kodo opozorilnega sporočila LCD.