<?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>SetRange Archives - Esperimenti con logiche programmabili</title>
	<atom:link href="https://logicaprogrammabile.it/tag/setrange/feed/" rel="self" type="application/rss+xml" />
	<link>https://logicaprogrammabile.it/tag/setrange/</link>
	<description>Tutorial in italiano per imparare a programmare usando Arduino, Raspberry PI, Netduino</description>
	<lastBuildDate>Sat, 14 Jan 2017 21:44:17 +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>SetRange Archives - Esperimenti con logiche programmabili</title>
	<link>https://logicaprogrammabile.it/tag/setrange/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Usare gli ingressi analogici del Netduino</title>
		<link>https://logicaprogrammabile.it/netduino-usare-ingressi-analogici/</link>
					<comments>https://logicaprogrammabile.it/netduino-usare-ingressi-analogici/#comments</comments>
		
		<dc:creator><![CDATA[Marco Lai]]></dc:creator>
		<pubDate>Tue, 08 Mar 2011 09:53:22 +0000</pubDate>
				<category><![CDATA[Tutorial Netduino]]></category>
		<category><![CDATA[AnalogInput]]></category>
		<category><![CDATA[Fotocellula]]></category>
		<category><![CDATA[Fotoresistenza]]></category>
		<category><![CDATA[Ingresso analogico]]></category>
		<category><![CDATA[SetRange]]></category>
		<guid isPermaLink="false">https://logicaprogrammabile.it/?p=214</guid>

					<description><![CDATA[<p>Come utilizzare le porte analogiche del Netduino Netduino dispone di 6 ingressi per l&#8217;acquisizione di segnali analogici. Questa è una caratteristica importante perché molti sensori sono di tipo analogico, come alcuni che, ad esempio, variano la loro resistenza elettrica in base alla grandezza fisica che...</p>
<p>The post <a href="https://logicaprogrammabile.it/netduino-usare-ingressi-analogici/">Usare gli ingressi analogici del Netduino</a> appeared first on <a href="https://logicaprogrammabile.it">Esperimenti con logiche programmabili</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h1>Come utilizzare le porte analogiche del Netduino</h1>
<p>Netduino dispone di 6 ingressi per l&#8217;acquisizione di segnali analogici. Questa è una caratteristica importante perché molti sensori sono di tipo analogico, come alcuni che, ad esempio, variano la loro resistenza elettrica in base alla grandezza fisica che misurano.<br />
Uno degli elementi più semplici che possiamo usare per imparare ad usare gli ingressi analogici del Netduino è la fotoresistenza che varia la sua resistenza elettrica in modo proporzionale alla quantità di luce a cui è sottoposta.<br />
Prima di acquisire il segnale dobbiamo sapere che la massima tensione applicabile ai pin analogici è di 3.3Vdc. La risoluzione del Netduino, nel convertire il segnale analogico in digitale, è di 10bit, questo indica che applicando una tensione di 3.3Vdc all&#8217;ingresso analogico, otterremo un valore intero di 1024, applicando una tensione nulla otterremo un valore intero pari a 0, e applicando una tensione di 1.65 Vdc (pari alla metà della massima tensione applicabile) otterremo un valore intero di 512.<br />
Quindi le variazioni di tensione tra 0 e 3.3v restituiranno dei valori compresi tra 0 e 1024.</p>
<p>Passiamo alla pratica e proviamo a collegare una fotoresistenza al Netduino. La sua resistenza varia in modo inversamente proporzionale alla quantità di luce che colpisce il sensore, più intensità luminosa corrisponde ad una minore resistenza e viceversa. Il modello che ho utilizzato io presenta una resistenza di 80-100 ohm quando il sensore è posto alla luce mentre quando è posto al buoi la sua resistenza aumenta sino a 10-15 Mohm.</p>
<p>Il circuito di test è il seguente:</p>
<p style="text-align: center;"><img fetchpriority="high" decoding="async" class="aligncenter wp-image-234 size-full" title="Fotoresistenza e Netduino" src="https://logicaprogrammabile.it/wp-content/uploads/2011/03/Fotoresistenza.gif" alt="Netduino e Fotoresistenza" width="285" height="288" /></p>
<p style="text-align: left;">La tensione di 3.3v va ad alimentare il circuito composto dalla fotoresistenza FR e dalla resistenza R da 5.6 KOhm.</p>
<blockquote><p>Nota: <span style="text-decoration: underline;">Per i possessori di Netduino rev A dovete collegare anche la tensione 3.3v al pin <strong>Aref</strong></span></p></blockquote>
<p>Le variazioni di luminosità sul sensore si tradurranno in variazione di resistenza e di conseguenza in variazione di tensione. L&#8217;ingresso A0 è collegato tra la fotoresistenza e la resistenza.<span id="more-214"></span></p>
<p>Il software per iniziare ad acquisire il segnale analogico è molto banale ed è composto da alcune righe di codice:</p>
<pre class="lang:c# decode:true ">AnalogInput FotoCellula = new AnalogInput(Pins.GPIO_PIN_A0);
Int32 Segnale = 0;

while(true)
{
Segnale = FotoCellula.Read();
Debug.Print(Segnale.ToString());
Thread.Sleep(100);
}</pre>
<p>&nbsp;</p>
<blockquote><p>Prima di eseguire il debug(F5) è necessario visualizzare la finestra Output dell&#8217;ambiente di sviluppo Visual C# per vedere i dati inviati dal Netduino tramite l&#8217;istruzione Debug.Print()<br />
La finestra Output è disponibile nel menu Visualizza-&gt;Output di Visual C#</p></blockquote>
<p>Creiamo un oggetto di nome <strong>FotoCellula </strong>dalla classe AnalogInput relativo all&#8217;ingresso A0 del Netduino e una variabile di tipo intero per memorizzare i valori letti dal pin A0.<br />
Nel ciclo infinito l&#8217;oggetto <strong>FotoCellula </strong>espone il metodo <strong>Read()</strong> che permette di acquisire il segnale analogico. Il valore viene memorizzato nella variabile Segnale e inviato al pc tramite l&#8217;istruzione <strong>Debug.Print()</strong>.</p>
<p>Proviamo a coprire la fotoresistenza per verificare che i valori letti nella finestra Output cambiano, in questo caso la resistenza elettrica del sensore aumenta e di conseguenza la tensione sul pin A0 tenderà a zero, l&#8217;acquisizione della tensione, tramite la Read(), produrrà dei valori che tenderanno allo zero; al contrario esponendo il sensore alla luce, la sua resistenza diminuirà e la tensione presente sul pin A0 tenderà a 3.3Vdc, in questo caso la Read() restituirà valori prossimi a 1024.</p>
<p>Se il range 0-1024 è troppo elevato possiamo tramite il metodo <strong>SetRange </strong>dell&#8217;oggetto <strong>FotoCellula </strong>definire un nostro intervallo:</p>
<pre class="lang:c# decode:true ">AnalogInput FotoCellula = new AnalogInput(Pins.GPIO_PIN_A0);
Int32 Segnale = 0;
//Definisco un range personalizzato
FotoCellula.SetRange(100, 500);

while(true)
{
Segnale = FotoCellula.Read();
Debug.Print(Segnale.ToString());
Thread.Sleep(100);
}</pre>
<p>&nbsp;</p>
<p>L&#8217;acquisizione di un segnale analogico, quindi, si riduce alla definizione dell&#8217;ingresso al quale verrà applicato il segnale, all&#8217;eventuale impostazione dell&#8217;intervallo e all&#8217;esecuzione del metodo Read(). L&#8217;unica accortezza è assicurarci che la massima tensione in ingresso non sia superiore ai 3.3Vdc.</p>
<p>Il pin Aref viene utilizzato dal Netduino quando la tensione di riferimento è diversa da 3.3Vdc, nella revisione B del Netduino Aref è impostato automaticamente al valore di 3.3Vdc. Nel caso in cui avessimo un sensore che fornisce un uscita una tensione massima di di 1.65Vdc possiamo intraprendere due strade:<br />
la prima è non utilizzare il pin Aref ed avere l&#8217;acquisizione riferita ai 3.3Vdc, di conseguenza la risoluzione di acquisizione verrà dimezzata (Range da 0Vdc a 1.65Vdc equivale a un intervallo di valori di conversione tra circa 0 e 512) .<br />
La seconda è inviare al pin Aref una tensione di riferimento di 1.65Vdc, in questo modo potremmo utilizzare la massima risoluzione del convertitore analogico digitale a 10 bit. L&#8217;intervallo dei valori si estenderà da 0 a 1024.</p>
<p style="text-align: center;"><img decoding="async" class="aligncenter wp-image-253 size-full" title="Aref" src="https://logicaprogrammabile.it/wp-content/uploads/2011/03/Aref.gif" width="349" height="298" srcset="https://logicaprogrammabile.it/wp-content/uploads/2011/03/Aref.gif 349w, https://logicaprogrammabile.it/wp-content/uploads/2011/03/Aref-300x256.gif 300w" sizes="(max-width: 349px) 100vw, 349px" />Lo schema di figura è puramente indicativo.</p>
<p>Per utilizzare il pin Aref dobbiamo eseguire una semplice istruzione per poterlo abilitare:</p>
<pre class="lang:c# decode:true ">// usa il pin esterno Aref
OutputPort arefSelect = new OutputPort((Cpu.Pin)56, false);

// usa il valore di Aref interno (Default)
OutputPort arefSelect = new OutputPort((Cpu.Pin)56, true);

AnalogInput FotoCellula = new AnalogInput(Pins.GPIO_PIN_A0);
Int32 Segnale = 0;

while(true)
{
Segnale = FotoCellula.Read();
Debug.Print(Segnale.ToString());
Thread.Sleep(100);
}</pre>
<p>&nbsp;</p>
<p>Ho modificato il circuito originale con la fotoresistenza in modo da utilizzare il pin Aref per puro scopo illustrativo.<br />
Il circuito è il seguente</p>
<p><img decoding="async" class="aligncenter wp-image-256 size-full" title="Aref1" src="https://logicaprogrammabile.it/wp-content/uploads/2011/03/Aref1.gif" width="357" height="303" srcset="https://logicaprogrammabile.it/wp-content/uploads/2011/03/Aref1.gif 357w, https://logicaprogrammabile.it/wp-content/uploads/2011/03/Aref1-300x254.gif 300w" sizes="(max-width: 357px) 100vw, 357px" /></p>
<p>la tensione di 3.3Vdc viene inviata ad un partitore di tensione composto da due resistenze di 220 ohm. La tensione così dimezzata viene utilizzata per alimentare la fotoresistenza e per inviarla al pin Aref.<br />
Quando la fotoresistenza è esposta alla luce la sua resistenza sarà minima e sul pin A0 avremmo una tensione di circa 1.65Vdc, in questo caso il metodo Read() dell&#8217;oggetto FotoCellula restituirà un valore che tenderà a 1024. Nel caso contrario, quando la fotoresistenza è al buoi, sul pin A0 avremmo una tensione quasi nulla e il metodo Read() dell&#8217;oggetto FotoCellula restituirà un valore che tenderà allo zero.<br />
Il codice relativo a questo esperimento è il seguente, da notare che l&#8217;abilitazione del pin Aref con la prima istruzione:</p>
<pre class="lang:c# decode:true ">// usa il pin esterno Aref
OutputPort arefSelect = new OutputPort((Cpu.Pin)56, false);

AnalogInput FotoCellula = new AnalogInput(Pins.GPIO_PIN_A0);
Int32 Segnale = 0;

while(true)
{
Segnale = FotoCellula.Read();
Debug.Print(Segnale.ToString());
Thread.Sleep(100);
}</pre>
<p>&nbsp;</p>
<p>Ora disabilitiamo l&#8217;uso di Aref con la seguente istruzione</p>
<pre class="lang:c# decode:true ">// usa il valore di Aref interno (Default)
OutputPort arefSelect = new OutputPort((Cpu.Pin)56, true);</pre>
<p>&nbsp;</p>
<p>Eseguendo nuovamente il debug noteremo subito che il massimo valore ottenuto quando la fotoresistenza è totalmente illuminate tenderà a 512, questo perché il valore di tensione è ora riferito a 3.3Vdc e non più a 1.65Vdc.</p>
<p>In conclusione lavorare con i pin analogici risulta molto semplice, tutto si riduce all&#8217;uso del metodo Read(). Saper correttamente acquisire un segnale analogico da la possibilità di interagire con molti sensori di tipo analogico che ancora sono presenti in commercio.</p>
<p>Fatemi sapere se l&#8217;articolo è risultato interessante cliccando sul pulsante mi piace o lasciando un commento!</p>
<p>The post <a href="https://logicaprogrammabile.it/netduino-usare-ingressi-analogici/">Usare gli ingressi analogici del Netduino</a> appeared first on <a href="https://logicaprogrammabile.it">Esperimenti con logiche programmabili</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://logicaprogrammabile.it/netduino-usare-ingressi-analogici/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
	</channel>
</rss>
