Comment utiliser les capteurs de sortie 3,3 V et 5 V avec Arduino?

13

Pour obtenir la pleine résolution d'Arduino ADC lors de l'utilisation de capteurs 3,3 V, vous devez faire deux choses.

  1. Connectez l'alimentation 3,3 V à la broche AREF.
  2. Appelez analogReference (EXTERNAL) dans le code.

Mais qu'en est-il si je dois mélanger des capteurs de sortie 3,3 V et 5 V. Quelles sont mes options?

tuupola
la source

Réponses:

10

Une solution simple consiste à utiliser un diviseur de résistance (rapport d'environ 1: 1,94) et à réduire le signal 5 V à un pic de 3,3 V. De cette façon, vous conserveriez la pleine résolution sans avoir à changer de référence. Un diviseur approprié consisterait à utiliser un 18k du capteur vers l'entrée analogique et un 33k de l'entrée analogique vers la masse. Cela traduirait l'entrée 5v en une entrée 3,23v. L'utilisation de résistances de plus haute précision rapprocherait cela de 3,3 V si nécessaire. Vous devez vous assurer que le capteur peut fournir le courant nécessaire pour une valeur donnée - dans ce cas, environ 0,1 mA. La résistance d'entrée des entrées analogiques ATMega est d'environ 100 M ohms, vous pouvez donc augmenter ces valeurs (en réduisant la charge sur le capteur) de manière significative avant de vous soucier de l'effet de la résistance d'entrée.

JohnC
la source
3

Deux choses, vivez avec la résolution réduite des capteurs 3.3v et gardez votre référence à 5V. C'est ce que je fais d'habitude et c'est assez bien.

Vous pouvez également changer votre référence analogique à la volée lors de la lecture de chaque capteur respectif. Je me souviens d'avoir lu sur le mélange de références externes et de références internes et d'avoir une résistance de limitation de série sur votre AREF, alors lisez attentivement cette partie de la référence Arduino.

ka1kjz
la source
2

Vous pouvez également envisager de rechercher de nouvelles versions de vos capteurs. Vous pouvez peut-être acquérir des capteurs qui fonctionnent tous les deux avec les mêmes limites de tension, ou vous pouvez découvrir que de nouvelles versions des capteurs sont disponibles qui vous donneront des sorties numériques et peuvent être interrogées avec I2C ou d'autres protocoles de communication série simples. Bien sûr, cela nécessiterait l'achat d'une nouvelle puce, mais ils ne sont pas terriblement chers et non seulement vous élimineriez le problème, mais vous fourniriez probablement votre projet avec un plus grand niveau de précision car vous n'avez pas à vous soucier du bruit dans votre circuit.

À moins de repenser l'ensemble de votre projet pour s'adapter à de nouvelles puces, John C et le jambon offrent d'excellentes solutions simples. D'après mon expérience, j'ai utilisé un capteur 3v3 avec une alimentation et une référence 5v et j'ai eu des problèmes de bruit plus importants qu'avec une résolution perdue pour des projets occasionnels. C'est le moyen le plus simple de sortir, mais cela vous oblige à faire quelques calculs, et j'ai voté le post de ka1kjz en conséquence (vérifiez les feuilles de référence).

En ce qui concerne la solution de diviseur de tension, tant que vous utilisez des résistances de haute précision, vous avez l'avantage d'avoir toutes vos mesures dans la même plage de tension et vous bénéficiez de l'avantage de correction ratiométrique de l'utilisation d'AREF pour suivre toute ondulation de tension. Dans la pratique, cependant, j'ai constaté que le bruit et le manque de techniques d'étalonnage dans mes projets ont contribué à plus d'erreurs qu'une petite ondulation de tension ou que 10% de résistances pourraient raisonnablement causer. Pour cette raison, j'ai également voté pour la solution de JohnC, car il couvre tout cela plus en détail.

Lou
la source