Šajā projektā mēs mijiedarbosim releju ar PIC mikrokontrolleru PIC16F877A. Relejs ir mehāniska ierīce augsta sprieguma, lielas strāvas ierīču kontrolēšanai no ieslēgta vai izslēgta no zemāka sprieguma līmeņa. Relejs nodrošina izolāciju starp diviem sprieguma līmeņiem, un to parasti izmanto maiņstrāvas ierīču kontrolei. No mehāniskajiem līdz cietvielu relejiem elektronikā ir pieejami dažādi releji. Šajā projektā mēs izmantosim mehānisko releju.
Šajā projektā mēs darīsim šādas lietas-
- Mēs mijiedarbosim slēdzi lietotāja ievadīšanai.
- Vadiet 220V maiņstrāvas spuldzi ar 5V releju.
- Releja vadībai mēs izmantosim BC547 NPN tranzistoru, un tranzistors tiks kontrolēts no PIC16F877A. LED parādīs releja ieslēgšanas vai izslēgšanas stāvokli.
Ja PIC mikrokontrolieris jums ir jauns, sāciet ar Darba sākšana ar PIC mikrokontrolleru.
Nepieciešamais komponents:
- PIC16F877A
- 20Mhz kristāls
- 2 gab 33pF keramika
- 3 gab 4.7k rezistori
- 1k rezistors
- 1 LED
- BC547 tranzistors
- 1N4007 Diode
- 5V kubiskais relejs
- Maiņstrāvas spuldze
- Maizes dēlis
- Vadi detaļu savienošanai.
- 5V adapteris vai jebkurš 5V barošanas avots ar vismaz 200mA strāvas iespējām.
Relejs un tā darbība:
Relejs darbojas tāpat kā parastais slēdzis. Mehāniskajos relejos tiek izmantots pagaidu magnēts, kas izgatavots no elektromagnētiskās spoles. Kad mēs nodrošinām pietiekami daudz strāvas pāri šai spolei, tā sāka darboties un velk roku. Tāpēc ķēdi, kas savienota pāri relejam, var aizvērt vai atvērt. Ieejai un izejai nav elektrisko savienojumu, un tādējādi tā izolē ieeju un izeju. Uzziniet vairāk par releju un tā konstrukcijām šeit.
Relejus var atrast dažādos sprieguma diapazonos, piemēram, 5V, 6V, 12V, 18V utt. Šajā projektā mēs izmantosim 5V releju, jo mūsu darba spriegums šeit ir 5 volti. Šis 5V kubiskais relejs spēj pārslēgt 7A slodzi pie 240VAC vai 10A slodzi pie 110VAC. Tomēr šīs milzīgās slodzes vietā mēs izmantosim 220 VAC spuldzi un pārslēgsim to, izmantojot releju.
Šis ir 5V relejs, kuru izmantojam šajā projektā. Pašreizējais vērtējums ir skaidri norādīts diviem sprieguma līmeņiem: 10A pie 120VAC un 7A pie 240VAC. Mums ir jāsavieno slodze visā relejā mazāka par norādīto.
Šim relejam ir 5 tapas. Ja mēs redzam pinout, ko mēs varam redzēt,
L1 un L2 ir iekšējā elektromagnētiskā spoles pin. Mums ir jākontrolē šie divi tapas, lai releju ieslēgtu “ ON ” vai “ OFF ”. Nākamās trīs tapas ir POLE, NO un NC. Pols ir savienots ar iekšējo metāla plāksni, kas maina tā savienojumu, kad ieslēdzas relejs. Normālā stāvoklī POLE ir īssavienojums ar NC. NC nozīmē normāli savienotu. Kad relejs ieslēdzas, stabs maina savu pozīciju un kļūst savienots ar NO. NO nozīmē Normally Open.
Mūsu ķēdē mēs esam izveidojuši releja savienojumu ar tranzistoru un diode. Relejs ar tranzistoru un diodi tirgū ir pieejams kā releja modulis, tādēļ, lietojot releja moduli, nav jāpievieno tā vadītāja ķēde (tranzistors un diode).
Relejs tiek izmantots visos mājas automatizācijas projektos, lai kontrolētu maiņstrāvas sadzīves tehniku.
Ķēdes shēma:
Pilnīga shēma releja savienošanai ar PIC mikrokontrolleru ir sniegta zemāk:
Pēc iepriekš shematisks PIC16F877A tiek izmantots, kur uz ostas B LED un tranzistors ir saistīts, kas vēl kontrolēta, izmantojot KPN slēdzi pie RBO. R1 nodrošināt slīpo strāvu uz tranzistors. R2 ir nolaižams rezistors, ko izmanto pāri taustes slēdzim. Ja slēdzis netiek nospiests, tas nodrošinās loģiku 0. 1N4007 ir skava diode, ko izmanto relejs elektromagnētisko spoli. Kad relejs tiks izslēgts, pastāv iespējas augstsprieguma tapāmun diode to nomāc. Transistors ir nepieciešams releja darbināšanai, jo tam ir nepieciešama vairāk nekā 50 mA strāva, ko mikrokontrolleris nespēj nodrošināt. Tranzistora vietā mēs varam izmantot arī ULN2003, tā ir prātīgāka izvēle, ja lietojumprogrammai ir nepieciešami vairāk nekā divi vai trīs releji, pārbaudiet Releja moduļa shēmu. LED pāri ostas RB2 paziņos " relejs ir ieslēgts ".
Pēdējā ķēde izskatīsies šādi-
Šeit varat uzzināt, kā kontrolēt releju ar Arduino, un, ja jūs patiešām interesē relejs, pārbaudiet visas releju shēmas šeit.
Koda skaidrojums:
Sākumā no main.c failu, mēs pievienojām konfigurācijas līnijas uz PIC16F877A kā arī definēti pin vārdus visā PORTB.
Kā vienmēr vispirms, mums ir jāiestata konfigurācijas biti pic mikrokontrollerī, jādefinē daži makro, tostarp bibliotēkas un kristālu frekvence. Jūs varat pārbaudīt kodu visiem tiem kodiem, kas norādīti beigās. Mēs izveidojām RB0 kā ievadi. Šajā tapā slēdzis ir pievienots.
# iekļaut
Pēc tam mēs izsaucām funkciju system_init (), kur mēs inicializējām tapas virzienu, kā arī konfigurējām tapu noklusējuma stāvokli.
Funkcijā system_init () mēs to redzēsim
void system_init (void) { TRISBbits.TRISB0 = 1; // Sw iestatīšana kā ievades TRISBbits.TRISB1 = 0; // LED iestatīšana kā izeja TRISBbits.TRISB2 = 0; // releja tapas iestatīšana kā izejas LED = 0; RELE = 0; }
Ar galveno funkciju mēs pastāvīgi pārbaudīt slēdža presi, ja mēs atklātu slēdža presi, izjūtot loģika augsts visā RB0; mēs kādu laiku gaidām un redzam, vai slēdzis joprojām ir nospiests vai nē, ja slēdzis joprojām tiek nospiests, mēs apgriezīsim RELAY un LED tapas stāvokli.
void main (void) { system_init (); // Sistēma gatavojas, kamēr (1) { if (SW == 1) {// slēdzis ir nospiests __delay_ms (50); // atkāpšanās aizkave, ja (SW == 1) {// slēdzis joprojām ir nospiests LED =! LED; // piespraudes statusa apgriešana. RELE =! RELE; } } } atgriešanās; }
Pilns šīs releja saskarnes kods un demonstrācijas video ir norādīts zemāk.