Search Code

Menggunakan Reed Switch untuk Mengontrol Relay dan Beban AC/DC dengan Arduino

Menggunakan Reed Switch untuk Mengontrol Relay dan Beban AC/DC dengan Arduino

Dalam tutorial ini, kita akan mengeksplorasi cara menggunakan sakelar buluh (reed switch) bersama dengan Arduino untuk mengendalikan relai yang dapat mengelola beban AC dan DC. Sakelar buluh berfungsi sebagai sensor magnetik, memungkinkan kita memicu relai berdasarkan kedekatan magnet. Konfigurasi ini sangat cocok untuk aplikasi seperti alarm, lampu otomatis, atau skenario apa pun di mana Anda ingin mengendalikan perangkat berdasarkan ada atau tidaknya medan magnet. Hasilnya akan berupa rangkaian yang berfungsi penuh yang dapat menyalakan atau mematikan lampu atau alarm tergantung pada keadaan sakelar buluh.

Reed Switch Schematic
Reed Switch module

Saat kita membangun proyek ini, kita akan membahas komponen-komponen kunci yang terlibat, termasuk sakelar buluh, relai, dan Arduino. Sakelar buluh memiliki tiga pin: VCC (daya), GND (ground), dan OUTPUT (sinyal). Ketika magnet mendekat, sakelar menutup, memungkinkan pin sinyal menjadi HIGH, yang kemudian dapat memicu relai. Relai berfungsi sebagai sakelar untuk beban tegangan tinggi, sehingga cocok untuk mengendalikan perangkat seperti lampu atau alarm.

Untuk demonstrasi visual dan klarifikasi lebih lanjut, pastikan untuk menonton video terkait di (dalam video pada 00:00).

Reed Switch module to view

Penjelasan Perangkat Keras

Komponen utama proyek ini meliputi sakelar buluh, modul relai, dan papan Arduino. Sakelar buluh adalah sensor magnetik yang menutup kontaknya ketika magnet berada di dekatnya, memungkinkan arus mengalir melalui pin OUTPUT. Pin ini mengirim sinyal ke relai, yang dapat mengendalikan perangkat bertegangan tinggi dengan aman.

Modul relai dirancang untuk mengendalikan beban yang lebih besar. Modul ini memiliki tiga koneksi utama: Common (COM), Normally Open (NO), dan Normally Closed (NC). Ketika relai diaktifkan oleh Arduino, relai menghubungkan pin COM ke pin NO, memungkinkan arus mengalir ke perangkat yang terhubung. Pengaturan ini memungkinkan kontrol yang serbaguna atas berbagai perangkat listrik tanpa menghubungkan Arduino secara langsung dengan tegangan tinggi. Amplifier utama yang digunakan untuk memperkuat sinyal sakelar buluh adalah Operational Amplifier LM393

Lembar Data untuk Modul

ProdusenTidak Diketahui
Tegangan Logika/IO3.3V - 5 V
Tegangan Suplai5 V
Arus keluaran (per saluran)Maks 10 A
Arus puncak (per saluran)Maks 16 A
Panduan frekuensi PWMTidak berlaku
Ambang logika inputMin 2.5 V (HIGH)
Penurunan tegangan / RDS(on) / saturasi0.1 V tipikal
Batas termalMaks 85 °C
KemasanPemasangan PCB

Instruksi Pengkabelan

Arduino wiring for Reed switch module
Arduino wiring for Reed switch module

Untuk mengkabel sistem, mulailah dengan menghubungkan sakelar buluh. Hubungkan pin VCC sakelar buluh ke output 5V pada Arduino, dan hubungkan pin GND ke salah satu pin ground pada Arduino. Pin OUTPUT sakelar buluh harus dihubungkan ke pin digital 2 pada Arduino. Ini akan memungkinkan Arduino membaca status sakelar buluh.

Selanjutnya, hubungkan modul relai. Hubungkan pin VCC relai ke output 5V pada Arduino, dan pin GND ke ground. Pin input relai, yang mengendalikan operasi relai, harus dihubungkan ke pin digital 10 pada Arduino. Terakhir, hubungkan beban (seperti bola lampu) ke terminal Common dan Normally Open relai, pastikan beban sesuai dengan spesifikasi relai.

Contoh Kode & Penjelasan

