Tento návod je súčasťou: Ovládanie relé pomocou Arduina
Toto je skupina videí, ktoré sa všetky týkajú štafety. Odkazy na ďalšie videá nájdete pod týmto článkom.
Použitie tlačidla Arduino na prepínanie relé a AC žiarovky
V tomto návode sa naučíme, ako ovládať AC žiarovku alebo LED svetlo pomocou tlačidla a relé. Tlačidlo bude prepínať svetlo zapnuté a vypnuté, pričom si zachová svoj stav aj po uvoľnení tlačidla. Toto zapojenie je nielen praktické, ale aj skvelým úvodom do práce s relé a AC záťažami.

Ako budeme postupovať, preberieme potrebné komponenty, pokyny na zapojenie a kód pre Arduino, ktorý tento projekt umožňuje. Nezabudnite si pozrieť priložené video pre vizuálny sprievodca a podrobné vysvetlenia (vo videu o 00:00).

Vysvetlenie hardvéru
Pre tento projekt použijeme relé modul, dosku Arduino a tlačidlo. Relé modul funguje ako spínač, ktorý môže ovládať vysokonapäťové AC záťaže, ako je žiarovka, pričom je ovládaný nízkonapäťovými signálmi z Arduina. Relé modul má tri hlavné terminály na pripojenie záťaže: Common (COM), Normally Open (NO) a Normally Closed (NC).
Tlačidlo slúži ako používateľské rozhranie na prepínanie stavu relé. Je pripojené k jednému z digitálnych pinov na Arduine. Keď je tlačidlo stlačené, vyšle signál do Arduina, ktoré potom aktivuje alebo deaktivuje relé podľa potreby. Táto jednoduchá interakcia nám umožňuje ľahko ovládať svetlo.
Podrobnosti z datasheetu pre relé
| Výrobca | Songle |
|---|---|
| Číslo dielu | SRD-05VDC-SL-C |
| Napätie cievky | 5 VDC |
| Spínacie napätie | AC 250 V / DC 30 V |
| Spínací prúd | max. 10 A |
| Kontaktný odpor | ≤ 100 mΩ |
| Izolačný odpor | ≥ 1000 MΩ |
| Prevádzková teplota | -40 až +70 °C |
| Balenie | Štandardný relé modul |
- Uistite sa, že relé je dimenzované na záťaž, ktorú spínate.
- Udržujte relé modul napájaný 5 VDC.
- Použite vhodnú izoláciu pre AC pripojenia.
- Buďte opatrní pri práci s AC napätím; pred vykonaním zmien sa uistite, že je obvod odpojený.
- Pripojte tlačidlo k určenému vstupnému pinu na Arduine.
- Použite režim INPUT_PULLUP pre pin tlačidla, aby ste sa vyhli potrebe externých rezistorov.
- Otestujte činnosť relé s nižším napätím pred pripojením AC záťaží.
- Skontrolujte pripojenia, aby ste predišli skratom.
Pokyny na zapojenie

Na zapojenie relé modulu začnite pripojením pinu VCC relé na pin 5V na Arduine a pinu GND relé na pin GND na Arduine. Pin IN na relé by mal byť pripojený na digitálny pin 10 na Arduine. Tento pin bude vysielať signál na aktiváciu relé.
Pre tlačidlo pripojte jeden terminál na digitálny pin 2 na Arduine. Druhý terminál by mal byť pripojený na GND. Toto zapojenie využíva interný pull-up rezistor Arduina, takže sa uistite, že pin je v kóde nastavený na INPUT_PULLUP. Keď je tlačidlo stlačené, privedie pin na LOW, čím vyšle signál do Arduina.
Pre AC záťaž pripojte jeden vodič na terminál COM na relé a druhý vodič na terminál NO. Táto konfigurácia umožní, aby sa AC záťaž zapnula, keď je relé aktivované. Vždy sa uistite, že AC pripojenia sú bezpečné a izolované.
Príklady kódu a vysvetlenie
Nasledujúci kód inicializuje potrebné piny a nastaví relé tak, aby spočiatku zostalo vypnuté. Stlačenie tlačidla prepína stav relé a podľa toho aktualizuje stav svetla.
int pbuttonPin = 2; // pripojiť výstup k tlačidlu
int relayPin = 10; // pripojené k relé (LED)
void setup() {
Serial.begin(9600);
pinMode(pbuttonPin, INPUT_PULLUP);
pinMode(relayPin, OUTPUT);
digitalWrite(relayPin, HIGH); // udržiavať záťaž VYPNUTÚ na začiatku
}
V kóde je premenná pbuttonPin nastavená na pin 2, ktorý sa používa pre tlačidlo. relayPin je nastavený na pin 10, ktorý ovláda relé. Funkcia digitalWrite sa používa na zabezpečenie, že relé začína vo VYPNUTOM stave.
void loop() {
val = digitalRead(pbuttonPin); // prečítať hodnotu tlačidla
if(val == HIGH && lightON == LOW) {
pushed = 1 - pushed; // prepnúť stav stlačenia
delay(100);
}
if(pushed == HIGH) {
digitalWrite(relayPin, LOW); // zapnúť relé
} else {
digitalWrite(relayPin, HIGH); // vypnúť relé
}
}
Táto časť kódu nepretržite kontroluje stav tlačidla. Keď je tlačidlo stlačené, prepína premennú pushed. V závislosti od hodnoty pushed sa relé zapne alebo vypne, čím efektívne ovláda svetlo. Táto slučka beží nepretržite, čo zabezpečuje aktualizáciu stavu svetla v reálnom čase.
Pre úplné podrobnosti o kóde si pozrite kód načítaný nižšie pod článkom.
Demonštrácia / Čo očakávať
Keď stlačíte tlačidlo, relé sa aktivuje a zapne pripojenú AC žiarovku. Opätovné stlačenie tlačidla vypne žiarovku. Sériový monitor zobrazí stavové správy, ktoré indikujú, či je svetlo ZAPNUTÉ alebo VYPNUTÉ. Ak narazíte na problémy, uistite sa, že zapojenie je správne, a skontrolujte prípadné plávajúce vstupy, ktoré by mohli spôsobiť neočakávané správanie (vo videu o 10:00).
Časové značky videa
- 00:00 - Úvod
- 01:30 - Prehľad hardvéru
- 03:15 - Pokyny na zapojenie
- 05:45 - Vysvetlenie kódu
- 08:00 - Demonštrácia
Tento návod je súčasťou: Ovládanie relé pomocou Arduina
- Arduino kód a video pre dvojkanálové 5V relé
- Ovládanie 5V relé pomocou Arduina na ovládanie AC alebo DC záťaže, ako je žiarovka alebo motor
- TTP224 4-kanálový dotykový senzor na zapínanie AC/DC záťaží s relé
- Používanie 5V relé modulu (nízkoprahového) s Arduinom
- Použitie termočlánku typu K MAX6675 s relé a displejom
- Použitie Reedovho spínača na ovládanie relé a AC/DC záťaží s Arduinom
- Použitie dotykového modulu TTP223B a relé na ovládanie AC/DC záťaží pomocou Arduina
/*
* 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);
}
Zdroje a referencie
Súbory📁
Žiadne súbory nie sú k dispozícii.