- Būtini komponentai:
- Darbinis paaiškinimas:
- Grandinės paaiškinimas:
- Programavimo paaiškinimas:
- Grandinių ir PCB dizainas naudojant „EasyEDA“:
- PCB skaičiavimas ir užsakymas internetu:
Mes dažnai matome įtampos svyravimus elektros energijos tiekime namuose, kurie gali sukelti mūsų namų kintamosios srovės prietaisų veikimo sutrikimus. Šiandien mes statome pigias aukštos ir žemos įtampos apsaugos grandines, kurios nutraukia prietaisų maitinimą esant aukštai ar žemai įtampai. Jis taip pat parodys įspėjimo pranešimą 16x2 LCD ekrane. Šiame projekte mes naudojome PIC mikrovaldiklį, kad galėtume nuskaityti ir palyginti įėjimo įtampą su etalonine įtampa ir atitinkamai atlikti veiksmus.
Mes padarėme šią grandinę PCB ir pridėjome papildomą grandinę PCB tuo pačiu tikslu, tačiau šį kartą naudodami op-amp LM358 (be mikrovaldiklio). Parodymo tikslu mes pasirinkome žemos įtampos ribą kaip 150v, o aukštos įtampos ribą - kaip 200v. Šiame projekte mes nenaudojome jokios relės, kad ją būtų galima nutraukti, mes tiesiog parodėme ją naudodami LCD, patikrinkite vaizdo įrašą šio straipsnio pabaigoje. Bet vartotojas gali prijungti relę prie šios grandinės ir prijungti prie PIC GPIO.
Toliau patikrinkite kitus mūsų PCB projektus čia.
Būtini komponentai:
- PIC mikrovaldiklis PIC18F2520
- PCB (užsakyta iš „EasyEDA“)
- IC LM358
- 3 kontaktų terminalų jungtis (pasirinktinai)
- 16x2 LCD ekranas
- BC547 tranzistorius
- 1k rezistorius
- 2k2 rezistorius
- 30K rezistorius SMD
- 10 tūkst. SMD
- Kondensatoriai - 0,1 uf, 10 uF, 1000 uF
- 28 kontaktų IC pagrindas
- Vyriškos / moteriškos lazdelės
- 7805 Įtampos reguliatoriai - 7805, 7812
- „Pickit2“ programuotojas
- LED
- „Zener“ diodas - 5,1v, 7,5v, 9,2v
- Transformatorius 12-0-12
- 12MHz kristalas
- 33pF kondensatorius
- Įtampos reguliatorius (ventiliatoriaus greičio reguliatorius)
Darbinis paaiškinimas:
Šioje aukštos ir žemos įtampos išjungimo grandinėje mes perskaitėme kintamosios srovės įtampą, naudodami PIC mikrovaldiklį su transformatoriumi, tilto lygintuvu ir įtampos skirstytuvo grandine ir rodomą per 16x2 LCD. Tada palyginome kintamosios srovės įtampą su iš anksto nustatytomis ribomis ir atitinkamai per LCD rodėme įspėjimo pranešimą. Pvz., Jei įtampa yra žemesnė nei 150 V, tada mes parodėme „Žemą įtampą“, o jei įtampa viršija 200 V, tada per LCD rodėme „Aukštos įtampos“ tekstą. Šias ribas galime pakeisti PIC kode, pateiktame šio projekto pabaigoje. Čia mes naudojome ventiliatoriaus reguliatorių, kad padidintume ir sumažintume įeinančią įtampą demonstravimo tikslais vaizdo įraše.
Šioje grandinėje mes taip pat pridėjome paprastą apatinės ir viršįtampio apsaugos grandinę nenaudodami jokio mikrovaldiklio. Šioje paprastoje grandinėje mes palyginome LM358, kad palygintume įėjimo ir atskaitos įtampą. Taigi, šiame projekte turime tris galimybes:
- Išmatuokite ir palyginkite kintamą įtampą naudodamiesi transformatoriumi, tilto lygintuvu, įtampos daliklio grandine ir PIC mikrovaldikliu.
- Viršutinės ir žemos įtampos nustatymas naudojant LM358 naudojant transformatorių, lygintuvą ir lygintuvą LM358 (be mikrovaldiklio)
- Nustatykite žemesnę ir didesnę įtampą naudodami palyginamąjį LM358 ir paduokite jo išvestį į PIC mikrovaldiklį, kad galėtumėte atlikti veiksmus pagal kodą.
Čia mes parodėme pirmąjį šio projekto variantą. Kuriame mes sumažinome kintamosios srovės įėjimo įtampą, o tada, naudodami tiltinį lygintuvą, pavertėme ją nuolatine, tada vėl nustatėme šią nuolatinę įtampą iki 5 V ir galiausiai tiekėme šią įtampą į PIC mikrovaldiklį palyginimui ir rodymui.
PIC mikrovaldiklyje mes perskaitėme šią susietą nuolatinę įtampą ir, remdamiesi ta atvaizduota verte, apskaičiuodavome gaunamą kintamosios srovės įtampą pagal pateiktą formulę:
voltas = ((adcValue * 240) / 1023)
kur „ adcValue“ yra ekvivalentinė nuolatinės srovės įėjimo įtampos vertė PIC valdiklio ADC kaiščio vietoje, o voltas - pritaikyta kintamosios srovės įtampa. Čia mes paėmė 240v kaip didžiausia įėjimo įtampa.
arba alternatyviai galime naudoti nurodytą metodą ekvivalentinei nuolatinės įėjimo vertei susieti.
voltas = žemėlapis („adcVlaue“, 530, 895, 100, 240)
kur „ adcValue“ yra ekvivalentinė nuolatinės srovės įėjimo įtampos vertė PIC valdiklio ADC kontakte , 530 yra mažiausia nuolatinės įtampos ekvivalentas ir 895 yra didžiausia nuolatinės įtampos ekvivalentinė vertė. 100v yra minimali kartografavimo įtampa, o 240v - didžiausia kartografavimo įtampa.
Reiškia, kad 10 mV nuolatinė įtampa PIC ADC kontakte yra lygi 2,046 ADC ekvivalentinei vertei. Taigi čia mes pasirinkome 530 kaip minimalią vertę, įtampa PIC ADC kaište bus:
(((530 / 2,046) * 10) / 1000) Volt
2.6v, kuri bus atvaizduota mažiausia 100VAC vertė
(Tas pats didžiausios ribos skaičiavimas).
Patikrinkite, ar žemėlapio funkcija pateikta PIC programos kode. Sužinokite daugiau apie įtampos daliklio grandinę ir įtampų susiejimą naudojant ADC čia.
Šį projektą lengva atlikti. Šiame projekte mes panaudojome kintamosios įtampos ventiliatoriaus reguliatorių, kad tai pademonstruotume. Prie transformatoriaus įvesties pritvirtinome ventiliatoriaus reguliatorių. Tada padidinę ar sumažinę jo varžą, mes gavome norimą įtampos išėjimą.
Kode mes nustatėme didžiausią ir mažiausią įtampos vertes aukštos įtampos ir žemos įtampos aptikimui. Mes nustatėme 200v kaip viršįtampio ribą ir 150v kaip apatinę įtampos ribą. Įjungę grandinę, mes galime pamatyti kintamosios srovės įėjimo įtampą per LCD. Kai įėjimo įtampa padidėja, mes galime pamatyti įtampos pokyčius per LCD, o jei įtampa tampa didesnė nei viršija įtampos ribą, LCD įspės mus „HIGH Voltage Alert“ ir, jei įtampa bus žema nei žemesnė nei įtampos riba, LCD mus perspės rodydamas Įspėjimas apie žemą įtampą “. Tokiu būdu jis taip pat gali būti naudojamas kaip elektroninis jungiklis.
Mes galime papildomai pridėti relę, kad pritvirtintumėte bet kokius kintamosios srovės prietaisus, kad jie automatiškai išjungtų žemą ar aukštą įtampą. Mes tiesiog turime pridėti kodo eilutę, kad išjungtume prietaisą, po LCD įspėjimo pranešimu, kuriame rodomas kodas. Norėdami naudoti relę su kintamosios srovės prietaisais, patikrinkite čia.
Grandinės paaiškinimas:
Be Aukštos ir žemos įtampos grandinės apsauga, mes naudojome LM358 op-amp, kuris turi du išėjimus, prijungtus prie 2 ir 3 skaičių smeigtukai iš PIC mikrovaldikliu. Įtampos daliklis naudojamas įtampai padalyti ir prijungia jo išėjimą prie 4-ojo PIC mikrovaldiklio kaiščio. Skystųjų kristalų ekranas prijungtas prie PIC PORTB 4 bitų režimu. RS ir EN yra tiesiogiai prijungti prie B0 ir B1, o LCD duomenų kaiščiai D4, D5, D6 ir D7 yra prijungti atitinkamai prie B2, B3, B4 ir B5. Šiame projekte mes panaudojome du įtampos reguliatorius: 7805 mikrovaldiklių tiekimui ir 7812 LM358 grandinei. Kintamosios srovės įtampai mažinti taip pat naudojamas 12v-0-12v transformatorius. Likę komponentai parodyti toliau pateiktoje grandinės schemoje.
Programavimo paaiškinimas:
Programuoti dalį šio projekto yra lengva. Šiame kode turime tiesiog apskaičiuoti kintamosios srovės įtampą, naudodami susietą 0–5 V įtampą, gaunamą iš įtampos daliklio grandinės, tada palyginkite ją su iš anksto nustatytomis reikšmėmis. Po šio projekto galite patikrinti visą PIC kodą.
Pirma, į kodą įtraukėme antraštę ir sukonfigūravome PIC mikrovaldiklio konfigūracijos bitus. Jei dar nesinaudojote PIC kodavimu, sužinokite čia PIC mikrovaldiklį ir jo konfigūracijos bitus.
Tada mes naudojome keletą LCD valdymo funkcijų , pvz., Void lcdbegin (), kad inicijuotumėte LCD ekraną, void lcdcmd (char ch) komandai siųsti į LCD, void lcdwrite (char ch) duomenims siųsti į LCD ir void lcdprint (char *) str) siųsti eilutę į LCD. Patikrinkite visas toliau nurodyto kodo funkcijas.
Žemiau pateikta funkcija naudojama vertėms susieti:
ilgas žemėlapis (ilgas x, ilgas in_min, ilgas in_max, ilgas out_min, long out_max) {grįžti (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min; }
Pateikta int analogRead (int ch) funkcija naudojama inicijuojant ir skaitant ADC:
int analogRead (int ch) {int adcData = 0; jei (ch == 0) ADCON0 = 0x03; // adc kanalas 0 else if (ch == 1) ADCON0 = 0x0b; // pasirinkite kitą 1 ADC kanalą, jei (ch == 2) ADCON0 = 0x0b; // pasirinkite 2 ADC kanalą ADCON1 = 0b00001100; // pasirinkite analoginį i / p 0,1 ir 2 ADC kanalą ADCON2 = 0b10001010; // eqisation time holding cap time while metu (GODONE == 1); // pradėti konversiją adc vertė adcData = (ADRESL) + (ADRESH << 8); // Saugoti 10 bitų išvestį ADON = 0; // adc off grąžinti adcData; }
Nurodytos linijos naudojamos ADC mėginiams gauti, apskaičiuojant jų vidurkį ir apskaičiuojant įtampą:
while (1) {long adcValue = 0; int voltas = 0; for (int i = 0; i <100; i ++) // imant mėginius {adcValue + = analogRead (2); vėlavimas (1); } adcValue / = 100; #if metodas == 1 voltas = (((float) adcValue * 240.0) / 1023.0); #else volt = žemėlapis (adcValue, 530, 895, 100, 240); #endif sprintf (rezultatas, "% d", voltas);
Pagaliau duota funkcija naudojama rezultatams atlikti:
jei (voltas> 200) {lcdcmd (1); „lcdprint“ („aukšta įtampa“); lcdcmd (192); „lcdprint“ („Įspėjimas“); vėlavimas (1000); } else if (voltas <150) {lcdcmd (1); „lcdprint“ („žema įtampa“); lcdcmd (192); „lcdprint“ („Įspėjimas“); vėlavimas (1000); }
Grandinių ir PCB dizainas naudojant „EasyEDA“:
Norėdami suprojektuoti šią AUKŠTOS ir ŽEMOS įtampos detektoriaus schemą, pasirinkome internetinį EDA įrankį „EasyEDA“. Anksčiau mes daug kartų naudojome „EasyEDA“ ir manome, kad jį labai patogu naudoti, palyginti su kitais PCB gamintojais. Patikrinkite čia visus mūsų PCB projektus. „EasyEDA“ yra ne tik vieno langelio scheminis fiksavimas, grandinės modeliavimas ir PCB projektavimas, bet ir pigių PCB prototipų ir komponentų tiekimo paslauga. Jie neseniai pradėjo komponentų tiekimo paslaugą, kur turi daug elektroninių komponentų atsargų, o vartotojai gali užsisakyti reikalingus komponentus kartu su PCB užsakymu.
Kurdami savo grandines ir PCB, jūs taip pat galite paviešinti savo grandinių ir PCB dizainus, kad kiti vartotojai galėtų juos nukopijuoti ar redaguoti ir iš jų galėtų pasinaudoti. Mes taip pat paskelbėme visus mūsų grandinių ir PCB išdėstymus šiai aukštos ir žemos įtampos Apsaugos grandinė, patikrinkite šią nuorodą:
easyeda.com/circuitdigest/HIGH_LOW_Voltage_Detector-4dc240b0fde140719c2401096e2410e6
Žemiau pateikiama „EasyEDA“ PCB išdėstymo viršutinio sluoksnio momentinė nuotrauka. Galite peržiūrėti bet kurį PCB sluoksnį (viršutinį, apatinį, viršutinį silkinį, dugno pieną ir kt.), Pasirinkdami sluoksnį iš lango „Sluoksniai“.
Taip pat galite patikrinti PCB nuotraukos vaizdą naudodami „EasyEDA“:
PCB skaičiavimas ir užsakymas internetu:
Baigę kurti PCB, galite spustelėti aukščiau esančią Gamybos išvesties piktogramą. Tada pateksite į puslapį PCB, norėdami atsisiųsti savo „Gerber“ failus iš savo PCB ir išsiųsti juos bet kuriam gamintojui, taip pat daug lengviau (ir pigiau) užsisakyti tiesiogiai „EasyEDA“. Čia galite pasirinkti norimų užsisakyti PCB skaičių, kiek jums reikia vario sluoksnių, PCB storį, vario svorį ir net PCB spalvą. Pasirinkę visas parinktis, spustelėkite „Išsaugoti krepšelyje“ ir atlikite užsakymą, tada po kelių dienų gausite savo PCB. Vartotojas taip pat gali kreiptis į savo vietinį PCB pardavėją gamindamas PCB naudodamas „Gerber“ failą.
„EasyEDA“ pristatymas yra labai greitas ir po kelių dienų užsisakius PCB, aš gavau PCB pavyzdžius:
Žemiau pateikiamos nuotraukos po litavimo komponentų PCB:
Taip mes galime lengvai sukurti žemos aukštos įtampos apsaugos grandinę savo namams. Be to, jums tiesiog reikia pridėti relę, kad prie jos prijungtumėte bet kokius kintamosios srovės prietaisus, kad apsaugotumėte ją nuo įtampos svyravimų. Tiesiog prijunkite relę prie bet kurios bendros paskirties PIC MCU kaiščio ir parašykite kodą, kad tas kaištis būtų aukštas ir žemas kartu su LCD įspėjimo pranešimo kodu.