Ich beabsichtige, den Luftschadstoffsensor TGS 2602 einzusetzen . Der Innenwiderstand ändert sich, wenn ein bestimmtes Gas erkannt wird. Für den Betrieb ist eine Eingangsspannung erforderlich V_C = 5V
.
Gemäß den Spezifikationen ist die grundlegende Messschaltung:
Simulieren Sie diese Schaltung – Mit CircuitLab erstellter Schaltplan
Das Problem, mit dem ich konfrontiert bin, ist, dass ich die Messungen mit digitalen IO-Pins lesen möchte, insbesondere möchte ich Raspberry Pi dafür verwenden. Ich habe hier eine einfache Lösung für ein ähnliches Problem gefunden: Lesen analoger Sensoren mit einem GPIO-Pin . Im Wesentlichen geht es darum, eine RC-Schaltung zu verwenden und die verstrichene Zeit zu messen, bis an unserem digitalen Pin eine "hohe" Spannung auftritt.
In diesem Fall wäre ich dann geneigt, einfach R_L
mit einem Kondensator zu schalten, aber damit würde ich schnell die Versorgungsspannung für den Sensor unterbrechen (erfordert V_C
). Ich dachte dann, ich sollte vielleicht den Kondensator parallel zu schalten R_L
. Aber der R_L
Spannungsabfall ist gering, daher würde ich niemals die "hohe" Spannung am Kondensator erreichen, um sie mit meinem digitalen Pin lesen zu können. Sollte ich vielleicht einen Operationsverstärker verwenden, um das hochzufahren V_RL
? Aber verkompliziert es die Dinge nicht zu sehr?
Meine Frage ist dann, wie soll ich den Wert R_S
mit einem digitalen Lesegerät messen?
Beachten Sie zunächst, dass Ihr Sensor sowohl für die Heizung als auch für den Sensor eine 5-V-Versorgung mit + -0,2 V benötigt. Das RPI sollte +5 V zur Verfügung haben.
Die von Ihnen vorgeschlagene Kondensatorentladungsmethode ist eine der wenigen, die RPI zur Verfügung steht, um ein analoges Signal in eine digitale Darstellung umzuwandeln. RPI-GPIO-Pins erfordern einen Spannungsbereich zwischen 0 und +3,3 V. Laut Datenblatt beträgt der Mindestlastwiderstand 450 Ohm. Kein Maximum, daher könnte eine Kondensatorlast akzeptabel sein:
Simulieren Sie diese Schaltung – Mit CircuitLab erstellter Schaltplan
Diese Schaltung auf der linken Seite könnte funktionieren, wenn Sie die Schaltung mit GPIO als Ausgang im Leerlauf lassen und eine logische Null programmieren, die R1 zwingt, den Zellenwiderstand R2 nach unten zu ziehen, bis Sie einen Messwert eingeben möchten. Das Lesen kann schnell genug gehen, um den Widerstand der R2-Zelle nicht zu sehr zu stören.
Ziemlich einfach. Ihr Sensor ähnelt eher einem CCS, dessen Ausgangsstrom mit dem Gas variiert, das er erkennt.
Verwenden Sie also das CCS, um einen Kondensator aufzuladen, und die Zeit, die das gpio benötigt, um hoch zu werden, variiert mit dem CCS-Strom, daher ist sein Widerstand.
Das Verfahren geht so, vorausgesetzt, das GPIO ist mit dem Kondensator und Ihrem Sensor verbunden.
1. Geben Sie ein Low auf dem gpio aus und schalten Sie es als Ausgang. warte ein kleines bisschen. Dadurch wird der Kondensator entladen.
Schalten Sie das gpio als Eingang ein. Dadurch kann der Kondensator aufgeladen werden.
Zählen Sie die Zeit, bis das gpio hoch geht.
Die Zeitmessung ist eine Funktion des Stroms.
Der älteste Trick, den es gibt, ist, dass die MCU analog mit einem ADC liest.
dannyf
dannyf
dannyf
glen_geek
Benutzer51704
glen_geek