Šiame projekte mes sujungsime relę su PIC mikrovaldikliu PIC16F877A. Relė yra mechaninis įtaisas, skirtas valdyti aukštos įtampos, didelės srovės prietaisus „ įjungus “ arba „ išjungus “ nuo žemesnės įtampos lygių. Relė užtikrina izoliaciją tarp dviejų įtampos lygių ir paprastai naudojama kintamosios srovės prietaisams valdyti. Nuo mechaninių iki kietojo kūno relių elektronikoje yra įvairių tipų relių. Šiame projekte naudosime mechaninę relę.
Šiame projekte atliksime šiuos dalykus:
- Mes sujungsime vartotojo įvesties jungiklį.
- Valdykite 220 V kintamą lemputę su 5 V rele.
- Relės valdymui naudosime BC547 NPN tranzistorių, o tranzistorius bus valdomas iš PIC16F877A. Šviesos diodas praneš relės įjungimo arba išjungimo būsenai.
Jei dar nesinaudojote „PIC“ mikrovaldikliu, pradėkite nuo darbo pradžios su „PIC“ mikrovaldikliu.
Būtinas komponentas:
- PIC16F877A
- 20Mhz kristalas
- 2 vnt. 33pF keramika
- 3 vnt 4.7k rezistoriai
- 1k rezistorius
- 1 šviesos diodas
- BC547 tranzistorius
- 1N4007 Diodas
- 5V kubinė relė
- AC lemputė
- Bandomoji Lenta
- Laidai detalėms sujungti.
- 5V adapteris arba bet kuris 5V maitinimo šaltinis, turintis bent 200mA srovės galimybes.
Estafetė ir jos veikimas:
Relė veikia taip pat, kaip ir įprastas jungiklis. Mechaninėse relėse naudojamas laikinas magnetas, pagamintas iš elektromagnetinės ritės. Kai mes tiekiame pakankamai srovės per šią ritę, ji tapo energinga ir traukia ranką. Dėl to grandinė, sujungta per relę, gali būti uždaryta arba atidaryta. Įvestis ir išvestis neturi jokių elektros jungčių, todėl izoliuoja įvestį ir išvestį. Sužinokite daugiau apie relę ir jos konstrukcijas čia.
Relės gali būti įvairiuose įtampos diapazonuose, pvz., 5V, 6V, 12V, 18V ir kt. Šiame projekte mes naudosime 5V relę, nes mūsų darbinė įtampa čia yra 5 voltai. Ši 5 V kubinė relė gali perjungti 7A apkrovą esant 240VAC arba 10A apkrovą esant 110VAC. Tačiau vietoj šios didžiulės apkrovos mes naudosime 220 VAC lemputę ir perjungsime ją naudodami relę.
Tai yra 5 V relė, kurią naudojame šiame projekte. Dabartinis reitingas yra aiškiai nurodyta dviejų įtampos lygius, 10A esant 120Vac ir 7A ne 240VAC. Mes turime prijungti apkrovą visoje relėje mažiau nei nurodyta.
Ši relė turi 5 kaiščius. Jei pamatysime pinoutą, kurį galime pamatyti-
L1 ir L2 yra vidaus ritė PIN. Mes turime kontroliuoti šių dviejų kaiščių tekinimo relės ' ON "arba" OFF ". Trys kiti kaiščiai yra POLE, NO ir NC. Stulpas sujungtas su vidine metaline plokšte, kuri keičia savo jungtį, įsijungus relei. Normaliomis sąlygomis POLE yra trumpasis su NC. NC reiškia normaliai prijungtą. Įsijungus relei, polius pakeičia savo padėtį ir sujungiamas su NO. NO reiškia „ Normally Open“.
Savo grandinėje mes padarėme relės jungtį su tranzistoriumi ir diodu. Relė su tranzistoriumi ir diodu rinkoje yra kaip relės modulis, taigi, kai naudojate relės modulį, nereikia prijungti jo tvarkyklės grandinės (tranzistoriaus ir diodo).
Relė naudojama visuose namų automatikos projektuose valdyti kintamosios srovės buitinę techniką.
Grandinės schema:
Visa grandinė, skirta prijungti relę su PIC mikrovaldikliu, pateikiama žemiau:
Pirmiau schematiškai pic16F877A naudojamas, kur ant uosto B diodas ir tranzistorius yra prijungtas, kuri yra toliau kontroliuojama naudojant TAC jungiklį į RBO. R1 teikti paklaida srovę į tranzistorius. R2 yra traukiamasis rezistorius, naudojamas per lytėjimo jungiklį. Kai jungiklis nebus paspaustas, jis suteiks logiką 0. 1N4007 yra gnybtas diodas, naudojamas relei elektromagnetiniam ritė. Kai relė bus išjungta, yra tikimybė, kad atsiras aukštos įtampos šuoliaiir diodas jį nuslopins. Transistorius reikalingas relės varymui, nes jai reikia daugiau nei 50mA srovės, kurios mikrovaldiklis negali užtikrinti. Vietoj tranzistoriaus galime naudoti ir ULN2003, protingesnis pasirinkimas, jei programai reikalingos daugiau nei dvi ar trys relės, patikrinkite relės modulio grandinę. LED visoje uosto RB2 praneša " relė yra ".
Paskutinė grandinė atrodys taip-
„Relay“ su „Arduino“ valdymą galite išmokti čia, o jei jus tikrai domina relė, patikrinkite visas relės grandines čia.
Kodo paaiškinimas:
Pasibaigus pradžioje main.c failą, mes pridėti konfigūravimo linijas už pic16F877A ir apibrėžta kėglių pavadinimus visoje PORTB.
Kaip visada pirmiausia, mes turime nustatyti „pic“ mikrovaldiklio konfigūracijos bitus, apibrėžti kai kurias makrokomandas, įskaitant bibliotekas ir kristalų dažnį. Galite patikrinti kodą, nurodantį visą kodą, pateiktą pabaigoje. Mes padarėme RB0 kaip įvestį. Šiame kaište jungiklis yra prijungtas.
# įtraukti
Po to mes iškvietėme system_init () funkciją, kurioje inicijavome kaiščio kryptį ir sukonfigūravome numatytąją kaiščių būseną.
Funkcijoje system_init () pamatysime
void system_init (negaliojantis) { TRISBbits.TRISB0 = 1; // Sw nustatymas kaip įvesties TRISBbits.TRISB1 = 0; // šviesos diodo nustatymas kaip išėjimo TRISBbits.TRISB2 = 0; // relės kaiščio nustatymas kaip išėjimo LED = 0; RELĖ = 0; }
Vykdydami pagrindinę funkciją, mes nuolat tikriname jungiklio paspaudimą, jei aptinkame jungiklio paspaudimą, jausdami aukštą logiką visoje RB0; mes kurį laiką laukiame ir pažiūrime, ar jungiklis vis dar paspaustas, ar ne, jei jungiklis vis dar paspaustas, mes apversime RELĖ ir LED kaiščio būseną.
void main (void) { system_init (); // Sistema ruošiasi, kol (1) { if (SW == 1) {// jungiklis nuspaustas __delay_ms (50); // atšaukimo vėlavimas, jei (SW == 1) {// jungiklis vis dar paspaudžiamas LED =! LED; // smeigtuko būsenos apvertimas. RELĖ =! RELĖ; } } } grąžinti; }
Pilnas šios relės sąsajos kodas ir demonstracinis vaizdo įrašas pateikiami žemiau.