Jeffrey Cross
Jeffrey Cross

4 Cara Mengawal Relay Elektronik

Saya sentiasa terpesona dengan geganti, mereka begitu mutlak, jadi perduaan. Bagaimanapun, saya telah membina beberapa projek menggunakan relay dan fikir saya akan berkongsi apa yang saya pelajari untuk membantu memudahkan orang lain menggunakan relay dalam projek mereka. Saya bukan pakar, saya coder yang suka bermain dengan perkakasan.

Pengenalan kepada Relay

Relay pada dasarnya adalah suis, suis yang anda kendalikan (menghidupkan atau mematikan) dengan menggunakan atau mengalihkan voltan tertentu ke peranti geganti. Relay tidak diperlukan untuk kebanyakan projek berasaskan mikrokontroler seperti papan mikrokontroler anda (sama ada Arduino atau sistem komputer penuh seperti Raspberry Pi) akan dapat menggerakkan peranti luaran terus dari port I / O. Di mana anda perlu geganti ialah apabila anda ingin membuka / menutup litar luaran, atau di mana litar anda perlu mengawal voltan yang lebih tinggi daripada sistem anda boleh menyediakan.

Saya menggunakan relay di pembuka pintu garasi mikropengawal saya kerana saya memerlukan projek saya untuk meniru menolak butang fizikal (butang pintu garaj di dinding) yang memerlukan keupayaan bertukar, bukan keupayaan untuk menghantar voltan keluaran dari papan. Saya menggunakan relay dalam projek pemasa cahaya saya kerana projek itu perlu menukar dan mematikan arus elektrik rumah (110 Volt AC), yang tidak dapat dilakukan Raspberry Pi saya secara langsung.

Terdapat dua relay jenis biasa: relay mekanikal dan geganti keadaan pepejal. Relay mekanikal menggunakan gegelung elektromagnet dan suis fizikal; apabila anda menggunakan voltan, suis mengaktifkan. Relay keadaan pepejal menyampaikan hasil yang sama, tetapi tidak mempunyai komponen mekanikal; Sebaliknya, mereka menggunakan komponen elektronik untuk melakukan pekerjaan yang sama. Kemudian dalam artikel ini, kita akan mula bercakap mengenai papan geganti atau modul. Relay, secara amnya, bekerja seperti yang saya telah menerangkannya di atas. Apabila anda bekerja dengan modul relay yang dihasilkan secara komersial, ia biasanya beroperasi dalam dua mod yang berlainan bergantung pada bagaimana anda menyambung sambungan ke modul. Mod yang disokong biasanya Terbuka dan Lazimnya Ditutup.

Dalam Rajah 1, anda melihat gambaran relay dalam mod Biasanya Terbuka (NO). Dalam konfigurasi ini, apabila tidak ada voltan yang digunakan pada litar kawalan (relay pada bahagian rehat imej), litar yang dipindahkan diputuskan dan arus tidak dapat mengalir melalui sambungan. Apabila anda menggunakan voltan yang sesuai untuk litar kawalan, gegelung elektromagnet di relay mengaktifkan dan menarik suis tertutup, membolehkan arus mengalir melalui litar suis.

Rajah 1 - Operasi geganti biasa

Dalam mode Normally Closed (NC) sebaliknya adalah benar (ditunjukkan dalam Rajah 2). Apabila relay berada di rehat (tiada voltan yang digunakan pada litar kawalan), litar suis ditutup dan arus mengalir melalui litar suis. Apabila anda mengaktifkan relay dengan menggunakan voltan yang sesuai ke litar kawalan, gegelung elektromagnet di relay mengaktifkan dan menarik suis terbuka, menghentikan sebarang arus yang mengalir melalui litar beralih. Saya tidak tahu bagaimana sebenarnya ini berfungsi dalam geganti.

Rajah 2 - Operasi geganti biasanya tertutup

Relay adalah seperti suis lain kerana ada konfigurasi yang berbeza. Dua sifat konfigurasi suis pemacu: Pole dan Throw. Atribut tiang menerangkan berapa litar individu dikawal oleh suis. Suis Satu Kutub (SP) mengawal litar tunggal. Suis Pole Double (DP) mengawal dua litar berasingan; terdapat dua suis yang saling berkaitan, dengan masing-masing disambungkan ke litarnya sendiri; apabila anda bertukar suis, kedua-dua litar akan terjejas secara serentak.

Atribut lontaran suis menerangkan bilangan litar yang disediakan oleh suis. A Single Throw (ST) hanya mempunyai satu laluan litar. Dengan suis dibuang satu arah, arus mengalir melalui litar, dengannya dibuang dengan cara yang lain, litar dipecahkan dan tidak ada aliran semasa. Suis Baling Double (DT) menawarkan dua laluan litar. Dengan suis dibuang satu arah, arus mengalir melalui salah satu jalan litar, dengan itu dibuang dengan cara lain, arus mengalir melalui laluan litar yang lain. Satu suis DT juga boleh mempunyai kedudukan Off Off antara dua pilihan laluan litar.

