Infrarouge IR : Interrupteur sans fil avec Arduino

Décrivez le but de l’image

Objectifs

  • Savoir utiliser une carte relais
  • Savoir contrôler la mise en marche/arrêt d’une charge AC/DC sans fil
  • Savoir utiliser un récepteur/émetteur IR avec Arduino
  • Savoir commander un appareil à distance
  • Etc.

Fonctionnement

Il s’agit d’un interrupteur IR sans fil. Il permet la mise en marche ou arrêt d’un appareil AC/DC en utilisant un relais e puissance télécommandé. On utilise un seul bouton de la télécommande pour changer l’état de la charge. Le montage est constitué principalement des éléments suivants.

Émetteur IR ou télécommande

Il est composé d’un bouton poussoir numéroté « 1 » dans la télécommande IR. Lorsqu’on appuie sur le bouton on inverse l’état du relais :

  • Si le relais est en état « 1 », il passera à l’état zéro
  • Si le relais est  en état « 0 », il passera à l’état « 1 »

Ce mode de fonctionnement permet d’utiliser un seul bouton poussoir pour deux modes de fonctionnement du relais (ou la charge) ON/OFF. Il est possible d’utiliser deux boutons poussoirs : le premier pour activer le relais, l’autre pour le désactiver. On distingue également deux LED  indiquant l’état effectif du relais (ON : LED bleue, OFF : LED verte).

  • Voir le projet

Récepteur IR

Il est composé d’un récepteur IR et une carte Arduino. Le récepteur transforme le signal IR en une valeur TOR (Tout Ou Rien) qui sera ensuite acquise par a carte Arduino. Si le code reçu correspond à la touche « 1 » de la télécommande, on active ou désactive le relais en fonction de l’état précédent. Je vous invite à consulter les projet 19 et 20 pour plus des détails sur le fonctionnement d’une télécommande IR et le Récepteur IR.

Carte relais

La carte relais est composée de 8 relais de puissance avec l’électronique de commande. En effet, chaque relais dispose de son propre transistor afin d’amplifier le courant de base issu de la carte Arduino et un optocoupleur pour l’isolation galvanique (isoler la partie commande : carte Arduino) et la partie puissance (la charge AC ou DC). Grâce à l’optocoupleur on peut séparer la partie puissance et empêcher la tension AC (220 V) soit transmis à la partie commande en cas de défiance. Ci-dessous les caractéristiques de la carte relais :

  • Nombre de canaux : 8
  • Alimentation partie commande: 5V
  • Caractéristiques de la partie puissance (relais) :
    •  Charge AC 250V/10A (2.5KW AC)
    • Charge DC: DC 30V/10A (300W DC)
  • Taille: 137 mm x 56 mm x 17 mm / 5,4 “x 2,2” x 0,7 “(L * W * H)
  • Taille du trou monté: 3mm / 0.12 “
  • Distance du centre du trou monté: 132 x 50 mm / 5,2 “x 2” (L * W)

Pont H de puissance à base de DEUX relais commandés – Commande du sens de rotation d’un moteur à CC module relais 1

Note : On peut commander 8 charges indépendantes avec la carte relais. Dans le présent projet on utilisera un seul canal. Le projet prochain abordera la commande IR multicanaux.

Charge

On utilisera une lampe 220V d’une puissance égale à 40W (voir l’image ci-dessous). On coupe le fil de phase puis on branche les deux bouts avec les broches du relais numéros « 4 » dans la carte relais. La sortie digitale « 10 » de la carte Arduino sera liée avec l’entrée « 4 » de la carte relais (voir le programme pour plus des détails).

Programme Arduino

#include "IRremote.h"


// Numéro du pin sortie du récepteur 
long int res_val;
const int receiver = 11; 

// Indicateur de l'état de la charge  
const int RelaisON = 2;
const int RelaisOFF = 3;
int charge_etat=0;

// Relais de puissance  
const int RelaisPin = 10;

// Déclaration d'un objet IRrecv
IRrecv irrecv(receiver);           
decode_results results;            

void setup()  
{
  // Init relais  
  pinMode(RelaisPin, OUTPUT);
  
  // Init du récepteur 
  irrecv.enableIRIn();
  
  // Indicateur mise en marche/arrêt du relais 
  pinMode(RelaisON, OUTPUT);
  pinMode(RelaisOFF, OUTPUT);
  
  // Initialisation 
  digitalWrite(RelaisON, LOW);   
  digitalWrite(RelaisOFF, HIGH);                                        
  digitalWrite(RelaisPin, LOW); 
}

void loop()  
{
  // Lecture de la télécommande 
  if (irrecv.decode(&results))
  {
    // Récupération du code   
    res_val = results.value;
    
    // Commande de la charge 
    if (res_val==0xFF30CF) // Marche/Arrêt 
    {
      if (charge_etat==0)
      {
        // Allumé indicateur Arrêt 
        digitalWrite(RelaisOFF, HIGH); 
        digitalWrite(RelaisON, LOW); 

        // Mise en arrêt de la charge 
        digitalWrite(RelaisPin, LOW); 

        // Initialisation de l'état 
        charge_etat=1; 
      }
      else
      {
        // Allumé indicateur  marche  
        digitalWrite(RelaisOFF, LOW); 
        digitalWrite(RelaisON, HIGH); 

        // Mise en marche de la charge 
        digitalWrite(RelaisPin, HIGH); 

        // Initialisation de l'état 
        charge_etat=0; 
      }
    }
     
    // Réception de la nouvelle valeur
    irrecv.resume();
  }  
}

Téléchargement du programme

Photos du projet

Projet Interrupteur sans fil IR avec Arduino (12)

Projet Interrupteur sans fil IR avec Arduino (11)

Projet Interrupteur sans fil IR avec Arduino (9)

Projet Interrupteur sans fil IR avec Arduino (5)

Projet Interrupteur sans fil IR avec Arduino (4)

Vidéo démonstration

Tout les projets microcontrôleur