Wie kann über GPIO festgestellt werden, ob zwischen zwei Punkten Spannung liegt?

9

Ich möchte feststellen, ob ein externes Gerät ein- oder ausgeschaltet ist. Ich habe zwei Pins gefunden, zwischen denen im ersten Fall 5 V liegen sollten, aber die Spannung kann etwas variieren und ich werde den Pi nicht brechen. Wie soll ich die Punkte mit GPIO-Pins verbinden, um festzustellen, ob Spannung anliegt? Oder allgemeiner zu fragen:

Wie kann ich mit dem Raspberry Pi testen, ob eine Batterie leer ist (keine oder nur geringe Spannung) oder nicht (Nennspannung)?

Wenn eine analoge Messung nicht möglich ist, kann man zumindest messen, wenn die Spannung über einem bestimmten Schwellenwert liegt? Dies würde zu einem digitalen Signal führen, aber wie wird es erzeugt und welche GPIO-Pins sollen verwendet werden?

Jakob
quelle

Antworten:

5

Mit dem Raspberry Pi allein ist dies nicht möglich, da er keinen Analog-Digital-Wandler (ADC) hat. Sie können diese Addon-Karte http://www.abelectronics.co.uk/ kaufen und einen Spannungsteiler mit zwei Widerständen über Ihrer Batterieversorgung herstellen.

Christian
quelle
1
Vielen Dank für die Klarstellung und den Link zur ADC-Addon-Karte.
Jakob
3

Sie möchten einen Komparator mit den entsprechenden Eigenschaften suchen oder selbst bauen . In Ihrem Fall möchten Sie überprüfen, ob eine Spannung über 3V3 liegt und 3V3 ausgibt. Stellen Sie sicher, dass Ihr Komparator 5 V toleriert.

Alex Chamberlain
quelle
Komparator :-) schöne Lösung. Ich habe noch nie einen davon benutzt. Ich werde es mir merken. +1
Piotr Kula
1

Die Zusatzkarte ist cool, aber Sie könnten einen Spannungsregler verwenden, der billig und einfach ist.

Ein Spannungsregler erwartet je nach Modell einen Spannungseingang, für den er ausgelegt ist, und gibt die gewünschte Spannung am Ausgangsstift aus. In Ihrem Fall möchten Sie 5 Volt erfassen, aber 3 Volt lesen, was für den Pi sicher ist.

Bei ebay finden Sie reichlich Zubehör, aber hier ist ein Sparkfun-Link zu einem Beispiel.

Wenn das externe Gerät einen Strom von bis zu 10 VDC liefert, gibt der Ausgangspin 3 V (HIGH ON DIGITAL PIN) an und Sie können dies mit GPIO in Python oder was auch immer Sie sicher lesen können.

Sie können sie spottbillig finden, wenn Sie sich umschauen. Sie müssen nur sicherstellen, dass der Ausgang nicht mehr als 3,3 Volt beträgt, der an Ihre Himbeere angeschlossen ist. Sie können einen Widerstand am Ausgang anbringen, um die Spannung etwas zu senken. Die Regler sind jedoch so ausgelegt, dass sie am Ausgang zu 99,9% genau sind.

Der Raspberry Pi verwendet einen NCP1117 3.3Volt, um den 3V3-Strombus anzutreiben, der über den 5V0-Bus mit Strom versorgt wird, der von Ihrem USB-Netzteil stammt.

Spannungsregler werden verwendet, um andere Geräte mit Strom zu versorgen. In diesem Fall habe ich nur die Fantasie benutzt, um eine billige Lösung zu verwenden, und sie umgekehrt verwendet.

Denn am Ende des Tages müssen wir nur eine Spannung als digitales Signal erfassen. Es spielt keine Rolle, mit was Sie es generieren. Dies kann eine 3,3-V-Batterie, ein 3,3-V-Gleichstromnetzteil, ein gepufferter digitaler Ausgang eines Arduino, eine andere Himbeere, ein Signalgenerator, ein 555-Timer oder ein einfacher Spannungsregler sein. Es ist die Umsetzung und das Ziel, die wichtig sind.

  • Ende des Tages ...
  • 3,3 V = 1
  • 0v = 0

Verweise:

Maximale Spannung am GPIO

Maximaler Strom auf GPIO

Piotr Kula
quelle
Ein Grund für eine Ablehnung wäre sehr konstruktiv. Vielleicht ist diese Antwort unkonventionell. Aber wenn sie sehr fehlerhaft ist, lassen Sie es mich bitte wissen.
Piotr Kula
2
Interessante Idee, könnte es in einem meiner Projekte verwenden (testen, ob die 12-V-Schiene aktiv ist oder nicht)
mglauche
Stellen Sie einfach sicher, dass Sie einen Pull-Down- oder Pull-Up-Widerstand am Digital-Pin anbringen. Dies ist eine sehr alte Antwort. Eine meiner ersten. Aber die Ideologie ist dieselbe.
Piotr Kula