Impossible d’obtenir une impulsion faible du capteur de particules Shinyei PPD42

TheCloudlessSky

Impossible d’obtenir une impulsion faible du capteur de particules Shinyei PPD42


J’ai un Shinyei PPD42 qui est connecté à mon Raspberry Pi B + à l’aide d’un diviseur de tension pour obtenir la sortie du PPD42 à 3,3 V. Selon la fiche technique , P1 émet une sortie numérique lorsque> 1 μm de particules de taille sont détectées et P2 émet une sortie numérique lorsque des particules de taille> 2,5 μm sont détectées. En utilisant le rapport des impulsions LOW en 30 secondes, vous pouvez utiliser une formule pour déterminer les pcs / 0,01cf, μg / m ^ 33 et AQI estimés. Les impulsions LOW, selon la fiche technique, devraient durer de 10 ms à 90 ms.

J’ai suivi d’excellentes ressources qui décrivent comment configurer physiquement le capteur (orientation verticale, couvrir le capteur avec du ruban adhésif / papier mais en laissant les entrées / sorties d’air découvertes, tenir à l’écart d’un flux d’air, etc.).

J’ai exécuté différents projets (écrits en C) ainsi que mon propre code (en Python) pour obtenir les valeurs calculées. Cependant, ce que je trouve, c’est que quel que soit le projet que j’utilise, P1 et P2 ne fournissent presque jamais d’impulsion LOW. Donc, je finis par avoir beaucoup de zéros. Par exemple, j’ai exécuté le projet mentionné précédemment pendant la nuit et je n’ai vu aucun calcul au-dessus de 0 pour toute la nuit.

Si je retire le ruban adhésif de l’ouverture du capteur et déplace ma main vers le haut et autour de l’ouverture, je commence à des valeurs différentes pour les calculs. C’est évidemment juste à cause du changement de lumière, mais cela a été un moyen intéressant de s’assurer que la diode photo fonctionne toujours.

J’ai essayé d’utiliser l’appareil photo de mon téléphone pour voir si je peux voir la LED infrarouge (comme on le voit dans cette déconstruction du PPD42). Je n’arrive pas à capter la LED infrarouge du PPD42 sur mon appareil photo mais je peux capter la LED infrarouge de la télécommande de mon téléviseur.

J’ai un multimètre numérique où j’ai essayé de déboguer P1 et P2 sans me connecter à mon Raspberry Pi. Je devrais être en mesure de voir la chute de tension de ~ 4 V à ~ 0,7 V lorsque des particules sont détectées (selon la fiche technique). Malheureusement, le multimètre ne mesure que ~ 4V tout le temps. Je suppose que la durée d’impulsion attendue de 10 à 90 ms est probablement trop courte pour que le multimètre puisse mesurer? Ou, est-ce une autre indication que je n’obtiens jamais d’impulsions du PPD42? J’ai un deuxième PPD42 qui se comporte exactement de la même manière (je les ai récemment achetés tous deux neufs sur eBay).

Y a-t-il autre chose que je devrais faire pour déboguer ce capteur et voir comment obtenir des impulsions LOW? Mes deux appareils pourraient-ils être défectueux?


Voici quelques résultats de test des suggestions de @ SamGibson:

  1. Je n’ai pas d’oscilloscope ou d’analyseur logique à portée de main.
  2. J’ai suivi les instructions pour connecter une LED rouge + une résistance 3 K (anode à l’extrémité 5 V). La LED est éteinte par défaut. Cela n’indiquerait-il pas une impulsion LOW constante de P1 ou peut-être que c’est le contraire? La LED clignote lorsque je déplace la boîte et agite ma main autour de l’ouverture du capteur (j’ai retiré mon ruban). À lui seul, j’obtiens un petit clignotement LED toutes les minutes environ.
  3. J’ai utilisé mon multimètre pour mesurer la tension aux bornes de la LED IR (à l’arrière de la carte) et j’ai obtenu ~ 1,4 V.
  4. Le fait de pointer ma télécommande vers la photodiode et de maintenir un bouton allume la LED. Cependant, j’ai remarqué qu’il clignote à un rythme rapide. J’ai confirmé avec mon appareil photo que la LED de ma télécommande clignote très rapidement d’elle-même. Je vais devoir trouver une autre source IR pour tester avec une lumière IR constante.
  5. Lorsque je mesure la tension sur P1, j’obtiens 4,5 V et 4,7 V (j’ai mesuré ~ 15 minutes d’intervalle, c’est pourquoi j’ai obtenu 2 valeurs différentes). Cela semble être plus élevé que la plage d’impulsions HIGH / LOW selon la fiche technique. Si je me souviens bien, j’ai précédemment mesuré cela à ~ 4 V, donc je ne suis pas sûr de ce qui aurait pu provoquer une mesure différente.