Oleh itu, apabila anda melihat relay, anda akan melihatnya digambarkan sebagai sesuatu seperti SPST, SPDT, DPST, DPDT, dan lain-lain yang perlu masuk akal sekarang selepas membaca paragraf sebelumnya.

Apabila bekerja dengan relay, setiap model relay berbeza dalam beberapa cara; perbezaan yang paling penting dalam penilaian voltan dan semasa bagi geganti. Terdapat dua set nombor yang perlu anda bayar perhatian yang sangat dekat, jika tidak, anda akan merosakkan litar relay anda dan mungkin membiarkan asap daripada relay atau komponen lain. Yang pertama adalah penilaian voltan dan semasa untuk litar kawalan, dan biasanya diberikan sebagai julat. Nombor ini memberitahu anda apa voltan dan arus yang berkaitan diperlukan untuk mengaktifkan geganti. Set kedua nombor penting memberitahu anda berapa banyak voltan dan arus bahagian pensuisan yang dapat ditangani.

Biarkan saya menunjukkan kepada anda satu contoh; Rajah 3 menunjukkan sifat produk untuk penyampai rawak dari laman web DigiKey. Nilai gegelung yang diserlahkan dalam angka menggambarkan berapa banyak arus yang digunakan dan voltan maksimum yang boleh anda gunakan dengan geganti. Dalam kes ini, ia adalah geganti 3V, jadi anda perlu memastikan bahawa projek anda dapat menyampaikan 3 Volt untuk mencetuskan relay, jika tidak, ia tidak akan berfungsi.

Set angka kedua yang diserlahkan dalam angka itu memberitahu anda lebih lanjut mengenai bagaimana untuk bekerja dengan geganti. The Switching Voltage memberitahu anda berapa volt anda boleh beralih dengan relay ini. Dalam kes ini, anda boleh menyambungkan litar suis kepada litar yang menghantar sehingga 250 Volt Alternating Current (AC) atau 220 Volts Direct Current (DC). Nilai dua terakhir menyatakan bahawa relay akan menghidupkan apabila 2.24 Volt DC digunakan untuk geganti. Jika relay dihidupkan, ia akan mematikan apabila voltan yang digunakan jatuh di bawah 0.3 Volt DC.

Rajah 3 - Atribut Relay

Dengan pengenalan ringkas ini, mari kita mulakan bagaimana cara menggunakan relay dalam projek anda.

Relay pendawaian keras

Relay datang dalam beberapa faktor bentuk. Pada dasarnya, relay akan menjadi blok segi empat dengan sekurang-kurangnya 4 penyambung elektrik terdedah.

Dua penyambung adalah untuk litar kawalan, dan, tunggu ... dua baki penyambung untuk litar yang ditukar. Cukup mudah, kan? Tidak tepat. Sekiranya anda bukan seorang jurutera elektrik (seperti saya, saya tidak semacam itu), anda mungkin menganggap anda boleh menyambung relay ke dalam litar anda dan anda sudah bersedia. Malangnya, seperti kebanyakan komponen elektronik, tidak ada yang mudah.

Jika anda menyambung relay ke dalam litar anda seperti yang telah saya nyatakan di atas, gunakan voltan, contohnya, dari peranti Raspberry Pi atau Arduino (anda boleh menggunakan mana-mana sumber voltan) di seluruh litar kawalan harus mencetuskan geganti. Walau bagaimanapun, nampaknya ia tidak akan berfungsi dengan pasti, terdapat pertimbangan pelekap dan isu-isu lain yang boleh menjejaskan operasi geganti. Oleh sebab itu, anda perlu menambah komponen tambahan ke litar untuk membuatnya berfungsi. Saya dapati ini kerana saya bekerja dengan relay pertama saya dan mendapati sekumpulan posting Stack Overflow yang menunjukkan cara yang berbeza untuk melakukannya. Ada Buat: artikel majalah tentangnya dengan gambarajah litar.

Biasanya saya fikirkan semua ini dan menulis tentangnya di sini untuk anda, tetapi ada cara yang lebih mudah untuk menambah relay kepada projek anda, sebenarnya beberapa cara, yang akan saya tunjukkan pada bahagian berikut. Saya juga akan menunjukkan kepada anda bagaimana untuk mencetuskan geganti dari kod projek anda di bahagian berikut juga.

Modul Relay

Daripada membeli geganti dan pendawaian mereka dengan transistor, diod dan perintang, banyak pengeluar menghasilkan papan modul geganti yang merangkumi semua yang anda perlukan. Anda boleh melihat satu contoh dalam Rajah 4; anda boleh membeli modul ini dengan mana saja dari 1 hingga 8 atau lebih geganti dilampirkan. Rajah 5 menunjukkan modul 4 relay generik.

Nota: Modul relay yang paling saya lihat tidak termasuk sebarang dokumentasi, jadi anda cukup perlu memikirkan modul anda sendiri.

