Analoge Pins auf dem Raspberry Pi

Ich zeige euch wie man analoge Pins auf dem Raspberry Pi benutzt. Bevor ich mit der Artikelserie zu den Abstandsensoren weitermachen kann ist dieser kleine Einschub nötig. Der Infrarot Abstandssensor gibt die Messwerte analog aus, aus diesem Grund muss ich am Raspberry Pi die Voraussetzungen erfüllen um auch analoge Signal verarbeiten zu können.Analoge Pins auf dem Raspberry Pi

Analoge Pins auf dem Raspberry Pi

Der Raspberry Pi hat je nach Modell 26 oder 40  GPIO Pins. Diese haben alle unterschiedliche Funktionen, gemeinsam ist jedoch, dass sie alle rein digital sind. Das bedeutet man kann über die Software lediglich 0 oder 1 abfragen, je nachdem ob Spannung am Pin anliegt oder nicht. Es gibt zahlreiche Geräte und Sensoren die über ein analoges Signal gesteuert werden. Um auch analoge Signale verarbeiten benötigt man entweder ein anderes Board, wie den Arduino oder eine Zusatzplatine.

ADC Pi oder ADC Pi Plus

Um analoge Signale verarbeiten zu können benötigt man einen Analog-Digital-Converter. Es gibt dabei folgende Möglichkeiten:

  • eine eigene Platine, die man auf den GPIO Port stecken kann
  • eine USB Schnittstelle

Für beide Möglichkeiten gibt es ein paar unterschiedliche Modelle unterschiedlicher Hersteller. Ich habe mir auf eine Empfehlung das ADC Pi Modul von ABElectronics zugelegt. Ein Analog-Digital-Umsetzer verandelt ein analoges Signal in ein für den Raspberry pi lesbares digitale Signal um. Das Modul von ABElectronics verwendet dabei die bereits bekannte I2C Schnittstelle der GPIO Schnittstelle.ADC Raspberry Pi

Das ADC Pi Modul gibt es in zwei Versionen:

  • ADC Pi
  • ADC Pi Plus

Der einzige Unterschied der beiden Platinen ist deren Größe. Die ADC Pi Platine passt auf die 26 Pin große GPIO Schnittstelle der älteren Raspberry Pi Modelle, der ADC Pi Plus auf die erweiterte, längere GPIO Schnittstelle der Plus und Raspberry Pi 2 Modelle. Ich habe mir das Modell für die älteren Pis zugelegt, damit ich auch abwärtskompatibel bin. Dieses Modul passt übrigens ebenfalls auf die GPIO Schnittstelle der Plus Modelle, anders herum funktioniert das nicht!

Analog Digital Converter verwenden

Der Converter hat 8 analoge Pins und verlängert zudem noch den GPIO Port. Das bedeutet, man kann bis zu vier ADC Platinen übereinander stapeln und somit auf einem einzigen Raspberry Pi 32 analoge Pins verwenden.

Die Verwendung der Platine ist recht einfach, man muss lediglich die I2C Schnittstelle aktivieren. Ich habe euch ja bereits gezeigt wie das geht:

Dort unter den Advanced Options I2C aktivieren. Danach muss noch manuell die Datei /etc/modules um die I2C Kernel Module erweitert werden, damit diese nach dem Neustart laden:

Hat das alles funktioniert, dann liefert das Kommando

die Adressen über die man angesteckte Geräte ansprechen kann.

Fazit

Analoge Pins kann man am Raspberry Pi verwenden. Meiner Meinung nach ist das fehlen von analogen Pins eine der großen Schwachstellen vom Raspberry Pi. Mit einem Analog-Digital-Converter ist man aber auch dafür gerüstet. Im nächsten Teil zeige ich euch wie ich mit dieser Zusatzplatine Messerwerte von einem Infrarot Entfernungsmesser auslese und verarbeite.

Für welche Anwendungsfälle würdet ihr ADC verwenden oder benötigen? Kennt ihr andere gute Modelle oder habt ihr Erfahrung mit USB ADC gemacht?

(Visited 8.606 times, 8 visits today)

Das könnte auch interessant sein...

2 Antworten

  1. Michael sagt:

    Hallo Werner,
    Auf der Suche nach einer Lösung bin ich über ADC Pi
    auf deine Seite gestoßen.
    Vor ab: ich bin technisch interessiert aber Programmierung und elektronische Kenntnisse sehr bescheiden. Wenn Vorlagen vorhanden kann ich Projekte nachgestalten, was ich auch bereits bewerkstelligt habe. Ich suche eine Möglichkeit ein Thermoelement mit dem Pi zu verbinden und dann in Fhem darzustellen. Ist das mit dem ADC Pi bzw. ADC Pi Plus möglich?
    Gruß Michael

    • Wenn das Thermoelement analoge Daten sendet, dann kannst du diese auch über den ADC Pi über die GPIO Schnittstelle einlesen. Gibt es auch eine Dokumentation dazu, dann kann man diese auch recht einfach interpretieren. Ob das recht einfach mit Fhem funktioniert weiß ich nicht. Das müsste man ausprobieren – im schlimmsten Fall müsste man mit einem Skript dazwischen nachhelfen.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.