J’ai confirmé que la LED IR semble fonctionner. J’ai utilisé la caméra infrarouge de ma télécommande Nintendo Wii et la vue « Sensibilité » de la Wii U. J’ai pointé la caméra infrarouge de la télécommande Wii à l’angle droit à l’intérieur de l’ouverture du capteur du PPD42 et j’ai pu voir un point sur la vue « Sensibilité » de la Wii U. Donc, je semble être de retour à la case départ. Donc, l’unité semble fonctionner mais elle n’est tout simplement pas assez sensible.

crj11

Avez-vous consulté seeeddoc.github.io/Grove-Dust_Sensor et takingspace.org/wp-content/uploads/… ? Il est peu probable que deux capteurs soient mauvais. Vous pouvez également consulter groups.google.com/forum/#!topic/airqualityegg/L5j7CO1dZQA où ils parlent d’ajouter une résistance pour augmenter la sensibilité.

TheCloudlessSky

@ crj11 Oui, j’ai regardé ces deux ressources (la première m’a inspiré à acheter le PPD42 et la seconde est liée dans mon message). La résistance supplémentaire ajoutée est à Pin5 pour contrôler la sensibilité de P2> 2,5 μm. J’ai entendu dire que P1 n’est pas fiable … donc je suppose que je peux me pencher davantage sur P2. EDIT: Je dois dire que j’ai également essayé d’utiliser un petit ventilateur DC pour garder le flux d’air constant sans succès.

Dorian

L’utilisation d’un ventilateur aggrave les choses. Ce détecteur repose sur un débit d’air constant, celui qui était utilisé au moment de l’étalonnage. Une particule déclenchera une impulsion d’une longueur donnée par la taille et la vitesse de la particule. Une grosse particule passant à une vitesse plus élevée à travers le détecteur apparaîtra comme une petite particule déclenchant uniquement la sortie P1. Tout d’abord, mettez une résistance de 27k ohms de la sortie tresh à GND (cela amène le seuil P2 comme P1) et voyez si vous avez le même résultat sur les deux sorties. Faites-nous savoir le résultat.

Dorian

Vous devriez avoir une tension autour de 1V sur la broche tresh.

Réponses


 SamGibson

J’ai un Shinyei PPD42 connecté à mon Raspberry Pi B +

Les sorties PPD42 pourraient être proches de 5 V (la spécification d’origine était au minimum de 4,5 V, la nouvelle spécification est au minimum de 4 V), mais les entrées du Raspberry Pi ne devraient pas dépasser la tension d’alimentation RPi de 3,3 V , donc une certaine forme de traduction de niveau est nécessaire pour les tensions plus élevées . Voir cette discussion connexe sur la connexion de ce capteur à un ESP8266 . (Mise à jour: vous avez aimablement expliqué que vous aviez utilisé un diviseur de tension entre la sortie PPD42 et l’entrée RPi. Cependant, je laisserai cette information ici aux futurs lecteurs qui pourraient ne pas réaliser que cela est nécessaire.)

Toutes mes suggestions de test ci-dessous concernent les sorties PPD42 déconnectées du Raspberry Pi.

comme on le voit dans cette déconstruction du PPD42 […] Je n’arrive pas à capter la LED infrarouge du PPD42 sur mon appareil photo mais je peux capter la LED infrarouge de la télécommande de mon téléviseur.

