Acest tutorial face parte din: Controlul releului folosind Arduino
Acesta este un grup de videoclipuri, toate legate de ștafetă. Linkuri către alte videoclipuri sunt sub acest articol.
Folosirea unui buton de tip push de la Arduino pentru a comuta un releu și un bec de curent alternativ
În acest tutorial, vom învăța cum să controlăm un bec de curent alternativ sau o lumină LED folosind un buton și un releu. Butonul va comuta lumina pornit/oprit, menținându-și starea chiar și atunci când butonul este eliberat. Această configurație nu este doar practică, ci și o introducere excelentă în lucrul cu relee și sarcini de curent alternativ.

Pe măsură ce progresăm, vom acoperi componentele necesare, instrucțiunile de cablare și codul Arduino care face posibil acest proiect. Asigurați-vă că urmăriți videoclipul asociat pentru un ghid vizual și explicații detaliate (în videoclip la 00:00).

Hardware Explicat
Pentru acest proiect, vom folosi un modul de releu, o placă Arduino și un buton. Modulul de releu acționează ca un comutator care poate controla sarcini de curent alternativ de înaltă tensiune, cum ar fi un bec, fiind controlat de semnalele de joasă tensiune ale Arduino. Modulul de releu are trei terminale principale pentru conectarea sarcinii: Comun (COM), Normal Deschis (NO) și Normal Închis (NC).
Butonul servește ca interfață de utilizator pentru a comuta starea releului. Este conectat la unul dintre pinii digitali de pe Arduino. Când butonul este apăsat, trimite un semnal către Arduino, care apoi activează sau dezactivează releul în consecință. Această interacțiune simplă ne permite să controlăm lumina cu ușurință.
Detalii din Fișa Tehnică pentru Releu
| Producător | Songle |
|---|---|
| Număr de piesă | SRD-05VDC-SL-C |
| Tensiunea bobinei | 5 VDC |
| Tensiunea de comutare | AC 250 V / DC 30 V |
| Curentul de comutare | 10 A max. |
| Rezistența de contact | ≤ 100 mΩ |
| Rezistența de izolație | ≥ 1000 MΩ |
| Temperatura de operare | -40 până la +70 °C |
| Pachet | Modul de releu standard |
- Asigurați-vă că releul este evaluat pentru sarcina pe care o comutați.
- Mențineți modulul de releu alimentat cu 5 VDC.
- Folosiți izolație adecvată pentru conexiunile de curent alternativ.
- Fiți precauți când lucrați cu curent alternativ; asigurați-vă că circuitul este deconectat înainte de a face modificări.
- Conectați butonul la pinul de intrare desemnat de pe Arduino.
- Utilizați modul INPUT_PULLUP pentru pinul butonului pentru a evita necesitatea rezistențelor externe.
- Testați funcționarea releului cu o tensiune mai mică înainte de a conecta sarcini de curent alternativ.
- Verificați conexiunile pentru a evita scurtcircuitele.
Instrucțiuni de Cablare

Pentru a cabla modulul de releu, începeți prin conectarea pinului VCC al releului la pinul de 5V de pe Arduino, iar pinul GND al releului la pinul GND de pe Arduino. Pinul IN de pe releu ar trebui conectat la pinul digital 10 de pe Arduino. Acest pin va trimite semnalul pentru a activa releul.
Pentru buton, conectați un terminal la pinul digital 2 de pe Arduino. Celălalt terminal ar trebui conectat la GND. Această configurare folosește rezistența internă de pull-up a Arduino, deci asigurați-vă că pinul este setat la INPUT_PULLUP în cod. Când butonul este apăsat, va aduce pinul la LOW, trimițând un semnal către Arduino.
Pentru sarcina de curent alternativ, conectați un fir la terminalul COM de pe releu și celălalt fir la terminalul NO. Această configurație va permite sarcinii de curent alternativ să se pornească atunci când releul este activat. Asigurați-vă întotdeauna că conexiunile de curent alternativ sunt sigure și izolate.
Exemple de Cod și Explicații
Următorul cod inițializează pinii necesari și setează releul să rămână oprit inițial. Apăsarea butonului comută starea releului și actualizează starea luminii în consecință.
int pbuttonPin = 2; // conectează ieșirea la buton
int relayPin = 10; // Conectat la releu (LED)
void setup() {
Serial.begin(9600);
pinMode(pbuttonPin, INPUT_PULLUP);
pinMode(relayPin, OUTPUT);
digitalWrite(relayPin, HIGH); // menține sarcina OPRITĂ la început
}
În cod, variabila pbuttonPin este setată la pinul 2, care este folosit pentru buton. relayPin este setat la pinul 10, controlând releul. Funcția digitalWrite este folosită pentru a asigura că releul pornește în starea OPRIT.
void loop() {
val = digitalRead(pbuttonPin); // citește valoarea butonului
if(val == HIGH && lightON == LOW) {
pushed = 1 - pushed; // comută starea apăsat
delay(100);
}
if(pushed == HIGH) {
digitalWrite(relayPin, LOW); // pornește releul
} else {
digitalWrite(relayPin, HIGH); // oprește releul
}
}
Această secțiune de cod verifică continuu starea butonului. Când butonul este apăsat, comută variabila pushed. În funcție de valoarea lui pushed, releul este pornit sau oprit, controlând efectiv lumina. Această buclă rulează continuu, asigurând că starea luminii este actualizată în timp real.
Pentru detalii complete despre cod, vă rugăm să consultați codul încărcat mai jos în articol.
Demonstrație / Ce să Vă Așteptați
Când apăsați butonul, releul se va activa, pornind becul de curent alternativ conectat. Apăsarea butonului din nou va opri becul. Monitorul serial va afișa mesajele de stare, indicând dacă lumina este PORNITĂ sau OPRITĂ. Dacă întâmpinați probleme, asigurați-vă că cablarea este corectă și verificați eventualele intrări flotante care ar putea cauza comportament neașteptat (în videoclip la 10:00).
Marcaje Temporale din Videoclip
- 00:00 - Introducere
- 01:30 - Prezentare Generală a Hardware-ului
- 03:15 - Instrucțiuni de Cablare
- 05:45 - Explicația Codului
- 08:00 - Demonstrație
Acest tutorial face parte din: Controlul releului folosind Arduino
- Cod Arduino și Video pentru un Relais Dual-Channel 5V
- Controlul unui releu de 5V folosind Arduino pentru a controla o sarcină AC sau DC, cum ar fi un bec sau un motor
- TTP224 Senzor tactil cu 4 canale pentru comutarea sarcinilor AC/DC cu releu
- Utilizând un modul de releu de 5V (cu declanșare joasă) cu Arduino
- Utilizarea unui termocuplu tip K MAX6675 cu releu și afișaj
- Utilizarea unui Reed Switch pentru a Controla un Relais și Sarcini AC/DC cu un Arduino
- Folosind un modul tactil TTP223B și un releu pentru a controla sarcini AC/DC cu un Arduino
/*
* 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);
}
Resurse și referințe
Fișiere📁
Nu sunt disponibile fișiere.