Search Code

Gebruik 'n Arduino-druk-knoppie om 'n relais en AC-gloeilamp te skakel

Gebruik 'n Arduino-druk-knoppie om 'n relais en AC-gloeilamp te skakel

In hierdie tutoriaal gaan ons leer hoe om 'n WS-gloeilamp of LED-lig te beheer met behulp van 'n drukknoppie en 'n relais. Die drukknoppie sal die lig aan- en afskakel, en sy toestand behou selfs wanneer die knoppie losgelaat word. Hierdie opstelling is nie net prakties nie, maar ook 'n goeie inleiding tot die werk met relais en WS-laste.

5V LOW-LEVEL trigger relay

Soos ons vorder, sal ons die nodige komponente, bedradingsinstruksies en die Arduino-kode dek wat hierdie projek moontlik maak. Maak seker dat jy die gepaardgaande video kyk vir 'n visuele gids en gedetailleerde verduidelikings (in video by 00:00).

5V LOW-Level triggered Relay module

Hardeware Verduidelik

Vir hierdie projek sal ons 'n relaismodule, 'n Arduino-bord en 'n drukknoppie gebruik. Die relaismodule dien as 'n skakelaar wat hoëspanning WS-laste, soos 'n gloeilamp, kan beheer terwyl dit deur die laespanning Arduino-seine beheer word. Die relaismodule het drie hoofterminale vir die koppeling van die las: Gemeen (COM), Normaal Oop (NO) en Normaal Toe (NC).

Die drukknoppie dien as 'n gebruikerskoppelvlak om die toestand van die relais te wissel. Dit is gekoppel aan een van die digitale penne op die Arduino. Wanneer die knoppie gedruk word, stuur dit 'n sein na die Arduino, wat dan die relais dienooreenkomstig aktiveer of deaktiveer. Hierdie eenvoudige interaksie stel ons in staat om die lig maklik te beheer.

Databladbesonderhede vir Relais

VervaardigerSongle
DeelnommerSRD-05VDC-SL-C
Spoolspanning5 VGS
SkakelspanningWS 250 V / GS 30 V
Skakelstroom10 A maks.
Kontakweerstand≤ 100 mΩ
Isolasieweerstand≥ 1000 MΩ
Werkingstemperatuur-40 tot +70 °C
VerpakkingStandaard Relaismodule

  • Maak seker die relais is gegradeer vir die las wat jy skakel.
  • Hou die relaismodule met 5 VGS aangedryf.
  • Gebruik toepaslike isolasie vir WS-verbindings.
  • Wees versigtig wanneer jy met WS-krag werk; maak seker die stroombaan is ontkoppel voordat jy veranderinge aanbring.
  • Koppel die drukknoppie aan die aangewese invoerpen op die Arduino.
  • Gebruik die INPUT_PULLUP-modus vir die drukknoppiepen om die behoefte aan eksterne resistors te vermy.
  • Toets die relaiswerking met 'n laer spanning voordat jy WS-laste koppel.
  • Verifieer verbindings om kortsluitings te vermy.

Bedradingsinstruksies

Arduino wiring for AC bulb, LED and push button
Arduino wiring for AC bulb, LED and push button

Om die relaismodule te bedraad, begin deur die VCC-pen van die relais aan die 5V-pen op die Arduino te koppel, en die GND-pen van die relais aan die GND-pen op die Arduino. Die IN-pen op die relais moet aan digitale pen 10 op die Arduino gekoppel word. Hierdie pen sal die sein stuur om die relais te aktiveer.

Vir die drukknoppie, koppel een terminaal aan digitale pen 2 op die Arduino. Die ander terminaal moet aan GND gekoppel word. Hierdie opstelling gebruik die interne optrekweerstand van die Arduino, so maak seker dat die pen in die kode op INPUT_PULLUP gestel is. Wanneer die knoppie gedruk word, sal dit die pen na LAAG bring, wat 'n sein na die Arduino stuur.

Vir die WS-las, koppel een draad aan die COM-terminaal op die relais en die ander draad aan die NO-terminaal. Hierdie konfigurasie sal die WS-las toelaat om aan te skakel wanneer die relais geaktiveer word. Maak altyd seker dat die WS-verbindings veilig en geïsoleer is.

Kode Voorbeelde & Deurloop

Die volgende kode initialiseer die nodige penne en stel die relais om aanvanklik af te bly. Die knoppiedruk wissel die toestand van die relais en werk die ligstatus dienooreenkomstig by.

int pbuttonPin = 2; // koppel uitvoer aan drukknoppie
int relayPin = 10; // Gekoppel aan relais (LED)

void setup() {
  Serial.begin(9600);
  pinMode(pbuttonPin, INPUT_PULLUP); 
  pinMode(relayPin, OUTPUT);
  digitalWrite(relayPin, HIGH); // hou die las AF aan die begin
}

