Tutoriels

Comment utiliser ADS1115 Convertisseur Analogique-Numérique 16 bits avec Arduino

Utilisation De Ads1115 Convertisseur Analogique-Numérique Avec Arduino

Introduction:

Dans ce projet, nous allons explorer comment interfacer l’ADS1115, un convertisseur analogique-numérique (CAN) de haute précision, avec une carte Arduino. Ce convertisseur offre une résolution de 16 bits, ce qui le rend idéal pour des applications nécessitant une mesure de tension précise sur une large plage. Nous allons apprendre à configurer ce convertisseur en utilisant le protocole de communication I2C et à lire les valeurs de tension de différentes entrées analogiques à l’aide d’une carte Arduino.

Ads1115 Convertisseur Analogique-Numérique 16 Bits Est Permet De Convertir Des Signaux Analogiques En Valeurs Numériques. Il Est Souvent Utilisé Dans Des Applications Où Il Est Nécessaire De Mesurer Des Quantités Physiques Telles Que La Température, La Pression, Le Débit, Etc.
ADS1115 Convertisseur Analogique-Numérique 16 bits

Matériel requis:

Schéma et Connexions:

Voici un tableau clair résumant le schéma de câblage et les connexions entre ce module convertisseur et l’Arduino :

ADS1115Arduino UNO
VCC5V
GNDGND
SDAA4
SCLA5
ALRTD2

Ce module fonctionne en utilisant le protocole de communication I2C, et ces connexions sont essentielles pour établir cette communication. De plus, ce convertisseur possède une broche ALRT (Alert/Ready), qui peut être utilisée pour indiquer quand la conversion est prête à être lue.

Schéma De Câblage De Module Ads1115 Convertisseur Avec Arduino
Schéma de câblage de module ADS1115 avec Arduino

Installation des Bibliothèques:

Téléchargez la bibliothèque ce convertisseur à partir du gestionnaire de bibliothèques de l’IDE Arduino. Pour ce faire, suivez ces étapes:

  • Ouvrez l’IDE Arduino.
  • Allez dans le menu “Croquis” (Sketch) et sélectionnez “Inclure une bibliothèque” (Include Library).
  • Recherchez “ADS1115” dans la barre de recherche et cliquez sur “Installer” (Install) pour installer la bibliothèque.

Code:

Après avoir installé la bibliothèque ADS1115, utilisez le code suivant pour interagir avec ce module convertisseur et lire les valeurs de tension des entrées analogiques:

#include <Wire.h>
#include <ADS1115.h>

ADS1115 adc0(ADS1115_DEFAULT_ADDRESS);

const int alertReadyPin = 2;

void setup() {    
    Wire.begin();
    Serial.begin(115200); // Initialisation de la communication série 
    
    Serial.println("Test de connexion aux périphériques...");
    Serial.println(adc0.testConnection() ? "Connexion à l'ADS1115 réussie" : "Echec de connexion à l'ADS1115");
    
    adc0.initialize(); 

    // Mode d'échantillonnage unique (single shot)
    adc0.setMode(ADS1115_MODE_SINGLESHOT);
    
    // Ralentir le processus pour observer que le code de "poll for conversion" fonctionne
    adc0.setRate(ADS1115_RATE_250);
      
    // Définir le gain (PGA) +/- 6.144V
    // Notez que toute entrée analogique doit être supérieure à –0.3V et inférieure à VDD +0.3
    adc0.setGain(ADS1115_PGA_6P144);
    // La broche ALERT/RDY indiquera quand la conversion sera prête

    pinMode(alertReadyPin, INPUT_PULLUP);
    adc0.setConversionReadyPinMode();

    // Pour obtenir une sortie de cette méthode, vous devrez activer
    //#define ADS1115_SERIAL_DEBUG // dans le fichier ADS1115.h
    #ifdef ADS1115_SERIAL_DEBUG
    adc0.showConfigRegister();
    Serial.print("Seuil haut="); Serial.println(adc0.getHighThreshold(),BIN);
    Serial.print("Seuil bas="); Serial.println(adc0.getLowThreshold(),BIN);
    #endif
}

/** Sondez la broche assignée pour le statut de la conversion 
 */
void pollAlertReadyPin() {
  for (uint32_t i = 0; i<100000; i++)
    if (!digitalRead(alertReadyPin)) return;
   Serial.println("Échec d'attente pour la broche AlertReadyPin, elle est bloquée à l'état haut !");
}

