Ich habe dieses Angebot für 3 Stück ADS1115 https://www.amazon.de/gp/product/B07QHWLTTS gekauft, und dann stundenlang nach dem Problem gesucht, warum ich nur 12 bit Auflösung bekam, statt 16 bit.
Die Erklärung ist aber einfach: es sind offenkundig Fälschungen, bei denen ein ADS1015 (12 bit) umgelabeled wurde zu einem ADS1115 (16 bit). Der 1015 ist kein schlechter ADC, aber hat eben eine geringere Auflösung (jedoch höhere maximale Abtastrate) und ist für etwa den halben Preis im Großhandel zu erwerben. Und er ist in Form, Größe, Pin-Belegung, Software nicht unterscheidbar von dem teureren Bruder.
Ich habe sowohl diese lib GitHub - adafruit/Adafruit_ADS1X15: Driver for TI's ADS1015: 12-bit Differential or Single-Ended ADC with PGA and Comparator benutzt, als auch diese ADC ADS1115 :: Meine Arduino-Projekte (Letztere ist ein klein wenig einfacher zu nutzen, und erlaubt auch das Setzen der Abtastrate). Das Ergebnis war in beiden Fällen gleich. Die Werte variieren stets um ein Vielfaches von 16. Es wird deutlicher, wenn man die Messungen hexadezimal darstellt:
ADC Readout: 13456, 0x3490
ADC Readout: 13360, 0x3430 *
ADC Readout: 13456, 0x3490
ADC Readout: 13456, 0x3490
ADC Readout: 13456, 0x3490
ADC Readout: 13376, 0x3440 *
ADC Readout: 13456, 0x3490
...
ADC Readout: 13456, 0x3490
ADC Readout: 13440, 0x3480 *
ADC Readout: 13440, 0x3480 *
ADC Readout: 13456, 0x3490
ADC Readout: 13456, 0x3490
ADC Readout: 13456, 0x3490
Die untersten 4 bit sind immer Null, erst ab bit 5 (mit * markiert) springen die Werte um. Auf meine Beschwerde beim Lieferanten habe ich sehr prompt eine Ersatzlieferung erhalten. Von diesen neuen 3 Stück sind 2 tatsächlich 16 bit ADCs, während 1 wiederum nur 12bit liefert. Ein 16 bit ADC liefert dieses Ergebnis:
ADC Readout: 13407, 0x345F
ADC Readout: 13407, 0x345F
ADC Readout: 13408, 0x3460
ADC Readout: 13407, 0x345F
ADC Readout: 13408, 0x3460
ADC Readout: 13389, 0x344D
ADC Readout: 13391, 0x344F
ADC Readout: 13400, 0x3458
ADC Readout: 13408, 0x3460
ADC Readout: 13407, 0x345F
Die letzten 4 bits "wackeln", wie man es erwarten sollte. Die Libs, beide, arbeiten also korrekt.
Es gibt einen optischen Unterschied zwischen dem 12 und 16 bit ADC, nämlich der sog "PACKAGE DESIGNATOR" https://cdn-shop.adafruit.com/datasheets/ads1115.pdf auf der Chip Oberfläche. Der heisst:
bei einem 12 bit ADS1015 BRPI, und
bei einem 16 bit ADS1115 BOGI
Meine 6 Stück haben aber ALLE die Aufschrift BOGI! Weder mit Waschbenzin noch mit Nagellackentferner ist diese Markierung entfernbar. Da muss jemand viel Aufwand getrieben haben um den Fake zu erstellen, und das heisst, dass viele Fake ADS1115 im Umlauf sein müssen, denn sonst lohnt sich der Aufwand wohl kaum!
Also aufgepasst, prüft mal Eure Chips!