Questo tutorial è parte di: Controllo del relè tramite Arduino
Questo è un gruppo di video tutti correlati alla staffetta. I link ad altri video si trovano sotto questo articolo.
Usare un pulsante Arduino per commutare un relè e una lampadina in corrente alternata
In questo tutorial impareremo come controllare una lampadina a corrente alternata o una luce LED usando un pulsante e un relè. Il pulsante commuta la luce tra acceso e spento, mantenendo lo stato anche quando il pulsante viene rilasciato. Questa configurazione non è solo pratica, ma è anche un'ottima introduzione al lavoro con i relè e i carichi in corrente alternata.

Man mano che procediamo, tratteremo i componenti necessari, le istruzioni per il cablaggio e il codice Arduino che rende questo progetto possibile. Assicurati di guardare il video associato per una guida visiva e spiegazioni dettagliate (nel video a 00:00).

L'hardware spiegato
Per questo progetto useremo un modulo relè, una scheda Arduino e un pulsante. Il modulo relè funge da interruttore in grado di controllare carichi AC ad alta tensione, come una lampadina, pur essendo comandato dai segnali a bassa tensione della scheda Arduino. Il modulo relè dispone di tre terminali principali per il collegamento del carico: Comune (COM), Normalmente Aperto (NO) e Normalmente Chiuso (NC).
Il pulsante serve come interfaccia utente per alternare lo stato del relè. È collegato a uno dei pin digitali dell'Arduino. Quando il pulsante viene premuto, invia un segnale all'Arduino, il quale attiva o disattiva il relè di conseguenza. Questa semplice interazione ci permette di controllare facilmente la luce.
Dettagli della scheda tecnica del relè
| Produttore | Songle |
|---|---|
| Numero di parte | SRD-05VDC-SL-C |
| Tensione della bobina | 5 V CC |
| Tensione di commutazione | CA 250 V / CC 30 V |
| Corrente di commutazione | 10 A max. |
| Resistenza di contatto | ≤ 100 mΩ |
| Resistenza d'isolamento | ≥ 1000 MΩ |
| Temperatura di esercizio | da -40 a +70 °C |
| Pacchetto | Modulo relè standard |
- Assicurati che il relè sia dimensionato per il carico che stai commutando.
- Mantieni il modulo relè alimentato con 5 VDC.
- Utilizzare un adeguato isolamento per le connessioni in corrente alternata
- Fai attenzione quando lavori con la corrente alternata; assicurati che il circuito sia scollegato prima di apportare modifiche.
- Collega il pulsante al pin di ingresso designato sull'Arduino.
- Usa la modalità INPUT_PULLUP sul pin del pulsante per evitare la necessità di resistenze esterne.
- Verificare il funzionamento del relè con una tensione più bassa prima di collegare carichi in corrente alternata (AC).
- Verificare le connessioni per evitare cortocircuiti.
Istruzioni di cablaggio

Per cablare il modulo relè, inizia collegando il pin VCC del relè al pin 5V dell'Arduino, e il pin GND del relè al pin GND dell'Arduino. Il pin IN del relè dovrebbe essere collegato al pin digitale 10 dell'Arduino. Questo pin invierà il segnale per attivare il relè.
Per il pulsante, collega un terminale al pin digitale 2 dell'Arduino. L'altro terminale deve essere collegato al GND. Questa configurazione utilizza la resistenza di pull-up interna dell'Arduino, quindi assicurati che il pin sia impostato come INPUT_PULLUP nel codice. Quando il pulsante viene premuto, porterà il pin a LOW, inviando un segnale all'Arduino.
Per il carico AC, collegare un filo al terminale COM del relè e l'altro filo al terminale NO. Questa configurazione consentirà al carico AC di accendersi quando il relè è attivato. Assicurarsi sempre che i collegamenti AC siano sicuri e isolati.
Esempi di codice e guida passo passo
Il codice seguente inizializza i pin necessari e imposta il relè perché rimanga inizialmente spento. La pressione del pulsante commuta lo stato del relè e aggiorna di conseguenza lo stato della luce.
int pbuttonPin = 2; // connect output to push button
int relayPin = 10; // Connected to relay (LED)
void setup() {
Serial.begin(9600);
pinMode(pbuttonPin, INPUT_PULLUP);
pinMode(relayPin, OUTPUT);
digitalWrite(relayPin, HIGH); // keep the load OFF at the beginning
}
Nel codice, la variabilepbuttonPinè impostato sul pin 2, che viene usato per il pulsante. IlrelayPinè impostato sul pin 10, controllando il relè. IldigitalWriteLa funzione viene utilizzata per garantire che il relè inizi nello stato OFF.
void loop() {
val = digitalRead(pbuttonPin); // read the push button value
if(val == HIGH && lightON == LOW) {
pushed = 1 - pushed; // toggle the push status
delay(100);
}
if(pushed == HIGH) {
digitalWrite(relayPin, LOW); // turn the relay ON
} else {
digitalWrite(relayPin, HIGH); // turn the relay OFF
}
}
Questa sezione di codice controlla continuamente lo stato del pulsante. Quando il pulsante viene premuto, commuta ilpushedvariabile. A seconda del valore dipushed, il relè viene acceso o spento, controllando efficacemente la luce. Questo ciclo viene eseguito continuamente, garantendo che lo stato della luce sia aggiornato in tempo reale.
Per i dettagli completi del codice, consultare il codice caricato sotto l'articolo.
Dimostrazione / Cosa aspettarsi
Quando premi il pulsante, il relè si attiverà, accendendo la lampadina a corrente alternata collegata. Premendo di nuovo il pulsante la lampadina si spegnerà. Il monitor seriale mostrerà i messaggi di stato, indicando se la luce è ON o OFF. Se riscontri problemi, verifica che il cablaggio sia corretto e controlla eventuali ingressi fluttuanti che potrebbero causare comportamenti imprevisti (nel video a 10:00).
Marcatori temporali del video
- 00:00- Introduzione
- 01:30- Panoramica dell'hardware
- 03:15- Istruzioni per il cablaggio
- 05:45- Spiegazione passo-passo del codice
- 08:00- Dimostrazione
Questo tutorial è parte di: Controllo del relè tramite Arduino
- Codice Arduino e video per un relè a doppio canale da 5 V
- Controlling a 5V Relay Using Arduino to cotrol AC or DC load like bulb or motor
- TTP224 4-Channel Touch Sensor to Turn AC/DC Loads with Relay
- Utilizzando un modulo relè a 5V (bassa attivazione) con Arduino
- Utilizzo di una termocoppia di tipo K con MAX6675, relè e display
- Using a Reed Switch to Control a Relay and AC/DC Loads with an Arduino
- Using a TTP223B touch module and relay to control AC/DC loads with an 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);
}
Risorse e riferimenti
File📁
Nessun file disponibile.