Auswertung Temperatursensor LM75

Dieser Bereich dient dem Austausch über geplante oder bereits realisierte Projekte - von Anwender zu Anwender.
Antworten
deepsky
Beiträge: 9
Registriert: Montag 25. August 2014, 12:47

Auswertung Temperatursensor LM75

Beitrag von deepsky » Sonntag 17. April 2016, 19:45

Hallo PL Fans,

ich arbeite gerade mal wieder an einer PL-Routine, in diesem Fall um den LM75 über ein Horter I2C Interface abzurufen.
Der Sensort antwortet inzwischen...

Ich bekomme die Messwerte, habe jedoch ein kleines Problem:

a) Byte 3 = Temperatur in °C
b) Byte 4 = 0 oder 128
128 = 0,5°C
0 = 0°C (das muss zur Information aus Byte 3 addiert werden.

Dieses habe ich bereits gelöst in dem ich zu Byte 3 das Byte 4 dividiert durch 256 addiert habe.

Mein noch nicht gelöstest Problem betrifft die Temperatur unter 0°C

Beispiel: -1°C = 255

Rechenregel : Wenn Byte 3 > 127 dann T="255-Byte 3" sonst "Byte 3".

Wie kann ich das in PL realisieren?

Gruß
Peter

IKT
Beiträge: 522
Registriert: Mittwoch 4. November 2009, 18:32

Re: Auswertung Temperatursensor LM75

Beitrag von IKT » Montag 18. April 2016, 11:16

Die Sache ist doch viel einfacher als beschrieben:
Byte 3 = Temperatur (-128 bis +127)
Byte 4 = 0 ODER* +0.5
siehe Schaltung ...

* = Gemeint ist: ein logisches ODER
Dateianhänge
Lösung.png
Lösung.png (24.01 KiB) 5243 mal betrachtet
++++++
Gruss/regards IKT

deepsky
Beiträge: 9
Registriert: Montag 25. August 2014, 12:47

Re: Auswertung Temperatursensor LM75

Beitrag von deepsky » Montag 18. April 2016, 22:04

Hallo IKT,

danke für den Tipp. Die 0,5°C Sache finde ich interessant, ich hatte das jetzt mit einer Division durch 256 gelöst.

Die Auswertung des ersten Byte geht leider so noch nicht:

Der Sensor gibt 0-255 aus, 0-127 = 0-127°C bei -1°C wirft er 255 aus. Defakto ist das zwar -128 bis 127.

255-256 = (-1°C)

Ich denke da muss ich noch etwas ändern, aber das erst morgen, mir fallen die Augen zu...
Aber mit AD/AD Wandlern experimentiert (da die entsprechenden Grenzen eingegeben) führte zu keinem positiven Ergebnis.

Jetzt fällt mir noch etwas ein, was bei meinem Oszilloskop von Lecroy (auch schon fast 20 Jahre her mit (IEEE488) seinerzeit geholfen hat, wo in den Daten der Offset auch verschoben wurde.
Das ging mit einem Exor, wenn ich mich nicht irre.
Ich teste morgen und melde mich.

Liebe Grüße

Peter

IKT
Beiträge: 522
Registriert: Mittwoch 4. November 2009, 18:32

Re: Auswertung Temperatursensor LM75

Beitrag von IKT » Dienstag 19. April 2016, 09:46

deepsky hat geschrieben:Ich denke da muss ich noch etwas ändern ...
Auch keine Hexerei, dafür gibt's die Korrektur-Tabelle in PL:
0 = 0
127 = 127
128 = -128
255 = -1
diese ersetzt VAL ... Ende der Konversion. Andere Variante:
0 = -128
127 = -1
128 = 0 (hier sitzt die Null in der Mitte des Bereichs!)
255 = 127
Dies entspricht einem Minus-Offset von 128, Offset Baustein einsetzen (anstelle KT).
Manual des Wandlers lesen! Hier muss stehen, wie die Zahlen zu interpretieren sind.
++++++
Gruss/regards IKT

deepsky
Beiträge: 9
Registriert: Montag 25. August 2014, 12:47

Re: Auswertung Temperatursensor LM75

Beitrag von deepsky » Dienstag 19. April 2016, 21:40

Hallo IKT,
ich denke ich habe die Lösung:

Korrekturtabelle wäre eine Lösung, allerdings geht es auch anders:
Ich habe dein Beispiel ergänzt um die Regel, was passiert wenn der Wert des ersten bytes über 127 ist.
Dann gilt = Wert = 256-Wert.

So klappt dann alles was ich benötige.

Danke für den Denkanstoß

Peter
Dateianhänge
Auswertung des LM75.PNG
Auswertung des LM75.PNG (22.92 KiB) 5146 mal betrachtet

deepsky
Beiträge: 9
Registriert: Montag 25. August 2014, 12:47

Re: Auswertung Temperatursensor LM75

Beitrag von deepsky » Dienstag 19. April 2016, 22:10

Hallo PL-Fans,

anbei die Routine um den LM75 an einem Horter I2C-Interface auszulesen.

Bitte um Beachtung das COM-Port zu setzten ist. Beim USB-Interface ist die Baudrate fest eingestellt und liegt bei 115200.
Der Rahmen und das Trennzeichen ist die $04.

Liebe Grüße
Peter
Dateianhänge
I2C_LM75.prj
(15.84 KiB) 188-mal heruntergeladen

IKT
Beiträge: 522
Registriert: Mittwoch 4. November 2009, 18:32

Re: Auswertung Temperatursensor LM75

Beitrag von IKT » Donnerstag 21. April 2016, 12:06

Hallo deepsky,

leider hat die Schaltung noch einen gravierenden Fehler:
3 versch. Ausgänge gehen auf einen (denselben) Eingang!
PowerOnReset ( muss weg )
Oszillator und
Taster ( müssen gegen einander verriegelt sein! )
es darf nur jeweils einer "durchgeschaltet" sein ... sonst gibt's Ärger.
Z.B. Schalter und zwei AND-Gates ( das eine "invertiert" ) damit:
Ein/Aus Schalter wird somit zum UmSchalter ( auto / manuell ).
Dateianhänge
UmSchalter.png
Um-Schalter (manu./auto.)
UmSchalter.png (11.3 KiB) 5083 mal betrachtet
i2c_horter_im75.png
Fehler ...
i2c_horter_im75.png (6.46 KiB) 5086 mal betrachtet
++++++
Gruss/regards IKT

abacom
Site Admin
Beiträge: 3275
Registriert: Dienstag 23. September 2008, 10:54
Kontaktdaten:

Re: Auswertung Temperatursensor LM75

Beitrag von abacom » Donnerstag 28. April 2016, 09:34

...die "Problematik" UNSIGNED BYTE (0...255) TO SIGNED BYTE(-128...127) lässt sich übrigens auch mit einem Pärchen "AD/DA" elegant erledigen.
Das geht auch in die andere Richtung und bei entsprechender Konfiguration der AD/DA auch mit 16-Bit-Werten (WORD<->INT16), oder anderen Auflösungen (wie etwa 12 Bit).
Einfach die Eingangs- und Ausgangswertebereiche entsprechend eingeben und das MSB invertieren.
complement2.png
complement2.png (24.22 KiB) 5027 mal betrachtet
Die ganze Lösung für die Umrechnung sieht dann so aus....
Complement2.prj
(4.64 KiB) 192-mal heruntergeladen
... und geht davon aus das "Byte 4" ausschließlich die Werte 0 oder 128 annimmt, dh. Bit 0..6 sind immer 0.
Dann ist 128/256=0.5 schnell addiert.
(Ein Trigger auf ">127" und danach ein eine Verstärkung von 0,1 geht natürlich auch. Triggerausgang (High=5) * 0,1 = 0,5)
ABACOM support

abacom
Site Admin
Beiträge: 3275
Registriert: Dienstag 23. September 2008, 10:54
Kontaktdaten:

Re: Auswertung Temperatursensor LM75

Beitrag von abacom » Donnerstag 22. September 2016, 10:01

ABACOM support

Antworten

Zurück zu „PROFILAB Kundenprojekte und Aufgabenstellungen“