Commande d'un relais via un transistor

Répondre
Avatar du membre
likikiFrance
Site Admin
Site Admin
Messages : 6651
Enregistré le : 27 févr. 2021, 16:11
Prénom : Christian
LOCALISATION : Ile de France
Centres d'intérêts : Le train miniature (H0 3R), l'impression 3D
Echelle pratiquée : H0
Âge : 56
Pays :
France (fr)
France
avr. 2021 22 17:19

Commande d'un relais via un transistor

Message par likikiFrance

Commande d'un relais via un transistor



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.

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 télémécanique (sur Wikipédia).

Attention
_________________________________________
La haute tension et l’électrisation :

Il est assez aisé de faire un montage en haute tension (220 volts alternatif) à l'aide de relais. C'est d'ailleurs l'un des principaux avantages de ceux-ci.
Cependant, il ne faut toujours garder à l'esprit que travailler avec le réseau électrique (donc en hautes tensions) présent des risques d'électrocutions. C'est un risque à considérer sérieusement car il peut conduire à la mort!
Si vous ne disposez pas des compétences adéquates, renseignez vous auprès de quelqu'un de compétent dans ce domaine. A défaut, le montage en basse tension reste ludique et pertinent dans de nombreux domaines.
Faite également bien attention quand vous manipulez votre montage, surtout si les raccordements de ce dernier sont facilement accessibles.
Limitations techniques des relais
Tous les relais on une tension maximale et un courant maximum de commutation (pour une tension de commutation donnée). Cela se traduit par une limitation de puissance d'utilisation, puissance au dessus de laquelle le relais ne pourra pas assurer son bon fonctionnement en toute sécurité (pour lui comme pour vous).
Il existe une vaste gamme de relais pouvant couvrir tous les domaines d'applications et toutes les puissances de commutations. Le plus gros que j'ai eu l'occasion de toucher pesait 5Kg et était capable de commuter un courant de ~1000A sous 24v (c'était pour un camion).
Essayer de commander un radiateur électrique (1500 watt) avec un relai supportant une puissance de commutation maximum de 30 watt (par exemple) réservera à coup sur une mauvaise surprise. le relai pourrait simplement cesser de fonctionner, fondre, ou prendre feu dans le pire des cas.
Le choix d'un relais aux caractéristiques adéquates est un élément important, à garder à l’œil lors de vos prochaines réalisation en solo.

Ce qu'il vous faut :

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

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

Image

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)

Image

Image

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.

Code : Tout sélectionner

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

Commande du relais via un bouton :

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

Image

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

Code : Tout sélectionner

/*
 *
 * 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;
}
La page Web original
:kingmoi:

ImageImageImage


Les dates des bourses d'échange mis a jour ==> ICI <==
Avatar du membre
herwatFrance
2000 posts et +
2000 posts et +
Messages : 4870
Enregistré le : 11 mars 2021, 16:14
Prénom : Hervé
LOCALISATION : Creuse
Centres d'intérêts : Modélisme ferroviaire
Impression 3D
Arduino
Echelle pratiquée : H0
Âge : 76
Pays :
France (fr)
France
avr. 2021 22 18:14

Re: Commande d'un relais via un transistor

Message par herwatFrance

Tiens ! page web introuvable . :mdr1:

C'est bien tous ces articles, Christian :merciiii: ça évite de chercher et en plus , c'est en français !
Avatar du membre
likikiFrance
Site Admin
Site Admin
Messages : 6651
Enregistré le : 27 févr. 2021, 16:11
Prénom : Christian
LOCALISATION : Ile de France
Centres d'intérêts : Le train miniature (H0 3R), l'impression 3D
Echelle pratiquée : H0
Âge : 56
Pays :
France (fr)
France
avr. 2021 22 18:31

Re: Commande d'un relais via un transistor

Message par likikiFrance

Ha oui, le lien est HS.

L'avantage d'avoir récupéré le sujet.

:banane:
:kingmoi:

ImageImageImage


Les dates des bourses d'échange mis a jour ==> ICI <==
Avatar du membre
Dan 37France
Posteur habitué
Posteur habitué
Messages : 26
Enregistré le : 17 avr. 2023, 19:23
Prénom : daniel
LOCALISATION : Tours
Centres d'intérêts : modélisme.électronique.arduino
Echelle pratiquée : H0
Pays :
France (fr)
France
mai 2023 15 22:04

Re: Commande d'un relais via un transistor

Message par Dan 37France

Bonjour,
je découvre la page et je teste le lien.....il fonctionne!! :pompom:

Par contre, les schémas sont bien mieux ici !!!! :siffle:
Répondre