Sambungan Relay

Modul geganti tunggal biasanya mendedahkan 6 sambungan elektrik; tiga penyambung untuk litar kawalan dan tiga untuk litar suis. Mereka juga mungkin termasuk beberapa blok pelompat seperti yang telah saya tunjukkan di sini. Dalam litar relay yang paling mudah, anda biasanya akan menggunakan hanya lima sambungan, saya akan menjelaskan mengapa dalam satu minit.

Di sebelah kiri angka ialah input kawalan. Seperti yang anda dapat lihat dari gambar, mereka dilabel seperti berikut: • VCC • IN1 • GND

Di dalam litar anda, anda akan menyambungkan voltan input seperti yang diperlukan oleh relay (untuk projek Arduino atau Raspberry Pi, yang biasanya 3 atau 5 volt bergantung pada mikrokontroler) ke input VCC. Ia adalah relay yang menentukan voltan ini, bukan mikrokontroler anda. Peranti Arduino yang paling moden menyediakan 3V dan Raspberry Pi boleh memberikan 3V atau 5V; pastikan anda memilih modul geganti yang akan berfungsi dengan voltan ini. Modul relay kebanyakan seperti ini direka bentuk untuk bekerja dengan Arduino atau Pi, jadi anda harus OK. Anda juga akan menyambungkan input GND ke sambungan Ground microcontroller anda.

Akhir sekali, sambungkan PIN IN1 ke salah satu pin output pada mikropengawal anda. Voltan keluaran pada pin ini ialah apa yang mencetuskan geganti. Menggunakan output Analog adalah pilihan, tetapi sejak Raspberry Pi tidak memberikan output analog, anda boleh menggunakan output Digital juga.

Di bahagian litar beralih modul, anda akan melihat tiga titik sambungan beralih yang ditandakan dengan rajah yang ditunjukkan di bawah (label NO, Common, dan NC adalah lombong).

Rajah 6 - Legenda sambungan relay

Angka tersebut menunjukkan konfigurasi sambungan bertukar untuk relay pada rehat. Untuk modul ini, sambungan beralih dibuat antara penyambung pertama dan kedua atau penyambung kedua dan ketiga. Apabila anda mencetuskan relay (dengan menggunakan voltan yang bersesuaian merentasi litar kawalan), sambungan umum akan bertukar ke sisi yang lain. Apabila anda menyambungkan litar anda ke NO (biasanya terbuka) dan penyambung Biasa, litar kekal terbuka sehingga voltan yang sesuai digunakan pada penyambung IN1 pada litar Kawalan. Sambungan NO / Common ditutup apabila voltan dikenakan kepada IN1. Apabila anda menyambungkan litar anda ke NC (biasanya tertutup) dan penyambung biasa, tetap ditutup sehingga voltan yang sesuai digunakan pada penyambung IN1 pada litar Kawalan. Sambungan NC / Common akan dibuka apabila voltan dikenakan kepada IN1.

Untuk kebanyakan litar, anda hanya perlu menukar satu set wayar, jadi anda akan menukar sama ada sambungan NC atau NO. Untuk beberapa konfigurasi, anda memerlukan dua negeri untuk litar anda; dalam kes ini, anda akan menggunakan kedua-dua sambungan NO dan NC untuk litar anda. Secara lalai, satu sambungan akan sentiasa bersambung dan mereka akan beralih apabila anda menggunakan voltan ke IN1.

Rajah 7 menunjukkan modul geganti yang berwayar untuk tindakan, perhatikan tiga sambungan kawalan (di sebelah kanan angka) dengan sambungan pensuisan pada sambungan NO / Common. Wayar kuning di sebelah kiri bawah angka adalah untuk sambungan bertukar.

Rajah 7 - Modul relay digunakan

Untuk modul pelbagai relay, perkakasan agak sama, hanya diulang sekali untuk setiap relay di papan. Anda masih perlu menyambungkan sambungan voltan dan tanah, tetapi bukan input kawalan In1 tunggal, anda akan mempunyai satu untuk setiap geganti. Oleh itu, lihat Rajah 5, anda akan melihat pin VCC dan GND di bahagian bawah kanan angka, tetapi juga pelbagai input, IN1, IN2, IN3, dan IN4 untuk papan relay ini. Anda akan menyambung setiap IN # ke pin output berasingan pada peranti Arduino atau Raspberry Pi anda. Bahagian beralih modul mempunyai sambungan NO / Common / NC sama yang anda lihat dalam modul geganti tunggal, hanya terdapat 4 set di sini, satu untuk setiap relay.

Mencetuskan Relay

Ingat jumper yang saya nyatakan sebelum ini? Mungkin modul relay anda akan mempunyai beberapa jumper di atasnya. Jika ya, salah satu jumper mungkin akan mengawal sama ada geganti dipicu menggunakan voltan tinggi atau voltan rendah. Kedudukan pelompon ini akan menentukan bagaimana anda mencetuskan relay dalam kod projek anda. Izinkan saya memberi anda beberapa contoh.