C’est un très mauvais signe. Vous disposez d’un détecteur infrarouge confirmé (car votre caméra peut « voir » le voyant de la télécommande infrarouge du téléviseur) mais qui n’affiche pas l’IR émis par le voyant PPD42. 🙁 La LED IR du PPD42 doit être allumée en continu.

Je suppose que la durée d’impulsion attendue de 10 à 90 ms est probablement trop courte pour que le multimètre puisse mesurer?

Même pour un PPD42 fonctionnel (voir ci-dessous), c’est vrai. Selon sa fiche technique, à son taux de détection maximal spécifié, le PPD42 émet des impulsions faibles pendant seulement (généralement) 13% du temps, et donc sa sortie serait toujours élevée la plupart du temps.

Votre seule indication de faibles impulsions sur un multimètre numérique pourrait être une légère instabilité apparente dans la lecture; sur un multimètre analogique, vous pourriez voir de brefs « mouvements » de l’aiguille, certainement sur des impulsions basses de 90 ms. C’est un domaine dans lequel les multimètres analogiques peuvent nous permettre de déduire plus d’informations que les compteurs numériques de base, et c’est pourquoi certains multimètres numériques ont un affichage « graphique à barres » à mise à jour plus rapide (mais moins précis), ainsi que la mise à jour plus lente (mais affichage principal plus précis).

Ou, est-ce une autre indication que je n’obtiens jamais d’impulsions du PPD42?

Dans votre cas spécifique, en raison du manque apparent d’IR de sa LED, je soupçonne que cela pourrait être vrai pour vos capteurs. L’utilisation d’un oscilloscope, d’un analyseur logique ou d’une sonde logique à l’ancienne confirmerait à coup sûr.

Mes deux appareils pourraient-ils être défectueux?

Il est impossible d’exclure cette possibilité, avec les informations jusqu’à présent.

Y a-t-il autre chose que je devrais faire pour déboguer ce capteur et voir comment obtenir des impulsions LOW?

  • Un oscilloscope ou un analyseur logique (même bon marché) vous permettrait rapidement de savoir d’une manière ou d’une autre, si vous obtenez des impulsions sur l’une ou l’autre des sorties PPD42.

  • Étant donné que les impulsions lumineuses de 10 ms à 90 ms devraient être visibles à l’œil humain, vous pouvez également essayer de construire une sonde de tension à faible courant en utilisant une LED à haute efficacité (par exemple rouge) et une résistance assez grande (pour minimiser le chargement de la sortie du PPD42) qui reste vous permet de voir clairement la LED allumée. Je commencerais avec environ 3k et n’utiliserais pas moins d’une résistance de 1k.

    Connectez la résistance LED + entre la sortie P1 et 5V (anode LED vers 5V, bien sûr) et recherchez de brèves impulsions lumineuses. Pas de brèves impulsions lumineuses = pas d’impulsions faibles du PPD42 (au moins, aucune de la bonne longueur – des flashs très, très courts ne seraient pas visibles à l’œil humain).

  • De plus, comme vous l’avez vu dans le document de déconstruction PPD42 que vous avez lié, il y a un gros plan du PCB et un schéma de rétro-ingénierie (†). Vous pouvez donc mesurer la tension aux bornes de la LED IR (LED1).

    Nous ne connaissons pas les spécifications de la LED, mais ce document indique que la LED Vf devrait être d’environ 1,4 V. Une mesure de multimètre d’environ 5V (avec une alimentation de 5V) indiquerait que la LED est tombée en panne « ouverte », alors qu’une mesure d’environ 0V indiquerait qu’elle est tombée en panne « court ».

  • Vous avez des preuves de votre test « à la main », que la photodiode et les circuits suivants peuvent fonctionner. Par conséquent, un autre test serait d’essayer d’utiliser la LED de votre télécommande infrarouge, pointée vers la photodiode dans le capteur (avec le boîtier du capteur ouvert, bien sûr) et en maintenant l’un des boutons de la télécommande enfoncé. Si cela provoque des impulsions sur les sorties PPD42 P1 et / ou P2, cela augmenterait notre inquiétude concernant la propre LED IR du capteur.

    Cependant, s’il n’y a toujours pas d’impulsions de sortie, nous ne pouvons rien déduire de ce résultat. C’est parce qu’il pourrait y avoir une raison valable (même si je ne le sais pas) pour laquelle les flashs de la télécommande IR (généralement à 38 kHz) peuvent être filtrés ou ignorés, même dans un capteur qui fonctionne.

