|

Jak odróżnić ADS1115 od ADS1015?

Jak odróżnić ADS1115 od ADS1015?

W świecie elektroniki przetworniki analogowo-cyfrowe z serii ADS1x15 (czyli ADS1115 i ADS1015) są jednymi z najczęściej wykorzystywanych modułów ADC. Znajdziesz je w projektach Arduino, ESP32, Raspberry Pi i wszędzie tam, gdzie potrzebne są precyzyjne pomiary napięcia z czujników.

Choć oba układy wyglądają niemal identycznie i często są zamienne mechanicznie, różnią się znacząco pod względem rozdzielczości i dokładności. Co gorsza – na rynku pojawiają się moduły z błędnie oznaczonymi układami, gdzie zamiast ADS1115 znajduje się tańszy ADS1015.

Ten artykuł pokaże Ci, jak samodzielnie sprawdzić, który układ masz naprawdę – za pomocą prostego kodu i kilku minut testu.

Czym się różni ADS1115 od ADS1015?

CechaADS1115ADS1015
Rozdzielczość16 bitów12 bitów
Zakres danych±32767±2047
Prędkość próbkowaniaDo 860 SPSDo 3300 SPS
ZastosowaniaPrecyzyjne pomiaryPomiar szybki, mniej dokładny

Oba układy komunikują się przez I²C, mają te same piny i rejestry, ale kluczowa różnica tkwi w sposobie kodowania danych. ADS1015 zawsze zeruje 4 najmłodsze bity, przez co wartości rosną skokowo co 16 jednostek. ADS1115 pozwala na płynną zmianę co 1 jednostkę.

✅ Jak przeprowadzić test?

Do testu potrzebujesz:

  • Arduino lub ESP32
  • Modułu ADS1x15 (o niepewnym pochodzeniu 😉)
  • Płytki stykowej i przewodów
  • Arduino IDE + biblioteki Adafruit_ADS1X15

📥 Instalacja biblioteki

W Arduino IDE przejdź do:

Szkic → Dołącz bibliotekę → Zarządzaj bibliotekami…
Wyszukaj i zainstaluj: Adafruit ADS1X15

#include <Wire.h>
#include <Adafruit_ADS1X15.h>

// Obiekt przetwornika – obsługuje ADS1115 i ADS1015
Adafruit_ADS1115 ads;

void setup() {
  Serial.begin(115200);
  delay(500);

  // Dla ESP32 z niestandardowymi pinami I2C:
  // Wire.begin(27, 26);

  if (!ads.begin()) {
    Serial.println("Nie wykryto ADS1x15. Sprawdź połączenia!");
    while (1);
  }

  ads.setGain(GAIN_TWOTHIRDS); // ±6.144V zakres
  Serial.println("Start testu ADS1x15...");
}

void loop() {
  int16_t value = ads.readADC_SingleEnded(0); // Odczyt z kanału A0

  // Rozbicie na bajty
  uint8_t msb = (value >> 8) & 0xFF;
  uint8_t lsb = value & 0xFF;

  // Wyświetlenie danych
  Serial.print("MSB: ");
  Serial.print(msb, BIN);
  Serial.print(" | LSB: ");
  Serial.print(lsb, BIN);
  Serial.print(" | Wartość surowa: ");
  Serial.println(value);

  delay(300);
}

📊 Jak zinterpretować wyniki?

Podłącz potencjometr lub dzielnik napięcia i obserwuj zmiany odczytów.

🔸 Jeśli masz ADS1015 (12-bitowy):

  • Wartości będą zmieniać się skokowo co 16 jednostek:
    128 → 144 → 160 → 176...
  • 4 najmłodsze bity (LSB) będą zawsze zerowe – zobaczysz to w postaci końcówek 0000 w binarnym LSB.

🔹 Jeśli masz ADS1115 (16-bitowy):

  • Wartości będą zmieniać się płynnie, nawet co 1 jednostkę:
    1201 → 1202 → 1203 → 1205...
  • W LSB będą się pojawiać różne końcówki, np. 1001, 1010, 1111 – co oznacza użycie pełnych 16 bitów.

🧠 Podsumowanie

Moduły ADS1115 i ADS1015 mogą wyglądać identycznie, ale działają zupełnie inaczej. Jeśli zależy Ci na precyzyjnych pomiarach – musisz wiedzieć, który układ faktycznie masz. Prosty test oparty na obserwacji surowych danych z I²C pozwala Ci to łatwo rozróżnić:

  • ADS1115: pełna rozdzielczość, płynna zmiana wartości, brak zer w końcówce LSB.
  • ADS1015: skoki co 16, końcówki binarne LSB zawsze 0000.

Prezentowaną w artykule elektronikę znajdziesz oczywiście w naszym sklepie 👉 sklep.msalamon.pl 👈Zapraszamy również na nasze social media, gdzie na bieżąco informujemy o nowych produktach oraz o najciekawszych promocjach 😎👇


Wpisy powiązane z Artykułem

Podobne wpisy

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *