Search Code

Použitie Reedovho spínača na ovládanie relé a AC/DC záťaží s Arduinom

Použitie Reedovho spínača na ovládanie relé a AC/DC záťaží s Arduinom

V tomto návode preskúmame, ako použiť jazýčkový spínač v spojení s Arduinom na ovládanie relé, ktoré dokáže spravovať záťaže na striedavý aj jednosmerný prúd. Jazýčkový spínač funguje ako magnetický senzor, ktorý nám umožňuje spúšťať relé na základe blízkosti magnetu. Táto konfigurácia je ideálna pre aplikácie, ako sú alarmy, automatické osvetlenie alebo akýkoľvek scenár, kde chcete ovládať zariadenia na základe prítomnosti alebo neprítomnosti magnetického poľa. Výsledkom bude plne funkčný obvod, ktorý dokáže zapnúť alebo vypnúť svetlo či alarm v závislosti od stavu jazýčkového spínača.

Reed Switch Schematic
Reed Switch module

Pri budovaní tohto projektu si rozoberieme kľúčové komponenty vrátane jazýčkového spínača, relé a Arduina. Jazýčkový spínač má tri piny: VCC (napájanie), GND (uzemnenie) a OUTPUT (signál). Keď sa magnet priblíži, spínač sa zatvorí, čo umožní signálovému pinu prejsť do stavu HIGH, čo potom môže spustiť relé. Relé funguje ako spínač pre záťaže s vyšším napätím, vďaka čomu je vhodné na ovládanie zariadení, ako sú lampy alebo alarmy.

Pre vizuálnu ukážku a ďalšie objasnenie si určite pozrite príslušné video na (vo videu o 00:00).

Reed Switch module to view

Vysvetlenie hardvéru

Hlavné komponenty tohto projektu zahŕňajú jazýčkový spínač, reléový modul a dosku Arduino. Jazýčkový spínač je magnetický senzor, ktorý zatvorí svoje kontakty, keď je v blízkosti magnet, čo umožní prúdenie prúdu cez OUTPUT pin. Tento pin vysiela signál do relé, ktoré môže bezpečne ovládať vysokonapäťové zariadenia.

Reléový modul je navrhnutý na ovládanie väčších záťaží. Má tri hlavné pripojenia: Common (COM), Normally Open (NO) a Normally Closed (NC). Keď relé aktivuje Arduino, pripojí pin COM k pinu NO, čo umožní prúdenie prúdu k pripojenému zariadeniu. Toto nastavenie umožňuje všestranné ovládanie rôznych elektrických zariadení bez priameho prepojenia Arduina s vysokým napätím. Hlavný zosilňovač použitý na zosilnenie signálu jazýčkového spínača je operačný zosilňovač LM393.

Datasheet pre modul

VýrobcaNeznámy
Logické/IO napätie3,3 V – 5 V
Napájacie napätie5 V
Výstupný prúd (na kanál)max. 10 A
Špičkový prúd (na kanál)max. 16 A
Odporúčanie pre PWM frekvenciuNeuplatňuje sa
Vstupné logické prahymin. 2,5 V (HIGH)
Pokles napätia / RDS(on) / saturáciatypicky 0,1 V
Tepelné limitymax. 85 °C
PuzdroMontáž na PCB

Pokyny na zapojenie

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

Na zapojenie systému začnite pripojením jazýčkového spínača. Pripojte pin VCC jazýčkového spínača na výstup 5V na Arduine a pin GND pripojte na jeden z uzemňovacích pinov na Arduine. OUTPUT pin jazýčkového spínača by mal byť pripojený na digitálny pin 2 na Arduine. To umožní Arduinu čítať stav jazýčkového spínača.

Ďalej zapojte reléový modul. Pripojte pin VCC relé na výstup 5V na Arduine a pin GND na uzemnenie. Vstupný pin relé, ktorý riadi činnosť relé, by mal byť pripojený na digitálny pin 10 na Arduine. Nakoniec pripojte záťaž (napríklad žiarovku) na svorky Common a Normally Open relé, pričom sa uistite, že záťaž je vhodná pre špecifikácie relé.

Príklady kódu a vysvetlenie

Nasledujúci úryvok kódu inicializuje piny a nastaví sériovú komunikáciu na ladenie. Jazýčkový spínač je pripojený na pin 2, zatiaľ čo relé je ovládané cez pin 10.


int LD = 200; // čas v milisekundách na čakanie pred vykonaním ďalšieho čítania.

void setup() {
    Serial.begin(9600);
    pinMode(10, OUTPUT); // pripojené k relé
    pinMode(2, INPUT); // vstupný pin jazýčkového spínača pin 2  
    Serial.println("Robojax Test: Jazýčkový spínač");
}

Vo funkcii loop sa nepretržite kontroluje stav jazýčkového spínača. Ak je spínač zatvorený (čo indikuje prítomnosť magnetu), relé sa zapne. Ak je spínač otvorený, relé sa vypne po oneskorení 5 sekúnd, čo umožňuje ochrannú lehotu pred deaktiváciou.


void loop() {
    if(digitalRead(2)){
      Serial.println("Spínač ZAPNUTÝ "); 
      digitalWrite(10, LOW); // Zapnutie relé    
      delay(LD); 
    }else{
      delay(5000); // počkajte 5 sekúnd pred vypnutím alarmu
      digitalWrite(10, HIGH); // Vypnutie relé
    }
}

Tento kód umožňuje flexibilitu pri ovládaní relé na základe stavu jazýčkového spínača. Časovanie a správanie môžete upraviť zmenou hodnôt oneskorenia alebo spôsobu ovládania relé na základe vstupu spínača.

Demonštrácia / Čo očakávať

Keď je nastavenie dokončené, priblíženie magnetu k jazýčkovému spínaču by malo aktivovať relé a zapnúť pripojené svetlo alebo alarm. Ak magnet odstránite, svetlo zostane zapnuté po určitú dobu oneskorenia, kým sa vypne, čo používateľovi poskytne ochranný čas. Otestujte systém, aby ste potvrdili, že relé sa správa podľa očakávania a správne reaguje na jazýčkový spínač.

Časové značky videa

  • 00:00 – Úvod do projektu
  • 02:15 – Vysvetlenie hardvéru
  • 05:30 – Ukážka zapojenia
  • 08:45 – Vysvetlenie kódu
  • 12:00 – Očakávané výsledky a tipy na riešenie problémov

Images

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
Language: 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

Resources & references

No resources yet.

Files📁

No files available.