Je crée un contrôleur pour un système 12 V utilisant un microcontroller Arduino Uno. Pour les sorties, j'utilise un blindage de relais pour commuter les composants 12 V. J'ai un commutateur à bascule 12 V qui active certains composants 12 V dans le système et je souhaite utiliser un signal de déclenchement de ce même commutateur pour l'envoyer à une entrée numérique Arduino. Je sais que l’Arduino ne peut supporter que 5 V max. Quel serait le meilleur moyen de réduire le 12 V sortant du commutateur au 5 V pour l'entrée?
EDIT: Le système est destiné à être utilisé dans une voiture. L'ampérage de la batterie de la voiture doit-il être réduit de manière à ne pas faire exploser les composants?
Réponses:
Bonnes nouvelles! Ça va être pas cher! :-)
Un simple diviseur de résistance ramènera le 12 V à 5 V qu'un digestible Arduino peut digérer. La tension de sortie peut être calculée comme suit:
Les valeurs de résistance dans la plage de 10 kΩ constituent un bon choix. Si votre R2 est de 10 kΩ, alors R1 devrait être de 14 kΩ. Maintenant, 14 kΩ n'est pas une valeur standard, mais 15 kΩ l'est. Votre tension d’entrée sera de 4,8 V au lieu de 5 V, mais l’Arduino le considérera toujours comme un niveau élevé. Vous avez également un peu de marge au cas où le 12 V serait trop élevé. Même 18 kΩ vous donneront toujours une tension suffisamment élevée de 4,3 V, mais vous devrez alors commencer à penser à la valeur de 12 V un peu trop basse. La tension sera-t-elle toujours considérée comme élevée? Je resterais avec le 15 kΩ.
modifier
Vous parlez d'un environnement automobile et vous avez besoin d'une protection supplémentaire. 12 V de la voiture ne sont jamais tout à fait 12 V, mais la plupart du temps plus élevés, avec des pics de plusieurs volts supérieurs à la valeur nominale de 12 V. (La valeur nominale correspond en réalité à 12,9 V, à 2,15 V par cellule.) Vous pouvez placer un zener de 5 V une diode en parallèle avec R2, ce qui devrait couper toute tension supérieure aux 5 V du zener. Mais une tension zener varie avec le courant et, lorsque le courant d’entrée est faible, les résistances vous permettent de le couper à des tensions plus basses. Une meilleure solution serait d'avoir une diode Schottky entre l'entrée de l'Arduino et l'alimentation 5 V. Ensuite, toute tension d'entrée supérieure à 5,2 V rendra la diode Schottky conductrice et la tension d'entrée sera limitée à 5,2 V. Vous avez vraiment besoin d'une diode Schottky pour cela, une diode PN commune a un 0.
Mieux
la optocoupleur de Michael est une bonne alternative, mais un peu plus cher. Vous allez souvent utiliser un optocoupleur pour isoler l'entrée de la sortie, mais vous pouvez également l'utiliser pour protéger une entrée comme vous le souhaitez ici.
Comment ça marche: le courant d'entrée allume la DEL infrarouge interne, ce qui provoque un courant de sortie à travers le phototransistor. Le rapport entre le courant d'entrée et le courant de sortie est appelé CTR , pour le rapport de transfert actuel. Le CNY17 a un CTR minimum de 40%, ce qui signifie que vous avez besoin d’une entrée 10 mA pour une sortie 4 mA. Allons pour l'entrée 10 mA. Alors, R1 devrait être (12 V - 1,5 V) / 10 mA = 1 kΩ. La résistance de sortie devra provoquer une chute de 5 V à 4 mA, puis être de 5 V / 4 mA = 1250 Ω. Il vaut mieux avoir une valeur un peu plus élevée, la tension ne chutera pas de plus de 5 V de toute façon. Une puissance de 4,7 kΩ limitera le courant à environ 1 mA.
Vcc est l'alimentation 5 V de l'Arduino, Vout va à l'entrée de l'Arduino. Notez que l'entrée sera inversée: elle sera basse si le 12 V est présent, haute si ce n'est pas le cas. Si vous ne le souhaitez pas, vous pouvez permuter la position de la sortie du coupleur optique et celle de la résistance de rappel.
edit 2
Comment la solution d'optocoupleur ne résout-elle pas le problème de surtension? Le diviseur de résistance est ratiométrique: la tension de sortie est un rapport fixe de l'entrée. Si vous avez calculé 5 V out à 12 V in, alors 24 V in donnera 10 V out. Pas OK, d'où la diode de protection.
Dans le circuit d'optocoupleur, vous pouvez voir que le côté droit, qui se connecte à la broche d'entrée de l'Arduino, n'a pas de tension supérieure à 5 V. Si l'optocoupleur est activé, le transistor consomme du courant, j'ai utilisé 4 mA dans l'exemple ci-dessus. Une tension de 1,2 kΩ provoquera une chute de tension de 4,8 V, due à la loi d'Ohm (résistance multipliée par le courant = tension). La tension de sortie sera alors de 5 V (Vcc) - 4,8 V de part et d'autre de la résistance = 0,2 V, ce qui correspond à un niveau bas. Si le courant est plus faible, la chute de tension sera également plus faible et la tension de sortie augmentera. Un courant de 1 mA, par exemple, provoquera une chute de 1,2 V et la sortie sera de 5 V - 1,2 V = 3,8 V. Le courant minimal est de zéro. Ensuite, vous n'avez pas de tension à travers la résistance, et la sortie sera de 5 V. C'est le maximum, il y a
Et si la tension d'entrée devenait trop élevée? Vous connectez accidentellement une batterie 24 V au lieu de 12 V. Le courant de la DEL double alors, il passe de 10 mA à 20 mA. Le CTR 40% générera un courant de sortie de 8 mA au lieu du 4 mA calculé. 8 mA à travers la résistance de 1,2 kΩ correspondrait à une chute de 9,6 V. Mais à partir d'une alimentation en 5 V, ce serait négatif et c'est impossible. vous ne pouvez pas descendre plus bas que 0 V ici. Ainsi, alors que l'optocoupleur aimerait beaucoup tirer 8 mA, la résistance limitera cela. Le courant maximal le traversant est égal à 5 V au maximum. La sortie sera alors réellement à 0 V et le courant à 5 V / 1,2 kΩ = 4,2 mA. Ainsi, quelle que soit l'alimentation que vous connectez, le courant de sortie ne dépassera pas cette valeur et la tension restera comprise entre 0 V et 5 V. Aucune autre protection n'est requise.
Si vous vous attendez contre les surtensions , vous devrez vérifier si LED peut gérer l'augmentation du courant, mais le 20 mA du optocoupleur ne sera pas un problème pour la plupart des optocoupleurs (ils sont souvent évalués à 50 mA maximum), et d' ailleurs, qui est pour deux tension d'entrée, ce qui n'arrivera probablement pas IRL.
la source
Un bon moyen d'isoler le signal du commutateur 12V serait de le faire passer par un opto-coupleur. Le circuit serait configuré comme suit.
Vi dans le diagramme représente le 12V de votre circuit qui est commuté par votre commutateur (S1). Sélectionnez R1 pour limiter le courant dans la partie D1 de l'optocoupleur à un niveau compris dans les valeurs nominales du composant que vous avez sélectionné.
Les coupleurs optiques ne sont pas les composants les plus rapides au monde, en particulier les moins chers, mais dans le cas d'une action lente comme un commutateur à commande humaine, la vitesse du coupleur ne pose pas de problème.
la source
Vous pouvez également utiliser une diode et une résistance, comme suit:
simuler ce circuit - Schéma créé à l'aide de CircuitLab
Je ferais de la résistance quelque chose d'assez rigide, sinon vous perdriez beaucoup de puissance de ce circuit. La beauté de ce circuit (par rapport au diviseur de tension) est qu’il n’importe pas que votre tension d’origine soit de 12V, 14V ou 15V: ce sera 5V (en réalité 5,2-5,3V selon la diode), peu importe la la tension d'entrée.
la source
Pour l’indépendance de la tension, utilisez une résistance pour réguler le courant et un Zener pour réguler la tension, comme ceci:
simuler ce circuit - Schéma créé à l'aide de CircuitLab
Avec une résistance de 30k, cela produira 4,99V et utilisera environ 234uA @ 12Vin.
Dans ce cas:
R1 consomme 234uA x (12V - 4,99V) = 1,64mW
D1 consomme 234uA x 4,99V = 1,17mW
Consommation électrique totale: 2,81 mW (lorsque l'entrée est élevée)
la source
Un peu tard mais dans ma voiture j'utilise le LM7805. Fonctionne très bien et n'est pas cher.
la source