V tem projektu bomo povezali rele z mikrokrmilnikom PIC16F877A. Rele je mehanska naprava za krmiljenje visokonapetostnih, visokonapetostnih aparatov ' ON ' ali ' OFF ' od nižjih napetostnih nivojev. Rele zagotavlja izolacijo med dvema napetostnima nivojema in se običajno uporablja za krmiljenje izmeničnih naprav. Od mehanskih do polprevodniških relejev so v elektroniki na voljo različni tipi relejev. V tem projektu bomo uporabili mehanski rele.
V tem projektu bomo naredili naslednje stvari -
- Povezali bomo stikalo za vnos uporabnika.
- Upravljajte 220V AC žarnico s 5V relejem.
- Za nadzor releja bomo uporabili tranzistor BC547 NPN, tranzistor pa bo krmiljen s PIC16F877A. LED bo obvestil stanje vklopa ali izklopa releja.
Če ste nov v PIC Microcontrollerju, začnite z Uvodom v PIC Microcontroller.
Potrebna komponenta:
- PIC16F877A
- Kristal 20 MHz
- 2 kosa 33pF keramike
- 3 kos 4.7k uporov
- 1k upor
- 1 LED
- Tranzistor BC547
- 1N4007 Dioda
- 5V kubični rele
- AC žarnica
- Breadboard
- Žice za povezovanje delov.
- 5V adapter ali kateri koli 5V vir energije z vsaj 200mA trenutnih zmogljivosti.
Rele in njegovo delovanje:
Rele deluje enako kot tipično stikalo. Mehanski releji uporabljajo začasni magnet iz elektromagnetne tuljave. Ko dobimo dovolj toka čez to tuljavo, se ta okrepi in potegne roko. Zaradi tega je vezje, povezano prek releja, lahko zaprto ali odprto. Vhod in izhod nimata nobenih električnih povezav in tako izolirata vhod in izhod. Več o releju in njegovih konstrukcijah preberite tukaj.
Releje lahko najdemo v različnih napetostnih območjih, kot so 5V, 6V, 12V, 18V itd. V tem projektu bomo uporabili 5V rele, saj je naša delovna napetost 5 voltov. Ta 5-kubični rele lahko preklopi obremenitev 7A pri 240VAC ali 10A obremenitve pri 110VAC. Namesto te velike obremenitve bomo uporabili žarnico 220 VAC in jo preklopili z relejem.
To je 5V rele, ki ga uporabljamo pri tem projektu. Trenutna jakost je jasno določena za dve napetostni ravni, 10A pri 120VAC in 7A pri 240VAC. Na rele moramo priključiti obremenitev, manjšo od določene nazivne vrednosti.
Ta rele ima 5 nožic. Če vidimo pinout, lahko vidimo-
L1 in L2 sta notranja Elektromagnetna tuljava je zatič. Moramo za nadzor teh dveh zatiči za vklop rele " ON " ali " OFF ". Naslednji trije zatiči so POLE, NO in NC. Palica je povezana z notranjo kovinsko ploščo, ki ob vklopu releja spremeni svojo povezavo. V normalnem stanju je POLE zaskočen z NC. NC pomeni normalno povezan. Ko se rele vklopi, pol spremeni svoj položaj in se poveže z NO. NO pomeni Normally Open.
V našem vezju smo povezali rele s tranzistorjem in diodo. Rele s tranzistorjem in diodo je na voljo na trgu kot relejni modul, zato ko uporabljate relejni modul, vam ni treba priključiti njegovega gonilnega vezja (tranzistor in dioda).
Rele se uporablja v vseh projektih avtomatizacije doma za nadzor gospodinjskih aparatov AC.
Shema vezja:
Celotno vezje za povezavo releja z mikrokrmilnikom PIC je prikazano spodaj:
V zgornji shemi je uporabljena slika pic16F877A, kjer sta na vrata B priključena LED in tranzistor, ki je nadalje krmiljen s pomočjo stikala TAC na RBO. R1 zagotoviti pristranskosti tok v tranzistorju. R2 je spustni upor, ki se uporablja čez otipno stikalo. Zagotovil bo logiko 0, ko stikalo ni pritisnjeno. 1N4007 je objemka diode, ki se uporablja za elektromagnetno tuljavo releja je. Ko se rele izklopi, obstajajo možnosti za visokonapetostne konicein dioda ga bo zatrla. Tranzistor je potreben za pogon releja, saj zahteva več kot 50 mA toka, ki ga mikrokrmilnik ne more zagotoviti. Namesto tranzistorja lahko uporabimo tudi ULN2003, pametneje je, če je za uporabo potrebnih več kot dva ali tri releje, preverite vezje modula releja. LED preko luke RB2 bo uradno " rele vklopljen ".
Končno vezje bo videti tako -
Tu se lahko naučite krmiljenja releja z Arduinom in če vas res zanima rele, potem preverite vsa relejna vezja tukaj.
Razlaga kode:
Na začetku main.c datoteke, smo dodali še konfiguracije proge za pic16F877A in so opredeljena tudi imena pin vsej PORTB.
Kot vedno najprej moramo v mikrokrmilniku pic nastaviti konfiguracijske bite, določiti nekaj makrov, vključno s knjižnicami in kristalno frekvenco. Kodo lahko preverite za vse, ki so v celotni kodi, navedeni na koncu. Kot vhod smo izdelali RB0. V tem zatiču je stikalo priključeno.
#include
Po tem smo poklicali funkcijo system_init (), kjer smo inicializirali smer zatiča in konfigurirali tudi privzeto stanje zatičev.
V funkciji system_init () bomo videli
void system_init (void) { TRISBbits.TRISB0 = 1; // Nastavitev Sw kot vhodnega TRISBbits.TRISB1 = 0; // nastavitev LED kot izhoda TRISBbits.TRISB2 = 0; // nastavitev relejskega zatiča kot izhodne LED = 0; RELE = 0; }
V glavni funkciji neprestano preverjamo stiskalno stikalo, če zaznamo stiskalno stikalo tako, da zaznamo logiko visoko na RB0; počakamo nekaj časa in preverimo, ali je stikalo še vedno pritisnjeno ali ne, če je stikalo še vedno pritisnjeno, bomo spremenili stanje releja in LED zatiča.
void main (void) { sistem_init (); // Sistem se pripravlja, medtem ko je (1) { if (SW == 1) {// pritisnjeno stikalo __delay_ms (50); // zakasnitev prekinitve, če je (SW == 1) {// stikalo še vedno pritisnjeno LED =! LED; // pretvorba stanja zatiča. RELE =! RELE; } } } vrnitev; }
Popolna koda in predstavitveni video za to povezavo releja je navedena spodaj.