Différences entre versions de « Relais »

De MCHobby - Wiki
Sauter à la navigation Sauter à la recherche
Ligne 110 : Ligne 110 :
 
Pour le plaisir, j'ai aussi décidé d'éteindre automatiquement l'éclairage après un certain temps de fonctionnement... pour l'exemple, je l'ai fixé à 5 secondes (mais cela pourrait être plusieurs heures).
 
Pour le plaisir, j'ai aussi décidé d'éteindre automatiquement l'éclairage après un certain temps de fonctionnement... pour l'exemple, je l'ai fixé à 5 secondes (mais cela pourrait être plusieurs heures).
  
Ce projet est issus de [[http://arduino103.blogspot.com/2011/05/controle-de-relais.html cet article paru sur Arduino Notepad]
+
Ce projet est issus de [http://arduino103.blogspot.com/2011/05/controle-de-relais.html cet article paru sur Arduino Notepad]
  
 
=== Montage ===
 
=== Montage ===

Version du 26 mars 2012 à 21:27

Introduction

Un relais est un organe électrique permettant la commutation de liaisons électriques. Il est chargé de transmettre un ordre de la partie commande à la partie puissance d'un appareil électrique et permet, entre autres, un isolement galvanique entre les deux parties. Le relais est donc utile pour effectuer une commande de puissance de type tout ou rien.

Relais.png

Source [Wikipedia]

Relais2.jpg

Source [Wikipedia]

Si les relais les plus répandus ne permettent pas de raccorder directement un chauffage électrique (trop puissant), ils acceptent néanmoins couramment une plus d'un ampère sous 230 Volts.

Cela offre déjà bien des possibilités :-)

Pour plus d'information sur les relais, voir l'article consacré aux relais électriques (sur Wikipédia).

Le Mini Kit Relais

MC Hobby propose un mini kit relais en vente ici (DODO TODO LINK!).

Relais (mini-kit).jpg

Ce mini kit dispose de tous les éléments nécessaires pour effectuer le montage a base de relais.

Ce kit contient:

  • Un transistor P2N2222
  • Une résistance de 10k Ohm
  • Une diode pour le circuit en roue libre
  • Un mini relais HFD41 D41A
    • Résistance de la bobine 120 Ohm
    • Tension de fonctionnement 5V continu
    • Courant maximum 2A
    • Tension maximale: 240V alternatif; 30V continu
    • Pouvoir de coupure: 30 watt à 240 volts (attention, ce relai est calibré pour la base tension!!!)

la fiche technique du relais est disponible ici.

Montage (vue schématique)

Le schéma de montage d'un relais se présente, par exemple, comme suit:

Relais-MontageDeBase-schema.png

Le schéma ci-dessous présente le même schéma éclaté en schéma de commande et schéma de puissance.

La vue offre également une approche plus visuelle (ou le relai est représenté comme vu par dessus).

Circuit de commande:

MiniRelais Montage Commande.jpg

Circuit de puissance:

Le dessin ci-dessous présente un exemple de montage du relais HFD41 D41A.

Attention, ce relai est calibré pour une utilisation base tension, ne faites pas de montage 220 Volts avec ce type de relais!!!

MiniRelais Montage puissance.jpg

Montage (en image)

Voici une série de clichés présentant le montage du relais.

Notez les points auxquels il faut faire attention comme:

  • la polarisation du transistor
  • le sens de raccordement de la diode (notez le détrompeur)

MiniRelais - Montage1 Low-Res.jpg

Les "contacts du relais" sont les contacts de raccordement du circuit de puissance.

Vous y brancherez votre petit moteur électrique, LEDs, éclairage 12v basse puissance, etc raccordé sur sa propre source de tension.

MiniRelais - Montage2 Low-Res.jpg

MiniRelais - Montage3 Low-Res.jpg

Truc et astuce

Si vous voulez tester votre montage avant de le raccorder sur votre Arduino, vous pouvez utiler une source de tension indépendante (+5v et GND/Masse).

Le relais doit s'actionner lorsque vous branchez la base du transistor sur le +5 volts (le fil vert, via la résistance de 10kOhm) et se relâcher lorsque vous raccordez la base à la masse.

Faire plusieurs petits tests peut l'avérer utile, surtout si la diode est mal branchée (elle est crucial).

En effet, si la diode est manquante ou raccordée à l'envers, le transistor ne résistera pas longtemps aux pointes de surtensions e(nvoyées par la bobine du relais lors du déclenchement de celui-ci).

Le code

Le code ci-dessous présente l'activation et désactivation du relais toutes les secondes.

int relaisPin = 12;

void setup(){
  pinMode( relaisPin, OUTPUT );
}

void loop() {
  digitalWrite( relaisPin, HIGH );
  delay( 1000 );
  digitalWrite( relaisPin, LOW );
  delay( 1000 );
}

Il est bien entendu possible de conditionner l'activation/désactivation du relais en fonction de l'environnement (détecteur infrarouge, présente de lumière, température trop élevée, pression sur un bouton, etc). Pour plus d'information, voir l'autre exemple de cet article.

Le relais temporisé

Dans ce petit projet démonstratif, je vais utiliser un relai pour commander un circuit de puissance. Dans le cas ci-présent, il s'agit d'une décoration de Noël.

Le principe général est assez simple... on appuie une fois sur le bouton poussoir et le lampe s'allume... on appuie une deuxième fois et elle s'éteint. Pour le plaisir, j'ai aussi décidé d'éteindre automatiquement l'éclairage après un certain temps de fonctionnement... pour l'exemple, je l'ai fixé à 5 secondes (mais cela pourrait être plusieurs heures).

Ce projet est issus de cet article paru sur Arduino Notepad

Montage

Le montage est fort similaire à celui utilisé pour la commande de moteur DC tel que décrit dans l'article "Contrôle Moteur DC via transistor (digital et analogique)".

Veuillez toujours à bien raccorder votre diode au risque de satelliser le transistor. N'hésitez pas non plus à tester votre montage (avant raccordement à Arduino) en plaçant alternativement 5 volts et 0 volt sur la résistance raccordée à la base du transistor.

Montage 1: exemple standard

Si vous n'avez pas d'appareil de puissance à commander, vous pouvez toujours opter pour la commande d'une LED. Relai Tempo1.png

Montage 2:

Par contre, si vous avez la chance de pouvoir allumer quelque-chose d'autre qu'un radiateur électrique, je vous propose le montage ci-dessous.

Vérifiez quand même que vous restez dans les contraintes technique de votre relais.

Relai Tempo 25v.png

Sur cet autre montage, le circuit de puissance est pleinement exploité pour y raccorder un point d'éclairage en 25 volts alternatif.

Notez que le circuit 25 volts est totalement isolé du circuit de commande (Arduino + transistor + bobine du relai).

Résultat

Vous pouvez admirer le résultat de ce montage sur [cette vidéo YouTube].

Le code

Source: Relai_Temporise.pde

/*
 *
 * Controle d'un relai on/off par bouton poussoir.
 * Extinction automatique après 5 sec (pour démo).
 *
 */
 
int pinRelai = 12; // commande du relai (via transistor P2N2222AG)
int pinBouton = 2; // Bouton poussoir, pull-down

int etatBouton; // mémorise l'état du bouton
int etatRelai;  // mémorise l'état du relai

unsigned long lastRelaiHighMillis = 0; // mémorise la dernière fois que le relai a été activé
unsigned long maxRelaiHighMillis = 5 * 1000; // Temps maximum d'activation du relai (5 sec)

void setup() {
  pinMode( pinBouton, INPUT );
  pinMode( pinRelai, OUTPUT );
  
  etatBouton = digitalRead( pinBouton );
  etatRelai = LOW; 
  digitalWrite( pinRelai, etatRelai );
}

void loop() {
  // Get current time
  unsigned long currentMillis = millis();
  
  // Faut-il désactivé le relai automatiquement ?
  if( (etatRelai == HIGH) && ((currentMillis-lastRelaiHighMillis)>maxRelaiHighMillis ) ) {
    //desactiver relai
    etatRelai = LOW;
    digitalWrite( pinRelai, etatRelai );
  }
    
  
  // Si bouton pas pressé --> rien à faire
  if( !boutonPressed() )
    return;  
  // changer etat du relai
  if( etatRelai == LOW ){
    etatRelai = HIGH;
    lastRelaiHighMillis = currentMillis;
  }
  else
    etatRelai = LOW;
  // Appliquer nouvel etat
  digitalWrite( pinRelai, etatRelai );  
}

// Retourne vrai si le bouton est pressé
//
boolean boutonPressed() {
  if( etatBoutonChanged() && (etatBouton == HIGH) )
    return true;
   
  return false;
}

// Retourne vrai si l'état du bouton à changé 
// (soit pressé ou soit relaché)
//
boolean etatBoutonChanged(){
  int lecture1 = digitalRead( pinBouton );
  // Si etat pas changé --> continuer
  if( lecture1 == etatBouton )
    return false;  
  // Si etat changer --> deparasitage
  delay( 10 );
  int lecture2 = digitalRead( pinBouton );
  // si parasite --> continuer
  if( lecture2 != lecture1 )
    return false;
  // enregistrer nouvel etat
  etatBouton = lecture2;
  // signaler changement d'état
  return true;
}

Où acheter

MC Hobby propose le mini kit relais en vente sur son WebShop. (DODO TODO LINK!, penser à l'autre lien dans l'article).

PS: aussi faire une mise-à-jour de http://arduino103.blogspot.com/2011/05/controle-de-relais.html