În acest proiect vom interfața un releu cu microcontrolerul PIC PIC16F877A. Releul este un dispozitiv mecanic pentru controlul aparatelor de înaltă tensiune și curent ridicat „ ON ” sau „ OFF ” de la niveluri de tensiune mai mici. Releul asigură izolarea între două niveluri de tensiune și este, în general, utilizat pentru controlul aparatelor de curent alternativ. De la relee mecanice la releuri în stare solidă, există diferite tipuri de relee disponibile în electronică. În acest proiect vom folosi relee mecanice.
În acest proiect vom face următoarele lucruri-
- Vom interfața un comutator pentru intrarea de la utilizator.
- Controlați un bec de 220V AC cu releu de 5V.
- Pentru a controla releul vom folosi tranzistorul BC547 NPN, iar tranzistorul va fi controlat de la PIC16F877A. Un led va notifica starea ON sau OFF a releului.
Dacă sunteți nou în microcontrolerul PIC, începeți cu Noțiuni introductive despre microcontrolerul PIC.
Componenta necesară:
- PIC16F877A
- Cristal de 20Mhz
- 2 buc 33pF ceramică
- 3 buc rezistențe 4.7k
- 1k rezistor
- 1 LED
- BC547 Tranzistor
- 1N4007 Diodă
- Releu cubic de 5V
- Bec de curent alternativ
- Breadboard
- Sârme pentru conectarea pieselor.
- Adaptor 5V sau orice sursă de alimentare de 5V cu capacități de curent de cel puțin 200mA.
Releul și funcționarea acestuia:
Releul funcționează la fel ca întrerupătorul tipic. Releele mecanice utilizează magnet temporar din bobină electromagnetică. Când furnizăm suficient curent peste această bobină, aceasta a devenit energizată și trage un braț. Datorită acestui fapt, circuitul conectat la releu poate fi închis sau deschis. Intrarea și ieșirea nu au conexiuni electrice și astfel izolează intrarea și ieșirea. Aflați mai multe despre ștafetă și construcțiile sale aici.
Releele pot fi găsite în diferite domenii de tensiune, cum ar fi 5V, 6V, 12V, 18V etc. În acest proiect vom folosi releu de 5V, deoarece tensiunea de lucru este de 5 volți aici. Acest releu cubic de 5V este capabil să comute sarcina de 7A la 240VAC sau 10A la 110VAC. Cu toate acestea, în locul acelei încărcături uriașe, vom folosi un bec de 220VAC și îl vom comuta folosind releul.
Acesta este releul de 5V pe care îl folosim în acest proiect. Clasificarea curentă este specificată clar pentru două niveluri de tensiune, 10A la 120VAC și 7A la 240VAC. Trebuie să conectăm sarcina peste releu mai mică decât valoarea specificată.
Acest releu are 5 pini. Dacă vedem pinout, putem vedea-
L1 și L2 este PIN bobina electromagnetic intern. Trebuie să controlăm acești doi pini pentru activarea releului „ ON ” sau „ OFF ”. Următorii trei pini sunt POLE, NO și NC. Stâlpul este conectat cu placa metalică internă care își schimbă conexiunea la pornirea releului. În stare normală, POLE este scurtcircuitat cu NC. NC înseamnă conectare normală. Când releul pornește, polul își schimbă poziția și devine conectat cu NO-ul. NO înseamnă Normal Open.
În circuitul nostru, am făcut conexiunea releului cu tranzistor și diodă. Releul cu tranzistor și diodă este disponibil pe piață ca modul de releu, deci atunci când utilizați modulul de releu nu este nevoie să conectați circuitul driverului său (tranzistor și diodă).
Releul este utilizat în toate proiectele de automatizare la domiciliu pentru a controla aparatele electrocasnice AC.
Diagrama circuitului:
Circuitul complet pentru conectarea releului cu microcontrolerul PIC este prezentat mai jos:
In cele de mai sus schematică PIC16F877A este folosit, în cazul în care pe portul B LED și tranzistor este conectat, care este controlat în continuare cu ajutorul comutatorului TAC la RBO. R1 furnizează prejudecată curent tranzistor. R2 este un rezistor pull-down, utilizat pe întrerupătorul tactil. Acesta va furniza logica 0 atunci când comutatorul nu este apăsat. 1N4007 este o diodă clemă, utilizat pentru bobina releului electromagnetic. Când releul se va opri, există șanse pentru vârfuri de înaltă tensiuneiar dioda o va suprima. Tranzistorul este necesar pentru acționarea releului, deoarece necesită mai mult de 50mA de curent, pe care microcontrolerul nu îl poate furniza. De asemenea, putem folosi ULN2003 în schimb tranzistorul, este o alegere mai înțeleaptă dacă sunt necesare mai mult de două sau trei relee pentru aplicație, verificați circuitul modulului de releu. LED - ul peste RB2 portul va notifica „ releul este pornit “.
Circuitul final va arăta așa-
Puteți învăța controlul relei cu Arduino aici și, dacă sunteți cu adevărat interesat de releu, verificați aici toate circuitele de releu.
Explicatie cod:
La începutul fișierului main.c, am adăugat liniile de configurare pentru pic16F877A și am definit și numele pinilor din PORTB.
Ca întotdeauna mai întâi, trebuie să setăm biții de configurare în microcontrolerul pic, să definim câteva macrocomenzi, inclusiv biblioteci și frecvența cristalelor. Puteți verifica codul pentru toți cei din codul complet dat la final. Am făcut RB0 ca intrare. În acest pin comutatorul este conectat.
#include
După aceea, am apelat la funcția system_init () unde am inițializat direcția pinului și, de asemenea, am configurat starea implicită a pinilor.
În funcția system_init () vom vedea
void system_init (void) { TRISBbits.TRISB0 = 1; // Setarea Sw ca intrare TRISBbits.TRISB1 = 0; // setarea LED-ului ca ieșire TRISBbits.TRISB2 = 0; // setarea pinului releului ca LED de ieșire = 0; RELAY = 0; }
În funcția principală verificăm constant apăsarea comutatorului, dacă detectăm apăsarea comutatorului prin detectarea logicii ridicate pe RB0; așteptăm ceva timp și vedem dacă comutatorul este încă apăsat sau nu, dacă comutatorul este încă apăsat, atunci vom inversa starea RELAY și a pinului LED.
void main (void) { system_init (); // Sistemul se pregătește în timp ce (1) { if (SW == 1) {// comutatorul este apăsat __delay_ms (50); // întârziere debounce dacă (SW == 1) {// comutatorul este încă apăsat LED =! LED; // inversarea stării pinului. RELAY =! RELAY; } } } returnare; }
Codul complet și Demo Video pentru această interfață de releu sunt date mai jos.