Code de recherche

Utiliser un bouton-poussoir Arduino pour commander un relais et une ampoule en courant alternatif

Utiliser un bouton-poussoir Arduino pour commander un relais et une ampoule en courant alternatif

Dans ce tutoriel, nous apprendrons comment contrôler une ampoule en courant alternatif (AC) ou une lampe LED à l'aide d'un bouton-poussoir et d'un relais. Le bouton-poussoir basculera la lumière entre allumée et éteinte, la laissant dans son dernier état même après le relâchement du bouton. Ce montage n'est pas seulement pratique, c'est aussi une excellente introduction à la manipulation des relais et des charges en courant alternatif.

5V LOW-LEVEL trigger relay

Au fur et à mesure, nous aborderons les composants nécessaires, les instructions de câblage et le code Arduino qui rendent ce projet possible. Assurez-vous de regarder la vidéo associée pour un guide visuel et des explications détaillées (dans la vidéo à 00:00).

5V LOW-Level triggered Relay module

Le matériel expliqué

Pour ce projet, nous utiliserons un module relais, une carte Arduino et un bouton poussoir. Le module relais agit comme un interrupteur capable de commander des charges en courant alternatif à haute tension, comme une ampoule, tout en étant contrôlé par les signaux basse tension de l'Arduino. Le module relais possède trois bornes principales pour connecter la charge : commune (COM), normalement ouverte (NO) et normalement fermée (NC).

Le bouton poussoir sert d'interface utilisateur pour basculer l'état du relais. Il est connecté à l'une des broches numériques de l'Arduino. Lorsque le bouton est enfoncé, il envoie un signal à l'Arduino, qui active ou désactive alors le relais en conséquence. Cette interaction simple nous permet de contrôler facilement la lumière.

Détails de la fiche technique du relais

FabricantSongle
Numéro de pièceSRD-05VDC-SL-C
Tension de la bobine5 V CC
Tension de commutationCA 250 V / CC 30 V
Courant de commutation10 A max.
Résistance de contact≤ 100 mΩ
Résistance d'isolement≥ 1000 MΩ
Température de fonctionnementde -40 à +70 °C
PaquetModule relais standard

  • Assurez-vous que le relais est adapté à la charge que vous commutez.
  • Maintenez le module de relais alimenté en 5 VDC.
  • Utilisez une isolation appropriée pour les connexions en courant alternatif.
  • Soyez prudent lorsque vous travaillez avec le courant alternatif ; assurez-vous que le circuit est débranché avant d'apporter des modifications.
  • Connectez le bouton-poussoir à la broche d'entrée désignée de l'Arduino.
  • Utilisez le mode INPUT_PULLUP pour la broche du bouton-poussoir afin d'éviter d'avoir recours à des résistances externes.
  • Testez le fonctionnement du relais avec une tension plus faible avant de connecter des charges en courant alternatif.
  • Vérifiez les connexions pour éviter les courts-circuits.

Instructions de câblage

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

Pour câbler le module de relais, commencez par connecter la broche VCC du relais à la broche 5V de l'Arduino, et la broche GND du relais à la broche GND de l'Arduino. La broche IN du relais doit être connectée à la broche numérique 10 de l'Arduino. Cette broche enverra le signal pour activer le relais.

Pour le bouton-poussoir, connectez une borne à la broche numérique 2 de l'Arduino. L'autre borne doit être reliée à GND. Cette configuration utilise la résistance pull-up interne de l'Arduino, donc assurez-vous que la broche est configurée en INPUT_PULLUP dans le code. Lorsque le bouton est pressé, il mettra la broche à LOW, envoyant un signal à l'Arduino.

Pour la charge en courant alternatif, branchez un fil sur la borne COM du relais et l'autre sur la borne NO. Cette configuration permettra à la charge en courant alternatif de s'allumer lorsque le relais est activé. Veillez toujours à ce que les connexions en courant alternatif soient sécurisées et isolées.

Exemples de code et guide pas à pas

Le code suivant initialise les broches nécessaires et configure le relais pour qu'il reste éteint au départ. L'appui sur le bouton bascule l'état du relais et met à jour l'état de la lumière en conséquence.

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
}

Dans le code, la variablepbuttonPinest réglé sur la broche 2, qui est utilisée pour le bouton-poussoir. LerelayPinest assigné à la broche 10, contrôlant le relais. LedigitalWriteLa fonction est utilisée pour garantir que le relais démarre à l'état 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
  }
}

Cette section du code vérifie en continu l'état du bouton-poussoir. Lorsque le bouton est appuyé, cela bascule lepushedvariable. En fonction de la valeur depushed, le relais est activé ou désactivé, contrôlant ainsi la lumière. Cette boucle s'exécute en continu, garantissant que l'état de la lumière est mis à jour en temps réel.

Pour obtenir tous les détails du code, veuillez consulter le code chargé sous l'article.

Démonstration / À quoi s'attendre

Lorsque vous appuyez sur le bouton-poussoir, le relais s'activera, allumant l'ampoule AC connectée. Appuyer à nouveau sur le bouton éteindra l'ampoule. Le moniteur série affichera des messages d'état, indiquant si la lumière est ON ou OFF. Si vous rencontrez des problèmes, assurez-vous que le câblage est correct et vérifiez l'absence d'entrées flottantes qui pourraient provoquer un comportement inattendu (dans la vidéo à 10:00).

Horodatages vidéo

  • 00:00- Introduction
  • 01:30- Aperçu du matériel
  • 03:15- Instructions de câblage
  • 05:45- Présentation du code
  • 08:00- Démonstration

Images

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

Ressources et références

Fichiers📁

Aucun fichier disponible.