Wie lese ich den Ausgang eines analogen 5-V-Sensors mit einem digitalen 3,3-V-GPIO?

7

Ich habe das "Sunfounder Sensor Kit" für Raspberry Pi 2 gekauft, aber der gesamte Inhalt ist für Arduino (5V) gemacht. Ich habe ADC, Level Shifters gekauft, aber ich stecke fest, weil ich denke, dass ich mit Sicherheit eine einfache Lösung vermisse.

  1. Ich habe gelesen, dass der Spannungsteiler mit Widerständen vor einem ADC nicht richtig funktionieren würde. BEARBEITEN : http://electronics.stackexchange.com
  2. Mein ADC verfügt über eine SPI-Schnittstelle, daher benötige ich einen bidirektionalen Austausch mit Pi. Wenn ich ihn jedoch mit 5 V versorge, benötige ich einen Pegelumsetzer für GPIO. Ich habe nur einrichtungsabhängige Pegelumsetzer.

Ich weiß nicht, wie ich diese Sensoren effizient einsetzen soll.

  • Könnte ich einen Level Shifter in jeder Richtung auf demselben ADC zwischen ihm und den GPIOs verwenden?

  • Benötige ich einen bidirektionalen Pegelumsetzer?

  • Kennen Sie einen 5V-> 3,3V ADC?

Habe ich eine einfache Lösung verpasst? Vielen Dank.

Elo
quelle
1
Ich bin mir nicht sicher, wo Sie lesen, dass der Spannungsteiler nicht funktionieren würde. Mögest du einen Link posten. Es ist in der Tat eine einfache, aber elegante Lösung. Hier: build-electronic-circuits.com/wp-content/uploads/2013/08/… Wobei Vin Ihr Eingangssignal und vout Ihr Ausgangssignal ist. Behalten Sie R1 und R2 gemäß Ihren Anforderungen. Um beispielsweise ein 3,3-V-Signal zu erhalten, wenn Ihr Eingang 5 V beträgt, müssen Sie ungefähr und gleichermaßen R1 = 100 kOhm und R2 = 200 kOhm haben. Ich hoffe es hilft.
Dhruvvyas90
2
Wie dastaan ​​vorschlägt, verwenden Sie einen Spannungsteiler am MISO (vom ADC zum Pi, um den Ausgang von 5V auf 3V3 zu reduzieren). Sie können den ADC dann mit 5 V versorgen und als Referenzspannung verwenden. Alle anderen ADC-SPI-Signale (MOSI, SCLK, SS) werden vom Pi eingegeben. Der ADC funktioniert auch dann noch, wenn die Signale 3V3 sind.
Joan
1
Haben Sie versucht, den Sensor mit 3,3 V zu betreiben? Viele der analogen (und etlichen digitalen) Sensoren für Arduino können tatsächlich mit 3-5,5 V betrieben werden. Beliebte Sensoren, die so funktionieren, sind TMP036 (Temperatur), Wasserstandssensoren und Flex-Sensoren.
Nathan
Der Link, über den ich gesprochen habe, ist hier: http://electronics.stackexchange.com . Es scheint ein Problem mit der Impedanz für ADC zu geben.
Elo
@joan: Vielen Dank für die Erklärung des einzigen Pins, der von 5V auf 3,3V übersetzt werden kann!
Elo

Antworten:

7

Für die analogen Sensoren wie den Fotowister und den Hall-Effekt-Sensor (und höchstwahrscheinlich für andere, wie in den Kommentaren vorgeschlagen) können Sie sie mit 3,3 V versorgen und sie trotzdem ordnungsgemäß funktionieren lassen.

Sie sollten bei Vorhandensein eines externen Einflusses als einfacher variabler Widerstand wirken. Hoffentlich wird das folgende Bild für eine Fotoresister illustriert;

Photoresister

(Nur um zu verdeutlichen, dass bei dem von Ihnen verwendeten Sensorkit der 10-kOhm-Widerstand, der Teil des darunter liegenden Teilers ist, bereits in die Sensorplatine integriert ist.) Der Analogausgang wird dann in den ADC eingespeist.

Der ADC, den ich für diese Art der Verbindung verwendet habe, ist der Adafruit ADS1015 . Es wird ziemlich glücklich von 3,3 V laufen.

So würden Sie sie verbinden lassen;

Geben Sie hier die Bildbeschreibung ein