Pada peranti Arduino, dengan penyambung IN1 geganti berwayar ke output analog A1, anda boleh mencetuskan geganti dengan satu baris kod. Jika modul relay dikonfigurasikan untuk menggunakan voltan tinggi untuk mencetuskan relay, maka anda akan menggunakan kod berikut untuk menghidupkan relay pada:

analogWrite (A1, 255);

Ini menetapkan output analog pin A1 ke voltan tertinggi (mungkin 3V untuk Arduino). Untuk mematikannya, anda hanya mematikan voltan keluaran menggunakan baris kod berikut:

analogWrite (A1, 0);

Ini menjadikan output A1 menjadi sifar.

Jika modul geganti dikonfigurasikan untuk menggunakan voltan rendah untuk mencetuskan relay, maka anda hanya boleh flip contoh-contoh, menggunakan kod berikut untuk menghidupkan geganti pada:

analogWrite (A1, 0);

dan kod berikut untuk menghidupkan geganti:

analogWrite (A1, 255);

Pi Raspberry tidak mendedahkan output Analog, jadi anda perlu menipu sedikit. Pi ini menyokong output digital menggunakan PWM (Pulse Width Modulation) yang pada dasarnya adalah voltan output yang mengulangi sendiri, dengan baik, berkali-kali. Hasilnya ialah ia kelihatan seperti voltan keluaran yang konsisten ke peranti yang bersambung. Menggunakan Python pada Pi, kod untuk menghidupkan geganti setiap detik kelihatan seperti ini:

dari import gpiozero LED dari masa tidur impor # relay disambungkan ke GPIO pin 18 pada Raspberry Pi # menggantikan 18 di bawah dengan apa pun pin sesuai untuk relay setup # anda = LED (18) # berikut adalah gelung tak terhingga dalam # Python, ia berjalan sehingga anda # membunuh aplikasi semasa Benar: # putar relay pada relay.on () # tunggu tidur yang kedua (1) # putar relay off relay.off () # tunggu lagi tidur kedua (1)

Dalam contoh ini, kod tersebut menggunakan GPIO Zero, sebuah perpustakaan yang sangat berkuasa untuk Pi yang membolehkan anda mengawal dengan mudah apa-apa yang berkaitan dengan port GPIO Pi. Di sini, saya menggunakan perpustakaan LED modul untuk meniru output voltan yang saya perlukan untuk permohonan saya. Dalam kes ini, relay disambungkan dengan GPIO 18 pin Pi. GPIO Zero termasuk jenis keluaran lain yang anda boleh gunakan untuk ini juga.

Di sana anda mempunyai, cara yang cepat dan mudah untuk menyambungkan relay ke projek IoT anda. Tetapi tunggu, ada pilihan yang lebih mudah untuk digunakan untuk projek anda, periksa mereka di bahagian seterusnya.

Papan Tambah Mikrokontroler (Shields, HATs, dan lain-lain)

Untuk menjadikannya lebih mudah bagi anda untuk menambah relay kepada projek mikrokontroler anda, beberapa pengeluar menghasilkan papan tambah untuk platform mikropengawal yang popular. Papan ini menyusun secara langsung ke mikrokontroler menggunakan port GPIO (Raspberry Pi) atau pin header yang paling banyak sokongan papan lain. Nampaknya ada modul relay untuk apa-apa jenis mikrokontroler atau Single Board Computer (SBC) yang anda boleh fikirkan.

Adafruit Feather

Untuk salah satu projek saya, saya menggunakan mikrokontroller Feather Adafruit; bulu itu adalah suite komposit mikrokontroler Arduino yang semua berkongsi faktor bentuk yang konsisten dan susunan pin input / output. Untuk projek ini, saya menggunakan Adafruit Feather M0 WiFi, mikrokontroller Wi-Fi yang disokong oleh Arduino, Adalogger FeatherWing, papan tambah masa sebenar untuk Feather, dan Adafruit Power Relay FeatherWing. Relay FeatherWing memberikan projek saya satu modul relay yang mudah digunakan, saya hanya boleh menampar mikrokontroler dan bekerja. Anda boleh melihat ketiga papan itu, dengan pin header dan soket mereka dipasangkan, dalam angka berikut.

Rajah 8 - Papan Adafruit Feather dan aksesori

Untuk menggunakannya, anda menyusun papan di atas satu sama lain seperti yang ditunjukkan dalam angka berikut. Anda akan menyambungkan litar beralih ke terminal biru di sebelah kanan angka itu. Seperti halnya geganti lain, anda akan menggunakan dua untuk sama ada sambungan NC atau NO, atau ketiga-tiga jika anda ingin menukar relay dua cara seperti yang diterangkan dalam bahagian sebelumnya.

Rajah 9 - Perancangan modul FeatherWing, termasuk modul relay di atas

