Hierdie tutorialie is deel van: Beheer van Relais met behulp van Arduino
Hierdie is groepvideo's wat almal met aflos verband hou. Skakels na ander video's is onder hierdie artikel.
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.

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).

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
| Vervaardiger | Songle |
|---|---|
| Deelnommer | SRD-05VDC-SL-C |
| Spoolspanning | 5 VGS |
| Skakelspanning | WS 250 V / GS 30 V |
| Skakelstroom | 10 A maks. |
| Kontakweerstand | ≤ 100 mΩ |
| Isolasieweerstand | ≥ 1000 MΩ |
| Werkingstemperatuur | -40 tot +70 °C |
| Verpakking | Standaard 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

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
Hierdie handleiding is deel van: Beheer van Relais met behulp van Arduino
- Arduino-kode en video vir 'n dubbelkanaal 5V-relais
- Beheer van 'n 5V-relais met Arduino om AC- of DC-las soos 'n gloeilamp of motor te beheer
- TTP224 4-kanaal Raaksensor om AC/DC-laste met Relais te Skakel
- Gebruik 'n 5V Relaismodule (Lae-Trigger) met Arduino
- Gebruik van 'n MAX6675 K-tipe termokoppel met relais en vertoning
- Gebruik van 'n Reed-skakelaar om 'n Relais en WS/GS-laste met 'n Arduino te beheer
- Deur 'n TTP223B-raakmodule en relais te gebruik om WS/GS-laste met 'n Arduino te beheer
/*
* 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
-
Internaal
Lêers📁
Geen lêers beskikbaar.