Der Anschluss von Analogeingängen an den Pi (genau auf diese Weise) ist das Thema des nächsten Kapitels in ' Raspberry Pi: Messen, Aufzeichnen, Erkunden ' und sollte in ein paar Tagen verfügbar sein. BEARBEITEN: Das Kapitel ist jetzt veröffentlicht und das Buch ist hier kostenlos bei Leanpub erhältlich .

d3noob
quelle
Hobby Hall-Effektsensoren sind in der Regel digitale Open-Collector-Ausgänge, keine analogen. Open-Collector-Digitalausgänge können normalerweise direkt an den Pi angeschlossen werden.
Joan
@joan: Das Kit enthält mehrere Versionen. Sunfounder Sensor Kit . In Schwarz "Analogie Hall Sensor" und "Hall Sensor" (Schaltertyp, wie sie sagen, denke ich) und ein dritter in Rot "Linear Hall Sensor" mit 4 Pins, was meiner Meinung nach analog und digital ist (4 Pins) ).
Elo
@Elo Fair genug, ich bin noch nicht auf diese gestoßen. Die digitalen werden in einfachen Impulszählern wie Flüssigkeitsströmungssensoren, Drehzahlmessern für Motherboard-Lüfter und einigen Wetterwindschaufeln verwendet.
Joan
Dies gilt sicherlich nur für die analogen Sensoren (und ich gehe davon aus, dass sie im Wesentlichen mit den Keyes-Versionen identisch sind). Aber sie arbeiten einfach genug.
d3noob
1
Vielen Dank, Ihr Kommentar und Ihr eBook haben mir geholfen, den ADS1115 an meinen Sensor und R Pi 3 anzuschließen.
Tia
0

Vielleicht könnten Sie PCF8591 verwenden, einen Analog-Digital-Wandler. Es ist mehr als eine einfache binäre Prüfung, es wandelt die Spannung in einen digitalen Wert um. Es ist konfigurierbar. Die Stromversorgung dauert 2,5 bis 6 Volt. Sie können ein nicht so häufiges Update für das Gerät festlegen und dessen Ausgabe auf einen Wert scannen, der über dem erwarteten Wert liegt.

Piotr Kamoda
quelle
Vielen Dank für Ihren Vorschlag. Die maximale Spannung der Eingänge beträgt Vdd + 0,5 Datenblatt . Wenn ich es also mit 5 V versorge, sind die Ausgänge auch 5 V. Also kommen wir zurück zu @joan Vorschlag.
Elo
@Elo, nicht genau, da es I2C als Ausgabe verwendet. Der Ausgang kann also digital 3,3 V betragen. Sie müssen es mit mindestens 5 V versorgen, da es am Eingang bis zu Vdd + 0,5 V lesen kann.
Piotr Kamoda
0

Sie können auch einen bidirektionalen Pegelumsetzer verwenden - ich habe einen zweileitigen (3,3 <==> 5,0 Volt) von einem Einzelhändler auf einer beliebten Online-Aktionsseite gekauft - der ausdrücklich die I 2 C-Kompatibilität erwähnte (einige tun dies) Einige sagen nichts - weshalb ich das erstere wähle) für ein paar GB Pfund. (Ich habe keinen Hinweis darauf erhalten, welche der mit "A" und "B" gekennzeichneten Leitungen für welche Spannung bestimmt sind, aber der in Großbritannien ansässige Einzelhändler hat mir diese Daten auf Anfrage schnell zur Verfügung gestellt!) Das geht in die SDA- und SCL-Leitungen und zu Die beiden (5.0 & 3.3) Versorgungsschienen, wobei der Boden (0 V) beiden Seiten gemeinsam ist. Die "externen" I 2 C-Signale basieren jetzt auf 5 V und sie. Die 5 V-Versorgung kann über diesen Bus auf andere 5 V-Geräte ausgedehnt werden, ohne dass die Gefahr besteht, dass der Pi beschädigt wird.

EDIT: Ich habe mir eher die Antwort von d3noob als die Frage des OP angesehen, die den I 2 C-Bus verwendete, aber die OPs bezogen sich auf SPI. Obwohl die Details unterschiedlich sind, werden die Kosten für die Verwendung eines tatsächlichen Konverters, der für den Job für einen dieser Busse entwickelt wurde, durch den Schutz der anfälligen GPIO-Pins auf dem Pi mehr als wettgemacht.

SlySven
quelle