Si vous êtes en mesure de faire l’un de ces tests, nous pouvons essayer d’interpréter les résultats.

(†) Je crois qu’il y a des erreurs dans le fait que les schémas, par exemple R14 et R15 (tous deux 10k) sont affichés sous forme de menus déroulants, alors que mon interprétation de l’image PCB est qu’ils sont des tractions à 5 V, et la spécification PPD42 dit également les sorties sont des sorties ampli-op avec pull-up 10k.

Bien sûr, je peux me tromper, car je n’ai plus de capteur PPD42 pour faire mes propres mesures. Je recommande simplement la prudence en croyant le schéma (très utile, mais peut-être légèrement incorrect), jusqu’à ce que vous ayez confirmé vous-même son exactitude.


Réponses aux résultats des tests ajoutées à la question principale:

  1. Je n’ai pas d’oscilloscope ou d’analyseur logique à portée de main.

Compris. Un analyseur logique USB bon marché (par exemple un clone de Saleae) coûte <10 $ et peut être utilisé avec le logiciel open source Sigrok / PulseView PC. Selon l’importance de ce problème pour vous, il peut être utile d’en obtenir un. Les oscilloscopes coûtent évidemment plus cher, mais peuvent montrer la qualité du signal d’une manière que les analyseurs logiques ne peuvent pas. Les deux pourraient aider dans cette situation.

  1. J’ai suivi les instructions pour connecter une LED rouge + une résistance 3 K (anode à l’extrémité 5 V). La LED est éteinte par défaut.

Avec la LED + la résistance était connectée entre P1 et 5V:

LED allumée = faible sortie sur P1
LED éteinte = sortie élevée sur P1

Cela n’indiquerait-il pas une impulsion LOW constante de P1 ou peut-être que c’est le contraire?

C’est le contraire. J’ai pensé qu’il était plus facile pour vous de rechercher de courts flashs de l’éclairage LED (chaque flash de lumière signifiant que la sortie P1 était faible), plutôt que de rechercher de courts intervalles dans une LED normalement allumée.

La LED clignote lorsque je déplace la boîte et agite ma main autour de l’ouverture du capteur (j’ai retiré mon ruban).

C’est en fait le même résultat que lors de votre précédent test «à la main» où, avec le capteur ouvert, vous obteniez des valeurs différentes dans votre logiciel de comptage d’impulsions RPi.

À lui seul, j’obtiens un petit clignotement LED toutes les minutes environ.

(Je suppose que c’est avec le capteur fermé et donc dans une configuration de test normale.)

Ce sont de nouvelles informations.

Avant, il semblait qu’il n’y avait pas de sortie du capteur, comme vous l’avez dit:

ce que je trouve, c’est que quel que soit le projet que j’utilise, P1 et P2 ne fournissent presque jamais d’impulsion LOW. Donc, je finis par avoir beaucoup de zéros. Par exemple, j’ai exécuté le projet mentionné précédemment pendant la nuit et je n’ai vu aucun calcul au-dessus de 0 pour toute la nuit.

Il semble maintenant que le PPD42 ait de faibles impulsions – mais pas beaucoup! Je crois que cela n’est possible que si la LED IR du capteur produit une sortie. Cependant le manque de sortie IR visible sur votre caméra contredit cette hypothèse. Peut-être que la LED IR du capteur a un faisceau très focalisé, et votre caméra n’était pas à l’angle droit pour le voir? Ou peut-être que la LED IR est juste très faible (défectueuse? Mauvais type installé?).