void loop() {
       
    // La méthode ci-dessous définit le multiplexeur et effectue une lecture.
    adc0.setMultiplexer(ADS1115_MUX_P0_NG);
    adc0.triggerConversion();
    pollAlertReadyPin();
    Serial.print("A0: "); Serial.print(adc0.getMilliVolts(false)); Serial.print("mV\t");
    
    adc0.setMultiplexer(ADS1115_MUX_P1_NG);
    adc0.triggerConversion();
    pollAlertReadyPin();
    Serial.print("A1: "); Serial.print(adc0.getMilliVolts(true)); Serial.print("mV\t");
    
    adc0.setMultiplexer(ADS1115_MUX_P2_NG);
    adc0.triggerConversion();
    pollAlertReadyPin();
    Serial.print("A2: "); Serial.print(adc0.getMilliVolts(true)); Serial.print("mV\t");
    
    adc0.setMultiplexer(ADS1115_MUX_P3_NG);
    // Effectuez le suivi de la conversion via I2C pour cette dernière lecture : 
    Serial.print("A3: "); Serial.print(adc0.getMilliVolts(true)); Serial.print("mV");
    
    Serial.println(digitalRead(alertReadyPin));
    delay(500);
}

Explication du Code:

Le code commence par initialiser la communication série pour permettre la sortie des valeurs sur le moniteur série. Ensuite, il vérifie la connexion à ce module . Après l’initialisation, ce module convertisseur est configuré pour effectuer des échantillonnages uniques (single shot) avec une vitesse de conversion de 250 échantillons par seconde. Le gain (PGA) est réglé à +/- 6.144V pour ajuster la sensibilité de la mesure. Le code lit ensuite les valeurs des entrées analogiques AIN0 et AIN1, les convertit en millivolts et les affiche sur le moniteur série. Le processus est répété à intervalles réguliers pour obtenir des mesures en temps réel.

Applications:

Ce module convertisseur est utile pour les projets de :

  1. Instrumentation haute précision: il est largement utilisé dans des applications nécessitant une mesure de tension de haute précision. Par exemple, dans les systèmes de laboratoire, les équipements de test et les dispositifs de mesure, où une précision élevée est essentielle pour obtenir des résultats fiables.
  2. Automatisation industrielle: Dans les environnements industriels, il peut être utilisé pour surveiller les signaux analogiques provenant de capteurs, tels que des capteurs de pression, des thermocouples, des capteurs de niveau, etc. Il permet de convertir ces signaux en valeurs numériques pour un traitement plus facile par un système de contrôle.
  3. Surveillance de batterie: Dans les applications nécessitant une surveillance précise de la tension de la batterie, comme les systèmes solaires, les véhicules électriques, les onduleurs, etc., ce convertisseur peut être utilisé pour surveiller en temps réel l’état de charge et la santé de la batterie.
  4. Systèmes de surveillance environnementale: il est utilisé dans les projets de surveillance environnementale pour mesurer des paramètres tels que l’humidité du sol, le niveau d’eau, la température, etc. Ces mesures sont essentielles pour la gestion des ressources naturelles et des écosystèmes.
  5. Équipements médicaux: Dans certains dispositifs médicaux, comme les équipements de diagnostic, les dispositifs de surveillance des signes vitaux, etc., ce convertisseur peut être utilisé pour acquérir des signaux analogiques provenant de capteurs médicaux et les convertir en données numériques pour une analyse et un traitement ultérieurs.
  6. Automobiles et véhicules autonomes: Dans les systèmes automobiles et les véhicules autonomes,ce convertisseur peut être utilisé pour collecter des données à partir de capteurs tels que des capteurs de distance, des capteurs d’accélération, des capteurs de pression des pneus, etc., pour contribuer à la prise de décision intelligente.
  7. Contrôle de processus industriel: il est utile dans les systèmes de contrôle de processus industriels, où il peut convertir les signaux analogiques en valeurs numériques pour effectuer des actions de contrôle en fonction des niveaux de tension détectés.
  8. Projets électroniques personnalisés: En raison de sa haute précision et de sa flexibilité, ce convertisseur peut être utilisé dans une variété de projets électroniques personnalisés qui nécessitent des mesures de tension précises.

Conclusion:

Dans ce projet, nous avons appris comment interfacer l’ADS1115, un convertisseur analogique-numérique de haute précision, avec une carte Arduino. Nous avons vu comment lire les valeurs de tension à partir des entrées analogiques de ce module et les convertir en millivolts. Vous pouvez désormais exploiter cette précision pour vos projets nécessitant des mesures de tension précises. N’hésitez pas à explorer davantage les fonctionnalités de ce module pour répondre à vos besoins spécifiques.

Vidéo descriptif d’utilisation de ADS1115 Convertisseur avec Arduino Nano

Lien outilles

  1. Téléchargement de l’Arduino IDE : https://www.arduino.cc/en/software
  2. Pour plus d’articles : https://www.moussasoft.com/tutoriels-electroniques
  3. TwitterMoussa Lhoussaine (@Moussasoft_com) / Twitter

Arduino – Home