- Akku Tests und Balkonkraftwerk Speicher         
Ergebnis 1 bis 10 von 13

Thema: ADS1115 I2C AD-Wandler Programmierung

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Roboter Genie Avatar von White_Fox
    Registriert seit
    04.10.2011
    Beiträge
    1.473
    Zitat Zitat von Ceos Beitrag anzeigen
    Gegenfrage, warum muss einen das interessieren
    Es geht ja um Temperaturen und solange ich jetzt nicht direkt einfach häufiger lese als er sampeln kann, sollte ich eher mal einen Wert verpassen als einen doppelt zu lesen, aber das sollte doch keine signifikante Wirkung auf die Aufgabe dahinter haben oder?
    Genau dieser Umstand war der Grund, warum bei uns in einem Uniprojekt die fabelhaft einfachen, arduinoartigen Bibliotheken für den STM32 wieder rausgeflogen sind. Für jede lächerlich einfache Art der Signalverarbeitung ist es schon sinnvoll zu wissen, ob ich den gleichen Wert ein- oder zweimal gelesen habe. Und sei es nur um mit mehreren Werten das Rauschen rauszumitteln. In unserem Fall damals wollten wir eine Sprungantwort einfach nur aufzeichnen. Selbst sowas geht nicht, wenn du keine Kontrolle darüber hast daß du keine Werte doppelt liest/überspringst.

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.12.2007
    Ort
    weit weg von nahe Bonn
    Alter
    40
    Beiträge
    3.416
    Für jede lächerlich einfache Art der Signalverarbeitung ist es schon sinnvoll zu wissen, ob ich den gleichen Wert ein- oder zweimal gelesen habe.
    Je nach Aufgabe sollte man aber die Kirche im Dorf lassen. Eine Druckmessung sollte schon so schnell wie möglich sein damit ein heftiger Transient rechtzeitig unterdrückt werden kann und nicht das Rohr samt Sensor platzt.

    Bei einer Temperaturmessung sind wir schon bei einer ganz anderen Prozessgeschwindigkeit. Wenn dieser Sensor keine physische Leitung präsentiert und obendrein auch noch erfordert multiple mal ein Status Register auf relativ aufwendige Weise auszulesen um dann den eindeutig neuen Messwert zu erfahren, hat man schlicht den falschen Sensor gewählt.

    Meiner Meinung nach wäre hier der genau richtige Zeitpunkt zu hinterfragen ob man diese Messgeschwindigkeit benötigt oder die einfachste Lösung hinreichend ist (Free Run und langsamer als die Sampletime auslesen)

    Und sei es nur um mit mehreren Werten das Rauschen rauszumitteln.
    Das wäre auch mit o.g. Messmethode möglich, spricht jetzt effektiv nicht dagegen.

    In unserem Fall damals wollten wir eine Sprungantwort einfach nur aufzeichnen.
    Dann brauch man halt einen anderen Sensor der einem neue Samples einfacher zugänglich signalisiert.

    -----------------------

    Aber nochmal zurück zum eigentlichen Problem: wenn du uns etwa code zeigst (auch den I2C part) wie du derzeit deinen Sensor ausließt könnte man vielleicht mal drüber schauen ob es da einen Fehler im Ablauf gibt der das korrumpierte Config Register erklärt. Oder eine Beschreibung was genau du sendet und empfängst.
    Es gibt 10 Sorten von Menschen: Die einen können binär zählen, die anderen
    nicht.

  3. #3
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    10.04.2005
    Ort
    Bad Aibling
    Beiträge
    212
    Die C++ Klasse die ich gerade baue soll den Wandler best Möglich unterstützen weil ich den als Standard Messwandler benutzen will. Ich benutze wenn möglich gern immer die gleichen Teile erleichtert das vorankommen bei Projekten. Der AD-Wandler eignet sich ja nicht nur zum Temperaturmessen. Das ist nur mein momentaner Bedarf. Aber für den Stromsensor brauche ich den auch nochmal mit seiner Fähigkeit Differenzial Messungen machen zu können. Dann kann man auch die Stromrichtung feststellen.
    https://www.conrad.de/de/honeywell-s...nt-505261.html

    Wurde ja schon gesagt es gibt schon Anwendungen wo es wichtig ist. Immer wenn ein Messwert irgendwie eine Beziehung zur Zeit hat ist es wichtig nicht mehrmals den gleichen Wert zu lesen. Nur als Beispiel wenn der Wandler das Signal eines Mikrophons Digitalisieren soll. Der Sänger zieht Dir bei Lebendigem Leib die Haut ab wenn er hört was Du aus seiner Stimme machst wenn Du mehrfach den gleichen Wert liest ...

    Evtl. liefert der Wandler bei "continuous conversion" ja selbst einen Wert erst wieder zurück wenn der nächste neue zur Verfügung steht. Er weiß ja ob der aktuelle schon gelesen wurde oder nicht. Liest man zu langsam werden die Wert sicher verworfen. Klar wo sollte er die speichern.

    Klar Code gibts auch: https://git.hts-software.de/cgit.cgi...a-Api/tree/I2c
    Im Verzeichnis Hardware ist die Klasse Ads1115 zum Wandler. ModulTest enthält das Testprogramm. Ich Teste es gerade auf einem Raspi mit einem Gentoo Linux. Es sollte aber mit anderen Linuxen auch gehen. Das im ersten Post genannte Problem ist ja schon gelöst. Man muss bei "singel conversion" wirklich immer das Bit 15 im "Config Register" wieder setzen um die Wandlung des nächsten Wertes zu starten. Das hatte ich übersehen. Bleibt nur noch die Frage nach dem "free run" wie Du es genannt hast.

    Ich dachte es kennt jemand den Wandler und kann das leicht beantworten. Nicht das ich nicht gesucht hätte aber wie gesagt eine schwer verständliche Sprache im Datenblatt.

  4. #4
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    8.708
    Je nach Aufgabe sollte man aber die Kirche im Dorf lassen .. Bei einer Temperaturmessung sind wir schon bei einer ganz anderen Prozessgeschwindigkeit ..
    Genau, beides ist richtig. ABER es kommt halt aufs Detail drauf an. Wenn ich nen Dampfkessel ausmesse, dann darf ich mit nem recht trägen Temperaturverlauf rechnen (Pssst - pingelig - von Notfall-Dampferzeugern auf Raketenofenbasis abgesehen). Ganz anders siehts aus, wenn ich z.B. temperaturkritische Reaktionen in einem Rührkessel GENAU untersuchen will. In letzterem Fall dürfte ich bei der Temperaturmessung in den Bereich von einigen zig Hertz geraten um herumwirbelnde Temperaturnester in den Griff zu bekommen - oder eben ausschließen zu können. Der 1115er schafft immerhin - laut Datenblatt - bis zu 860 SPS. Wie schnell das dann in der Praxis bei den geforderten GEnauikeiten (siehe auch Temperatursensor) sein kann, würde ich bei gewünschten Frequenzen über 1 Hz sowieso erstmal in der kompletten Messkette mit ner Sprungantwort/Übergangsfunktion testen.

    .. Eine Druckmessung sollte schon so schnell wie möglich sein ..
    Jein. Was ist schon "so schnell wie möglich"? Ich hab nen Drucksensor der vierhundert Kilohertz kann, bei sehr guter Genauigkeit, das ist schon recht flott und reicht (für meine Fragen und Belange) praktisch überall aus - sogar Stöße in Zentrifugalpumpen oder vor/nach Ventilen sind damit prächtig zu messen - einschließlich zeitlichem Verlauf. So schnell wie möglich geht dabei bald mächtig ins Geld.

    .. Temperaturmessen. Das ist nur mein momentaner Bedarf. Aber für den Stromsensor ..
    Da hamma schon das Problemchen . . .

    Frage: läuft das, ohne die Messaufgabe und die Peripherie zu kennen, nicht doch wieder mal auf ne Kristallkugel raus?
    Geändert von oberallgeier (08.02.2019 um 13:13 Uhr)
    Ciao sagt der JoeamBerg

  5. #5
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    10.04.2005
    Ort
    Bad Aibling
    Beiträge
    212
    Weder Kristall noch Kugel sondern viereckig Plastik und Drahtbeinchen ...

    Ich will nicht möglichst schnell und auch nicht nur Temperatur messen. Sondern mit der extra für diesen Chip geschriebenen Klasse eben jenen Chip und seine Fähigkeiten Nutzen können. Ich finde jetzt schon das ist eine sehr genaue Vorgabe. Wenn er 860 SPS kann wie bekomme ich die dann zur CPU ohne doppelte Werte zu lesen?

    Als 16 Bit Wandler ist er ja eher ein präzisions Wandler. Da erscheint mir die Lösung einfach langsamer lesen als der Wandler ist ein wenig unpräzise. Dürft man mit dieser Lösung dann nicht nur Maximal 50% Nutzen also 430 SPS. Sonst könnte doch die Zeitrechnung Chip und CPU trotzdem doppelte Werte liefern.

  6. #6
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    8.708
    Weder Kristall noch Kugel sondern viereckig Plastik und Drahtbeinchen ... Da erscheint mir die Lösung einfach langsamer lesen als der Wandler ist ein wenig unpräzise ..
    Na ja, ich trau mich ja fast nicht aufs Datenblatt hinzuweisen (klar, ein total lästiger Hinweis) und auffordern den Satz zu suchen ".. The ALERT/RDY pin can also be configured as a conversion ready pin .." und dann den Pin per Interrupt abfragen . . .

    Denn: ohne das zugehörige Datenblatt zu lesen ist der Umgang mit Mikrocontrollern/-elektronik eins der letzten großen Abenteuer unserer Tage.
    Ciao sagt der JoeamBerg

  7. #7
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    10.04.2005
    Ort
    Bad Aibling
    Beiträge
    212
    Schick mir eine Deutsche Übersetzung ... Dumme Sprüche kann ich auch machen.

    Den PIN habe ich schon gesehen nur mutet es seltsam an wenn man einen Chip mit Bus hat das man zwingend extra Hardware braucht um den zu Nutzen. Wozu hab ich dann den Bus ein einfacher GPIO würde reichen um die 16 Bit zur CPU zu schieben.

    Ja danke für die Blumen es ist sicher eine hervorragende Leistung ohne Datenblatt die Singel Conversion funktionierend einfach so aus der Luft zu Programmieren. Mir war nicht Bewusst was ich doch für ein Genialer Mensch bin ...

    <Edit>
    Kapitel 10.1.7 Quickstart (Seite 35): Beschreiben die "Continuous Converstion" in dem Schaltbild darunter benutzen die aber auch nicht den Alert Pin. Leider geben die in Schritt 3 nur an wie das erste Byte gelesen wird und auch da nicht woher man weiß das schon ein Wert verfügbar ist.
    </Edit>
    Geändert von alexander_ro (08.02.2019 um 16:48 Uhr)

  8. #8
    Erfahrener Benutzer Roboter Genie Avatar von White_Fox
    Registriert seit
    04.10.2011
    Beiträge
    1.473
    Das ist nicht unüblich die Daten auf einem Standardbus rauszuschieben und verschiedene Informationen auf Extrapins zu legen. Und eigentlich ist so eine Ansteuerung recht einfach...wenn man seinen Mikrocontroller einigermaßen beherrscht und nicht auf das Zusammenwürfeln irgendwelcher zusammengeklaubter Bibliotheken angewiesen ist. So wie sich dein erster Post liest scheint das bei dir ja aber nicht der Fall zu sein.

    Sei doch froh daß es so ist, denn andernfalls hättest du z.B. mehr Protokolloverhead. So sollte es aber doch recht einfach sein.

Ähnliche Themen

  1. Nebenschlusswiderstand(Shunt) an ADS1115
    Von GhostJumper im Forum Elektronik
    Antworten: 7
    Letzter Beitrag: 26.11.2018, 17:02
  2. Problem mit ADS1115 und ready Signal
    Von Ritchie im Forum Elektronik
    Antworten: 0
    Letzter Beitrag: 24.02.2017, 21:08
  3. TLC 549 Programmierung (AD-Wandler)
    Von Profdok im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 6
    Letzter Beitrag: 14.11.2007, 16:48
  4. I/0 Ports ; A/D Wandler ; D/A Wandler am Laptop?
    Von jojo.glaser im Forum Elektronik
    Antworten: 4
    Letzter Beitrag: 31.05.2006, 19:15
  5. DA-Wandler
    Von Felix G im Forum Elektronik
    Antworten: 6
    Letzter Beitrag: 08.03.2005, 23:07

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

fchao-Sinus-Wechselrichter AliExpress