{"id":1520,"date":"2016-03-21T22:35:27","date_gmt":"2016-03-21T21:35:27","guid":{"rendered":"http:\/\/blog.fh-kaernten.at\/ingmarsretro\/?p=1520"},"modified":"2019-01-11T12:51:28","modified_gmt":"2019-01-11T11:51:28","slug":"hyt939-und-ntc-an-matlab-ueber-arduino","status":"publish","type":"post","link":"https:\/\/blog.fh-kaernten.at\/ingmarsretro\/2016\/03\/21\/hyt939-und-ntc-an-matlab-ueber-arduino\/","title":{"rendered":"HYT939 und NTC an Matlab \u00fcber Arduino"},"content":{"rendered":"<div class=\"pvc_clear\"><\/div>\n<p id=\"pvc_stats_1520\" class=\"pvc_stats all  \" data-element-id=\"1520\" style=\"\"><i class=\"pvc-stats-icon medium\" aria-hidden=\"true\"><svg aria-hidden=\"true\" focusable=\"false\" data-prefix=\"far\" data-icon=\"chart-bar\" role=\"img\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 512 512\" class=\"svg-inline--fa fa-chart-bar fa-w-16 fa-2x\"><path fill=\"currentColor\" d=\"M396.8 352h22.4c6.4 0 12.8-6.4 12.8-12.8V108.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v230.4c0 6.4 6.4 12.8 12.8 12.8zm-192 0h22.4c6.4 0 12.8-6.4 12.8-12.8V140.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v198.4c0 6.4 6.4 12.8 12.8 12.8zm96 0h22.4c6.4 0 12.8-6.4 12.8-12.8V204.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v134.4c0 6.4 6.4 12.8 12.8 12.8zM496 400H48V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v336c0 17.67 14.33 32 32 32h464c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16zm-387.2-48h22.4c6.4 0 12.8-6.4 12.8-12.8v-70.4c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v70.4c0 6.4 6.4 12.8 12.8 12.8z\" class=\"\"><\/path><\/svg><\/i> <img decoding=\"async\" width=\"16\" height=\"16\" alt=\"Loading\" src=\"https:\/\/blog.fh-kaernten.at\/ingmarsretro\/wp-content\/plugins\/page-views-count\/ajax-loader-2x.gif\" border=0 \/><\/p>\n<div class=\"pvc_clear\"><\/div>\n<p style=\"text-align: justify\"><a href=\"http:\/\/blog.fh-kaernten.at\/ingmarsretro\/files\/2016\/03\/DSC_2311.jpg\" rel=\"attachment wp-att-1522\"><img fetchpriority=\"high\" decoding=\"async\" class=\"alignleft wp-image-1522 size-medium\" src=\"http:\/\/blog.fh-kaernten.at\/ingmarsretro\/files\/2016\/03\/DSC_2311-e1458568633516-300x266.jpg\" alt=\"DSC_2311\" width=\"300\" height=\"266\" srcset=\"https:\/\/blog.fh-kaernten.at\/ingmarsretro\/files\/2016\/03\/DSC_2311-e1458568633516-300x266.jpg 300w, https:\/\/blog.fh-kaernten.at\/ingmarsretro\/files\/2016\/03\/DSC_2311-e1458568633516-768x681.jpg 768w, https:\/\/blog.fh-kaernten.at\/ingmarsretro\/files\/2016\/03\/DSC_2311-e1458568633516-1024x908.jpg 1024w, https:\/\/blog.fh-kaernten.at\/ingmarsretro\/files\/2016\/03\/DSC_2311-e1458568633516.jpg 1776w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a>In den letzten Blogeintr\u00e4gen habe ich mit dem Arduino einen NTC-Widerstand &nbsp;\u00fcber einen Spannungsteiler an den Analogeingang des Arduino-UNO angeschlossen und ihn als eigenst\u00e4ndiges Programmchen am Arduino&nbsp;als Temperatursensor&nbsp;laufen lassen. Die aktuellen Messwerte wurden auf einem LC-Display angezeigt. Dann habe ich die selbe Hardware \u00fcber die Matlab Software und das &#8222;Arduino for Matlab&#8220;-Package betrieben und mittels Matlabcode direkt den Temperaturverlauf geloggt. Im vorhergehenden Blog war dann ein kombinierter Temperatur und Luftfeuchtigkeitssensor (Type HYT939) an der Reihe, der \u00fcber den I\u00b2C Bus am Arduino seine Daten lieferte und wieder am LCD ausgegeben hat.<\/p>\n<p style=\"text-align: justify\">In diesem Bericht kommt nun wieder Matlab ins Spiel. Hier habe ich versucht, beide Sensoren, den NTC am Analogeingang und den HYT am I\u00b2C Bus, gleichzeitig auszulesen. Das sollte \u00fcber einen mehrere Minuten andauernden Zeitraum passieren, wobei die Messwerte gleich mitgeloggt werden, um sie danach in einem Vergleichsdiagramm zu plotten. Der Hardwareaufbau ist wieder ganz einfach. Der NTC ist in Serie mit einem 2k2 Widerstand geschaltet. Die Enden des Spannungsteilers gehen an die +5V Versorgung und GND und der Teilerpunkt wird an den A0 &#8211; Eingang des Arduino Uno angeschlossen. Der HYT bekommt ebenfalls seine 5V vom Arduino selbst und an A4 und A5 ist der I\u00b2C anzuschlie\u00dfen (genaue Pinbelegung s. vorgehenden Bericht). Jetzt fehlt noch das Matlab-Script. Es ist hier einzusehen:<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<pre class=\"brush: cpp; title: ; notranslate\" title=\"\">%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\r\n% Beispielscript um mit ArduinoUno einen Temperaturverlauf aufzuzeichnen\r\n% Sensoren an A0 (Spannungsteiler mit NTC) und HYT939 an I2C\r\n% 03\/2016 by I.Bihlo\r\n%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\r\na = arduino('com4','Uno','libraries','I2C')\r\nanalogpin=0; %Anschlusspin analog des UNO\r\nanalog=0; %Variable f\u00fcr den Analogwert festlegen\r\nnn=600; %anzahl der messpunkte\r\naddr='0x28'; %addresse f\u00fcr digitalsensor\r\nbus=i2cdev(a, addr) %i2c object erzeugen\r\n%ein paar konstanten f\u00fcr die weiteren berechnungen\r\nr=2200; %Spannungsteilerwiderstand\r\nrt=0; %das wird der errechnete widerstand des NTC\r\nurt=0; %das wird der errechnete Spannungsabfall am NTC\r\n% konstanten f\u00fcr berechnung der Temperatur aus NTC Widerstand\r\n% B25=3977K\r\na1=3.354016E-03;\r\nb1=3.2569850E-04;\r\nc1=2.61013E-06;\r\nd1=6.38309e-08;\r\nrref=2200;\r\n%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\r\n% Lesen des I2C Bus\r\n% Lesen eines Temperaturabh\u00e4ngigen Widerstandes am Analog Eingang A0\r\n%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\r\nfor x=1:nn\r\n%%%% Analog \r\nanalog(x)=readVoltage(a, analogpin); %Liest den AnalogIn von A0 und gibt in Volt aus\r\nurt(x)=5-analog(x); %spannungsabfall am NTC \r\nrt(x)=(r\/analog(x))*urt(x); %widerstand des NTC\r\npause(0.5);\r\n%%%%Digital\r\ndata = read(bus, 4); %4 byte von i2c auslsesen\r\npause(0.5);\r\n%Rohdaten aus Puffer lesen und zusammenbauen\r\nhumrawh=dec2bin(data(1),8); %byte 1 auf 8bit festlegen in bin\u00e4r wandeln\r\nhumrawl=dec2bin(data(2),8); %byte 2 auf 8bit festlegen in bin\u00e4r wandeln\r\nhumrawall=strcat(humrawh,humrawl); % beide bins concentenaten\r\nhumraw=bin2dec(humrawall); % die ganze kette wieder in dec wandeln\r\n%tempraw=uint16(data(3))*256+uint16(data(4));\r\ntemprawh=dec2bin(data(4),8);\r\ntemprawl=dec2bin(data(3),8);\r\ntemprawall=strcat(temprawl,temprawh);\r\ntemprawall=temprawall(1:14); %% die letzten beiden bits abschneiden\r\ntempraw=bin2dec(temprawall);\r\n%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\r\n% Humidity berechnen lt. Datenblatt\r\n%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\r\nhum(x)=double(100\/(16384-1))*double(humraw);\r\n%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\r\n% Temperatur berechnen lt. Datenblatt\r\n%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\r\ntemp(x)=double(165\/(16384-1))*double(tempraw)-40.0;\r\n%berechung der analogtemperatur\r\nrvsrref(x)=rt(x)\/rref; \r\ntempa(x)=1\/(a1+(b1*log(rvsrref(x)))+(c1*(log(rvsrref(x)^2)))+(d1*(log(rvsrref(x)^3))));\r\ntempc(x)=tempa(x)-273.15 %Kelin in Celsius umrechnen\r\npause(1);\r\nend\r\nclear a;\r\ntime=1:nn;\r\n%plotten der daten\r\nfigure(1);\r\nsubplot(2,1,1);\r\nplot(time,tempc,'m');\r\ngrid on; hold on;\r\n%plot(time,analog,'b');\r\n%plot(time,rt\/1000,'r');\r\n%plot(time,urt,'g'); \r\nplot(time,temp,'g');\r\nlegend('Temperatur NTC&#x5B;\u00b0C]','Temperatur HYT939 &#x5B;\u00b0C]');\r\n%legend('Analogspannung des ADC','Widerstand des NTC in kOhm','Spannung am NTC','Temperatur &#x5B;\u00b0C]');\r\nsubplot(2,1,2);\r\nplot(time,hum,'m');\r\ngrid on; hold on;\r\nlegend('Rel Luftfeuchtigkeit HYT939 &#x5B;%RH]');\r\n%ende<\/pre>\n<p style=\"text-align: justify\">Nachdem der Code nun nach einigen Anpassungen l\u00e4uft, habe ich beide Sensoren (wie am Titelbild zu sehen) nebeneinander angeordnet und vor Beginn der Messung mit K\u00e4ltespray (K\u00e4lte75 von KontaktChemie) heruntergek\u00fchlt. Dann startete das Script und begann aufzuzeichnen. Im Ergebnis sollte der Verlauf der Erw\u00e4rmung auf die Raumtemperatur zu sehen sein. Da die K\u00e4lte am Metallgeh\u00e4use des HYT sofort eine Schicht aus gefrorenem Kondensat bildet die langsam taut, erwartete ich mir einen Luftfeuchtigkeitswert im Bereich der S\u00e4ttigung. (was dann auch deutlich im Plot zu sehen ist).<\/p>\n<p><a href=\"http:\/\/blog.fh-kaernten.at\/ingmarsretro\/files\/2016\/03\/HYTvsNTC.jpg\" rel=\"attachment wp-att-1525\"><img decoding=\"async\" class=\"aligncenter wp-image-1525\" src=\"http:\/\/blog.fh-kaernten.at\/ingmarsretro\/files\/2016\/03\/HYTvsNTC.jpg\" alt=\"HYTvsNTC\" width=\"400\" height=\"285\" srcset=\"https:\/\/blog.fh-kaernten.at\/ingmarsretro\/files\/2016\/03\/HYTvsNTC.jpg 915w, https:\/\/blog.fh-kaernten.at\/ingmarsretro\/files\/2016\/03\/HYTvsNTC-300x214.jpg 300w, https:\/\/blog.fh-kaernten.at\/ingmarsretro\/files\/2016\/03\/HYTvsNTC-768x547.jpg 768w\" sizes=\"(max-width: 400px) 100vw, 400px\" \/><\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div class=\"pvc_clear\"><\/div>\n<p id=\"pvc_stats_1520\" class=\"pvc_stats all  \" data-element-id=\"1520\" style=\"\"><i class=\"pvc-stats-icon medium\" aria-hidden=\"true\"><svg aria-hidden=\"true\" focusable=\"false\" data-prefix=\"far\" data-icon=\"chart-bar\" role=\"img\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 512 512\" class=\"svg-inline--fa fa-chart-bar fa-w-16 fa-2x\"><path fill=\"currentColor\" d=\"M396.8 352h22.4c6.4 0 12.8-6.4 12.8-12.8V108.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v230.4c0 6.4 6.4 12.8 12.8 12.8zm-192 0h22.4c6.4 0 12.8-6.4 12.8-12.8V140.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v198.4c0 6.4 6.4 12.8 12.8 12.8zm96 0h22.4c6.4 0 12.8-6.4 12.8-12.8V204.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v134.4c0 6.4 6.4 12.8 12.8 12.8zM496 400H48V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v336c0 17.67 14.33 32 32 32h464c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16zm-387.2-48h22.4c6.4 0 12.8-6.4 12.8-12.8v-70.4c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v70.4c0 6.4 6.4 12.8 12.8 12.8z\" class=\"\"><\/path><\/svg><\/i> <img decoding=\"async\" width=\"16\" height=\"16\" alt=\"Loading\" src=\"https:\/\/blog.fh-kaernten.at\/ingmarsretro\/wp-content\/plugins\/page-views-count\/ajax-loader-2x.gif\" border=0 \/><\/p>\n<div class=\"pvc_clear\"><\/div>\n<p>In den letzten Blogeintr\u00e4gen habe ich mit dem Arduino einen NTC-Widerstand &nbsp;\u00fcber einen Spannungsteiler an den Analogeingang des Arduino-UNO angeschlossen und ihn als eigenst\u00e4ndiges Programmchen am Arduino&nbsp;als Temperatursensor&nbsp;laufen lassen. Die aktuellen Messwerte wurden auf einem LC-Display angezeigt. Dann habe ich die selbe Hardware \u00fcber die Matlab Software und das &#8222;Arduino for Matlab&#8220;-Package betrieben und mittels&hellip; <br \/> <a class=\"read-more\" href=\"https:\/\/blog.fh-kaernten.at\/ingmarsretro\/2016\/03\/21\/hyt939-und-ntc-an-matlab-ueber-arduino\/\">Weiterlesen<\/a><\/p>\n","protected":false},"author":86,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"ngg_post_thumbnail":0,"footnotes":""},"categories":[1187,57],"tags":[431,479,336,481,480,482,477,478],"class_list":["post-1520","post","type-post","status-publish","format-standard","hentry","category-arduino","category-elektronikbastler","tag-arduino-matlab","tag-feuchtesensor","tag-hyt939","tag-i2c-sensor-an-matlab","tag-i2c-bus","tag-mit-matlab-sensoren-einlesen","tag-ntc-und-hyt939","tag-temperatursensor"],"a3_pvc":{"activated":true,"total_views":124,"today_views":0},"_links":{"self":[{"href":"https:\/\/blog.fh-kaernten.at\/ingmarsretro\/wp-json\/wp\/v2\/posts\/1520","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.fh-kaernten.at\/ingmarsretro\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.fh-kaernten.at\/ingmarsretro\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.fh-kaernten.at\/ingmarsretro\/wp-json\/wp\/v2\/users\/86"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.fh-kaernten.at\/ingmarsretro\/wp-json\/wp\/v2\/comments?post=1520"}],"version-history":[{"count":0,"href":"https:\/\/blog.fh-kaernten.at\/ingmarsretro\/wp-json\/wp\/v2\/posts\/1520\/revisions"}],"wp:attachment":[{"href":"https:\/\/blog.fh-kaernten.at\/ingmarsretro\/wp-json\/wp\/v2\/media?parent=1520"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.fh-kaernten.at\/ingmarsretro\/wp-json\/wp\/v2\/categories?post=1520"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.fh-kaernten.at\/ingmarsretro\/wp-json\/wp\/v2\/tags?post=1520"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}