Sa proyektong ito makikipag-ugnay kami sa isang Relay sa PIC Microcontroller PIC16F877A. Ang relay ay isang aparato na mekanikal upang makontrol ang mataas na boltahe, mataas na kasalukuyang mga kagamitan na ' ON ' o ' OFF ' mula sa mas mababang mga antas ng boltahe. Nagbibigay ang relay ng paghihiwalay sa pagitan ng dalawang antas ng boltahe at karaniwang ginagamit ito upang makontrol ang mga kasangkapan sa AC. Mula sa mekanikal hanggang sa Solid state relay, mayroong iba't ibang uri ng relay na magagamit sa electronics. Sa proyektong ito gagamitin namin ang mechanical relay.
Sa proyektong ito gagawin namin ang mga sumusunod na bagay-
- Mag-iinterface kami ng isang switch para sa pag-input mula sa gumagamit.
- Kontrolin ang isang bombang 220V AC na may 5V relay.
- Upang makontrol ang relay gagamitin namin ang BC547 NPN transistor at ang transistor ay makokontrol mula sa PIC16F877A. Aabisuhan ng isang humantong ang relay na ON o OFF na kundisyon.
Kung bago ka sa PIC Microcontroller pagkatapos ay magsimula sa Pagsisimula sa PIC Microcontroller.
Kinakailangan ng Component:
- PIC16F877A
- 20Mhz Crystal
- 2 pcs 33pF ceramic
- 3 pcs 4.7k resistors
- 1k risistor
- 1 LED
- BC547 Transistor
- 1N4007 Diode
- 5V cubic relay
- Bombilya ng AC
- Breadboard
- Mga wire para sa pagkonekta ng mga bahagi.
- 5V Adapter o anumang 5V pinagmulan ng kuryente na may hindi bababa sa 200mA kasalukuyang mga kakayahan.
Relay at ang Paggawa nito:
Gumagana ang relay katulad ng tipikal na switch. Ang mga mekanikal na relay ay gumagamit ng pansamantalang magnet na gawa sa electromagnetic coil. Kapag nagbibigay kami ng sapat na kasalukuyang sa kabila ng coil na ito, naging lakas ito at hinihila ang isang braso. Dahil dito ang circuit na konektado sa kabuuan ng relay ay maaaring sarado o bukas. Ang Input at Output ay walang anumang mga koneksyon sa kuryente at sa gayon ay ihiwalay nito ang input at output. Matuto nang higit pa tungkol sa relay at mga konstruksyon dito.
Ang mga relay ay matatagpuan sa iba't ibang mga saklaw ng boltahe tulad ng 5V, 6V, 12V, 18V atbp. Sa proyektong ito gagamitin namin ang 5V relay dahil ang aming boltahe sa pagtatrabaho ay 5 Volts dito. Ang 5V cubic relay na ito ay may kakayahang lumipat ng 7A load sa 240VAC o 10A load sa 110VAC. Gayunpaman sa halip na malaking karga, gagamit kami ng isang bombilya na 220VAC at ililipat ito gamit ang relay.
Ito ang 5V Relay na ginagamit namin sa proyektong ito. Ang kasalukuyang rating ay malinaw na tinukoy para sa dalawang antas ng boltahe, 10A sa 120VAC at 7A sa 240VAC. Kailangan naming ikonekta ang pagkarga sa kabuuan ng relay na mas mababa sa tinukoy na rating.
Ang relay na ito ay may 5 mga pin. Kung nakikita natin ang pinout maaari nating makita-
Ang L1 at L2 ay ang panloob na electromagnetic coil's pin. Kailangan naming kontrolin ang dalawang mga pin para sa pag- on ng relay na ' ON ' o ' OFF '. Susunod na tatlong mga pin ay ang POLE, NO at NC. Ang poste ay konektado sa panloob na metal plate na binabago ang koneksyon nito kapag ang relay ay nakabukas. Sa normal na kondisyon, ang POLE ay pinaikling sa NC. Ang NC ay nangangahulugang normal na konektado. Kapag ang relay ay nakabukas, binago ng poste ang posisyon nito at naging konektado sa HINDI. HINDI nangangahulugang Normally Open.
Sa aming circuit, ginawa namin ang koneksyon ng relay sa transistor at diode. Ang relay sa transistor at diode ay magagamit sa merkado bilang Relay Module, kaya kapag gumamit ka ng Relay Module hindi mo na kailangang ikonekta ang driver circuit nito (Transistor at diode).
Ginamit ang relay sa lahat ng mga Proyekto sa Home Automation upang makontrol ang mga AC Home Appliances.
Diagram ng Circuit:
Ang kumpletong circuit para sa pagkonekta ng Relay sa PIC Microcontroller ay ibinibigay sa ibaba:
Sa itaas na eskematiko pic16F877A ay ginagamit, kung saan sa port B ang LED at Transistor ay konektado, na karagdagang kinokontrol gamit ang TAC switch sa RBO. Ang R1 ay nagbibigay ng kasalukuyang bias sa transistor. Ang R2 ay isang pull-down risistor, na ginagamit sa paglipat ng pandamdam. Magbibigay ito ng lohika 0 kapag ang switch ay hindi pinindot. Ang 1N4007 ay isang clamp diode, ginamit para sa coil ng electromagnetic ng relay. Kapag ang relay ay naka-off, may mga pagkakataon para sa mataas na boltahe spikeat pipigilan ito ng diode. Kinakailangan ang transistor para sa pagmamaneho ng relay dahil nangangailangan ito ng higit sa 50mA ng kasalukuyang, na hindi maibigay ng microcontroller. Maaari din naming gamitin ang ULN2003 sa halip na ang transistor, ito ay isang mas matalinong pagpipilian kung kinakailangan ng higit sa dalawa o tatlong mga relay para sa aplikasyon, suriin ang circuit ng module ng Relay. Ang LED sa kabila ng port RB2 ay aabisuhan ang " relay is on ".
Ganito ang magiging hitsura ng huling circuit-
Maaari mong malaman ang pagkontrol sa Relay sa Arduino dito, at kung talagang interesado ka sa relay pagkatapos suriin ang lahat ng Relay Circuits dito.
Paliwanag sa Code:
Sa simula ng main.c file, idinagdag namin ang mga linya ng pagsasaayos para sa pic16F877A at tinukoy din ang mga pangalan ng pin sa kabuuan ng PORTB.
Tulad ng lagi nang una, kailangan naming itakda ang mga config bit sa pic microcontroller, tukuyin ang ilang mga macros, kabilang ang mga aklatan at dalas ng kristal. Maaari mong suriin ang code para sa lahat ng mga nasa kumpletong code na ibinigay sa dulo. Ginawa namin ang RB0 bilang input. Sa ganitong pin ng switch ay konektado.
# isama
Pagkatapos nito, tinawag namin ang function ng system_init () kung saan pinasimuno namin ang direksyon ng pin, at na-configure din ang default na estado ng mga pin.
Sa function ng system_init () makikita natin
void system_init (void) { TRISBbits.TRISB0 = 1; // Setting Sw as input TRISBbits.TRISB1 = 0; // setting LED as output TRISBbits.TRISB2 = 0; // setting relay pin as output LED = 0; RELAY = 0; }
Sa pangunahing pag- andar ay patuloy naming suriin ang switch ng paglipat, kung nakita namin ang switch ng paglipat sa pamamagitan ng pagdama ng lohika na mataas sa RB0; naghihintay kami para sa ilang oras at makita kung ang switch ay pinindot pa rin o hindi, kung ang switch ay pinindot pa rin pagkatapos ay babaligtarin namin ang estado ng RELAY at LED pin.
void main (void) { system_init (); // Naghahanda ang system habang (1) { kung (SW == 1) {// pinindot ang __delay_ms (50); // debounce delay kung (SW == 1) {// switch ay pinindot pa rin ang LED =! LED; // pagbaliktad sa katayuan ng pin. RELAY =! RELAY; } } } bumalik; }
Kumpletuhin ang code at Demo Video para sa Relay interfacing na ito ay ibinibigay sa ibaba.