PIGPIO ADS1115 C-Code

  • Servus Leuts,

    nächstes Problem nächste Frage. Das beschäftigt mich schon seit mehr als einer Woche....

    Also ich versuche die Temperatur von momentan 1nem Heizkreis zu messen. Dafür habe ich einen NTC mit Spannungsteiler an den ADS1115 ( VDD = 3.3V) angeschlossen. Ich habe es hinbekommen das ConfiReg beim ADS1115 zu beschreiben und die Beschriebenen Werte auch auszulesen. Soweit so gut. ABER beim Lesen von den Analogen Werten klappt was nicht. Ich bekomme zwar einen Wert rein ( sieht lebendig aus) aber der ist schon falsch :D zumindest um 0.2V höher als die gemessene Spannung am A0 Eingang. Lassen wir das erstmal so stehen.

    Wenn ich den Heizkreis einschalte sinkt die Spannung am A0 Eingang (habe ich auch dort nachgemessen). Leider aktualisiert oder ändert sich der Wert nicht in meinem Programm bzw. ich bleibe bei den leicht Schwankenden Werten ohne eine Änderung. Entweder liegts an mir oder ich kriegs einfach net geschissen ;(:D Da meine Geduld langsam am Ende ist und ich schon gefühlt das ganze WWW durchgeschaut habe muss ich mich an euch wenden :D Generell Pigpio und C findet man ja eh kaum was und dann noch mi ADS dazu katastrophe :D aber naja. Ich hoffe ihr seht, erkennt den fehler :D

    Und ja... ich habe ein paar I2cOpen / i2cclose zu viel drinne :D habe sie vergessen rauszunehmen. Unnötig kommt aber aufs gleiche raus haha :D


    Im Spoiler der Plan ;)

    Display Spoiler


    Edited 2 times, last by toasty123 (February 4, 2024 at 10:08 AM).

  • toasty123 February 4, 2024 at 9:36 AM

    Changed the title of the thread from “PIGPIO ADS1115” to “PIGPIO ADS1115 C-Code”.
  • Moinsen

    stelle mal bitte eine Schaltplan für deinen NTC Messkreis hier ein.

    Normal braucht man wiederum abhängig der Leitungslänge und des Einflußfaktors Temperatur auf die Meßleitungen zwischen dem NTC und dem ADC etwas mehr als nur einen Spannungsteiler.
    Da der Leitungswiderstand allgemein von der Temperaturabhängig ist, auch der Normativ-Wert des NTCs von dir nicht genannt wird, kann es durchaus vorkommen, dass man nicht nur mit einem konstanten Meßstrom arbeiten muss, sondern auch den Widerstandswert zwischen NTC und der Auswerteeinheit ( ADC ) via einer 4 Punktmessung berücksichtigen muss.
    Dazu gibt es verschiedene Verfahren, aber höchst wahrscheinlich wirst du um einen Meßverstärker ( OPV ) nicht drumrumkommen.

    Franky

  • Hallo Franky :) vielen Dank für die schnelle Antwort. Im Spoiler die aktualisierten Schaltüläne etc.

    Im ADS ist ein interner Verstärker würde der reichen?

  • Moinsen,

    Es ist zwar toll das man den Plan im Spoiler suchen muss, aber egal.
    Und welchen Nennwert hat dein NTC ? Oder gehört dieser zu der Gruppe PT100 ... PT1000 ?

    Problem bei dem NTC ist folgender: Der ist aus meiner Kaffeemaschine...(weil das mein Projekt ist) Leider gibt es hierzu keinerlei dokumente. Hab 40 Unternehmen angeschrieben. Dann habe ich einen hinweis bekommen, aber das war nicht ganz logisch für mich: laut dem Unternehmen ist der NTC von Shibaura ein KN1 mit folgenden werten:

    ResistanceR100 = 3.3kΩ
    B constantB0/100 = 3970K

    Beim Messen aber hatte ich bei 100°C 6600 Ohm anstatt 3300 :D deshalb rechne ich mit den Werten von mir aber mit der Konstante die hier oben angegeben ist

  • Moinsen,

    Je nach Grundwiderstand ( bei 0 Grad gemessen ) hast du nur ein Spannungsdelta von ca. 0,2 Volt über den Streckungsberecih 0 bis 100 Grad. Das kannst du mit diesem ADC so nicht wirklich auswerten, zumal auch der Leitungswiderstand, hier die Länge und den Faktor der Selbsterwärmung durch eine gewisse nähe zu der Heizquelle einen entscheidenden Faktor spielt.
    Hier kommt als RGesamt_Sensor zu einem der interne Widerstand des NTCs wie auch der Leitungswiderstand zwischen Masse, und dem Abzweigpunkt im Spannungsteiler, und bei körperlicher Nähe des Spannungsteilers auch noch der Driftwiderstand des R1 im Spannungsteiler als Einflußfaktor hinzu.
    Jetzt hast du immer noch nicht gesagt welche Meßgenauigkeit du erzielen willst, welche Meßtoleranz zulässig ist, und wie dein gesamte Verdrahtung sich räumlich über den fertigen Ausbau erstreckt.

    Um auf deine Frage:

    Im ADS ist ein interner Verstärker würde der reichen?

    einzugehen: Wenn du aus allem so ein großes Geheimnis machst, wenn dir ein Schätzwert um +/- 5 bis 10 K reicht, dann kannst du diesen ADC so ohne Änderungen an deinem Aufbau verwenden.

    Franky

  • Quote

    Wenn du aus allem so ein großes Geheimnis machst, wenn dir ein Schätzwert um +/- 5 bis 10 K reicht, dann kannst du diesen ADC so ohne Änderungen an deinem Aufbau verwenden.

    Soweit denke ich manchmal nicht mit :D

    Im Prinzip möchte ich die Temperatur zwischen 0 und 200° messen. Mit dem 10kOhm Widerstand im Spannungsteiler müsste ich einen Spannungsbereich über diese Gradzahl von 3.2V und 0.21V haben. Mir reicht eigentlich eine Toleranz von +-5° aus. +-2.5° wären natürlich nice to have.

  • Moinsen,

    ich weiß jetzt echt nicht wie du zu diesen Werten kommst ? Bei einem R1 im Spannungsteiler ->
    RNTC = 681 Ohm = 0,21 V UADCin
    RNTC = 320.000 Ohm ( 320k) = 3,2 V UADCin

    Irgendwie stimmt das nicht mit den Angaben die du als Kernparameter /-spezifikation genannt hast überein.

    Franky

  • Ja genau das ist das was mich stutzig macht. Deshalb habe ich in die Tabelle meinen gemessenen Wert (Bei 25°C) eingetragen anstatt die 3300 Ohm bei 100° zu nehmen. Gemessen hatte ich circa 6600 Ohm bei 100°C. Und deshalb die abgeänderten Werte ^^

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!