Dalam projek ini kita akan menghubungkan Relay dengan PIC Microcontroller PIC16F877A. Relay adalah alat mekanikal untuk mengawal voltan tinggi, peralatan arus tinggi ' ON ' atau ' OFF ' dari tahap voltan yang lebih rendah. Relay memberikan pengasingan antara dua tahap voltan dan biasanya digunakan untuk mengawal peralatan AC. Dari relay mekanikal ke keadaan pepejal, terdapat pelbagai jenis geganti yang tersedia dalam elektronik. Dalam projek ini kita akan menggunakan relay mekanikal.
Dalam projek ini kita akan melakukan perkara berikut-
- Kami akan Interface suis untuk input dari pengguna.
- Kawal mentol AC 220V dengan geganti 5V.
- Untuk mengawal geganti kita akan menggunakan transistor BC547 NPN dan transistor akan dikawal dari PIC16F877A. LED akan memberitahu keadaan relay ON atau OFF.
Sekiranya anda baru menggunakan PIC Microcontroller, mulailah dengan Bermula dengan PIC Microcontroller.
Komponen Diperlukan:
- PIC16F877A
- Kristal 20Mhz
- 2 pcs seramik 33pF
- 3 pcs perintang 4.7k
- Perintang 1k
- 1 LED
- Transistor BC547
- 1N4007 Diod
- Geganti kubik 5V
- Mentol AC
- Papan roti
- Wayar untuk menghubungkan bahagian.
- Penyesuai 5V atau mana-mana sumber kuasa 5V dengan keupayaan semasa sekurang-kurangnya 200mA.
Relay dan Kerjanya:
Relay berfungsi sama seperti suis biasa. Relay mekanikal menggunakan magnet sementara yang terbuat dari gegelung elektromagnetik. Apabila kami memberikan arus yang cukup di gegelung ini, ia menjadi bertenaga dan menarik lengan. Oleh kerana itu litar yang disambungkan ke relay boleh ditutup atau dibuka. Input dan Output tidak mempunyai sambungan elektrik dan dengan itu mengasingkan input dan output. Ketahui lebih lanjut mengenai geganti dan pembinaannya di sini.
Relay boleh didapati dalam julat voltan yang berbeza seperti 5V, 6V, 12V, 18V dan lain-lain. Dalam projek ini, kami akan menggunakan relay 5V kerana voltan kerja kami adalah 5 Volt di sini. Ini relay padu 5V mampu untuk suis 7A beban pada 240VAC atau 10A beban pada 110VAC. Walau bagaimanapun, beban yang besar, kami akan menggunakan mentol 220VAC dan menukarnya menggunakan geganti.
Ini adalah Relay 5V yang kami gunakan dalam projek ini. Peringkat semasa ditentukan dengan jelas untuk dua tahap voltan, 10A pada 120VAC dan 7A pada 240VAC. Kita perlu menyambungkan beban merentas geganti kurang daripada penilaian yang ditentukan.
Relay ini mempunyai 5 pin. Sekiranya kita melihat pinout kita dapat melihat-
The L1 dan L2 adalah pin gegelung elektromagnet dalaman. Kita perlu mengawal kedua pin ini untuk menghidupkan geganti ' ON ' atau ' OFF '. Tiga pin seterusnya adalah POLE, NO dan NC. Tiang dihubungkan dengan plat logam dalaman yang mengubah sambungannya apabila relay dihidupkan. Dalam keadaan normal, POLE dipendekkan dengan NC. NC bermaksud sambungan biasa. Apabila relay dihidupkan, tiang berubah posisinya dan bersambung dengan NO. TIADA bermaksud Normal Open.
Di litar kami, kami telah membuat sambungan relay dengan transistor dan diod. Relay dengan transistor dan diod tersedia di pasaran sebagai Relay Module, jadi apabila anda menggunakan Relay Module, anda tidak perlu menyambungkan litar pemacunya (Transistor dan diod).
Relay digunakan dalam semua Projek Automasi Rumah untuk mengawal Peralatan Rumah Tangga AC.
Rajah Litar:
Litar lengkap untuk menghubungkan Relay dengan PIC Microcontroller diberikan di bawah:
Di atas skema PIC16F877A digunakan, di mana di B pelabuhan yang LED dan Transistor disambungkan, yang seterusnya dikawal menggunakan suis TAC di RBO. The R1 menyediakan berat sebelah semasa untuk transistor. R2 adalah resistor pull-down, digunakan melintasi suis taktil. Ia akan memberikan logik 0 apabila suis tidak ditekan. The 1N4007 ialah diod pengapit, yang digunakan untuk gegelung elektromagnet geganti ini. Apabila geganti akan dimatikan, ada kemungkinan lonjakan voltan tinggidan diod akan menekannya. Transistor diperlukan untuk menggerakkan relay kerana memerlukan lebih daripada 50mA arus, yang tidak dapat diberikan oleh mikrokontroler. Kita juga boleh menggunakan ULN2003 sebagai ganti transistor, itu adalah pilihan yang lebih bijak jika diperlukan lebih dari dua atau tiga geganti untuk aplikasi, periksa litar modul Relay. The LED seluruh pelabuhan RB2 akan memberitahu " relay dihidupkan ".
Litar akhir akan kelihatan seperti ini-
Anda boleh belajar mengendalikan Relay dengan Arduino di sini, dan jika anda benar-benar berminat dengan relay, maka periksa semua Relay Circuits di sini.
Penjelasan Kod:
Pada awal fail main.c, kami menambahkan baris konfigurasi untuk pic16F877A dan juga menentukan nama pin di PORTB.
Seperti biasa, kita perlu menetapkan bit konfigurasi dalam mikrokontroler pic, menentukan beberapa makro, termasuk perpustakaan dan frekuensi kristal. Anda boleh menyemak kod untuk semua kod lengkap yang diberikan di akhir. Kami menjadikan RB0 sebagai input. Dalam pin ini suis disambungkan.
#sertakan
Selepas itu, kami memanggil fungsi system_init () di mana kami menginisialisasi arah pin, dan juga mengkonfigurasi keadaan default pin.
Dalam fungsi system_init () kita akan melihat
void system_init (void) { TRISBbits.TRISB0 = 1; // Menetapkan Sw sebagai input TRISBbits.TRISB1 = 0; // menetapkan LED sebagai output TRISBbits.TRISB2 = 0; // menetapkan pin relay sebagai output LED = 0; RELAY = 0; }
Dalam fungsi utama kita selalu memeriksa tekan suis, jika kita mengesan tekan suis dengan merasakan logik tinggi melintasi RB0; kita tunggu sebentar dan lihat adakah suis masih ditekan atau tidak, jika suis masih ditekan maka kita akan membalikkan keadaan pin RELAY dan LED.
kekosongan utama (kekosongan) { system_init (); // Sistem bersiap sedia semasa (1) { if (SW == 1) {// suis ditekan __delay_ms (50); // kelewatan debounce jika (SW == 1) {// suis masih ditekan LED =! LED; // membalikkan status pin. RELAY =! RELAY; } } } kembali; }
Kod lengkap dan Video Demo untuk antara muka Relay ini diberikan di bawah.