Jak korzystać z ADS1115 ADC z Arduino

How to Use the ADS1115 ADC with Arduino

ADS1115 to 16-bitowy precyzyjny konwerter analogowo-cyfrowy (ADC) z interfejsem I2C. Oferuje wysoką dokładność i wiele kanałów wejściowych, dzięki czemu jest idealny do odczytu czujników, monitorowania napięć lub wzmacniania sygnałów w projektach Arduino. Ten samouczek poprowadzi Cię przez połączenie i korzystanie z ADS1115 z Arduino.


Czego będziesz potrzebować

  1. Moduł ADS1115 ADC
  2. Arduino Board (np. UNO, Mega, Nano)
  3. Czujniki lub urządzenia analogowe (np. Potencjometr)
  4. Druty chleba i skoczków
  5. Komputer z zainstalowanym Arduino IDE

Krok 1: Zrozumienie modułu ADS1115

ADS1115 oferuje:

  • 16-bitowa rozdzielczość ADC (15-bitowe dla wejść różnicowych).
  • 4 kanały wejściowe (lub 2 pary różnicowe).
  • Programowalny wzmacniacz wzmocnienia (PGA) Do wzmocnienia sygnału.

ADS1115 Pinout

Szpilka Funkcjonować
VCC Zasilacz (3,3 V/5 V)
GND Grunt
SDA I2C Linia danych
Scl Linia zegara I2C
Addr Konfiguracja adresu I2C
  • Konfiguracja PIN Addr:
    • GND: 0x48 (Domyślny adres)
    • VCC: 0x49
    • SDA: 0x4A
    • SCL: 0x4B

Krok 2: Okablowanie ADS1115 do Arduino

Podłącz ADS1115 z Arduino w następujący sposób:

PIN ADS1115 PIN Arduino
VCC 5v
GND GND
SDA A4 (SDA)
Scl A5 (SCL)

Notatka: W przypadku innych płyt Arduino upewnij się, że używasz odpowiednich pinów I2C.


Krok 3: Zainstaluj wymaganą bibliotekę

Aby uprościć komunikację z ADS1115, zainstaluj bibliotekę ADAFRUT ADS1X15.

Kroki do zainstalowania:

  1. Otwórz Arduino IDE.
  2. Idź do Naszkicować > Uwzględnij bibliotekę > Zarządzaj bibliotekami.
  3. Wyszukaj „Adafruit Ads1x15” i kliknij Zainstalować.

Krok 4: Prześlij kod

Oto przykład szkicu do odczytania danych wejściowych analogowych z 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
}

Krok 5: Przetestuj konfigurację

  1. Podłącz Arduino do komputera za pomocą USB.
  2. Otwórz Arduino IDE i wybierz poprawne Tablica I Port pod Narzędzia menu.
  3. Prześlij kod do Arduino, klikając Wgrywać.
  4. Otwórz monitor szeregowy (Narzędzia > Monitor szeregowy) i ustaw wskaźnik transmisji na 9600.
  5. Zmień napięcie wejściowe (np. Za pomocą potencjometru) i obserwuj wartość ADC i odczyty napięcia.

Opcjonalnie: przy użyciu trybu różnicowego

ADS1115 może również mierzyć różnicę między dwoma pinami wejściowymi (np. A0 i 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);

Zastosowania ADS1115

  1. Odczyty czujników bardzo precyzyjne
  2. Monitorowanie i pomiar napięcia
  3. Wzmocnienie sygnału dla małych czujników
  4. Pomiar sygnału różnicowego

Rozwiązywanie problemów

  • Brak odpowiedzi od czujnika: Sprawdź połączenia I2C i upewnij się, że używany jest prawidłowy adres I2C.
  • Niespójne odczyty: Sprawdź stabilne wejścia zasilania i czystego sygnału.
  • Niska rozdzielczość: Upewnij się, że używasz poprawnego ustawienia wzmocnienia dla swojego zakresu wejściowego.

Wniosek

Z powodzeniem połączyłeś ADS1115 ADC z Arduino. Dzięki wysokiej precyzji i elastyczności ADS1115 jest doskonałym narzędziem do różnych projektów wymagających dokładnej konwersji analogowo-cyfrowej. Eksperymentuj z funkcjami budowania zaawansowanych systemów pomiarowych i interfejsów czujników!

Zostaw komentarz

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.