Quelle que soit la raison, cette contradiction apparente entre deux points de données (la LED IR semble fonctionner, car vous obtenez des impulsions de sortie de capteur; mais la LED IR semble ne pas fonctionner, car elle n’est pas visible avec une caméra sensible aux IR) est quelque chose sur laquelle je me concentrerais compréhension.

  1. J’ai utilisé mon multimètre pour mesurer la tension aux bornes de la LED IR (à l’arrière de la carte) et j’ai obtenu ~ 1,4 V.

C’est une valeur raisonnable.

  1. Le fait de pointer ma télécommande vers la photodiode et de maintenir un bouton allume la LED. Cependant, j’ai remarqué qu’il clignote à un rythme rapide. J’ai confirmé avec mon appareil photo que la LED de ma télécommande clignote très rapidement d’elle-même.

Cela donne de plus en plus confiance que la photodiode et le circuit d’amplification, de filtrage et de sortie du capteur fonctionnent fondamentalement.

Je vais devoir trouver une autre source IR pour tester avec une lumière IR constante.

Je ne sais pas comment cela pourrait aider – peut-être que si vous pouvez installer cette source IR constante (une autre LED IR?) À la place de la LED IR du capteur existant, vous pouvez voir si le nombre d’impulsions de sortie augmente? Je ne peux pas penser comment utiliser une source IR constante qui n’est pas physiquement au bon endroit, par rapport à la photodiode et à sa lentille. Bien sûr, cela aboutira à un capteur non calibré.

  1. Lorsque je mesure la tension sur P1, j’obtiens 4,5 V et 4,7 V (j’ai mesuré ~ 15 minutes d’intervalle, c’est pourquoi j’ai obtenu 2 valeurs différentes). Cela semble être plus élevé que la plage d’impulsions HIGH / LOW selon la fiche technique. Si je me souviens bien, j’ai précédemment mesuré cela à ~ 4 V, donc je ne suis pas sûr de ce qui aurait pu provoquer une mesure différente.

Différentes tensions CC mesurées avec un multimètre sont difficiles à interpréter dans cette situation, pour les raisons expliquées précédemment. Ils signifient probablement qu’il y avait différentes proportions d’impulsions faibles, ce qui entraînait des valeurs DC moyennes différentes affichées sur le compteur. Cependant, je ne vois pas comment il est possible d’exclure que la tension normale « logique élevée » statique ait changé.


Sur la base des nouvelles informations selon lesquelles il y a parfois de faibles impulsions à la sortie du capteur, voici un autre test:

  • Le capteur repose sur la convection pour attirer l’air dans le chemin optique entre la LED IR et la lentille de photodiode. Ce processus de convection est entraîné par la résistance au bas de la carte qui chauffe. Une raison possible pour un capteur très insensible serait que cette résistance ne chauffe pas. La « résistance de chauffage » (RH1) chauffe-t-elle?
TheCloudlessSky

Merci pour les détails. Je vais aller cependant et utiliser certains de vos conseils pour voir ce qui fonctionne / ne fonctionne pas et fera rapport. En ce qui concerne votre préoccupation d’origine, j’ai toujours utilisé un diviseur de tension pour obtenir la sortie du PPD42 à 3,3 V. Je peux confirmer que les entrées RPi ne sont pas endommagées (par exemple en utilisant un bouton pour surveiller l’entrée).

SamGibson

@TheCloudlessSky – Salut,  » J’ai toujours utilisé un diviseur de tension pour obtenir la sortie du PPD42 à 3,3 V  » C’est bien. Évidemment, je ne le savais pas, donc je ne pouvais pas le supposer. Je mettrai à jour ma réponse et votre question avec ces nouvelles informations. J’ai hâte d’entendre les résultats 🙂

TheCloudlessSky

J’ai mis à jour l’OP avec les résultats des tests.

SamGibson

