L'ADS1115 est un convertisseur analogique de précision 16 bits (ADC) avec une interface I2C. Il offre une précision élevée et plusieurs canaux d'entrée, ce qui le rend idéal pour les capteurs de lecture, les tensions de surveillance ou l'amplification des signaux dans les projets Arduino. Ce tutoriel vous guidera dans la connexion et l'utilisation de l'ADS1115 avec Arduino.
Ce dont vous aurez besoin
- Module ADC ADS1115
- Board Arduino (par exemple, Uno, Mega, Nano)
- Capteurs ou dispositifs analogiques (par exemple, potentiomètre)
- Fils de planche à pain et de cavalier
- Un ordinateur avec l'ide Arduino installé
Étape 1: Comprendre le module ADS1115
L'ADS1115 propose:
- Résolution ADC 16 bits (15 bits pour les entrées différentielles).
- 4 canaux d'entrée (ou 2 paires différentielles).
- Amplificateur de gain programmable (PGA) pour l'amplification du signal.
Pinout ADS1115
Épingle | Fonction |
---|---|
VCC | Alimentation (3,3 V / 5V) |
GND | Sol |
SDA | Ligne de données I2C |
SCL | Ligne d'horloge i2c |
Addr | Configuration d'adresse I2C |
-
Configuration de la broche Addr:
- GND:
0x48
(adresse par défaut) - VCC:
0x49
- SDA:
0x4A
- SCL:
0x4B
- GND:
Étape 2: Câblage de l'ADS1115 à Arduino
Connectez l'ADS1115 à l'Arduino comme suit:
Broche ADS1115 | Épingle arduino |
---|---|
VCC | 5V |
GND | GND |
SDA | A4 (SDA) |
SCL | A5 (SCL) |
Note: Pour d'autres cartes Arduino, assurez-vous d'utiliser les broches I2C correctes.
Étape 3: Installez la bibliothèque requise
Pour simplifier la communication avec l'ADS1115, installez la bibliothèque ADAFruit ADS1X15.
Étapes à installer:
- Ouvrez l'ide Arduino.
- Aller à Esquisser > Inclure la bibliothèque > Gérer les bibliothèques.
- Recherchez "Adafruit ADS1X15" et cliquez Installer.
Étape 4: Téléchargez le code
Voici un exemple de croquis pour lire l'entrée analogique de l'ADS1115:
#include <Wire.h>
#include <Adafruit_ADS1X15.h>
Adafruit_ADS1115 ads; // Create an ADS1115 object
void setup() {
Serial.begin(9600);
while (!Serial);
Serial.println("Initializing ADS1115...");
if (!ads.begin()) {
Serial.println("Failed to detect ADS1115. Check connections.");
while (1);
}
Serial.println("ADS1115 initialized.");
}
void loop() {
int16_t adc0 = ads.readADC_SingleEnded(0); // Read channel 0
float voltage = adc0 * 0.1875 / 1000.0; // Convert to voltage (gain = 2/3)
Serial.print("ADC Value: ");
Serial.print(adc0);
Serial.print(" | Voltage: ");
Serial.print(voltage);
Serial.println(" V");
delay(500); // Wait for 500ms before the next reading
}
Étape 5: tester la configuration
- Connectez l'Arduino à votre ordinateur via USB.
- Ouvrez l'ide Arduino et sélectionnez le bon Conseil et Port sous Outils menu.
- Téléchargez le code sur l'Arduino en cliquant Télécharger.
- Ouvrez le moniteur en série (Outils > Moniteur en série) et régler le taux de bauds sur
9600
. - Variez la tension d'entrée (par exemple, en utilisant un potentiomètre) et observez la valeur ADC et les lectures de tension.
Facultatif: Utilisation du mode différentiel
L'ADS1115 peut également mesurer la différence entre deux broches d'entrée (par exemple, A0 et A1):
int16_t diff = ads.readADC_Differential_0_1(); // Measure difference between A0 and A1
float voltage = diff * 0.1875 / 1000.0; // Convert to voltage
Serial.println(voltage);
Applications de l'ADS1115
- Lectures de capteurs de haute précision
- Surveillance et mesure de la tension
- Amplification du signal pour les petits capteurs
- Mesure différentielle du signal
Dépannage
- Aucune réponse du capteur: Vérifiez les connexions I2C et assurez-vous que l'adresse I2C correcte est utilisée.
- Lectures incohérentes: Vérifiez une alimentation stable et des entrées de signal propre.
- Faible résolution: Assurez-vous que vous utilisez le paramètre de gain correct pour votre plage d'entrée.
Conclusion
Vous avez réussi à interfacer l'ADC ADS1115 avec Arduino. Avec sa haute précision et sa flexibilité, l'ADS1115 est un excellent outil pour divers projets nécessitant une conversion analogique-numérique précise. Expérimentez ses fonctionnalités pour construire des systèmes de mesure avancés et des interfaces de capteur!