L'ADS1115 è un convertitore da analogico a digitale di precisione a 16 bit (ADC) con un'interfaccia I2C. Offre un'elevata precisione e più canali di input, rendendolo ideale per i sensori di lettura, tensioni di monitoraggio o segnali di amplificazione nei progetti Arduino. Questo tutorial ti guiderà attraverso la connessione e l'utilizzo di ADS1115 con Arduino.
Cosa avrai bisogno
- Modulo ADC ADS1115
- Arduino Board (ad es. Uno, Mega, Nano)
- Sensori o dispositivi analogici (ad es. Potenziometro)
- Breadboard e fili jumper
- Un computer con l'IDE Arduino installato
Passaggio 1: comprensione del modulo ADS1115
L'ADS1115 offre:
- Risoluzione ADC a 16 bit (15 bit per input differenziali).
- 4 canali di input (o 2 coppie differenziali).
- Amplificatore di guadagno programmabile (PGA) per l'amplificazione del segnale.
Pinout ADS1115
Spillo | Funzione |
---|---|
VCC | Alimentazione (3.3V/5V) |
GND | Terra |
SDA | Linea di dati I2C |
SCL | Linea di orologio i2c |
ADDR | Configurazione dell'indirizzo I2C |
-
Configurazione del pin ADDR:
- GND:
0x48
(indirizzo predefinito) - VCC:
0x49
- SDA:
0x4A
- SCL:
0x4B
- GND:
Passaggio 2: Cablaggio degli ADS1115 ad Arduino
Collegare l'ADS1115 all'Arduino come segue:
PIN ADS1115 | Arduino Pin |
---|---|
VCC | 5v |
GND | GND |
SDA | A4 (SDA) |
SCL | A5 (SCL) |
Nota: Per altre schede Arduino, assicurati di utilizzare i pin i2C corretti.
Passaggio 3: installare la libreria richiesta
Per semplificare la comunicazione con ADS1115, installare la libreria Adafruit ADS1X15.
Passi da installare:
- Apri l'IDE Arduino.
- Vai a Schizzo > Includi la libreria > Gestisci le biblioteche.
- Cerca "Adafruit Ads1x15" e fai clic su Installare.
Passaggio 4: caricare il codice
Ecco uno schizzo di esempio per leggere l'input analogico dagli 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
}
Passaggio 5: testare l'installazione
- Collega l'Arduino al tuo computer tramite USB.
- Apri l'IDE Arduino e seleziona il corretto Asse E Porta sotto il Utensili menu.
- Carica il codice su Arduino facendo clic Caricamento.
- Apri il monitor seriale (Utensili > Monitor seriale) e impostare il tasso di baud su
9600
. - Variare la tensione di ingresso (ad es. Usando un potenziometro) e osservare il valore ADC e le letture di tensione.
Opzionale: usando la modalità differenziale
L'ADS1115 può anche misurare la differenza tra due pin di input (ad es. A0 e 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);
Applicazioni dell'ADS1115
- Letture dei sensori ad alta precisione
- Monitoraggio e misurazione della tensione
- Amplificazione del segnale per piccoli sensori
- Misurazione del segnale differenziale
Risoluzione dei problemi
- Nessuna risposta dal sensore: Verifica le connessioni I2C e assicurati che venga utilizzato l'indirizzo I2C corretto.
- Letture incoerenti: Verificare la presenza di un alimentatore stabile e di pulire gli ingressi del segnale.
- A bassa risoluzione: Assicurati di utilizzare l'impostazione del guadagno corretta per l'intervallo di input.
Conclusione
Hai interfacciato con successo l'ADC ADS1115 con Arduino. Con la sua alta precisione e flessibilità, ADS1115 è uno strumento eccellente per vari progetti che richiedono una conversione da analogico a digitale accurata. Sperimenta le sue caratteristiche per creare sistemi di misurazione avanzati e interfacce di sensori!