@TheCloudlessSky – Merci. J’ai copié votre mise à jour dans ma réponse et ajouté mon analyse ici, car elle ne rentrerait pas dans les commentaires sous la question. La convention ici a tendance à être que les nouvelles informations liées à une réponse reçoivent une réponse dans cette réponse, donc je suis en train de suivre cela. Au fur et à mesure que j’interprète votre mise à jour, il semble y avoir de nouvelles informations importantes, c’est-à-dire que les impulsions du capteur sont faibles, mais pas très nombreuses (vous avez dit que la LED clignotait toutes les minutes environ), c’est donc nouveau. J’ai ajouté des suggestions sur lesquelles je concentrerais mes recherches et un nouveau test en bas sur le radiateur. HTH

TheCloudlessSky

Pour clarifier mon OP, lorsque l’ouverture du capteur était recouverte de ruban adhésif, je l’ai fait fonctionner pendant environ 12 heures et j’ai presque toujours obtenu 0. Il y avait quelques non-zéros mais juste pas aussi sensibles que ce que les autres semblent avoir. Cette fois avec la LED, la bande était éteinte donc le flash. Ainsi, le clignotement à peu près toutes les minutes était plus probable que l’ouverture du capteur n’avait pas le ruban et qu’il était affecté par la lumière ambiante (quelque chose que les fiches techniques / d’autres personnes peuvent dire). Je peux également confirmer que la résistance au bas de la carte (celle à l’intérieur du bouclier noir) est bien chaude.


 Tony EE rocketscientist

Le capteur de particules fonctionne en détectant les particules de courant lumineux réfléchies par la lumière infrarouge focalisée sur un chemin d’intersection de la photodiode (PD) à un angle de 45 degrés.

Problèmes possibles:

  • La lentille est sale (nettoyez avec la pointe Q)
  • Il y a trop de lumière ambiante (éviter si l’objectif PD est clair ou pas de filtre noir)
  • Votre compteur d’impulsions manque d’impulsions (vérifiez)

    • quelle est la largeur d’impulsion minimale qui peut être détectée?
  • le flux d’air est trop élevé (éviter tout flux d’air forcé ou vent)

  • ondulation excessive sur + 5V (vérifier)

Les raisons

Le capteur repose sur de très petites particules se déplaçant lentement par une lente montée de chaleur contrôlée et une pompe à débit d’air lent. Si les particules se déplacent trop rapidement, le filtre passe-bas avant et après l’étage de sortie réduira la hauteur d’impulsion complète d’atteindre les seuils 1 V et 2,5 V pour une sortie d’impulsion négative. Le trajet du faisceau de l’émetteur focalisé sur le faisceau est à peu près de la même taille que le PD de 5 mm, de sorte que la détection des particules se déplaçant au-delà de 5 mm dépend d’une vitesse lente avec un filtre passe-bas de 39 ms = T, de sorte que les réflexions des particules de 10 ms au minimum se situent autour du seuil de détection.

Cela se traduit par 5 mm / 10 ms ou 0,5 m / s comme la vitesse maximale pour une particule et qui est contrôlée par la résistance chauffante.

Méthodes de test simples sans portée.

  • Créez un compteur d’impulsions optiques en utilisant un CD4024 avec 7 sorties binaires qui peuvent diriger une LED de 5 mm avec environ 2mA avec une alimentation de 5V en raison du RdsOn interne élevé
    • en faire un pour chaque sortie P1, P2
  • étalonner le capteur selon les méthodes d’usine avec des particules d’aérosol

entrez la description de l'image ici entrez la description de l'image ici

Connectez P1, P2, 5V, gnd avec le fil téléphonique à la planche à pain. Réinitialisation à Gnd et LED Anode à chaque sortie et cathode à gnd (Vss), + 5V à Vdd. ajouter un e-cap sur le rail 5V. (pas de série R nécessaire pour CD4xxx sur 5V) ajouter un bouton-poussoir optionnel pour Reset (« 1 ») avec 10k en gnd ou équivalent.

Tony EE rocketscientist

 

#(une, #de, capteur, d’obtenir, du, faible, impossible, impulsion, particules, PPD42, Shinyei

 

google

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *