{"id":284,"date":"2010-12-14T11:01:30","date_gmt":"2010-12-14T10:01:30","guid":{"rendered":"https:\/\/www.giannifavilli.it\/blog\/?p=284"},"modified":"2016-08-10T12:51:59","modified_gmt":"2016-08-10T11:51:59","slug":"arduino-sensore-temperatura","status":"publish","type":"post","link":"https:\/\/www.giannifavilli.it\/blog\/arduino-sensore-temperatura\/","title":{"rendered":"Arduino e il sensore di temperatura"},"content":{"rendered":"<p>In questo post spiegher\u00f2 come utilizzare un sensore di temperatura MCP9700A con Arduino.<br \/>\nCome prima cosa dobbiamo leggere il Datasheet del componente elettrico per capire le tensioni di utilizzo \u00a0e come reagisce al variare della temperatura.<\/p>\n<p><!--more--><br \/>\n<div class=\"clear-block\"><div class=\"ad alignnone\">\n\t\t\t\t<script async src=\"\/\/pagead2.googlesyndication.com\/pagead\/js\/adsbygoogle.js\"><\/script>\n\t\t\t\t<!-- GianniFavilli - Responsive -->\n\t\t\t\t<ins class=\"adsbygoogle\"\n\t\t\t\t     style=\"display:block\"\n\t\t\t\t     data-ad-client=\"ca-pub-1205156047762515\"\n\t\t\t\t     data-ad-slot=\"6873384605\"\n\t\t\t\t     data-ad-format=\"auto\"><\/ins>\n\t\t\t\t<script>\n\t\t\t\t(adsbygoogle = window.adsbygoogle || []).push({});\n\t\t\t\t<\/script>\n\t\t\t\t<\/div><\/div>\n<p><a href=\"https:\/\/www.giannifavilli.it\/blog\/wp-content\/uploads\/2010\/12\/temperature-sensor.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignleft size-thumbnail wp-image-291\" style=\"border: 1px solid #cccccc;\" title=\"temperature-sensor\" src=\"https:\/\/www.giannifavilli.it\/blog\/wp-content\/uploads\/2010\/12\/temperature-sensor-150x150.jpg\" alt=\"\" width=\"80\" height=\"80\" srcset=\"https:\/\/www.giannifavilli.it\/blog\/wp-content\/uploads\/2010\/12\/temperature-sensor-150x150.jpg 150w, https:\/\/www.giannifavilli.it\/blog\/wp-content\/uploads\/2010\/12\/temperature-sensor-64x64.jpg 64w\" sizes=\"auto, (max-width: 80px) 100vw, 80px\" \/><\/a>Il\u00a0Datasheet del componente MCP9700A ci fornisce i seguenti parametri:<br \/>\n<em>0\u00b0C = 500 mV<\/em><br \/>\n<em>0 V = 0 bit<\/em><br \/>\n<em>5 V = 1023 bit<\/em><br \/>\n<em>Variazione -&gt; 10.0 mV\/\u00b0C<\/em><\/p>\n<p><em><br \/>\n<\/em><\/p>\n<p>Quindi ho iniziato a ricavare l&#8217;espressione matematica per il calcolo della temperatura.<\/p>\n<ul>\n<li>TEMP = ( analogRead * [Volt.BIT] ) \/ [Coeff_mV \/ \u00b0C]<\/li>\n<li>[Volt.BIT] = VoltMAX \/ BitMAX -&gt; 5V \/ 1024bit -&gt; 5 \/ 1024<\/li>\n<li>TEMP = [ (\u00a0VoltMAX \u00a0*\u00a0analogRead \u00a0) \/ BitMAX ] \/ Coeff_mV \/ \u00b0C<\/li>\n<li>TEMP = ( VoltMAX * analogRead * \u00b0C\/Coeff_mV ) \/ BitMAX<\/li>\n<\/ul>\n<p>Dove:<br \/>\n<em>analogRead<\/em> \u00e8 il valore in bit letto da Arduino dal sensore di temperatura (0 &#8211; 1023)<br \/>\n<em>Volt.BIT<\/em> \u00e8 la differenza di potenziale che viene applicata ad ogni bit (0.00488) in questo caso dato che ho fornito al sensore di temperatura 5V.<br \/>\n<em>Coeff_mV\/\u00b0C<\/em> \u00e8 la variazione di tensione al variare della temperatura (10 mVolt)<br \/>\n<em>VoltMAX<\/em> \u00e8 la tensione massima applicata al sensore di temperatura (5 Volt)<br \/>\n<em>BitMAx<\/em> sono i 1024 bit che arduino riesce a leggere<br \/>\nCon un po&#8217; di matematica abbiamo l&#8217;espressione finale.<\/p>\n<p>Visto che con tutte queste formule il valore che usciva fuori non era corrispondente a quello reale in quanto veniva segnata una temperatura di circa 70\u00b0C ma io non stavo affatto cuocendo con un moltiplicatore aggiunto alla fine della funzione ho risolto il problema.<br \/>\nIl moltiplicatore \u00e8 stato ricavato con un banale ragionamento e una semplicissima espressione che teneva conto della temperatura reale misurata con un termometro a mercurio e il valore che veniva misurato da Arduino, il risultato era il seguente:<\/p>\n<p>[TEMPERATURA REALE] : [X] = [TEMPERATURA ARDUINO] : 1<\/p>\n<p>Questo \u00e8 il codice Arduino che ho utilizzato per misurare la temperatura di un ambiente con un sensore\u00a0MCP9700A.<\/p>\n<pre class=\"lang:arduino decode:true gutter: false;\">TEMP = ( ( 5 * analogRead(PIN) * 100.0  ) \/  1024 );<\/pre>\n<p>Ottimizzando il tutto sono arrivato a questa conclusione<\/p>\n<pre class=\"lang:default decode:true \"> TEMP = ( ( analogRead(PIN) * 500 ) \/ 1024 ) - 50<\/pre>\n<p>Se la funzione che ho scritto non soddisfi le tue esigenze,\u00a0<em>Tim N9PUZ<\/em>, ha creato una libreria che fa al caso tuo. <a href=\"http:\/\/n9puz.blogspot.com\/2009\/11\/mcp9700a-temperature-sensor-arduino.html\" target=\"_blank\">MCP9700A Temperature Sensor Arduino Library<\/a><br \/>\n\t<!-- \/\/NOTE inibito\n\t<div class=\"paga_box_sandbox\"><h4>In questo momento non fare donazioni, sto testando il sistema. Grazie!<\/h4>\t<p>Dona 1.49 Euro per scaricare il progetto completo<\/p>\n\t<p class=\"mini\">A donazione effettuata una email con le informazioni e il link per scaricare il progetto ti sar\u00e0 inviata all'indirizzo di posta che hai utilizzato su PayPal per fare la donazione<\/p>\n\t<form method=\"post\" name=\"paypal_form_donap_1433\" action=\"https:\/\/www.sandbox.paypal.com\/cgi-bin\/webscr\">\n\t\t<input type=\"hidden\" name=\"business\" value=\"info@giannifavilli.it\" \/>\n\t\t<input type=\"hidden\" name=\"cmd\" value=\"_donations\" \/>\n\t\t<input type=\"hidden\" name=\"return\" value=\"http:\/\/www.giannifavilli.it\/blog\/ppget\/?mailpp=1\" \/>\n\t\t<input type=\"hidden\" name=\"cancel_return\" value=\"http:\/\/www.giannifavilli.it\/blog\/wp-json\/wp\/v2\/posts\/284\" \/>\n\t\t<input type=\"hidden\" name=\"notify_url\" value=\"http:\/\/www.giannifavilli.it\/listen\/donazione_pp_ipn.php\" \/>\n\t\t<input type=\"hidden\" name=\"rm\" value=\"2\" \/>\n\t\t<input type=\"hidden\" name=\"currency_code\" value=\"EUR\" \/>\n\t\t<input type=\"hidden\" name=\"lc\" value=\"IT\" \/>\n\t\t<input type=\"hidden\" name=\"cbt\" value=\"Grazie! Permi qui per torna sul blog e scarica il progetto\" \/>\n\t\t<input type=\"hidden\" name=\"item_name\" value=\"(ArduinoHTTP) Progetto per Donazione al fine di mantenere il blog\" \/>\n\t\t<input type=\"hidden\" name=\"amount\" id=\"amount\" value=\"1.49\">\n\t\t<input type=\"hidden\" name=\"custom\" value=\"ArduinoHTTP\" \/>\n\t\t<input type=\"hidden\" name=\"no_note\" value=\"1\" \/>\n\t\t<input class=\"pulsantepp\" type=\"image\" src=\"https:\/\/www.paypalobjects.com\/it_IT\/IT\/i\/btn\/btn_donateCC_LG.gif\" border=\"0\" name=\"submit\" alt=\"PayPal - Il metodo rapido, sicuro e affidabile per fare donazioni.\" \/>\n\t<\/form>\n\t<\/div>\n\t-->\n\t<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In questo post spiegher\u00f2 come utilizzare un sensore di temperatura MCP9700A con Arduino. Come prima cosa dobbiamo leggere il Datasheet del componente elettrico per capire le tensioni di utilizzo \u00a0e come reagisce al variare della temperatura.<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[16,20,3,17],"tags":[67,69,63,19,68],"class_list":["post-284","post","type-post","status-publish","format-standard","hentry","category-arduino","category-domotica","category-informatica","category-programmazione","tag-arduino","tag-domotica","tag-informatica","tag-open-source","tag-programmazione"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p4SGGs-4A","_links":{"self":[{"href":"https:\/\/www.giannifavilli.it\/blog\/wp-json\/wp\/v2\/posts\/284","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.giannifavilli.it\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.giannifavilli.it\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.giannifavilli.it\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.giannifavilli.it\/blog\/wp-json\/wp\/v2\/comments?post=284"}],"version-history":[{"count":0,"href":"https:\/\/www.giannifavilli.it\/blog\/wp-json\/wp\/v2\/posts\/284\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.giannifavilli.it\/blog\/wp-json\/wp\/v2\/media?parent=284"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.giannifavilli.it\/blog\/wp-json\/wp\/v2\/categories?post=284"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.giannifavilli.it\/blog\/wp-json\/wp\/v2\/tags?post=284"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}