Commander des relais via Arduino
Répondre à la discussion
Affichage des résultats 1 à 12 sur 12

Commander des relais via Arduino



  1. #1
    invite241066f3

    Commander des relais via Arduino


    ------

    Bonjour,

    Je souhaite commander des relais via une carte Arduino, je déjà des composants. Débutant en électronique j'ai essayé de faire au mieux un schéma pour être plus clair, pensez-vous qu'il est viable ? Un optocoupleur est-il obligatoire pour protéger ma carte Arduino ?

    Merci d'avance pour votre aide.

    Nom : TEST.png
Affichages : 703
Taille : 5,5 Ko

    Je souhaite utiliser un régulateur L7809CV pour l'alimentation de la carte, et un transistor BD137 pour piloter un relais 220v qui doit être alimenté en 12V (modèle relais http://www.ebay.it/itm/611D012-FUJIT...d=427731745916 )

    -----

  2. #2
    PA5CAL

    Re : Commander des relais via Arduino

    Bonsoir

    Le schéma est incorrect. Le branchement du transistor (montage "collecteur commun") ne permet pas d'alimenter le relais en 12V. De plus, l'absence de protection adaptée à la charge inductive du relais va certainement conduire au claquage du transistor du fait de la surtension générée au moment de la coupure du courant.

    Il faudrait plutôt utiliser un montage "émetteur commun" (inverseur), avec une résistance entre la sortie de l'Arduino et la base du transistor, et mettre une diode de roue libre en parallèle et en inverse sur la bobine du relais.

    Par ailleurs, si la tension d'alimentation ne dépasse pas 12V, si la carte de l'Arduino est suffisament aéré et si la consommation des circuits complémentaires alimentées par cette carte n'est pas excessive, alors il est possible de se passer du régulateur de 9V. Le régulateur intégré à la carte de l'Arduino chauffera, mais il est censé pouvoir tenir le choc.

  3. #3
    invite241066f3

    Re : Commander des relais via Arduino

    Je ne suis pas sur d'avoir tout compris mais j'ai essayé de refaire le schéma en fonction de tes remarques :

    Nom : Test2.png
