Für das Projekt "Wetterstation" mit dem Calliope mini fehlten mir einige analoge Eingänge. Außerdem waren die Spannungen z.B. vom Windmesser so gering, dass sich keine vernünftige Auswertung ergab.
Auf der Suche nach einem passenden Analog-Digital-Wandler (ADC) fiehl meine Wahl auf den ADS1115 bzw. den ADS1015 (Unterschied: 16bit vs. 12bit, dafür kann letzterer eine höhere Sampling-Rate), wie er auch häufig beim Raspberry Pi eingesetzt wird, welcher gar keine anlogen Eingänge hat.
Für einen Adruino oder einen Raspi gibt es viele fertige Libraries, für den Calliope musste ich aber selber etwas bauen. Mit entscheidenden Tipps von Michael entstand die unten vorgestellte Extension für MakeCode.
Der ADS1x115 hat folgende Eigenschaften:
- Nutzbar mit 3.3 und 5V
- Variable Datenrate: 8 Samples/s bis 860 Samples/s
- Eingebauter "Verstärker" - damit kann der Messbereich auf kleinere Spannungen unter Beibehaltung der Auflösung eingeschränkt werden. Aber Vorschicht - die Spannung darf auch nicht überschritten werden!
- I2C Interface
- Vier "single-ended" oder zwei "differenzielle" Eingänge
- Komparator-Modus
Durch die Entstellung unterschiedlicher Adressen können mehrere dieser Boads gleichzeichtig am Calliope betrieben werden.
Die Ansteuerung des Bausteins geschieht über I2C, standardmäßig ist bei den Boards die Adresse 0x48h voreingestellt. Für MakeCode findet man nach dem Import der Extension:
https://github.com/dl1ekm/pxt-calliope-ADS1x15
folgenden Baustein:
Man kann die Adresse ändern:
den "Kanal" auswählen:
die Verstärkung festlegen:
und nicht zuletzt auch den Baustein-Typ festlegen (je nachdem, ob man einen ADS1115 oder einen ADS1015 verwendet:
Und so kann ein Testprogramm aussehen:
Auf diesen Seiten finden man gute weitere Infos:
http://www.netzmafia.de/skripten/hardware/RasPi/Projekt-ADS1115/index.html
https://learn.adafruit.com/adafruit-4-channel-adc-breakouts/
Comments