In die kode is die veranderlike pbuttonPin op pen 2 gestel, wat vir die drukknoppie gebruik word. Die relayPin is op pen 10 gestel, wat die relais beheer. Die digitalWrite-funksie word gebruik om te verseker dat die relais in die AF-toestand begin.

void loop() {
  val = digitalRead(pbuttonPin); // lees die drukknoppiewaarde
  if(val == HOOG && lightON == LAAG) {
    pushed = 1 - pushed; // wissel die drukstatus
    delay(100);
  }
  if(pushed == HOOG) {
    digitalWrite(relayPin, LAAG); // skakel die relais AAN
  } else {
    digitalWrite(relayPin, HOOG); // skakel die relais AF
  }
}

Hierdie gedeelte van die kode kontroleer voortdurend die toestand van die drukknoppie. Wanneer die knoppie gedruk word, wissel dit die pushed-veranderlike. Afhangende van die waarde van pushed, word die relais AAN of AF geskakel, wat die lig effektief beheer. Hierdie lus loop voortdurend, wat verseker dat die ligstatus intyds bygewerk word.

Vir volledige kodebesonderhede, verwys asseblief na die kode wat onder die artikel gelaai is.

Demonstrasie / Wat om te VerwAg

Wanneer jy die drukknoppie druk, sal die relais aktiveer en die gekoppelde WS-gloeilamp aanskakel. Om die knoppie weer te druk, sal die gloeilamp afskakel. Die reeksmonitor sal die statusboodskappe vertoon, wat aandui of die lig AAN of AF is. As jy probleme ondervind, maak seker dat die bedrading korrek is, en kyk vir enige drywende invoere wat onverwagte gedrag kan veroorsaak (in video by 10:00).

Video Tydstempels

  • 00:00 - Inleiding
  • 01:30 - Hardeware Oorsig
  • 03:15 - Bedradingsinstruksies
  • 05:45 - Kode Deurloop
  • 08:00 - Demonstrasie

Beelde

5V LOW-Level triggered Relay module
5V LOW-Level triggered Relay module
5V LOW-LEVEL trigger relay
5V LOW-LEVEL trigger relay
Arduino wiring for AC bulb, LED and push button
Arduino wiring for AC bulb, LED and push button
5V LOW-LEVEL trigger relay
5V LOW-LEVEL trigger relay
34-Using an Arduino push button to push-on and push-off a relay and AC bulb (toggle)
Taal: C++
/*
 * This is the Arduino code for a push button to turn ON and OFF a relay and AC bulb.
It toggles the bulb ON and OFF.
 * The output pin 10 is connected to the relay.
 * Watch video instructions on YouTube: https://youtu.be/7CCSRs5bvH0
 * Be careful working with AC; it is dangerous. Disconnect from AC power when working and wear protective gloves when touching AC components.
 
 * Full explanation of this code and wiring diagram is available in
 * my Arduino Course at Udemy.com here: http://robojax.com/L/?id=62

 * Written by Ahmad Shamshiri on December 14, 2017 in Ajax, Ontario, Canada
 * in Ajax, Ontario, Canada. www.robojax.com
 * 

 * Get this code and other Arduino codes from Robojax.com.
Learn Arduino step by step in a structured course with all materials, wiring diagrams, and libraries
all in one place. Purchase my course on Udemy.com: http://robojax.com/L/?id=62

If you found this tutorial helpful, please support me so I can continue creating 
content like this. You can support me on Patreon: http://robojax.com/L/?id=63

or make a donation using PayPal: http://robojax.com/L/?id=64

 *  * 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 pbuttonPin = 2;// connect output to push button
int relayPin = 10;// Connected to relay (LED)

int val = 0; // push value from pin 2
int lightON = 0;//light status
int pushed = 0;//push status


void setup() {
	// Robojax.com code and video tutorial for push button ON and OFF
  Serial.begin(9600);
  pinMode(pbuttonPin, INPUT_PULLUP); 
  pinMode(relayPin, OUTPUT);
 digitalWrite(relayPin, HIGH);// keep the load OFF at the begining. If you wanted to be ON, change the HIGH to LOW
}

void loop() {
// Robojax.com code and video tutorial for push button ON and OFF
  val = digitalRead(pbuttonPin);// read the push button value

  if(val == HIGH && lightON == LOW){

    pushed = 1-pushed;
    delay(100);
  }    

  lightON = val;

      if(pushed == HIGH){
        Serial.println("Light ON");
        digitalWrite(relayPin, LOW); 
       
      }else{
        Serial.println("Light OFF");
        digitalWrite(relayPin, HIGH);
   
      }     

// Robojax.com code and video tutorial for push button ON and OFF

  delay(100);
}

Hulpbronne en verwysings

Lêers📁

Geen lêers beskikbaar.