Modifications

Sauter à la navigation Sauter à la recherche
5 255 octets ajoutés ,  26 mars 2012 à 20:19
Page créée avec « == 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 ... »
== 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.

[[Fichier:relais.png|Source [[http://fr.wikipedia.org/wiki/Relais_%C3%A9lectrom%C3%A9canique Wikipedia]]]]

[[Fichier:relais2.jpg|Source [[http://fr.wikipedia.org/wiki/Relais_%C3%A9lectrom%C3%A9canique 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 [[http://fr.wikipedia.org/wiki/Relais_%C3%A9lectrom%C3%A9canique relais électriques]] (sur Wikipédia).

== 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 [[http://arduino103.blogspot.com/2011/05/controle-de-relais.html 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 "[[http://arduino103.blogspot.com/2011/05/controle-moteur-dc-via-transistor.html 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.
[[Fichier: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.

[[Fichier: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 [[http://www.youtube.com/watch?v=yyBdyqhIl8k&feature=player_embedded cette vidéo YouTube]].

'''Le code:'''
Source: [[http://blogfiles.domeu.net/arduino/Relai_Temporise.pde Relai_Temporise.pde]]
<nowiki>/*
*
* 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;
}
</nowiki>
29 918

modifications

Menu de navigation