Ich habe einen Shinyei PPD42 , der mit einem Spannungsteiler an meinen Raspberry Pi B+ angeschlossen ist, um den Ausgang des PPD42 auf 3,3 V zu bringen. Gemäß dem Datenblatt gibt P1 eine digitale Ausgabe aus, wenn Partikel mit einer Größe von > 1 μm erkannt werden, und P2 gibt eine digitale Ausgabe aus wenn Partikel mit einer Größe von > 2,5 μm erkannt werden. Unter Verwendung des Verhältnisses von LOW-Impulsen in 30 Sekunden können Sie eine Formel verwenden , um die geschätzten pcs/0,01 cf, μg/m^33 und AQI zu bestimmen. Die LOW-Impulse sollen laut Datenblatt 10 ms - 90 ms lang sein.
Ich habe einige großartige Ressourcen befolgt, die beschreiben, wie der Sensor physisch eingerichtet wird (vertikale Ausrichtung, den Sensor mit Klebeband/Papier abdecken, aber die Lufteinlässe/-auslässe unbedeckt lassen, von einem Luftstrom fernhalten usw.).
Ich habe verschiedene Projekte (in C geschrieben) ausgeführt und meinen eigenen Code (in Python) geschrieben, um die berechneten Werte zu erhalten. Was ich jedoch feststelle, ist, dass P1 und P2 unabhängig vom verwendeten Projekt fast nie einen LOW-Impuls liefern. Also bekomme ich am Ende viele Nullen . Zum Beispiel habe ich das zuvor erwähnte Projekt über Nacht ausgeführt und die ganze Nacht über keine einzige Berechnung über 0 gesehen.
Wenn ich das Klebeband von der Sensoröffnung entferne und meine Hand nach oben und um die Öffnung herum bewege, beginne ich mit unterschiedlichen Werten für die Berechnungen. Dies liegt offensichtlich nur an der Lichtveränderung, aber es war eine interessante Möglichkeit, sicherzustellen, dass die Fotodiode noch funktioniert.
Ich habe versucht, mit der Kamera meines Telefons zu sehen, ob ich die Infrarot-LED sehen kann (wie in dieser Dekonstruktion des PPD42 zu sehen). Ich kann die Infrarot-LED des PPD42 anscheinend nicht an meiner Kamera empfangen, aber ich kann die Infrarot-LED von der Fernbedienung meines Fernsehers empfangen.
Ich habe ein Digitalmultimeter, bei dem ich versucht habe, P1 und P2 zu debuggen, ohne eine Verbindung zu meinem Raspberry Pi herzustellen. Ich sollte in der Lage sein, den Spannungsabfall von ~ 4 V auf ~ 0,7 V zu sehen, wenn Partikel erkannt werden (gemäß Datenblatt). Leider misst das Multimeter immer nur ~4V. Meine Vermutung dazu ist, dass die erwartete Impulsdauer von 10-90 ms wahrscheinlich zu kurz ist, als dass das Multimeter sie messen könnte? Oder ist dies ein weiterer Hinweis darauf, dass ich niemals Impulse vom PPD42 bekomme? Ich habe einen zweiten PPD42, der sich genau gleich verhält (ich habe beide erst kürzlich neu bei eBay gekauft).
Gibt es noch etwas, was ich tun sollte, um diesen Sensor zu debuggen und zu sehen, wie ich LOW-Impulse erhalten kann? Können beide Geräte defekt sein?
Hier sind einige Testergebnisse aus den Vorschlägen von @SamGibson:
Ich habe bestätigt, dass die IR-LED zu funktionieren scheint. Ich habe die IR-Kamera meiner Nintendo Wii-Fernbedienung und die „Empfindlichkeits“-Ansicht der Wii U verwendet. Ich richtete die IR-Kamera der Wii-Fernbedienung genau im richtigen Winkel in die Sensoröffnung des PPD42 und konnte einen Punkt auf der „Empfindlichkeits“-Ansicht der Wii U sehen. Ich scheine also wieder am Anfang zu stehen. Das Gerät scheint also zu funktionieren, ist aber einfach nicht empfindlich genug.
Ich habe einen Shinyei PPD42, der mit meinem Raspberry Pi B+ verbunden ist
Die PPD42-Ausgänge könnten nahe an 5 V liegen (ursprüngliche Spezifikation war mindestens 4,5 V, neuere Spezifikation ist mindestens 4 V), aber die Raspberry Pi-Eingänge sollten die RPi-Versorgungsspannung von 3,3 V nicht überschreiten , sodass für höhere Spannungen eine Art Pegelumsetzung erforderlich ist . Siehe diese verwandte Diskussion zum Anschließen dieses Sensors an einen ESP8266 . (Aktualisierung: Sie haben freundlicherweise erklärt, dass Sie einen Spannungsteiler zwischen dem PPD42-Ausgang und dem RPi-Eingang verwendet haben. Ich werde diese Informationen jedoch hier für zukünftige Leser hinterlassen, die möglicherweise nicht erkennen, dass dies erforderlich ist.)
Alle meine Testvorschläge unten sind mit vom Raspberry Pi getrennten PPD42-Ausgängen.
wie in dieser Dekonstruktion des PPD42 zu sehen [...] Ich kann die Infrarot-LED des PPD42 anscheinend nicht an meiner Kamera empfangen, aber ich kann die Infrarot-LED von der Fernbedienung meines Fernsehers empfangen.
Das ist ein sehr schlechtes Zeichen. Sie haben einen bestätigt funktionierenden IR-Detektor (da Ihre Kamera die LED der TV-IR-Fernbedienung „sehen“ kann), der jedoch kein von der PPD42-LED emittiertes IR anzeigt. :-( Die IR-LED im PPD42 sollte dauerhaft leuchten.
Meine Vermutung dazu ist, dass die erwartete Impulsdauer von 10-90 ms wahrscheinlich zu kurz ist, als dass das Multimeter sie messen könnte?
Sogar für einen funktionierenden PPD42 (siehe unten) gilt das. Laut seinem Datenblatt gibt der PPD42 bei seiner maximal spezifizierten Erkennungsrate nur (typischerweise) 13 % der Zeit niedrige Impulse aus, und daher wäre seine Ausgabe die meiste Zeit immer noch hoch.
Ihr einziger Hinweis auf niedrige Impulse auf einem Digitalmultimeter ist möglicherweise eine offensichtliche leichte Instabilität des Messwerts. Auf einem analogen Multimeter sehen Sie möglicherweise kurze "Schnippen" der Nadel, sicherlich bei niedrigen Impulsen von 90 ms. Dies ist ein Bereich, in dem analoge Multimeter es uns ermöglichen, mehr Informationen abzuleiten als einfache digitale Messgeräte, und deshalb haben einige digitale Multimeter eine schneller aktualisierende (aber weniger genaue) "Balkendiagramm" -Anzeige sowie eine langsamer aktualisierende (aber genauer) Hauptanzeige.
Oder ist dies ein weiterer Hinweis darauf, dass ich niemals Impulse vom PPD42 bekomme?
In Ihrem speziellen Fall vermute ich, dass dies aufgrund des offensichtlichen Fehlens von IR von der LED auf Ihre Sensoren zutreffen könnte. Die Verwendung eines Oszilloskops, eines Logikanalysators oder einer Logiksonde alten Stils würde dies mit Sicherheit bestätigen.
Können beide Geräte defekt sein?
Ausschließen kann man das nach den bisherigen Informationen nicht.
Gibt es noch etwas, was ich tun sollte, um diesen Sensor zu debuggen und zu sehen, wie ich LOW-Impulse erhalten kann?
Ein Oszilloskop oder Logikanalysator (sogar ein billiger) würde es Ihnen schnell ermöglichen, auf die eine oder andere Weise zu wissen, ob Sie an einem der PPD42-Ausgänge Impulse erhalten.
Da Lichtimpulse von 10 ms bis 90 ms für das menschliche Auge sichtbar sein sollten, könnten Sie auch versuchen, eine Niederstrom-Spannungssonde mit einer hocheffizienten (z. B. roten) LED und einem ziemlich großen Widerstand (um die Belastung des Ausgangs des PPD42 zu minimieren) zu bauen noch ermöglicht es Ihnen, die leuchtende LED deutlich zu sehen. Ich würde mit ungefähr 3k beginnen und nicht weniger als einen 1k-Widerstand verwenden.
Verbinden Sie die LED + Widerstand zwischen dem Ausgang P1 und 5V (LED-Anode natürlich in Richtung 5V) und suchen Sie nach kurzen Lichtimpulsen. Keine kurzen Lichtimpulse = keine niedrigen Impulse vom PPD42 (zumindest keine mit der richtigen Länge - sehr, sehr kurze Blitze wären für das menschliche Auge nicht sichtbar).
Wie Sie in dem von Ihnen verlinkten PPD42-Dekonstruktionsdokument gesehen haben, gibt es außerdem eine Nahaufnahme der Leiterplatte und einen nachgebauten Schaltplan (†). Sie könnten daher die Spannung über der IR-LED (LED1) messen.
Wir kennen die Spezifikation der LED nicht, aber dieses Dokument besagt, dass die LED-Vf etwa 1,4 V betragen sollte. Eine Multimetermessung von etwa 5 V (mit einer 5-V-Versorgung) würde anzeigen, dass die LED "offen" ausgefallen ist, während eine Messung von etwa 0 V anzeigen würde, dass sie "kurz" ausgefallen ist.
Sie haben einige Hinweise aus Ihrem "Handwinken" -Test, dass die Fotodiode und die folgenden Schaltkreise möglicherweise funktionieren. Daher wäre ein weiterer Test, die LED Ihrer IR-Fernbedienung zu verwenden, die auf die Fotodiode im Sensor gerichtet ist (natürlich bei geöffnetem Sensorgehäuse) und eine der Tasten der Fernbedienung gedrückt zu halten. Wenn dies Impulse an den PPD42 P1- und/oder P2-Ausgängen verursacht, würde dies unsere Besorgnis über die eigene IR-LED des Sensors verstärken.
Wenn jedoch immer noch keine Ausgangsimpulse vorhanden sind, können wir diesem Ergebnis nichts entnehmen. Das liegt daran, dass es einen triftigen Grund geben könnte (auch wenn ich ihn nicht kenne), warum die Blitze der (normalerweise 38 kHz) IR-Fernbedienung gefiltert oder anderweitig ignoriert werden, selbst bei einem funktionierenden Sensor.
Wenn Sie in der Lage sind, einen dieser Tests durchzuführen, können wir versuchen, die Ergebnisse zu interpretieren.
(†) Ich glaube, dass es einige Fehler in diesem Schaltplan gibt, z. B. werden R14 und R15 (beide 10k) als Pulldowns angezeigt , während meine Interpretation des PCB-Bildes ist, dass sie Pullups auf 5 V sind , und die PPD42-Spezifikation sagt es auch Die Ausgänge sind Operationsverstärkerausgänge mit 10k Pull-up.
Natürlich kann ich mich irren, da ich keinen PPD42-Sensor mehr habe, um meine eigenen Messungen durchzuführen. Ich empfehle nur Vorsicht, dem (sehr hilfreichen, aber vielleicht etwas falschen) Schema zu glauben, bis Sie seine Genauigkeit selbst bestätigt haben.
Antworten auf Testergebnisse zur Hauptfrage hinzugefügt:
- Ich habe kein Oszilloskop oder Logikanalysator zur Hand.
Verstanden. Ein billiger USB-Logikanalysator (z. B. ein Saleae-Klon) kostet < 10 US-Dollar und kann mit der Open-Source-PC-Software Sigrok / PulseView verwendet werden. Je nachdem, wie wichtig Ihnen dieses Thema ist, kann sich die Anschaffung lohnen. Oszilloskope kosten natürlich mehr, können aber die Signalqualität auf eine Weise anzeigen, die Logikanalysatoren nicht können. Beides kann in dieser Situation helfen.
- Ich habe die Anweisungen befolgt, um eine rote LED + 3 K-Widerstand (Anode am 5-V-Ende) anzuschließen. Die LED ist standardmäßig AUS.
Mit der LED + Widerstand wurde zwischen P1 und 5V angeschlossen:
LED an = niedriger Ausgang an P1
LED aus = hoher Ausgang an P1
Würde dies nicht auf einen konstanten LOW-Impuls von P1 hinweisen oder ist es vielleicht das Gegenteil?
Es ist das Gegenteil. Ich dachte, es wäre einfacher für Sie, nach kurzen Blitzen der LED-Beleuchtung zu suchen (jeder Lichtblitz bedeutet, dass die P1-Ausgabe niedrig wird), als nach kurzen Lücken in einer normal leuchtenden LED zu suchen.
Die LED blinkt ein/aus, wenn ich die Box herumbewege und mit der Hand um die Sensoröffnung schwenke (ich habe mein Klebeband entfernt).
Das ist praktisch das gleiche Ergebnis wie bei Ihrem vorherigen „Handwinken“-Test, bei dem Sie bei geöffnetem Sensor unterschiedliche Werte in Ihrer RPi-Pulszählsoftware erhalten haben.
Alleine bekomme ich etwa jede Minute ein kleines LED-Blinken ein / aus.
(Ich gehe davon aus, dass dies bei geschlossenem Sensor und damit in einem normalen Testaufbau der Fall ist.)
Das sind neue Informationen.
Vorher schien es, als gäbe es keine Ausgabe vom Sensor, wie Sie sagten:
Was ich finde, ist, dass P1 und P2 unabhängig vom verwendeten Projekt fast nie einen LOW-Impuls liefern. Also bekomme ich am Ende viele Nullen. Zum Beispiel habe ich das zuvor erwähnte Projekt über Nacht ausgeführt und die ganze Nacht über keine einzige Berechnung über 0 gesehen.
Nun sieht es so aus, als ob vom PPD42 niedrige Impulse kommen - nur nicht sehr viele davon ! Ich glaube , dass dies nur möglich ist, wenn die IR-LED des Sensors eine gewisse Leistung erzeugt . Der Mangel an IR-Ausgang, der auf Ihrer Kamera sichtbar ist, widerspricht jedoch dieser Hypothese. Vielleicht hat die IR-LED des Sensors einen sehr fokussierten Strahl und Ihre Kamera war nicht im richtigen Winkel, um ihn zu sehen? Oder vielleicht ist die IR-LED nur sehr schwach (defekt? Falscher Typ eingebaut?).
Was auch immer der Grund sein mag, dieser scheinbare Widerspruch zwischen zwei Datenpunkten (IR-LED scheint zu funktionieren, da Sie einige Sensorausgangsimpulse erhalten; dennoch scheint IR-LED nicht zu funktionieren, da mit einer IR-empfindlichen Kamera nicht sichtbar) ist etwas, auf das ich mich konzentrieren würde Verständnis.
- Ich habe mit meinem Multimeter die Spannung über der IR-LED (Rückseite der Platine) gemessen und ~ 1,4 V erhalten.
Das ist ein vernünftiger Wert.
- Wenn ich mit meiner Fernbedienung auf die Fotodiode zeige und eine Taste gedrückt halte, wird die LED eingeschaltet. Allerdings ist mir aufgefallen, dass es schnell blinkt. Ich habe mit meiner Kamera bestätigt, dass die LED meiner Fernbedienung sehr schnell von selbst blinkt.
Das gibt mehr und mehr Vertrauen, dass die Photodiode und die Verstärker-, Filter- und Ausgangsschaltung des Sensors grundsätzlich funktionieren.
Ich muss eine andere IR-Quelle finden, um mit konstantem IR-Licht zu testen.
Ich bin mir nicht sicher, wie das helfen würde - vielleicht können Sie sehen, ob die Anzahl der Ausgangsimpulse zunimmt, wenn Sie diese konstante IR-Quelle (eine andere IR-LED?) Anstelle der IR-LED des vorhandenen Sensors anbringen können? Ich kann mir nicht vorstellen, wie ich sonst eine konstante IR-Quelle verwenden soll, die sich relativ zur Fotodiode und ihrer Linse physisch nicht am richtigen Ort befindet. Das führt natürlich zu einem unkalibrierten Sensor.
- Wenn ich die Spannung an P1 messe, erhalte ich 4,5 V und 4,7 V (ich habe im Abstand von ~ 15 Minuten gemessen, deshalb habe ich 2 verschiedene Werte erhalten). Dies scheint höher zu sein als der HIGH/LOW-Impulsbereich laut Datenblatt. Wenn ich mich richtig erinnere, habe ich dies zuvor auf ~ 4 V gemessen, daher bin ich mir nicht sicher, was passiert sein könnte, um eine andere Messung zu verursachen.
Unterschiedliche Gleichspannungen, die mit einem Multimeter gemessen werden, sind in dieser Situation aus den zuvor erläuterten Gründen schwer zu interpretieren. Sie bedeuten wahrscheinlich , dass es unterschiedliche Anteile niedriger Impulse gab, was zu unterschiedlichen durchschnittlichen DC-Werten führte, die auf dem Messgerät angezeigt wurden. Ich sehe jedoch nicht, wie ausgeschlossen werden kann, dass sich die normale, statische "logisch hohe" Spannung geändert hat.
Basierend auf den neuen Informationen, dass es gelegentlich niedrige Impulse im Ausgang des Sensors gibt, hier ein weiterer Test:
Der Partikelsensor erkennt die Lichtstrompartikel, die von IR-Licht reflektiert werden, das in einem 45-Grad-Winkel auf einen sich kreuzenden Pfad der Fotodiode (PD) fokussiert ist.
Mögliche Probleme:
Ihrem Pulszähler fehlen Pulse (überprüfen)
Der Luftstrom ist zu hoch (vermeiden Sie alle erzwungenen Luftströme oder Wind)
Der Sensor beruht auf sehr kleinen Partikeln, die sich langsam durch einen kontrollierten langsamen Wärmeanstieg und eine Pumpe mit langsamem Luftstrom bewegen. Wenn sich die Partikel zu schnell bewegen, reduziert der Tiefpassfilter vor und nach der Ausgangsstufe die volle Impulshöhe vom Erreichen der 1-V- und 2,5-V-Schwellenwerte für einen negativen Impulsausgang. Der Strahlengang des strahlfokussierten Emitters hat ungefähr die gleiche Größe wie die 5-mm-PD, sodass die Partikelerkennung, die sich über 5 mm hinausbewegt, von einer langsamen Geschwindigkeit mit einem 39 ms = T-Tiefpassfilter abhängt, sodass Partikelreflexionen von mindestens 10 ms ungefähr der Erkennungsschwelle entsprechen.
Dies entspricht 5 mm/10 ms oder 0,5 m/s als maximale Geschwindigkeit für ein Partikel, die durch den Heizwiderstand gesteuert wird.
Einfache Testmethoden ohne Scope.
Verbinden Sie P1, P2, 5 V, gnd mit dem Telefonkabel mit dem Steckbrett. Reset auf Gnd und LEDs Anode auf jeden Ausgang und Kathode auf Gnd (Vss), +5V auf Vdd. Fügen Sie eine E-Kappe über die 5-V-Schiene hinzu. (keine Serie R erforderlich für CD4xxx auf 5V) optionalen Drucktaster für Reset ("1") mit 10k an Masse oder Äquiv. hinzufügen.
crj11
Der Wolkenlose Himmel
Dorian
Dorian