Mein neuestes Spielzeug sind die kleinen 15/16Bit ADCs ADS1115 von Texas Instruments. Wunderbare Bausteine die man für wenig Geld an jeder Ecke bekommt. Nachfolgend eine Zusammenfassung wie man diese einfach ansteuert, sowie ein kleines Beispielprogram in C für den STM32.

Im Web finden sich viele der folgenden Platinen, aber obacht - manchmal ist nur ein 12 Bit Chip aufgelötet und man wundert sich warum sich die unteren Bits nie ändern.

 

Der Chip kann per I2C-Bus angesteuert werden und liefert über 4-Kanäle sogar 15/16bit Auflösung. Ein eingebauter programmierbarer Verstärker ermöglicht Messbereiche von:

0: +-6.144V

1:+-4.096V

2:+-2,048V

3: +-1,024V

4: +-0.512V

5: +-0.256V

Der Baustein kann leider keine negativen Spannungen in Bezug auf GND messen, das geht nur im differentiellen Mode wenn man zwischen zwei Eingängen misst. Daher rührt dan auch die echte Auflösung von 15 Bit im single-ended Mode.

Für die Verwendung mit dem STM32F103 Prozessor habe ich nachfolgend eine kleine I2C- C Library entwickelt. Hier werden die wesentlichen Funktionen des ADS1115 abgebildet. Die Threshold und Interruptfunktion habe ich nicht umgesetzt. Falls ich das irgendwann mal brauche füge ich es noch hinzu.

Im nachfolgenden ZIP-File befinden sich die I2C Lib, die ADS1115 Lib und ein kleines Testprogram. Das Testprogramm kann über ein RS232 Terminalprogramm (115200baud) einfach bedient werden. ? oder --h eintippen und man erhält ein Hilfemenü. Das Testprogramm programmiert den PGA (Programmable Gain Amplifier), sowie den Eingangsbereich und gibt die gemessene Spannung in mV aus.

Hier das Beispielprogram zum Download.