Pyrometer GY-906 MLX90614: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
Die Seite wurde neu angelegt: „Kategorie:Arduino Kategorie:Sensoren ohne|100px| '''Autoren:''' Marc Ebmeyer, Prof. Dr.-Ing. Schneider“ |
|||
| (24 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
| Zeile 1: | Zeile 1: | ||
[[Kategorie:Arduino]] | [[Kategorie:Arduino]] | ||
[[Kategorie:Sensoren]] | [[Kategorie:Sensoren]] | ||
[[Datei:GY-906-MLX-90614-Infrarot-Thermometer-back.png| | [[Datei:GY-906-MLX-90614-Infrarot-Thermometer-back.png|thumb|rigth|300px|Abb. 1: Pyrometer GY-906 MLX90614]] | ||
'''Autoren:''' [[Benutzer:Marc Ebmeyer| Marc Ebmeyer]], [[Benutzer:Ulrich_Schneider| Prof. Dr.-Ing. Schneider]] | '''Autoren:''' [[Benutzer:Marc Ebmeyer| Marc Ebmeyer]], [[Benutzer:Ulrich_Schneider| Prof. Dr.-Ing. Schneider]] | ||
= Simulink Modell = | |||
[[Datei:Simulink GY-906.jpg|thumb|left|600px|Abb. 2: Simulink Modell]] | |||
[[Datei:Simulink GY-906 Einstellungen.jpg|thumb|left|400px|Abb. 3: Einstellungen des I2C Controller Read-Blocks]] | |||
<br clear="all"> | |||
Simulink Einstellungen Solver | |||
* Type: Fixed-step | |||
* Solver: discrete | |||
* Fixed-step size: 0.1 | |||
Abb. 2 zeigt das Modell zum Einlesen der Objekttemperatur. Die Umgebungstemperatur steht an der Position <code>0x06</code> im Sensorregister. Abb. 3 zeigt die kompletten Einstellungen des Sensorblocks. | |||
== MATLAB Function == | |||
Die Daten kommen im Format <code>uint8</code> als Array (<code>[LSB, MSB, PEC]</code>). Die Bytes werden in der MATLAB Function <code>Byte2Temp</code> in einen Temperaturwert in °C umgerechnet. | |||
<syntaxhighlight lang="matlab" line style="border: none; background-color: #EFF1C1; font-size:small">function Temp_in_C = Byte2Temp(Data) | |||
% Data: uint8 array, Länge 3: [LSB, MSB, PEC] | |||
% Sicherheitsprüfung: Sind 3 Byte angekommen? | |||
if numel(Data) < 2 | |||
Temp_in_C = NaN; | |||
return; | |||
end | |||
LSB = uint16(Data(1)); | |||
MSB = uint16(Data(2)); | |||
% Little-Endian: LSB first | |||
Rohwert = bitor(bitshift(MSB,8), LSB) % Rohwert = MSB<<8 | LSB | |||
Rohwert = LSB+bitshift(MSB,8); % Rohwert = MSB<<8 | LSB | |||
% Umrechnung in °C | |||
Temp_in_K = double(Rohwert) * 0.02 | |||
Temp_in_C = Temp_in_K - 273.15; | |||
end | |||
</syntaxhighlight> | |||
'''SVN-URL:''' [https://svn.hshl.de/svn/SDE_Sensortechnik_MTR/trunk/Demos/Temperaturmessung/Pyrometer_GY-906/Pyrometer_R2025a.slx https://svn.hshl.de/svn/SDE_Sensortechnik_MTR/trunk/Demos/Temperaturmessung/Pyrometer_GY-906/Pyrometer_R2025a.slx] | |||
Aktuelle Version vom 4. Dezember 2025, 16:37 Uhr

Autoren: Marc Ebmeyer, Prof. Dr.-Ing. Schneider
Simulink Modell


Simulink Einstellungen Solver
- Type: Fixed-step
- Solver: discrete
- Fixed-step size: 0.1
Abb. 2 zeigt das Modell zum Einlesen der Objekttemperatur. Die Umgebungstemperatur steht an der Position 0x06 im Sensorregister. Abb. 3 zeigt die kompletten Einstellungen des Sensorblocks.
MATLAB Function
Die Daten kommen im Format uint8 als Array ([LSB, MSB, PEC]). Die Bytes werden in der MATLAB Function Byte2Temp in einen Temperaturwert in °C umgerechnet.
function Temp_in_C = Byte2Temp(Data)
% Data: uint8 array, Länge 3: [LSB, MSB, PEC]
% Sicherheitsprüfung: Sind 3 Byte angekommen?
if numel(Data) < 2
Temp_in_C = NaN;
return;
end
LSB = uint16(Data(1));
MSB = uint16(Data(2));
% Little-Endian: LSB first
Rohwert = bitor(bitshift(MSB,8), LSB) % Rohwert = MSB<<8 | LSB
Rohwert = LSB+bitshift(MSB,8); % Rohwert = MSB<<8 | LSB
% Umrechnung in °C
Temp_in_K = double(Rohwert) * 0.02
Temp_in_C = Temp_in_K - 273.15;
end