Table des matières:
- Étape 1: Révision
- Étape 2: Pourquoi AnalogRead() renvoie-t-il une valeur comprise entre 0 et 1023 ?
- Étape 3: Alors, qu'est-ce que l'AREF ?
- Étape 4: AREF externe
- Étape 5: AREF interne
Vidéo: La broche Arduino AREF : 6 étapes
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:07
Dans ce didacticiel, nous verrons comment mesurer des tensions plus petites avec une plus grande précision en utilisant les broches d'entrée analogiques de votre Arduino ou de votre carte compatible en conjonction avec la broche AREF. Cependant, nous procéderons d'abord à une révision pour vous mettre au courant. Veuillez lire entièrement cet article avant de travailler avec AREF pour la première fois.
Étape 1: Révision
Vous vous souviendrez peut-être que vous pouvez utiliser la fonction Arduino analogRead() pour mesurer la tension d'un courant électrique à partir de capteurs et ainsi de suite en utilisant l'une des broches d'entrée analogique. La valeur renvoyée par analogRead() serait comprise entre zéro et 1023, zéro représentant zéro volt et 1023 représentant la tension de fonctionnement de la carte Arduino utilisée.
Et quand nous disons la tension de fonctionnement, il s'agit de la tension disponible pour l'Arduino après les circuits d'alimentation. Par exemple, si vous avez une carte Arduino Uno typique et que vous l'exécutez à partir de la prise USB - bien sûr, il y a 5 V disponible pour la carte à partir de la prise USB de votre ordinateur ou concentrateur - mais la tension est légèrement réduite à mesure que le courant s'enroule autour du circuit au microcontrôleur - ou la source USB n'est tout simplement pas à la hauteur.
Cela peut facilement être démontré en connectant un Arduino Uno à un port USB et en mettant un multimètre pour mesurer la tension sur les broches 5V et GND. Certaines cartes reviendront aussi bas que 4,8 V, d'autres plus haut mais toujours en dessous de 5V. Donc, si vous recherchez la précision, alimentez votre carte à partir d'une alimentation externe via la prise CC ou la broche Vin - telle que 9V CC. Ensuite, après avoir traversé le circuit du régulateur de puissance, vous aurez un joli 5V, par exemple l'image.
Ceci est important car la précision de toutes les valeurs analogRead () sera affectée par l'absence d'un vrai 5 V. Si vous n'avez aucune option, vous pouvez utiliser des calculs dans votre croquis pour compenser la chute de tension. Par exemple, si votre tension est de 4,8 V, la plage analogRead() de 0 à 1023 se rapportera à 0 à 4,8 V et non à 0 à 5 V. Cela peut sembler trivial, cependant si vous utilisez un capteur qui renvoie une valeur sous forme de tension (par exemple, le capteur de température TMP36) - la valeur calculée sera fausse. Donc, par souci de précision, utilisez une alimentation externe.
Étape 2: Pourquoi AnalogRead() renvoie-t-il une valeur comprise entre 0 et 1023 ?
Cela est dû à la résolution de l'ADC. La résolution (pour cet article) est le degré auquel quelque chose peut être représenté numériquement. Plus la résolution est élevée, plus grande est la précision avec laquelle quelque chose peut être représenté. Nous mesurons la résolution en termes de nombre de bits de résolution.
Par exemple, une résolution de 1 bit n'autoriserait que deux valeurs (deux à la puissance un) – zéro et un. Une résolution de 2 bits autoriserait quatre valeurs (deux à la puissance deux): zéro, un, deux et trois. Si nous essayions de mesurer une plage de cinq volts avec une résolution de deux bits et que la tension mesurée était de quatre volts, notre ADC renverrait une valeur numérique de 3 - car quatre volts tombent entre 3,75 et 5V. Il est plus facile d'imaginer cela avec l'image.
Ainsi, avec notre exemple de CAN avec une résolution de 2 bits, il ne peut représenter que la tension avec quatre valeurs résultantes possibles. Si la tension d'entrée tombe entre 0 et 1,25, l'ADC renvoie le 0 numérique; si la tension tombe entre 1,25 et 2,5, l'ADC renvoie une valeur numérique de 1. Et ainsi de suite. Avec la plage ADC de notre Arduino de 0 à 1023 - nous avons 1024 valeurs possibles - ou 2 à la puissance 10. Ainsi, nos Arduinos ont un ADC avec une résolution de 10 bits.
Étape 3: Alors, qu'est-ce que l'AREF ?
Pour faire court, lorsque votre Arduino effectue une lecture analogique, il compare la tension mesurée sur la broche analogique utilisée à ce que l'on appelle la tension de référence. En utilisation analogique normale, la tension de référence est la tension de fonctionnement de la carte.
Pour les cartes Arduino les plus populaires telles que les cartes Uno, Mega, Duemilanove et Leonardo/Yún, la tension de fonctionnement de 5V. Si vous avez une carte Arduino Due, la tension de fonctionnement est de 3,3V. Si vous avez autre chose, consultez la page du produit Arduino ou demandez à votre fournisseur de cartes.
Donc, si vous avez une tension de référence de 5V, chaque unité renvoyée par analogRead() est évaluée à 0,00488 V. (Ceci est calculé en divisant 1024 en 5V). Et si on veut mesurer des tensions entre 0 et 2, ou 0 et 4,6 ? Comment l'ADC saurait-il quelle est 100 % de notre plage de tension ?
Et c'est là que réside la raison de la broche AREF. AREF signifie Analogique REFérence. Il nous permet d'alimenter l'Arduino en une tension de référence à partir d'une alimentation externe. Par exemple, si nous voulons mesurer des tensions avec une plage maximale de 3,3 V, nous alimenterons un joli 3,3 V lisse dans la broche AREF - peut-être à partir d'un régulateur de tension IC.
Ensuite, chaque étape de l'ADC représenterait environ 3,22 millivolts (divisez 1024 en 3,3). Notez que la tension de référence la plus basse que vous puissiez avoir est de 1,1 V. Il existe deux formes d'AREF - interne et externe, alors examinons-les.
Étape 4: AREF externe
Un AREF externe est l'endroit où vous fournissez une tension de référence externe à la carte Arduino. Cela peut provenir d'une alimentation régulée, ou si vous avez besoin de 3,3 V, vous pouvez l'obtenir à partir de la broche 3,3 V de l'Arduino. Si vous utilisez une alimentation externe, assurez-vous de connecter le GND à la broche GND de l'Arduino. Ou si vous utilisez la source 3,3 V de l'Arduno, exécutez simplement un cavalier de la broche 3,3 V à la broche AREF.
Pour activer l'AREF externe, utilisez ce qui suit dans la configuration void():
analogReference(EXTERNAL); // utilise AREF pour la tension de référence
Cela définit la tension de référence sur tout ce que vous avez connecté à la broche AREF - qui aura bien sûr une tension comprise entre 1,1 V et la tension de fonctionnement de la carte. Remarque très importante - lorsque vous utilisez une référence de tension externe, vous devez définir la référence analogique sur EXTERNE avant d'utiliser analogRead(). Cela vous évitera de court-circuiter la tension de référence interne active et la broche AREF, ce qui peut endommager le microcontrôleur de la carte. Si nécessaire pour votre application, vous pouvez revenir à la tension de fonctionnement de la carte pour AREF (c'est-à-dire revenir à la normale) avec les instructions suivantes
analogReference(DEFAULT);
Maintenant, pour démontrer l'AREF externe au travail. À l'aide d'un AREF de 3,3 V, le schéma suivant mesure la tension de A0 et affiche le pourcentage de l'AREF total et la tension calculée:
#include "LiquidCrystal.h"
LiquidCrystal LCD (8, 9, 4, 5, 6, 7);
entréeanalogique int = 0; // notre broche analogique
int analogiquemontant = 0; // stocke la valeur entrante float pourcentage = 0; // utilisé pour stocker notre valeur de pourcentage float voltage =0; // utilisé pour stocker la valeur de la tension
void setup()
{ lcd.begin (16, 2); analogReference(EXTERNAL); // utilise AREF pour la tension de référence }
boucle vide()
{ lcd.clear(); analogamount=analogRead(analoginput); pourcentage=(montant analogique/1024,00)*100; tension=montant analogique*3.222; // en millivolts lcd.setCursor(0, 0); lcd.print("% de AREF: "); lcd.print(pourcentage, 2); lcd.setCursor(0, 1); lcd.print("A0 (mV): "); lcd.println(tension, 2); retard (250); }
Les résultats du croquis ci-dessus sont montrés dans la vidéo.
Étape 5: AREF interne
Les microcontrôleurs de nos cartes Arduino peuvent également générer une tension de référence interne de 1,1 V et nous pouvons l'utiliser pour le travail AREF. Utilisez simplement la ligne:
analogReference(INTERNE);
Pour les cartes Arduino Mega, utilisez:
analogReference(INTERNAL1V1);
dans void setup() et c'est parti. Si vous avez un Arduino Mega, il existe également une tension de référence de 2,56 V qui est activée avec:
analogReference(INTERNAL2V56);
Enfin, avant de vous installer sur les résultats de votre broche AREF, calibrez toujours les lectures par rapport à un bon multimètre connu.
Conclusion
La fonction AREF vous offre plus de flexibilité dans la mesure des signaux analogiques.
Cet article vous est présenté par pmdway.com - tout pour les fabricants et les passionnés d'électronique, avec une livraison gratuite dans le monde entier.
Conseillé:
Connecteur ICSP pour Arduino Nano sans en-tête de broche soudée mais broche Pogo : 7 étapes
Connecteur ICSP pour Arduino Nano sans en-tête de broche soudée mais Pogo Pin: Créez un connecteur ICSP pour Arduino Nano sans en-tête de broche soudée sur la carte mais Pogo Pin.Parts3 × 2 Pin Socket x1 - APitch 2.54mm Dupont Line Wire Connecteur à broche femelle Bornes x6 - BP75-E2 (tête conique 1,3 mm) Sonde de test à ressort Pogo Pin
Broche Arduino LilyPad à cœur ouvert : 5 étapes (avec photos)
Broche Open Heart LilyPad Arduino : Voici comment combiner le kit Open Heart de Jimmie Rogers avec une carte de microcontrôleur LilyPad Arduino pour créer une broche cœur LED animée
Plus de 100 commutateurs dans une seule broche d'Arduino : 6 étapes (avec images)
Plus de 100 commutateurs dans une seule broche d'Arduino : IntroductionAvez-vous manqué de broches d'entrée ? Ne vous inquiétez pas, voici une solution sans aucun registre à décalage. Dans cette vidéo, nous allons apprendre à connecter plus de 100 commutateurs à une seule broche d'Arduino
Connecter plusieurs boutons à une seule broche sur Arduino : 4 étapes
Connexion de plusieurs boutons à une seule broche sur Arduino : Bonjour à tous, Lorsque vos projets Arduino sont devenus trop petits pour les LED clignotantes, vous aurez peut-être besoin de broches supplémentaires. Je vais vous montrer une astuce que vous pouvez utiliser où vous pouvez avoir plusieurs boutons, tous connectés à la même broche analogique
Commandes AT pour le module Bluetooth (HC-05 avec broche EN et BOUTON) à l'aide de la carte Arduino ! : 5 étapes
Commandes AT pour module Bluetooth (HC-05 avec broche et bouton EN) à l'aide de la carte Arduino ! sur l'envoi de commandes AT au module pour le configurer/modifier (nom, mot de passe, baud ra