Table des matières:
- Étape 1:
- Étape 2: Registre de configuration
- Étape 3: Registre des données
- Étape 4: Mode ADC asymétrique
- Étape 5:
- Étape 6: Mode ADC différentiel
Vidéo: Arduino et le CAN 16 bits TI ADS1110 : 6 étapes
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:07
Dans ce didacticiel, nous examinons l'utilisation d'Arduino pour travailler avec le Texas Instruments ADS1110 - un CI convertisseur analogique-numérique 16 bits incroyablement petit mais utile.
Il peut fonctionner entre 2,7 et 5,5 V, il convient donc également à Arduino Due et à d'autres cartes de développement à basse tension. Avant de continuer, veuillez télécharger la fiche technique (pdf) car elle vous sera utile et référencée au cours de ce tutoriel. L'ADS1110 vous offre l'option d'un ADC plus précis que celui offert par les ADC 10 bits de l'Arduino - et il est relativement facile à utiliser. Cependant, il n'est disponible qu'en tant que pièce nue dans SOT23-6.
Étape 1:
La bonne nouvelle est que vous pouvez commander l'ADS1110 monté sur une carte de dérivation très pratique. L'ADS1110 utilise le bus I2C pour la communication. Et comme il n'y a que six broches, vous ne pouvez pas définir l'adresse du bus - à la place, vous pouvez choisir parmi six variantes de l'ADS1110 - chacune avec sa propre adresse (voir la page deux de la fiche technique).
Comme vous pouvez le voir sur la photo ci-dessus, le nôtre est marqué "EDO" qui correspond à l'adresse de bus 1001000 ou 0x48h. Et avec les exemples de circuits, nous avons utilisé des résistances de rappel de 10 kΩ sur le bus I2C.
Vous pouvez utiliser l'ADS1110 comme ADC asymétrique ou différentiel. Mais nous devons d'abord examiner le registre de configuration qui est utilisé pour contrôler divers attributs, et le registre de données.
Étape 2: Registre de configuration
Rendez-vous à la page onze de la fiche technique. Le registre de configuration a une taille d'un octet et, comme l'ADS1110 se réinitialise lors d'un cycle d'alimentation, vous devez réinitialiser le registre si vos besoins sont différents des valeurs par défaut. La fiche technique l'explique assez clairement… les bits 0 et 1 déterminent le réglage de gain pour le PGA (amplificateur de gain programmable).
Si vous ne faites que mesurer des tensions ou expérimenter, laissez-les à zéro pour un gain de 1V/V. Ensuite, le débit de données de l'ADS1110 est contrôlé avec les bits 2 et 3. Si vous avez activé l'échantillonnage continu, cela détermine le nombre d'échantillons par seconde pris par l'ADC.
Après quelques expériences avec un Arduino Uno, nous avons constaté que les valeurs renvoyées par l'ADC étaient un peu erronées lors de l'utilisation du taux le plus rapide, alors laissez-le à 15 SPS, sauf indication contraire. Le bit 4 définit soit l'échantillonnage continu (0), soit l'échantillonnage ponctuel (1). Ignorez les bits 5 et 6, mais ils sont toujours définis sur 0.
Enfin, le bit 7 - si vous êtes en mode d'échantillonnage unique, le définir sur 1 demande un échantillon - et le lire vous dira si les données renvoyées sont nouvelles (0) ou anciennes (1). Vous pouvez vérifier que la valeur mesurée est une nouvelle valeur - si le premier bit de l'octet de configuration qui vient après les données est 0, c'est nouveau. S'il renvoie 1, la conversion ADC n'est pas terminée.
Étape 3: Registre des données
Comme l'ADS1110 est un CAN 16 bits, il renvoie les données sur deux octets, puis suit avec la valeur du registre de configuration. Donc, si vous demandez trois octets, tout revient. Les données sont sous forme de "complément à deux", qui est une méthode d'utilisation de nombres signés avec binaire.
La conversion de ces deux octets se fait par quelques calculs simples. Lors de l'échantillonnage à 15 SPS, la valeur renvoyée par l'ADS1110 (pas la tension) se situe entre -32768 et 32767. L'octet supérieur de la valeur est multiplié par 256, puis ajouté à l'octet inférieur - qui est ensuite multiplié par 2,048 et enfin divisé par 32768. Ne paniquez pas, comme nous le faisons dans l'exemple de croquis à venir.
Étape 4: Mode ADC asymétrique
Dans ce mode, vous pouvez lire une tension comprise entre zéro et 2,048 V (qui se trouve également être la tension de référence intégrée pour l'ADS1110). L'exemple de circuit est simple (tiré de la fiche technique).
N'oubliez pas les résistances pull-up de 10kΩ sur le bus I2C. L'esquisse suivante utilise l'ADS1110 dans le mode par défaut et renvoie simplement la tension mesurée:
// Exemple 53.1 - Voltmètre simple face ADS1110 (0~2.048VDC) #include "Wire.h" #define ads1110 0x48 float voltage, data; octet highbyte, lowbyte, configRegister; void setup() { Serial.begin(9600); Fil.begin(); } boucle vide() { Wire.requestFrom(ads1110, 3); while(Wire.available()) // s'assurer que toutes les données arrivent { highbyte = Wire.read(); // octet de poids fort * B11111111 octet de poids faible = Wire.read(); // octet bas configRegister = Wire.read(); }
données = octet élevé * 256;
données = données + octet bas; Serial.print("Données >> "); Serial.println(données, DEC); Serial.print("Tension >> "); tension = données * 2.048; tension = tension / 32768,0; Serial.print(tension, DEC); Serial.println("V"); retard(1000); }
Étape 5:
Une fois téléchargé, connectez le signal à mesurer et ouvrez le moniteur série - vous verrez quelque chose de similaire à l'image du moniteur série montrée dans cette étape.
Si vous devez modifier le gain de l'amplificateur de gain programmable interne de l'ADC, vous devrez écrire un nouvel octet dans le registre de configuration en utilisant:
Wire.beginTransmission(ads1110);Wire.write(octet de configuration); Wire.endTransmission();
avant de demander les données ADC. Ce serait 0x8D, 0x8E ou 0x8F pour des valeurs de gain de 2, 4 et 8 respectivement - et utiliser 0x8C pour réinitialiser l'ADS1110 à sa valeur par défaut.
Étape 6: Mode ADC différentiel
Dans ce mode, vous pouvez lire la différence entre deux tensions qui tombent chacune entre zéro et 5 V. L'exemple de circuit est simple (à partir de la fiche technique).
Il faut noter ici (et dans la fiche technique) que l'ADS1110 ne peut accepter des tensions négatives sur aucune des entrées. Vous pouvez utiliser le schéma précédent pour les mêmes résultats - et la tension résultante sera la valeur de Vin- soustraite de Vin+. Par exemple, si vous aviez 2 V sur Vin+ et 1 V sur Vin-, la tension résultante serait de 1 V (avec le gain réglé sur 1).
Encore une fois, nous espérons que vous avez trouvé cela intéressant et peut-être utile. 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é:
Tutoriel sur l'accéléromètre numérique Arduino Nano - MMA8452Q 3 axes 12 bits/8 bits : 4 étapes
Tutoriel sur l'accéléromètre numérique à 3 axes 12 bits/8 bits Arduino Nano - MMA8452Q : Le MMA8452Q est un accéléromètre intelligent, à faible consommation, à trois axes, capacitif et micro-usiné avec une résolution de 12 bits. Des options flexibles programmables par l'utilisateur sont fournies à l'aide de fonctions intégrées dans l'accéléromètre, configurables à deux interruptions
Tutoriel Python de l'accéléromètre numérique à 3 axes 12 bits/8 bits Raspberry Pi MMA8452Q : 4 étapes
Tutoriel Python pour l'accéléromètre numérique à 3 axes 12 bits/8 bits Raspberry Pi MMA8452Q : Le MMA8452Q est un accéléromètre intelligent, à faible consommation, à trois axes, capacitif et micro-usiné avec une résolution de 12 bits. Des options flexibles programmables par l'utilisateur sont fournies à l'aide de fonctions intégrées dans l'accéléromètre, configurables à deux interruptions
Compteur binaire Arduino 8 bits : 6 étapes
Compteur binaire Arduino 8 bits: Compteur binaire Arduino 8 bits de 0 à 255. Ce projet est un compteur avec 8 LED à connecter aux broches Arduino 5, 3, 4, 7, 10, 11, 12 & 13 pour qu'il compte de droite à gauche en générant des codes de zéro à 255
Tutoriel Java de l'accéléromètre numérique à 3 axes 12 bits/8 bits Raspberry Pi MMA8452Q : 4 étapes
Tutoriel Java de l'accéléromètre numérique à 3 axes 12 bits/8 bits Raspberry Pi MMA8452Q : Le MMA8452Q est un accéléromètre intelligent, à faible consommation, à trois axes, capacitif et micro-usiné avec une résolution de 12 bits. Des options flexibles programmables par l'utilisateur sont fournies à l'aide de fonctions intégrées dans l'accéléromètre, configurables à deux interruptions
DIY MusiLED, LED synchronisées avec la musique avec une application Windows et Linux en un clic (32 bits et 64 bits). Facile à recréer, facile à utiliser, facile à porter. : 3 étapes
DIY MusiLED, LED synchronisées avec la musique avec une application Windows et Linux en un clic (32 bits et 64 bits). Facile à recréer, facile à utiliser, facile à porter. : Ce projet vous aidera à connecter 18 LED (6 rouges + 6 bleues + 6 jaunes) à votre carte Arduino et analyser les signaux en temps réel de la carte son de votre ordinateur et les relayer à les leds pour les éclairer selon les effets de beat (Snare, High Hat, Kick)