Potongan kode berikut menginisialisasi pin dan mengatur komunikasi serial untuk debugging. Sakelar buluh terhubung ke pin 2, sedangkan relai dikendalikan melalui pin 10.


int LD = 200; // waktu dalam milidetik untuk menunggu sebelum melakukan pembacaan berikutnya.

void setup() {
    Serial.begin(9600);
    pinMode(10, OUTPUT); // terhubung ke relai
    pinMode(2, INPUT); // pin input sakelar buluh 2  
    Serial.println("Robojax Test: Sakelar buluh");
}

Dalam fungsi loop, keadaan sakelar buluh diperiksa secara terus-menerus. Jika sakelar tertutup (menunjukkan adanya magnet), relai dinyalakan. Jika sakelar terbuka, relai dimatikan setelah penundaan 5 detik, memberikan periode tenggang sebelum penonaktifan.


void loop() {
    if(digitalRead(2)){
      Serial.println("Sakelar ON "); 
      digitalWrite(10, LOW); // Nyalakan relai    
      delay(LD); 
    }else{
      delay(5000); // tunggu 5 detik sebelum mematikan alarm
      digitalWrite(10, HIGH); // Matikan relai
    }
}

Kode ini memungkinkan fleksibilitas dalam mengendalikan relai berdasarkan keadaan sakelar buluh. Anda dapat memodifikasi waktu dan perilaku dengan mengubah nilai penundaan atau cara relai dikendalikan berdasarkan input sakelar.

Demonstrasi / Apa yang Diharapkan

Ketika pengaturan selesai, mendekatkan magnet ke sakelar buluh akan mengaktifkan relai, menyalakan lampu atau alarm yang terhubung. Jika magnet dijauhkan, lampu akan tetap menyala selama periode penundaan tertentu sebelum mati, memberikan waktu buffer bagi pengguna. Pastikan untuk menguji sistem untuk mengonfirmasi bahwa relai berperilaku seperti yang diharapkan dan merespons dengan benar terhadap sakelar buluh.

Stempel Waktu Video

  • 00:00 - Pengenalan proyek
  • 02:15 - Penjelasan perangkat keras
  • 05:30 - Demonstrasi pengkabelan
  • 08:45 - Penjelasan kode
  • 12:00 - Hasil yang diharapkan dan tips pemecahan masalah

Gambar

Reed Switch module top view
Reed Switch module top view
Reed Switch Schematic
Reed Switch Schematic
reed_switch-4
reed_switch-4
Reed Switch module
Reed Switch module
Reed Switch module to view
Reed Switch module top view
Reed Switch module
Reed Switch module
Arduino wiring for Reed switch module
Arduino wiring for Reed switch module
22-Reed Magnetic Switch Arduino with Relay code
Bahasa: C++
++
//*
 * This is the Arduino code for a reed switch to
 * turn a relay ON, which the relay
 * can turn a light or alarm ON.
 * The reed switch is connected to pin 2.
 * The relay is connected to pin 10.
 
 * Watch the video for this code: https://www.youtube.com/watch?v=2RBFKqoauaI
 * 
 * Written by Ahmad Shamshiri for Robojax.com Video
 * Date: December 5, 2017, in Ajax, Ontario, Canada
 * Permission granted to share this code, given that this
 * note is kept with the code.
 
 * Please keep this note with the code.
 * This code is available on Robojax.com
 * 
 * This code is "AS IS" without warranty or liability. Free to be used as long as you keep this note intact.
 * This code has been downloaded from Robojax.com
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <https://www.gnu.org/licenses/>.
 */


 int LD = 200; // time in milliseconds to wait before making another reading.

void setup() {
    Serial.begin(9600);
    // output pins
    pinMode(10, OUTPUT);// connected to relay
         

    // input pins
    pinMode(2, INPUT);// reed switch  input pin 2  


    Serial.println("Robojax Test: Reed switch");

}

void loop() {

    // read the REED switch
    if(digitalRead(2)){
      Serial.println("Switch ON "); 
      digitalWrite(10, LOW); // Turn the relay ON    
      delay(LD); 
    }else{
      delay(5000);// wait 5 seconds before turning the alarm off
				// remove this line if you don't want any delay
      digitalWrite(10, HIGH);// Turn the relay OFF
      
    }
  




}// loop

Sumber daya & referensi

Belum ada sumber daya.

Berkas📁

Tidak ada file tersedia.