• .
  • Willkommen im Forum!
  • Alles beim Alten...
  • Du hast kaum etwas verpasst ;-)
  • Jetzt noch sicherer mit HTTPS
Hallo, Gast! Anmelden Registrieren


Sensor , zb Temperatur ..usw.
#41
Du justierst derzeit nur den Nullpunkt “n”, aber nicht den Anstieg “m*x”.

2-Punkt ist dann: mx+n

Damit ließe sich die Nichtlinearität des Anstiegs/Gain kompensieren. In wieweit das notwendig ist, kann ich nicht sagen. Es braucht dazu natürlich ein genaues präzises Messnormal.
 
Reply
#42
Na ja... diesen Anspruch habe ich nicht. Laut Datenblatt werden +/- 0,5 Grad bei 25 Grad garantiert, von 0..65 Grad dann +/- 1. Im Vergleich zu diversen anderen Thermometern im Haus ist er am oberen Ende, deshalb bekommt er im Programm eine statische Korrektur nach unten.

Eine Kalibration der absolute Genauigkeit kann ich also nicht leisten. Es geht hier mehr um Trends und ihre zügige Anzeige. Hier ist zur Zeit eher die Wärmekapazität des Sensors und seiner Platine das grösste Hindernis.
 
Reply
#43
Die gleitende Mittelwert Prozedur sieht mir korrekt aus. Diesen Algorithmus fand ich schon immer bestechend. Was der Compiler aus der For-Schleife macht, will ich lieber nicht wissen - ist aber auch völlig wurscht, hier kommt es ja überhaupt nicht an auf maximale Geschwindigkeit.
Ich sehe allerdings keine Initialisierung des Ringpuffers und des Resultates.
edit: ist garkein Ringpuffer, sondern ein FiFo.
...mit der Lizenz zum Löten!
 
Reply
#44
Ich fühl mich auch ganz schlecht... Das Programm hat alles, was ich normalerweise vermeide:

- Rechnen mit Fliesskommazahlen, und davon eine Menge,
- Längliche For-Next-Schleifen,
- delay-Befehle.

Aber ich hab immer noch Zeit für die Delays  Big Grin .

Arduino ist nicht C, man muss mit wenig auskommen. Jedenfalls, wenn es auf die Schnelle programmiert sein soll. Seltsamerweise funktionieren aber viele Elemente von C, obwohl sie in der Arduino-Referenz nicht dokumentiert sind.
 
Reply
#45
Wenn die Echtzeitanforderungen nun mal so gering sind wie sie sind, würde ich auch nicht allzu viel Gehirnschmalz in Programmperformance legen. Letztendlich liegt die  Arduino-IDE eine Abstraktionsebene über der C-Programmierung und diese selbst wieder über dem Assembler. Damit wird der Code ja deutlich kompakter und auch besser lesbar. Und ne fertig gelieferte display-Ansteuerung die man nicht zum 1001-mal neu erfindet hat ja durchaus was für sich. Wenn es Dich partout in den Fingern juckt, kannst Du vermutlich die c-typischen Schiebeoperationen anstelle der for-Schleife einsetzen.
...mit der Lizenz zum Löten!
 
Reply