Modul relay dilancarkan ke port keluaran berganda di Papan Feather, tetapi untuk menggunakannya, anda memotong pad logam di belakang papan untuk pin output yang anda mahu gunakan (berdasarkan yang lain pin digunakan oleh lain-lain Papan tambah bulu).

Rajah 10 - Adafruit Feather pilihan pilihan pelabuhan relay pelabuhan

Untuk mencetuskan relay dalam aplikasi Feather anda, anda akan menggunakan sesuatu seperti berikut:

/ // Analog pin relay disambungkan kepada const int outputPin = SELECTED_FEATHER_PIN; / / Sebagai contoh, jika relay disambungkan ke output An1 A1, anda akan / / gunakan yang berikut: // const int outputPin = A1; void setRelay (status bool) {// Set relay ke status tertentu (on = true / off = false) Serial.print ("Relay:"); jika (status) {Serial.println ("ON"); analogWrite (outputPin, MAXOUTPUT); } else {Serial.println ("OFF"); analogWrite (outputPin, MINOUTPUT); } // Menyimpan status yang kami tetapkan, supaya toggleRelay dapat // toggle toggle relayStatus = status kemudian relay; }

Dalam contoh ini, apa yang saya tunjukkan adalah takrifan yang berterusan (menggambarkan yang output pin analog relay disambungkan kepada) dan fungsi yang dipanggil setRelay yang mencetuskan geganti.

Pemalar outputPin hanya memberi anda cara mudah untuk mengkonfigurasi kod untuk konfigurasi perkakasan tertentu anda. Daripada membuat anda memburu untuk semua bahagian kod yang mencetuskan relay, kami menetapkan pin keluaran geganti dalam pemalar ini dan mana-mana bahagian aplikasi yang mahu menggunakannya hanya boleh merujuk pemalar. Dengan pendekatan ini, jika anda kemudian menukar pin geganti, anda hanya perlu mengubahnya dalam satu tempat, dan, apabila perubahan dibuat, semua bahagian yang berlainan kod yang merujuk kepada pemalar akan dikemas kini secara automatik.

The setRelay fungsi memberi aplikasi cara yang cepat dan mudah untuk menghidupkan atau mematikan relay itu. Daripada membuat fungsi berasingan untuk menghidupkannya dan yang lain untuk mematikannya, saya hanya menggunakan satu fungsi dan lulus sama ada saya mahu relay hidup atau mati sebagai pembolehubah Boolean yang diluluskan kepada fungsi. Mari saya tunjukkan kepada anda.

Untuk menghidupkan geganti, mana-mana bahagian aplikasi hanya dapat melaksanakan kod berikut:

setRelay (benar);

Dalam contoh ini, benar parameter yang diluluskan kepada fungsi itu adalah nilai True Boolean yang menunjukkan On.

Untuk menghidupkan geganti, anda akan melaksanakan kod berikut:

setRelay (false);

Fungsi ini menggunakan pembolehubah yang dipanggil relayStatus untuk mengesan sama ada geganti sedang atau tidak, membolehkan fungsi berasingan dipanggil toggleRelay untuk menghidupkan status geganti (menghidupkan relay padanya dimatikan atau dimatikan jika dihidupkan). Kod itu sangat mudah, semua yang dilakukan adalah panggilan setRelay menggunakan kebalikan dari status semasa relay:

