MQ Sensoren über ADS1115 auslesen und ppm berechnen

  • Hallo zusammen,


    ich stehe im Moment absolut auf dem Schlauch.

    Ich habe viel gelesen und viele Turoials angeschaut aber komme einfach nicht weiter. Ich möchte gerne drei MQ Sensoren (2,7,135) über einen ASD1115 auslesen und dann als ppm (muss nicht genau sein) auswerten. Der Hardwareaufbau funktioniert soweit, denn ich bekommen am i2C Bus fast konstante Werte und wenn ich Rauch oder Propan auf die Sensoren blase gehen die Werte stetig nach oben und nach einiger Zeit ohne Gas wieder auf den Ursprungwert zurück (Ursprungswert ca. 18,000). Wenn ich die Sensoren komlett abklemme geht der Wert auf 0 zurück.

    Wenn ich es richtige verstehe kann der A/D Wanlder ADS1115 - 32768 bis + 32748 anzeigen. Da 0 Volt den Wert 0 anzeigt gehe ich davon aus dass 3,3Volt +32748 anzeigt (noch nicht probiert).

    Somit schließe ich daraus, dass die 18.000 ca 1,813 Volt sein müssten (3,3V / 32748 * Wert ADS1115).


    Nur wie komme ich jetzt auf ppm.


    Rs/Ro wäre bei reiner Luft laut Diagramm 9,8

    Was heißt den Rs und Ro?


    Die Kurve für LPG wäre laut Diagramm Punkt 1 x=2,3 und y=0,21 und die Steigung -0,468


    Nun die dumme Frage, was fange ich mit diesen Werten an und wie komme ich auf ppm aus dem Wert des ADS1115 ?


    Mir raucht der Kopf, ich kommer aber nicht darauf was ich machen muss!


    Gruß

    Franzel

  • gases_calibration.pdf


    Quote

    Was heißt den Rs und Ro

    Ro ist der Widerstand des Sensors bei reiner Luft

    Rs ist der Widerstand des Sensors bei einer bestimmten Gaskonzentration


    Die Gassensoren sind nicht kalibriert.

    Dazu brauchtes eine Referenz (eine bekannte Gaskonzentration).

    Schwierig wird es zusätzlich dadurch dass der gemessene Wert

    von der Temperatur und der Luftfeuchtigkeit abhängt.

    Außerdem ist die Meßkurve nicht linear so dass man für jede verschiedene Gaskonzentration kalibrieren muß.

    Für eine genaue Anzeige müßten dann die bei der Kalibration ermittelten Werte gespeichert werden und mit der jeweiligen Temperatur und Luftfeuchtigkeit verrechnet werden.


    Kurz gesagt: Ohne Laborbedingungen ist eine Kalibration nicht möglich.


    Man kann die Sensoren nur als "Schätzeisen" benutzen.


    Edit: siehe auch Anhang

    Edited 2 times, last by ait: Anhang ().

  • Hallo nochmal,


    danke für deine Antwort und ja es soll auch nur ein Schätzeisen sein. Dennoch komme ich nicht weiter. Ich bekomme die Spannung am ADS1115 umgerechnet heraus. Nur wie bekomme ich aus der Spannung nun den Rs und den RS/Ro (ich denke der Stich ist geteilt).

    Und wie bekomme ich dann aus Rs/Ro die ppm (wenn auch ungenau) Sämtliche Tutorials verstehe ich nicht oder interpretiere diese falsch.

    Sorry dass ich so dumm frage, aber ich komme keine Schrit weiter.


    Gibt es eine Formel die ich z.B beim MQ-2 für LPG anwenden könnte und ich diese dann auf den MQ-7 und MQ-135 ummodeln kann?


    Gruß

    Franzel

  • Den Widerstand R ( der Innenwiderstand des Sensors,der bei reiner Luft den Wert Ro und bei einer bestimmten Gaskonzentration den Wert Rs hat) kannst Du ausrechnen indem Du die Spannung über Rlast (der Arbeitswiderstand) mißt.

    Aus gemessener Spannung und dem Rlast kannst Du den Strom ausrechnen (ohmsches Gesetz I = U/R).


    Den Widerstand R (Innenwiderstand des Sensors) berechnest Du indem Du von der Betriebsspannung die gemessene Spannung an Rlast abziehst. Aus dieser Spannung (Usensor = Ubetriebssppannung - Urlast) kannst Du mit den vorher errechneten Strom

    den Widerstand R ausrechnen (R =U/I).

    Ro ist der Widerstand den Du bei reiner Luft mißt und berechnest, Rs der Widerstand den Du bei vorhandensein von Gas

    mißt und berechnest.


    Diese beiden Werte in Verhältnis gesetzt bilden Rs/Ro.


    Damit könntest Du in der Kurve im Datenblatt die Konzentration ablesen.

    Dann mußt Du noch die Luftfeuchtigkeit und die Temperatur messen und Rs/Ro entsprechend der Korrekturkurve im Datenblatt

    korrigieren.


    Das bringt Dir aber nicht viel weil zumindest der MQ-2 und der MQ-135 empfindlich für mehrere Gase sind und Du nicht weißt

    welches Gas er gemessen hat. Ein einzelnes Gas kannst Du nicht herausrechnen.

    Man kann ohne großen Aufwand die Konzentration nicht messen weil zuviel Parameter damit reinspielen.

    Betrachte einfach das Steigen der Spannung an Rlast als mehr Gas und umgekehrt.


    Bei Allen ist noch nicht berücksichtigt daß die Sensoren nicht kalibriert sind und jeder Sensor etwas anderes mißt.

    Die Kurven im Datenblatt sind nur charakteristische Kurven, keine genauen Kurven.

  • Hallo nochmal,


    danke, das war genau das was ich benötigte habe und dann auch noch so erklärt dass ich es auf Anhieb verstanden habe.


    Danke und Gruß

    Franzel

  • Hallo Zusammen,


    tut mir leid, wenn ich hier schreibe (und ja ich weiß, dass der Thread schon etwas älter ist) aber ich bin ebenfalls schon über eine Woche auf der suche.


    Ich Lese ebenfalls einen MQ-2 Sensor über einen Adafriut ADS1115 aus. Soweit auch so gut. Allerdings schreibe ich das auslesen nicht über Phyton sondern über C# auf einen Raspberry mit Windows 10 IoT.


    Ich kriege den ADC auch ausgelesen und davon die Spannung (beispielsweise 0,4 V) am A0 Ausgang.


    Jedoch ist mir immer noch nicht klar, wie ich über 2 Spannungen den Widerstand berechne.


    Für meinen Verständnis brauche ich ja für die U=R*I Formel 2 Konstanten.

    U = Volt

    R= Ohm

    I = Ampere


    Ich kenne allerdings nur eine (Vcc) beide anderen Konstanten ändern sich ja immerzu, je nachdem wie die Luftqualität ist.


    Im Phyton Script wird irgendwas vom "Volatage Dividener" gesprochen. Ist das vielleicht die Rätsels Lösung?


    Danke im Voraus