Cerca codice

Usare un pulsante Arduino per commutare un relè e una lampadina in corrente alternata

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.

5V LOW-LEVEL trigger relay

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

5V LOW-Level triggered Relay module

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è

ProduttoreSongle
Numero di parteSRD-05VDC-SL-C
Tensione della bobina5 V CC
Tensione di commutazioneCA 250 V / CC 30 V
Corrente di commutazione10 A max.
Resistenza di contatto≤ 100 mΩ
Resistenza d'isolamento≥ 1000 MΩ
Temperatura di esercizioda -40 a +70 °C
PacchettoModulo 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

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

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

Immagini

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)
Lingua: 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);
}

Risorse e riferimenti

File📁

Nessun file disponibile.