Affichages : 481
Taille : 5,9 Ko

    J'ai compris le principe de la diode pour protéger le transistor mais pour la résistance R1 comment calculer sa valeur ?

    Concernant le régulateur, je pense mettre la carte dans un boitier, c'est pour cela que je souhaite éviter de trop la faire chauffer.

    Merci d'avance pour ton aide,

  4. #4
    PA5CAL

    Re : Commander des relais via Arduino

    Ta pièce jointe est en attente de validation. On verra plus tard, lorsqu'elle sera visible, pour le détail de ton schéma.


    Concernant la valeur de la résistance, elle est calculée de manière à fournir un courant de base IB assurant la saturation du transistor, soit habituellement 1/10 du courant collecteur IC (i.e. traversant le relais).

    Avec un ATMega alimenté en +5V, et avec un relais alimenté en +12V et présentant une résistance interne de la bobine Rrel (en Ω), cette résistance se calcule de la façon suivante :

    RB = (5–VBEsat)·Rrel/1,2

    Pour un BD137, on a par exemple :
    • VBEsat=0,7V pour IC=25mA
    • VBEsat=0,8V pour IC=0,2A
    • VBEsat=0,85V pour IC=0,4A

    Toutefois, il faut aussi veiller à ce que le courant débité par les sorties de l'Arduino ne dépasse pas les limites prescrites. Les limites absolues sont :
    • 40 mA par sortie
    • à l'état bas (IOL):
    - 100 mA sur les sorties correspondant aux entrées analogiques
    - 100 mA sur les sorties numériques 0 à 4
    - 100 mA sur les sorties numériques 5 à 13
    • à l'état haut (IOH):
    - 150 mA sur les sorties numériques 0 à 4 et les sorties correspondant aux entrées analogiques
    - 150 mA sur les sorties numériques 5 à 13

    Comme il s'agit de limites absolues, en pratique il convient de se limiter à des valeurs inférieures tenant compte des tolérances sur les grandeurs électriques, soit généralement 10% au dessous de ces valeurs.

    Si la sortie commandant le relais est la seule utilisée, alors cela revient en pratique à prendre une résistance RB supérieure à 120Ω, et à choisir un relais 12V avec un résistance interne d'au moins 35Ω (ce qui correspond au maximum à un gros relais de 4W).
    Dernière modification par PA5CAL ; 19/12/2012 à 00h19.

  5. A voir en vidéo sur Futura
  6. #5
    invite241066f3

    Re : Commander des relais via Arduino

    J'éspère que je ne vais pas dire trop d'ânerie... Pour commander mon relais 12v/270ohms il me faut 44mA, si je prend un DB549C (plus petit) et que je comprends bien la datasheet il me faut VBEsat=0,95V pour IC=0,5A. Donc RB= 911 ohms ( RB=(5-0,95)*270/1,2 ), soit une conso en sortie de mon ATM de 4,4mA.

    Si j'alimente mon ATM en +9v il y a un impact pour le calcul de RB, sachant que la sortie reste en +5v ? Et pourquoi dans la formule RB tu utilises 1,2 et non 12, c'est pour "habituellement 1/10 du courant collecteur IC" ?

    Merci d'avance,

  7. #6
    PA5CAL

    Re : Commander des relais via Arduino

    Ton schéma, maintenant validé et visible, est correct.

    Ton relais 12v/270Ω consomme bien 44mA, donc pour le transistor on a IC=44mA (et non pas 0,5A), et on le sature avec IB≈4,4mA (comme tu l'as bien indiqué).

    Je ne connais pas de DB549C. Peut-être s'agit-il d'un BC549C ? Auquel cas VCEsat est plus faible, compris entre 0,55V et 0,6V. Cela mène à une résistance de 1kΩ (valeur normalisée). Bref, ça ne change pas grand chose.


    Le fait d'alimenter ton Arduino en 9V n'a aucun impact sur la valeur de la résistance. En effet, les valeurs qu'on trouve dans la formule proviennent seulement :
    - du +5V correspondant au niveau logique de sortie de l'ATMega, invariant tant que le µC est branché sur la carte de l'Arduino
    - du courant traversant le transistor et le relais alimenté en 12V, c'est-à-dire Irel=IC=12/Rrel
    - du facteur 10 entre IB et IC pour assurer la saturation correcte du transistor (il apparaît sous la forme 1,2=12/10)


    En revanche, la résistance devra changer si tu utilises un relais (et une alimentation idoine) imposant un courant de commande nettement supérieur aux 44mA actuels.
    Dernière modification par PA5CAL ; 19/12/2012 à 13h26.

  8. #7
    invite241066f3

    Re : Commander des relais via Arduino

    Oui effectivement erreur de frappe il s'agit bien du BC549C, donc avec I=4,4mA en sortie de mon ATM pas de problème pour brancher une dixaine de relais.
    J'ai encore une question.... Je n'arrive pas à trouver la datasheet pour mes relais (relais récupérés gratuitement), mon seul lien c'est ebay

    http://www.ebay.it/itm/611D012-FUJIT...d=427731745916

    Faut-il que j'utilise un optocoupleur (type CNX35) pour éviter de griller mon ATM ou il y a peu de risque ?

  9. #8
    PA5CAL

    Re : Commander des relais via Arduino

    Si tu n'es pas sûr des caractéristiques indiquées sur la fiche d'eBay, alors tu peux parfaitement tester ton relais à l'aide d'un ohmmètre, pour mesurer la résistance interne de la bobine, et pour repérer les différentes bornes si un contrôle visuel est insuffisant (le boîtier transparent et les inscriptions figurant dessus devraient quand même grandement t'aider).

    À moins que tu doives isoler l'alimentation de la bobine du relais de celle de l'Arduino, l'optocoupleur n'est pas nécessaire, ni même utile. De plus, son emploi compliquerait le schéma.

    Le seul gros risque réside dans une erreur de câblage, erreur que tu peux de toute façon commettre quel que soit le schéma adopté. La prudence voudrait qu'on vérifie toujours son câblage (bonnes connexions, absence de court-circuit, valeur et sens des composants) avant de mettre sous tension toute ou partie de son montage.

  10. #9
    invite241066f3

    Re : Commander des relais via Arduino

    Ok à moi de faire attention donc je me passe de l'optocoupleur, merci grâce à toi j'arrive à la fin de mon projet. Il me reste un dernier point, comme je te l'ai indiqué j’essaie de repartir exclusivement des composants à ma dispo, et la je bloque sur le diode en roue libre. J'ai des BAT85 ou 1N5818 penses-tu que c'est jouable ou il faut mieux investir dans 1N4148 ?

  11. #10
    PA5CAL

    Re : Commander des relais via Arduino

    Ces deux diodes conviennent parfaitement (...je dirais même trop, c'est presque du luxe ; généralement on utilise les 1N4148 à la place parce qu'elles sont moins chères, plus courantes, et parce qu'on en a plus souvent sous la main).
    Dernière modification par PA5CAL ; 19/12/2012 à 22h21.

  12. #11
    invite2313209787891133
    Invité

    Re : Commander des relais via Arduino

    Bonjour

    Tu peux aussi utiliser des relais statiques : Pas besoin de résistances ni de composant annexe, isolation galvanique, pas d'usure, possibilité de commuter très rapidement...

  13. #12
    invite241066f3

    Re : Commander des relais via Arduino

    Merci Pascal pour ta dispo et pour toutes ces infos, sans toi j'aurai passé des longues heures avec mon ami google.... surtout que j'étais très mal parti. Maintenant je vais attaquer le typon ! As-tu un logiciel "simple" à me conseiller ? Pour le moment je test KiCad

    Pour répondre à Dudulle, mon but est d'utiliser des composants que j'ai déjà en stock.

Discussions similaires

  1. Réponses: 11
    Dernier message: 19/12/2012, 14h26
  2. Comment commander des relais miniatures ....
    Par 2biquettes dans le forum Électronique
    Réponses: 6
    Dernier message: 29/11/2012, 19h49
  3. Pc et relais pour commander des moteurs via une batterie
    Par invite690c019c dans le forum Électronique
    Réponses: 1
    Dernier message: 03/07/2007, 09h31
  4. commander des relais avec MC68HC705KJ1
    Par invited3e0cf9f dans le forum Électronique
    Réponses: 4
    Dernier message: 30/03/2007, 18h24
  5. Commander des relais depuis un PC (via PCI ou USB) ?
    Par Picard dans le forum Électronique
    Réponses: 2
    Dernier message: 13/03/2006, 14h29
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...