ADS1x15 Analog zu Digital Konverter

Beschreibung

Der Analog-Digital-Wandler (ADC) ADS1115 von Texas Instruments stellt ein perfektes Frontend für relativ langsame (weniger als 1 kHz) aber präzise Datenerfassungssysteme dar. Der ADS1115 bietet 16-Bit-Genauigkeit bei maxmal 860 Abtastungen pro Sekunde (Der ADS1015 hat 12 Bit Auflösung). Er wird über I2C angebunden. Der Chip besitzt vier Single-Emded-Eingangskanäle, die auch als zwei Differenzkanäle konfiguriert werden können (nicht mit diesem Plugin). Der recht komplexe Baustein enthält sogar einen programmierbaren Verstärker, um kleinere Einzel- oder Differential-Signale auf die volle Bandbreite zu bringen. Der ADS1115 kann mit Versorgungsspannungungen zwischen 2 V und 5 V betrieben werden, passt also gut zum Raspberry Pi.

Abbildung: © https://web.archive.org/web/20190826011350/http://www.netzmafia.de/skripten/hardware/RasPi/Projekt-ADS1115/index.html

Datenblatt

Hardware-Konfiguration

Das Plugin unterstützt nur Sensoren, die am I2C-Bus i2c-1 angeschlossen sind! Das ist eine Beschränkung der verwendeten Software https://github.com/flyte/mqtt-io/

Hintergrundinfos: Siehe https://web.archive.org/web/20190826011350/http://www.netzmafia.de/skripten/hardware/RasPi/Projekt-ADS1115/index.html

  • ADS1115 VDD → Raspberry Pi 3,3 V
  • ADS1115 GND→ Raspberry Pi GND
  • ADS1115 SCL → Raspberry Pi SCL
  • ADS1115 SDA → Raspberry Pi SDA
Beschaltung der analogen Eingänge

Es fehlen Schutzwiderstände. Wenn die angeschlossene Messspannungsquelle genügend Strom liefert, werden die Dioden und als Folge weitere interne Komponenten zerstört. Insofern sollte man einen genügend großen Vorwiderstand zwischen Messpunkt und ADC-Eingang schalten. Mit 330 bis 470 Ohm sollte man bei Spannungen bis 5 V auf der sicheren Seite sein. Bei einem Vorwiderstand von etwa 10kΩ verträgt der Chip auch eine höhere Überspannung, ohne dass die Messung im Sollbereich beeinträchtigt wird. Sinnvole Ergebniswerte erhält man außerhalb des Sollbereichs natürlich nicht.

Software-Konfiguration

Modul

  • Chip-Adresse: Default ist meistens 0x48. Der Chip muss am I2C-Bis 1 betrieben werden (andere Busse unterstützt das Plugin bei diesem Chip nicht!)
  • Typ: ADS1115 (16Bit) oder ADS1015 (12Bit)
  • Pins: Welche Pins sollen über separate Eingänge ausgelesen werden
  • Gain: Verstärkung des Eingangssignals

Der Verstärkungsfaktor des analogen Signals kann also per Konfiguration eingestellt werden. Die Verstärkung steuert auch den Bereich der möglichen Eingangsspannungen. Bei einem Verstärkungsfaktor von 1 kann der Chip Eingangswerte von -4,096 V bis +4,096 V verarbeiten (bei 5 V Versorgung - Achtung! Am Raspberry nur 3.3V verwenden!). Um schwächere Signale mit höherer Genauigkeit zu lesen, wählt man höhere Verstärkungen aus. Die Wahl des richtigen Faktors für ein bestimmtes Eingangssignal ist sehr wichtig für die Genauigkeit der Messung. Es lohnt sich also, über die maximal auftretenden Eingangsspannungen nachzudenken. Eine zu hohe Verstärkung bewirkt eventuell die Kappung der Werte bei höheren Eingangssignalen und damit fehlerhafte Ergebnisse. Bei einer zu geringen Verstärkung versinkt das Signal im Rauschen und ist ebenfalls ungenau.

Eingänge

  • Typ: Voltage oder Value
  • Pin: Welcher Pin wird ausgelesen - Muss auch im Modul aktiviert sein!
  • Polling Intervall: Intervall, wann eine Messung angefordert wird.