Come utilizzare l'ADC ADS1115 con Arduino

How to Use the ADS1115 ADC with Arduino

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

  1. Modulo ADC ADS1115
  2. Arduino Board (ad es. Uno, Mega, Nano)
  3. Sensori o dispositivi analogici (ad es. Potenziometro)
  4. Breadboard e fili jumper
  5. 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

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:

  1. Apri l'IDE Arduino.
  2. Vai a Schizzo > Includi la libreria > Gestisci le biblioteche.
  3. 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

  1. Collega l'Arduino al tuo computer tramite USB.
  2. Apri l'IDE Arduino e seleziona il corretto Asse E Porta sotto il Utensili menu.
  3. Carica il codice su Arduino facendo clic Caricamento.
  4. Apri il monitor seriale (Utensili > Monitor seriale) e impostare il tasso di baud su 9600.
  5. 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

  1. Letture dei sensori ad alta precisione
  2. Monitoraggio e misurazione della tensione
  3. Amplificazione del segnale per piccoli sensori
  4. 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!

Lascia un commento

Notice an Issue? Have a Suggestion?
If you encounter a problem or have an idea for a new feature, let us know! Report a problem or request a feature here.