void toggleRelay () {// Flips the relay from on to off or off to setRelay (! relayStatus); }

The ! relayStatus dalam kod diterjemahkan ke TIDAK relayStatus, jadi kalau relayStatus adalah benar, kemudian salah diserahkan kepada setRelay. Jika relayStatus adalah salah, kemudian benar diserahkan kepada setRelay.

Tessel 2

Tessel 2 mempunyai modul geganti, ditunjukkan dalam Rajah 11. Saya menggunakannya untuk membuat pengawal pintu garaj yang mudah menggunakan aplikasi web mudah yang dihoskan pada pengawal; anda boleh mencari projek lengkap di Github.

Rajah 11 - Papan dan modul relay Tessel 2

Papan Tessel menjalankan JavaScript, jadi mudah untuk menulis tugas pelayan berbasis JavaScript yang berjalan di papan dan menggunakan penyemak imbas web desktop atau mudah alih untuk berinteraksi dengan papan. Untuk projek ini, pelayan web menjadi tuan rumah laman web ringkas yang mengandungi butang untuk membuka pintu garaj. Di papan, kod yang mencetuskan pintu garaj ialah toggleRelay fungsi yang disenaraikan di bawah:

fungsi toggleRelay (RELAY_PORT) {// Toggle relay yang ditentukan, simpan pada RELAY_DELAY milisaat / // mula menghidupkan aktiviti LED tessel.led [ACTIVITY_LED] .on (); // seterusnya, relay pada relay.turnOn (RELAY_PORT, relayResult); // tidur untuk 500 milisaat (setengah saat) tidur (500) .then (() => {// Kemudian putar relay off relay.turnOff (RELAY_PORT, relayResult); // dan matikan aktiviti LED tessel.led [ACTIVITY_LED] .off ();}); }

Seperti yang anda lihat dari Rajah 11, modul geganti sukan dua relay, jadi apabila anda memanggil toggleRelay, anda mesti menceritakan hal itu bahawa geganti berwayar ke butang pintu garasi dengan melewati a 1 atau 2 kepada fungsi melalui RELAY_PORT pembolehubah. Fungsi ini menghidupkan lampu penunjuk, mencetuskan relay, menunggu setengah saat, kemudian menyalakan geganti dan penunjuk LED dimatikan.

Zarah foton

Satu syarikat yang membuat modul relay untuk pelbagai mikrokontroler atau SBC adalah Alat Kawalan Kebangsaan. Pengawal pintu garaj yang sebenarnya saya gunakan dibina menggunakan Partikel Photon dan satu papan relay untuk Photon. Anda boleh membaca tentang projek lengkap di Github.

Untuk papan ini, ditunjukkan dalam Rajah 12, Photon dipasang di soket di sebelah kanan papan (seperti ditunjukkan dalam gambar). Apabila anda menggunakan kuasa untuk papan relay, ia juga memberi kuasa kepada mikrokontroler.

Rajah 12 - Kawalan Penyelenggaraan Semua Alat Kawalan 1-Saluran untuk Photon Partikel

Platform 'Photon' adalah sejuk kerana anda boleh melaksanakan kod di papan dari jauh, melalui perkhidmatan awan percuma. Papan ini kebanyakannya serasi dengan mikrokontroler Arduino, jadi anda kodkan aplikasi anda menggunakan C.

Kod untuk mencetuskan relay sepatutnya kelihatan serupa dengan apa yang saya sudah menunjukkan, dalam kod contoh Photon yang ditunjukkan di bawah, saya menentukan beberapa pemalar untuk memberitahu aplikasi yang menyandarkan relay disambungkan dan yang menyalakan cahaya penunjuk disambungkan ke ( yang dibina ke Photon). Permohonan memanggil tekan butang fungsi untuk mencetuskan geganti; fungsi ini menghidupkan lampu penunjuk, mencetuskan relay, menunggu setengah saat, kemudian menyalakan geganti dan penunjuk LED dimatikan.

// Sambungkan geganti ke Digital 0 int relayPin = D0; // Sambungkan aktiviti LED ke aktiviti int 1 DigitalLED = D1; // ================================================ ================= // Fungsi ini menolak butang pintu garaj (melalui relay, // tentu saja) // ============ ================================================== === int pushButton (String param) {Serial.println ("fungsi pushButton dipanggil."); / // Aktifkan aktiviti LED, supaya kita dapat memberitahu ia berfungsi digitalWrite (aktivitiLED, HIGH); // Matikan geganti pada digitalWrite (relayPin, HIGH); // Tunggu setengah saat (atau lama-lama kita tentukan kita perlu) kelewatan (500); // Matikan relay dari digitalWrite (relayPin, LOW); // Matikan aktiviti LED off digitalWrite (aktivitiLED, LOW); // kita mesti mengembalikan sesuatu, jadi kembalikan sifar (-1 bermakna kegagalan) kembali 0; }

Pai raspberi

Saya juga dapati beberapa modul relay untuk Raspberry Pi. Yang pertama yang saya bekerjasama ialah Dewan Relay Raspberry Pi Seeed Studio v1.0. Cuba petua ini untuk menggunakan papan dalam projek anda juga. Lembaga sukan 4 menyambung dan melengkapkan secara langsung di atas Raspberry Pi seperti ditunjukkan dalam Rajah 13.

Rajah 13 - Lembaga Relay Raspberry Pi v1.0

Menggunakan papan dalam projek anda adalah mudah. Orang-orang di Studio Seeed mencipta aplikasi Python sampel yang membolehkan anda berinteraksi dengan papan (memutarkan geganti di luar dengan menaip perintah dalam tetingkap terminal), saya menambah beberapa fungsi pada kod dan menerbitkannya sebagai modul Python di https: //github.com/johnwargo/Seeed-Studio-Relay-Board. Untuk menggunakan modul ini, salin pustaka ke folder projek anda kemudian tambah baris berikut ke permulaan aplikasi Python anda:

dari import relay_lib_seeed *

Dengan itu, anda boleh menghidupkan relay menggunakan kod berikut:

relay_on (int_value)

di mana int_value merujuk kepada nombor geganti (1 hingga 4). Jadi, untuk menghidupkan relay # 2, gunakan yang berikut:

relay_on (2)

Untuk menghidupkan geganti, gunakan:

relay_off (int_value)

Anda juga boleh menukar geganti dengan menggunakan:

relay_toggle_port (int_value)

Cukup mudah, kan? Jika anda mahu aplikasi mudah yang boleh anda gunakan untuk bermain-main dengan papan, lihat projek saya di Github.

Pilihan papan relay lain ialah Papan Relay PiM ModMyPi; anda boleh mencari dokumentasi di Github. Seperti papan Studio Seeed, papan PiOT dipasang di atas Raspberry Pi, tetapi dengan modul ini, anda boleh menyusun pelbagai papan di atas satu sama lain untuk menyampaikan 8, 12, atau lebih relay untuk projek anda. Anda boleh melihat contoh papan yang ditunjukkan dalam Rajah 14.

Rajah 14 - Papan PiOT ModMyPi

Ciri sejuk dari papan PiOT ialah anda boleh menukar relay menggunakan butang tekan yang dipasang pada papan, satu untuk setiap relay. Ini membolehkan anda melihat bagaimana lembaga berfungsi dan juga menguji perkakasan projek anda sebelum anda menulis sebarang kod. Anda juga akan menggunakan butang ini untuk mengkonfigurasi pin GPIO Raspberry Pi yang digunakan oleh lembaga, sesuatu yang saya jujur ​​lebih suka melakukan melalui jumper atau suis DIP sebaliknya.

Papan ini direka untuk kedua-dua model Raspberry Pi bersaiz penuh serta Pi Zero. Malangnya, lubang pelekap di papan hanya sesuai untuk dipasang pada Pi Zero. Untuk pemasangan Pi Zero, lembaga menawarkan 4 lubang pelekap, jadi dengan standoffs dan skru yang betul, anda boleh melancarkan papan PiOT dengan kukuh di atas Pi Zero. Untuk model Pi yang lebih besar, untuk sebab-sebab yang pelik orang-orang ModMyPi hanya mendedahkan dua lubang pelekap yang sejajar dengan Pi, jadi anda boleh melancarkannya, tetapi saya mendapati bahawa untuk pelaksanaan saya itu tidak stabil dan memendekkan sambungan relay setiap kali papan bergerak (yang ia tidak mudah kerana ia tidak dipasang dengan tegas).

Untuk membantu anda menggunakan lembaga dalam projek anda, saya mencipta pustaka Python di https://github.com/johnwargo/pi-relay-controller-modmypi/blob/master/relay_lib_modmypi.py. Untuk menggunakan pustaka, salin pustaka ke folder projek anda kemudian tambah baris berikut kod ke projek Python anda:

dari import relay_lib_modmypi *

Seterusnya, anda perlu mengkonfigurasi aplikasi untuk konfigurasi papan anda.Dalam kod permulaan permohonan anda, tambahkan baris berikut:

# Memperbarui senarai / tupel berikut dengan nombor port yang diberikan kepada papan relay anda PORTS = (7, 8, 10, 11) NUM_RELAY_PORTS = 4 # menginisialisasi pustaka relay dengan konfigurasi port sistem jika init_relay (PORTS): # putar semua lancar, jadi kita bermula dengan slate yang bersih. relay_all_off () lain: cetak ("Ralat konfigurasi port") # keluar aplikasi sys.exit (0)

Di dalam PORTS pembolehubah, anda perlu mengisi senarai dengan nombor port relay yang anda konfigurasikan menggunakan butang papan. Menetapkan NUM_RELAY_PORTS pemboleh ubah kepada 4, 8, 12, dan lain-lain bergantung kepada berapa banyak papan yang telah disusun bersama. Dengan itu, anda boleh menghidupkan relay menggunakan kod berikut:

relay_on (int_value)

di mana int_value merujuk kepada nombor relay (1 hingga 4). Jadi, untuk menghidupkan relay # 2, gunakan yang berikut:

relay_on (2)

Untuk menghidupkan geganti, gunakan:

relay_off (int_value)

Anda juga boleh menukar geganti dengan menggunakan:

relay_toggle_port (int_value)

Cukup mudah, kan? Jika anda mahu aplikasi mudah yang boleh anda gunakan untuk bermain-main dengan papan, lihat projek saya.

PowerSwitch Tail

Untuk projek pembuka pintu garaj saya, saya hanya menggunakan relay untuk 'menekan' butang, jadi relay itu hanya menukar litar voltan rendah. Untuk sesetengah projek, anda perlu menggunakan mikrokontroler untuk menukar voltan yang lebih tinggi, seperti 110V (Amerika Utara) atau 220V (cukup banyak di mana-mana sahaja) yang menjalankan lampu rumah anda atau peralatan komersil lain. Anda boleh menukar tahap voltan tersebut dengan penyelesaian yang telah saya tunjukkan setakat mana banyak pemancingan sokongan untuk menukar pelbagai voltan (contohnya, geganti yang ditunjukkan dalam Rajah 5 dan 6 akan beralih kepada 250V AC atau 30V DC), tetapi anda 're berurusan dengan voltan yang lebih tinggi yang boleh mematikan untuk bekerja dengan dan secara mendadak mengubah penyelesaian pendawaian yang akan anda gunakan dalam projek anda.

Untuk senario beralih voltan tinggi, terdapat satu penyelesaian mudah yang anda boleh gunakan yang mengasingkan anda dari banyak isu keselamatan yang datang dengan voltan yang lebih tinggi. Penyelesaian ini dipanggil PowerSwitch Tail, dan projek contoh yang saya buat menggunakan satu ditunjukkan dalam Rajah 15. PowerSwitch Tail (PT) adalah kotak hitam dengan kord kuasa berjalan melalui.

Rajah 15 - Projek PowerSwitch Tail

PT adalah pada dasarnya sebuah kotak yang mengandungi relay dengan sambungan bertukarnya berwayar di salah satu konduktor dalam palam kuasa AC. Apabila anda menggunakan voltan tertentu (biasanya antara 3V dan 5V) ke sambungan input pada PT (ditunjukkan dengan dua wayar merah yang disambungkan ke dalamnya) pemicu relay dan pasang AC melewati kord kuasa. PT biasanya berwayar untuk operasi TIDAK, tetapi biasanya anda boleh mengkonfigurasinya untuk operasi NC juga.

Untuk projek ini, saya menggunakan Baju Adafruit dengan mod jam masa nyata (RTC) untuk memacu relay PT, yang membolehkan saya menukar kawalan ke perlawanan ringan menggunakan logik yang dikodkan dalam aplikasi Feather. Anda boleh mencari kod sumber lengkap untuk projek di sini.

Dari sudut pandangan pengekodan, anda telah melihat kod yang anda perlukan untuk mengawal penyambungan, ia berada di bahagian Feather Adafruit yang ditunjukkan di awal dokumen.

Mengesahkan Operasi Relay

Semasa saya bekerja dengan banyak projek berasaskan relay ini, saya mendapati diri saya sentiasa mengendalikan litar LED mudah supaya saya dapat dengan cepat dan mudah melihat sama ada kod projek saya berfungsi dengan betul. Kebanyakan geganti membuat klik boleh didengar apabila dicetuskan, dan kebanyakan modul relay mempunyai LED berwayar ke setiap litar relay supaya anda dapat melihat sepintas lalu sama ada geganti sedang atau tidak aktif. Walau bagaimanapun, tidak mudah untuk mendengar klik atau melihat penunjuk cahaya dengan jelas. Selain itu, dengan modul 4 relay, LED penunjuk modul kadangkala dikelompokkan bersama-sama, jadi sukar untuk memberitahu LED mana yang menyampaikannya.

Saya banyak melakukan kerja kayu di kedai saya, dan ketika saya mendapat pengalaman, saya dengan cepat mengetahui bahawa pembuat berjaya menggunakan jig untuk membantu mereka mengulangi tugas-tugas secara konsisten atau melakukan tugas tunggal, tetapi rumit, tugas dengan tepat. Untuk kerja relay saya, saya mencipta jig ujian yang saya dapat mengendalikan setiap projek saya ketika saya bekerja pada mereka dan lebih mudah menentukan keadaan geganti projek saya. Jig pada dasarnya adalah satu siri LED yang disambungkan ke sumber kuasa (3V DC yang dilayani oleh dua bateri AA) dengan setiap LED terdedah melalui dua lead terbuka. Apabila saya perlu menguji litar relay, saya menghidupkan LED membawa kepada sambungan NC pada salah satu relay (ulangi mengikut keperluan bergantung kepada berapa banyak geganti yang saya gunakan), letakkan beberapa bateri di dalam pemegang bateri dan mula menguji kod saya. Apabila geganti memancarkan, lampu LED atau menjadi gelap bergantung kepada status geganti.

Rajah berikut menunjukkan gambarajah pendawaian untuk jig.

Rajah 16 - Litar ujian jig relay

Untuk pelaksanaan saya ini, saya menggunakan Breadboard Berukuran Separuh Adafruit Perma-Proto kerana ia adalah saiz yang tepat dan membolehkan saya memasang litar dengan mudah. Gegelung wayar hitam dan merah yang ditunjukkan bersambung ke penjuru kanan bawah jig ada jika saya perlu menggunakan bekalan kuasa 3V (dua bateri AA) untuk beberapa aspek lain projek.

Kesimpulannya

Mudah-mudahan saya telah memberi anda gambaran keseluruhan relay dan aplikasi praktikal mereka (menggunakan modul relay, papan tambahan, dan, tentu saja, kod) yang anda akan berjaya menambahnya ke projek anda. Apabila bekerja dengan geganti, pastikan geganti anda dinilai untuk kedua-dua voltan dan semasa yang digunakan dalam projek anda; anda tidak akan mahu membiarkan asap keluar daripada penyesalan kerana kecuaian. Bercakap tentang kecerobohan, apabila bekerja dengan litar AC atau litar DC voltan tinggi, berhati-hati kerana kesilapan boleh mematikan, atau sekurang-kurangnya menyakitkan.

Kongsi

Meninggalkan Komen