<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>MCP9700 Archives - Esperimenti con logiche programmabili</title>
	<atom:link href="https://logicaprogrammabile.it/tag/mcp9700/feed/" rel="self" type="application/rss+xml" />
	<link>https://logicaprogrammabile.it/tag/mcp9700/</link>
	<description>Tutorial in italiano per imparare a programmare usando Arduino, Raspberry PI, Netduino</description>
	<lastBuildDate>Sun, 15 Jan 2017 17:40:30 +0000</lastBuildDate>
	<language>it-IT</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.8.3</generator>

<image>
	<url>https://logicaprogrammabile.it/wp-content/uploads/2017/11/cropped-logicaprogrammabile-logo-02-32x32.png</url>
	<title>MCP9700 Archives - Esperimenti con logiche programmabili</title>
	<link>https://logicaprogrammabile.it/tag/mcp9700/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Leggere dagli ingressi analogici da remoto con Arduino</title>
		<link>https://logicaprogrammabile.it/come-leggere-ingressi-analogici-remoto-arduino/</link>
					<comments>https://logicaprogrammabile.it/come-leggere-ingressi-analogici-remoto-arduino/#comments</comments>
		
		<dc:creator><![CDATA[Marco Lai]]></dc:creator>
		<pubDate>Thu, 01 Sep 2011 12:34:08 +0000</pubDate>
				<category><![CDATA[Tutorial Arduino]]></category>
		<category><![CDATA[Arduino Webserver]]></category>
		<category><![CDATA[Domotica]]></category>
		<category><![CDATA[Ingressi Analogici]]></category>
		<category><![CDATA[MCP9700]]></category>
		<guid isPermaLink="false">https://logicaprogrammabile.it/?p=1929</guid>

					<description><![CDATA[<p>Utilizzare un webserver per acquisire dati dagli ingressi analogici Continuiamo l&#8217;articolo precedente inserendo nello sketch il codice che permette di campionare segnali analogici per poterli inviarli tramite protocollo http. Utilizzando la funzione analogRead() acquisiamo il valore della tensione presente sul pin analogico, che verrà utilizzato...</p>
<p>The post <a href="https://logicaprogrammabile.it/come-leggere-ingressi-analogici-remoto-arduino/">Leggere dagli ingressi analogici da remoto con Arduino</a> appeared first on <a href="https://logicaprogrammabile.it">Esperimenti con logiche programmabili</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h1>Utilizzare un webserver per acquisire dati dagli ingressi analogici</h1>
<p>Continuiamo l&#8217;articolo precedente inserendo nello sketch il codice che permette di campionare segnali analogici per poterli inviarli tramite protocollo http.<br />
Utilizzando la funzione <strong>analogRead()</strong> acquisiamo il valore della tensione presente sul pin analogico, che verrà utilizzato per essere inserito nella pagina html da inviare al client. Con alcuni tag html aggiuntivi abbiamo la possibilità di avere un refresh automatico della pagina che ad intervalli regolari interrogherà il server Arduino, ottenendo automaticamente nuovi campionamenti del segnale analogico.<br />
Il circuito seguente:</p>
<p><img fetchpriority="high" decoding="async" class="aligncenter wp-image-1936 size-full" title="AnalogRead" src="https://logicaprogrammabile.it/wp-content/uploads/2011/09/AnalogRead.gif" alt="Circuito di esempio acquisizione segnale ingresso analogico via lan con http" width="303" height="306" srcset="https://logicaprogrammabile.it/wp-content/uploads/2011/09/AnalogRead.gif 303w, https://logicaprogrammabile.it/wp-content/uploads/2011/09/AnalogRead-150x150.gif 150w, https://logicaprogrammabile.it/wp-content/uploads/2011/09/AnalogRead-297x300.gif 297w" sizes="(max-width: 303px) 100vw, 303px" /></p>
<p><span id="more-1929"></span>In questo esempio la tensione presente sul pin è fissa, ma nulla vieta l&#8217;inserimento di un potenziometro o meglio di un sensore analogico come la sonda di temperatura mcp9700a.</p>
<p>Il codice dello sketch rimane essenzialmente invariato tranne per l&#8217;inserimento di una variabile per contenere i valori provenienti dalla funzione <strong>analogRead()</strong> e di qualche riga html aggiuntiva per formattare la pagina:</p>
<pre class="lang:arduino decode:true ">if (Data_RX == '\n')
{
//campiono il valore di tensione analogia
//in ingresso sul pin0 ella borad Arduino UNO
analogIn0 = analogRead(0);
//Invio la risposta al client
//invio lo status code
pc_client.println("HTTP/1.1 200 OK");
//imposto il data type
pc_client.println("Content-Type: text/html");
pc_client.println();
//invio codice html
pc_client.print("");
pc_client.print("");
//questo codice html permette di eseguireil refresh automatico
//della pagina html
pc_client.print("");
pc_client.print("");
pc_client.print("

Valore analogico letto dal pin 0");
//inserisco nella pagina html il valore acquisito dal pin analogico
pc_client.print(analogIn0);
pc_client.print("

");
//aspetto 1 ms affinche la risposta giunga al browser del client
delay(1);
//esco dal ciclo while una volta completato l'invio della risposta
break;
}</pre>
<p>&nbsp;</p>
<p>Non serve altro, è veramente semplice inviare via http i dati acquisiti dall&#8217;Arduino.<br />
Possiamo certamente utilizzare anche gli altri ingressi analogici o come nel prossimo esempio leggere lo stato di alcuni pin digitali.<br />
Per impiegare i pin digitali dobbiamo, nel blocco <strong>setup()</strong>,  specificare quali intendiamo utilizzare come ingressi. Per una semplice prova io ho usato il pin6 e il pin7:</p>
<pre class="lang:arduino decode:true ">void setup()
{
//inizializza lo shield con il mac e l'ip
Ethernet.begin(mac, ip);
//inizializza l'oggetto server
ArduinoServer.begin();
//definisco i pin6 e pin7 come ingressi
pinMode(6, INPUT);
pinMode(7, INPUT);
}</pre>
<p>&nbsp;</p>
<p>La funzione <strong>digitalRead()</strong> acquisisce il valore dello stato dei pin in esame e lo memorizza in una variabile precedentemente dichiarata. Questo valore viene successivamente inviato al client tramite la pagina html</p>
<pre class="lang:arduino decode:true ">if (Data_RX == '\n')
{
//leggo lo stato dei pin digitali 6 e 7
valPin6 = digitalRead(6);
valPin7 = digitalRead(7);

//campiono il valore di tensione analogia
//in ingresso sul pin0 ella borad Arduino UNO
analogIn0 = analogRead(0);

//Invio la risposta al client
//invio lo status code
pc_client.println("HTTP/1.1 200 OK");
//imposto il data type
pc_client.println("Content-Type: text/html");
pc_client.println();
//invio codice html
pc_client.print("");
pc_client.print("");
//questo codice html permette di eseguireil refresh automatico
//della pagina html
pc_client.print("");
pc_client.print("");
pc_client.print("

Valore analogico letto dal pin 0");
//inserisco nella pagina html il valore acquisito dal pin analogico
pc_client.print(analogIn0);
pc_client.print("

");

//inserisco nella pagina htm lo stato dei pin in ingresso
if(valPin6 == HIGH)
//se il valore è alto
pc_client.print("Stato pin6 = HIGH");
else
//se il valore è basso
pc_client.print("Stato pin6 = LOW");

pc_client.println("
");

if(valPin7 == HIGH)
//se il valore è alto
pc_client.print("Stato pin7 = HIGH");
else
//se il valore è basso
pc_client.print("Stato pin7 = LOW");

pc_client.print("");

//aspetto 1 ms affinche la risposta giunga al browser del client
delay(1);
//esco dal ciclo while una volta completato l'invio della risposta
break;
}</pre>
<p>&nbsp;</p>
<p>Anche questo codice risulta semplice e i commenti che lo accompagnano descrivono bene le varie istruzioni. Dopo aver caricato lo sketch sull&#8217;Arduino ho messo il pin6 alla +5Vdc e il pin 7 a massa ottenendo il risultato seguente:</p>
<p><img decoding="async" class="aligncenter wp-image-1944 size-full" title="Html_Result" src="https://logicaprogrammabile.it/wp-content/uploads/2011/09/Html_Result.gif" alt="Pagina html generata dal webserver Arduino" width="261" height="101" />Naturalmente i pin 10-11-12-13, sono utilizzati per la comunicazioni SPI con l&#8217;ethernet shield e quindi, non possono essere impiegati per altri scopi senza interferire nella comunicazione stessa.</p>
<p>Vi rimando al prossimo articolo dove vedremo come utilizzare il browser per inviare comandi alla board Arduino, nel frattempo potete sperimentare con le nozioni acquisite per aumentare le vostre capacità nell&#8217;uso della athernet shield.</p>
<p>A presto!</p>
<p>The post <a href="https://logicaprogrammabile.it/come-leggere-ingressi-analogici-remoto-arduino/">Leggere dagli ingressi analogici da remoto con Arduino</a> appeared first on <a href="https://logicaprogrammabile.it">Esperimenti con logiche programmabili</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://logicaprogrammabile.it/come-leggere-ingressi-analogici-remoto-arduino/feed/</wfw:commentRss>
			<slash:comments>3</slash:comments>
		
		
			</item>
	</channel>
</rss>
