<?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>Led Archives - Esperimenti con logiche programmabili</title>
	<atom:link href="https://logicaprogrammabile.it/tag/led/feed/" rel="self" type="application/rss+xml" />
	<link>https://logicaprogrammabile.it/tag/led/</link>
	<description>Tutorial in italiano per imparare a programmare usando Arduino, Raspberry PI, Netduino</description>
	<lastBuildDate>Thu, 18 Mar 2021 10:47:02 +0000</lastBuildDate>
	<language>it-IT</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.8.2</generator>

<image>
	<url>https://logicaprogrammabile.it/wp-content/uploads/2017/11/cropped-logicaprogrammabile-logo-02-32x32.png</url>
	<title>Led Archives - Esperimenti con logiche programmabili</title>
	<link>https://logicaprogrammabile.it/tag/led/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Tutorial come costruire un cubo led 3x3x3</title>
		<link>https://logicaprogrammabile.it/tutorial-costruire-cubo-led-3x3x3/</link>
					<comments>https://logicaprogrammabile.it/tutorial-costruire-cubo-led-3x3x3/#respond</comments>
		
		<dc:creator><![CDATA[Marco Lai]]></dc:creator>
		<pubDate>Thu, 24 Apr 2014 11:48:51 +0000</pubDate>
				<category><![CDATA[Tutorial Arduino]]></category>
		<category><![CDATA[Cubo 3x3x3]]></category>
		<category><![CDATA[Led]]></category>
		<guid isPermaLink="false">https://logicaprogrammabile.it/?p=4165</guid>

					<description><![CDATA[<p>Costruire un cubo led 3x3x3 con Arduino Micro Arduino come sappiamo è una piattaforma molto versatile che permette di realizzare diverse tipologie di progetti. La parte che preferisco maggiormente riguarda la realizzazione di progetti che in qualche modo risolvano o migliorino una attività pratica. Nonostante...</p>
<p>The post <a href="https://logicaprogrammabile.it/tutorial-costruire-cubo-led-3x3x3/">Tutorial come costruire un cubo led 3x3x3</a> appeared first on <a href="https://logicaprogrammabile.it">Esperimenti con logiche programmabili</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h3>Costruire un cubo led 3x3x3 con Arduino Micro</h3>
<p><strong>Arduino</strong> come sappiamo è una piattaforma molto versatile che permette di realizzare diverse tipologie di progetti. La parte che preferisco maggiormente riguarda la realizzazione di progetti che in qualche modo risolvano o migliorino una attività pratica.<br />
Nonostante ciò molti esperimenti vengono realizzati ai soli fini didattici o ludici. Il<strong> cubo led 3x3x3</strong> è sicuramente uno di quei <strong>progetti</strong> che vengono realizzati per <strong>stupire gli amici!</strong></p>
<p>Di <strong>tutorial</strong> per realizzare <strong>cubi led 3x3x3</strong> ne esistono centinaia, ma nonostante ciò ho voluto realizzare anche io l&#8217;ennesimo cercando di spiegare la sua realizzazione in modo molto <strong>semplice</strong>, questo perché molti utenti,  che sono alle prime esperienze, hanno bisogno di <strong>spiegazioni passo passo</strong> molto elementari.</p>
<p><a href="https://logicaprogrammabile.it/wp-content/uploads/2014/04/CuboLed3x3x3x.jpg"><img fetchpriority="high" decoding="async" class="aligncenter size-medium wp-image-4171" src="https://logicaprogrammabile.it/wp-content/uploads/2014/04/CuboLed3x3x3x-300x271.jpg" alt="Cubo led 3x3x3" width="300" height="271" srcset="https://logicaprogrammabile.it/wp-content/uploads/2014/04/CuboLed3x3x3x-300x271.jpg 300w, https://logicaprogrammabile.it/wp-content/uploads/2014/04/CuboLed3x3x3x.jpg 400w" sizes="(max-width: 300px) 100vw, 300px" /></a></p>
<p><span id="more-4165"></span></p>
<p>I materiali necessari per realizzare il cubo led sono elencati di seguito:</p>
<ul>
<li><strong>27</strong> led da 3mm, nel mio cubo di colore rosso</li>
<li><strong>3</strong> Transistors NPN, io ho usato il 2n2222 ma va bene anche il BC547</li>
<li><strong>9</strong> resistenze da 150 ohm 1/4w</li>
<li><strong>3</strong> resistenze da 1Kohm 1/4w</li>
<li><strong>1</strong> scheda Arduino, nel mio caso una Micro ma va bene anche la UNO</li>
<li>basetta millefori per montare i componenti</li>
<li>filo elettrico q.b.</li>
</ul>
<h3>Realizzazione del cubo</h3>
<p>il <strong>cubo led</strong> è formato da tre livelli, o <strong>strati</strong>, ognuno composto da <strong>9 led</strong>. Questi nove led vendono collegati unendo tutti i catodi tramite delle saldature a stagno. Per primo bisogna procedere piegando il catodo di 9 led a 90°</p>
<p><img decoding="async" class="aligncenter size-medium wp-image-4184" src="https://logicaprogrammabile.it/wp-content/uploads/2014/04/WP_20140423_12_16_13_Pro-286x300.png" alt="cubo led 3x3x3" width="286" height="300" srcset="https://logicaprogrammabile.it/wp-content/uploads/2014/04/WP_20140423_12_16_13_Pro-286x300.png 286w, https://logicaprogrammabile.it/wp-content/uploads/2014/04/WP_20140423_12_16_13_Pro.png 380w" sizes="(max-width: 286px) 100vw, 286px" /></p>
<p>procedendo poi a saldare tra loro i catodi dei 9 led, cercando di formare un quadrato:</p>
<p><img decoding="async" class="aligncenter size-medium wp-image-4185" src="https://logicaprogrammabile.it/wp-content/uploads/2014/04/WP_20140423_12_18_21_Pro-300x239.png" alt="cubo led 3x3x3" width="300" height="239" srcset="https://logicaprogrammabile.it/wp-content/uploads/2014/04/WP_20140423_12_18_21_Pro-300x239.png 300w, https://logicaprogrammabile.it/wp-content/uploads/2014/04/WP_20140423_12_18_21_Pro.png 380w" sizes="(max-width: 300px) 100vw, 300px" /></p>
<p>dovrete otterrete questa struttura composta da 9 led:</p>
<p><img loading="lazy" decoding="async" class="aligncenter size-medium wp-image-4187" src="https://logicaprogrammabile.it/wp-content/uploads/2014/04/WP_20140423_13_35_18_Pro-288x300.png" alt="Cubo led 3x3x3" width="288" height="300" srcset="https://logicaprogrammabile.it/wp-content/uploads/2014/04/WP_20140423_13_35_18_Pro-288x300.png 288w, https://logicaprogrammabile.it/wp-content/uploads/2014/04/WP_20140423_13_35_18_Pro.png 366w" sizes="auto, (max-width: 288px) 100vw, 288px" /></p>
<p>Nella realtà otterremo qualcosa del genere:</p>
<p><a href="https://logicaprogrammabile.it/wp-content/uploads/2014/04/WP_20140124_09_49_32_Pro.png"><img loading="lazy" decoding="async" class="aligncenter size-medium wp-image-4189" src="https://logicaprogrammabile.it/wp-content/uploads/2014/04/WP_20140124_09_49_32_Pro-300x290.png" alt="Costruzione cubo" width="300" height="290" srcset="https://logicaprogrammabile.it/wp-content/uploads/2014/04/WP_20140124_09_49_32_Pro-300x290.png 300w, https://logicaprogrammabile.it/wp-content/uploads/2014/04/WP_20140124_09_49_32_Pro.png 380w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a></p>
<p>come potete osservare dalla figura precedente ho utilizzato un<strong> pezzo di cartone ondulato</strong> per <strong>posizionare</strong> in maniera uniforme i led. Il cartone si presta ad essere forato utilizzando il led stesso.<br />
Una volta realizato il primo livello continuiamo con gli altri due livelli. Una volta finito il lavoro dovremmo avere qualcosa del genere:</p>
<p>&nbsp;</p>
<p><a href="https://logicaprogrammabile.it/wp-content/uploads/2014/04/WP_20140124_09_49_51_Pro.png"><img loading="lazy" decoding="async" class="aligncenter size-medium wp-image-4190" src="https://logicaprogrammabile.it/wp-content/uploads/2014/04/WP_20140124_09_49_51_Pro-300x127.png" alt="Tre layer per il cubo led 3x3x3" width="300" height="127" srcset="https://logicaprogrammabile.it/wp-content/uploads/2014/04/WP_20140124_09_49_51_Pro-300x127.png 300w, https://logicaprogrammabile.it/wp-content/uploads/2014/04/WP_20140124_09_49_51_Pro.png 700w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a></p>
<p>&nbsp;</p>
<p>Ora dobbiamo<strong> unire i tre strati</strong> di led tra loro formando appunto un <strong>cubo</strong>. Sovrapponiamo il primo strato con il secondo e con delle saldature collegheremo gli anodi dei led tra loro, una volta saldato il secondo strato si continua posizionando e saldando il terzo strato. La figura seguente da un&#8217;idea di come posizionare e saldare gli anodi</p>
<p><a href="https://logicaprogrammabile.it/wp-content/uploads/2014/04/WP_20140423_15_16_14_Pro.png"><img loading="lazy" decoding="async" class="aligncenter size-medium wp-image-4193" src="https://logicaprogrammabile.it/wp-content/uploads/2014/04/WP_20140423_15_16_14_Pro-198x300.png" alt="Unire i livelli del cubo led 3x3x3" width="198" height="300" srcset="https://logicaprogrammabile.it/wp-content/uploads/2014/04/WP_20140423_15_16_14_Pro-198x300.png 198w, https://logicaprogrammabile.it/wp-content/uploads/2014/04/WP_20140423_15_16_14_Pro.png 265w" sizes="auto, (max-width: 198px) 100vw, 198px" /></a></p>
<p>per posizionare i tre strati di led uno su l&#8217;altro, potete usare delle pinzette a coccodrillo o alcuni supporti per tenere ferma la struttura. Notate che ho utilizzato lo stesso cartone per tenere fermo il primo strato di led per poi andare a saldare il secondo ed il terzo, inoltre per semplificare le saldature i led sono rivolti verso il basso.</p>
<p><a href="https://logicaprogrammabile.it/wp-content/uploads/2014/04/WP_20140124_10_01_42_Pro.png"><img loading="lazy" decoding="async" class="aligncenter size-medium wp-image-4195" src="https://logicaprogrammabile.it/wp-content/uploads/2014/04/WP_20140124_10_01_42_Pro-300x262.png" alt="Assemblare led cube 3x3x3" width="300" height="262" srcset="https://logicaprogrammabile.it/wp-content/uploads/2014/04/WP_20140124_10_01_42_Pro-300x262.png 300w, https://logicaprogrammabile.it/wp-content/uploads/2014/04/WP_20140124_10_01_42_Pro.png 500w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a></p>
<p>A lavoro finito otterremo questo:</p>
<p>&nbsp;</p>
<p><a href="https://logicaprogrammabile.it/wp-content/uploads/2014/04/WP_20140124_10_04_51_Pro.png"><img loading="lazy" decoding="async" class="aligncenter size-medium wp-image-4197" src="https://logicaprogrammabile.it/wp-content/uploads/2014/04/WP_20140124_10_04_51_Pro-241x300.png" alt="Cubo led 3x3x3" width="241" height="300" srcset="https://logicaprogrammabile.it/wp-content/uploads/2014/04/WP_20140124_10_04_51_Pro-241x300.png 241w, https://logicaprogrammabile.it/wp-content/uploads/2014/04/WP_20140124_10_04_51_Pro.png 450w" sizes="auto, (max-width: 241px) 100vw, 241px" /></a></p>
<p>la struttura è formata da 9 colonne verticali che collegano gli anodi dei led e da tre righe orizzontali separate che collegano i catodi dei 9 led per strato.</p>
<h3>Il circuito elettrico</h3>
<p>La struttura dispone quindi di 9 anodi e 3 catodi, dovremmo collegare tutti questi file ai pin dell&#8217;<strong>Arduino Micro</strong>. I 9 anodi sono collegati ai pin di Arduino tramite una resistenza di limitazione da 150 ohm. I catodi invece verranno collegati a massa tramite l&#8217;utilizzo dei transistors.</p>
<p><a href="https://logicaprogrammabile.it/wp-content/uploads/2014/04/CuboLed3x3x3.png"><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-4202" src="https://logicaprogrammabile.it/wp-content/uploads/2014/04/CuboLed3x3x3.png" alt="Led cube 3x3x3" width="393" height="306" srcset="https://logicaprogrammabile.it/wp-content/uploads/2014/04/CuboLed3x3x3.png 393w, https://logicaprogrammabile.it/wp-content/uploads/2014/04/CuboLed3x3x3-300x233.png 300w" sizes="auto, (max-width: 393px) 100vw, 393px" /></a></p>
<p>&nbsp;</p>
<p>Nella figura seguente potete notare i dettagli del cubo led 3x3x3 ed i relativi collegamenti:</p>
<p><a href="https://logicaprogrammabile.it/wp-content/uploads/2014/04/RealizzaCuboLed.png"><img loading="lazy" decoding="async" class="aligncenter size-medium wp-image-4209" src="https://logicaprogrammabile.it/wp-content/uploads/2014/04/RealizzaCuboLed-300x237.png" alt="Dettagli realizzazione cubo led 3x3x3" width="300" height="237" srcset="https://logicaprogrammabile.it/wp-content/uploads/2014/04/RealizzaCuboLed-300x237.png 300w, https://logicaprogrammabile.it/wp-content/uploads/2014/04/RealizzaCuboLed.png 700w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a></p>
<h3>Principio di funzionamento</h3>
<p>La parte di realizzazione è sicuramente quella più impegnativa, mentre per la parte software non ci resta che scrivere alcune semplici istruzioni IO. Naturalmente è necessario conoscere il modo in cui si accendono i led, in modo da poter scrivere correttamente un programma.<br />
In pratica per poter accendere i led dobbiamo mettere a livello logico alto uno o piu pin collegati ai 9 anodi (da pin2 a pin9) e successivamente attivare uno o più transistor mettendo a livello logico alto una delle uscite 11, 12 o 13.<br />
Se ad esempio voglio accendere il led numero 1, dovrò mettere alta l&#8217;uscita al pin 2 ed attivare il transistor collegato al pin 11. Oppure mettendo alto il pin 11, 12 e 13 otterrò l&#8217;accensione contemporanea del led del primo, secondo e terzo strato.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>The post <a href="https://logicaprogrammabile.it/tutorial-costruire-cubo-led-3x3x3/">Tutorial come costruire un cubo led 3x3x3</a> appeared first on <a href="https://logicaprogrammabile.it">Esperimenti con logiche programmabili</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://logicaprogrammabile.it/tutorial-costruire-cubo-led-3x3x3/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Pilotare striscia LED RGB</title>
		<link>https://logicaprogrammabile.it/pilotare-striscia-led-rgb-arduino/</link>
					<comments>https://logicaprogrammabile.it/pilotare-striscia-led-rgb-arduino/#comments</comments>
		
		<dc:creator><![CDATA[Marco Lai]]></dc:creator>
		<pubDate>Fri, 01 Mar 2013 12:03:34 +0000</pubDate>
				<category><![CDATA[Tutorial Arduino]]></category>
		<category><![CDATA[Domotica]]></category>
		<category><![CDATA[Led]]></category>
		<category><![CDATA[PWM]]></category>
		<guid isPermaLink="false">https://logicaprogrammabile.it/?p=3390</guid>

					<description><![CDATA[<p>Come usare Arduino per pilotare strip led RGB La tecnologia di illuminazione a led si è ormai evoluta ed inizia ad essere presente in modo pronunciato in molti ambienti, dalla casa agli uffici fino ad arrivare all&#8217;illuminazione pubblica (vedi progetto di lampada di cortesia a...</p>
<p>The post <a href="https://logicaprogrammabile.it/pilotare-striscia-led-rgb-arduino/">Pilotare striscia LED RGB</a> appeared first on <a href="https://logicaprogrammabile.it">Esperimenti con logiche programmabili</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h1>Come usare Arduino per pilotare strip led RGB</h1>
<p>La tecnologia di illuminazione a led si è ormai evoluta ed inizia ad essere presente in modo pronunciato in molti ambienti, dalla casa agli uffici fino ad arrivare all&#8217;illuminazione pubblica (<a href="https://logicaprogrammabile.it/attiny85-costruire-lampada-led-batteria/">vedi progetto di lampada di cortesia a led</a>).</p>
<p>I vantaggi in termini di risparmio energetico sono enormi e la qualità della luce emessa sta raggiungendo un comfort visivo soddisfacente.</p>
<p>Anche nell&#8217;arredamento troviamo soluzioni molto interessanti che vanno dalla lampada da salotto multicolore alle luci di cortesia nei piani cottura oppure alle barre led impermeabili poste nel box doccia.</p>
<p>Vista la nostra passione per l&#8217;auto-costruzione possiamo realizzare un dispositivo basato su Arduino per pilotare una barra led RGB. Per questo tutorial ho usato una Arduino Leonardo e uno spezzone di <a href="http://www.amazon.it/gp/product/B012NOSAOS/ref=as_li_ss_tl?ie=UTF8&amp;camp=3370&amp;creative=24114&amp;creativeASIN=B012NOSAOS&amp;linkCode=as2&amp;tag=logicaprogram-21" target="_blank" rel="nofollow noopener">10 cm di una strip led RGB da un metro</a>. Questo modello viene alimentato a 12Vdc e un modulo assorbe, con tutti i led accesi circa 55mA (quindi un metro assorbe circa 550mA).</p>
<p>Un elemento <strong>RGB</strong> è composto da 3 LED distinti (LED <strong>Rosso</strong>, LED <strong>Verde</strong>, LED <strong>Blu</strong>) disposti in modo da poter interagire tra loro per formare diversi colori complementari.</p>
<p><a href="https://logicaprogrammabile.it/wp-content/uploads/2013/02/Strip_LED.png"><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-3398" src="https://logicaprogrammabile.it/wp-content/uploads/2013/02/Strip_LED.png" alt="Stril Led RGB da 10 cm" width="527" height="138" srcset="https://logicaprogrammabile.it/wp-content/uploads/2013/02/Strip_LED.png 527w, https://logicaprogrammabile.it/wp-content/uploads/2013/02/Strip_LED-300x78.png 300w" sizes="auto, (max-width: 527px) 100vw, 527px" /></a></p>
<p><span id="more-3390"></span></p>
<p>Il modo più semplice per accendere i led è di collegare uno dei pin (B,R,G) verso massa; non è necessario utilizzare delle resistenze per limitare la corrente perché sono già integrate nel circuito.</p>
<p>Vediamo ora come usare Arduino per accendere e spegnere singolarmente i vari led. Il circuito da realizzare è il seguente e si basa su tre transistor PNP tipo BC337.</p>
<figure id="attachment_3402" aria-describedby="caption-attachment-3402" style="width: 563px" class="wp-caption aligncenter"><a href="https://logicaprogrammabile.it/wp-content/uploads/2013/02/Arduino_Leonardo_Strip_LED_RGB.png"><img loading="lazy" decoding="async" class="wp-image-3402 size-full" src="https://logicaprogrammabile.it/wp-content/uploads/2013/02/Arduino_Leonardo_Strip_LED_RGB.png" alt="Controllo strip led rbg" width="563" height="539" srcset="https://logicaprogrammabile.it/wp-content/uploads/2013/02/Arduino_Leonardo_Strip_LED_RGB.png 563w, https://logicaprogrammabile.it/wp-content/uploads/2013/02/Arduino_Leonardo_Strip_LED_RGB-300x287.png 300w" sizes="auto, (max-width: 563px) 100vw, 563px" /></a><figcaption id="caption-attachment-3402" class="wp-caption-text">Circuito per pilotare strip led rgb</figcaption></figure>
<p>Le basi dei tre transistors sono collegate ai pin 3, 5 e 6 non a caso poiché su questi pin è disponibile anche il segnale PWM che utilizzeremo per andare a pilotare i <strong>led RGB</strong> in modo migliore.</p>
<pre class="EnlighterJSRAW" data-enlighter-language="avrasm">void setup()
{
 //led Rosso
 pinMode(5, OUTPUT);
 //led verde
 pinMode(6, OUTPUT);
 //led blu
 pinMode(3, OUTPUT);
 //init seriale
 Serial.begin(9600);
}

void loop() 
{
 //se arrivano dati...
 if (Serial.available())
 {
  //leggi il carattere in arrivo
  byte data = Serial.read();
  if(data == 'q') //accende il led blu
   digitalWrite(3, HIGH);
  else if (data == 'w') //spegne il led blu
   digitalWrite(3, LOW);
 
  if(data == 'a') //accende il led verde
   digitalWrite(5, HIGH);
  else if (data == 's') //spegne il led verde
   digitalWrite(5, LOW);
  if(data == 'z') //accende il led rosso
   digitalWrite(6, HIGH);
  else if (data == 'x') //spegne il led rosso
   digitalWrite(6, LOW);
 }
}</pre>
<p>Il codice precedente permette di accendere o spegnere i led inviando tramite serial monitor dei caratteri di comando. L&#8217;effetto che otteniamo è una miscelazione dei colori.</p>
<p>Un maggior controllo dei led RGB possiamo ottenerlo utilizzando il segnale PWM generato da Arduino. In questo modo abbiamo la possibilità di creare dissolvenze per creare combinazioni di colori visivamente più interessanti.<br />
Il codice seguente permette di accendere e spegnere il led BLU in modo graduale tramite una dissolvenza:</p>
<pre class="EnlighterJSRAW" data-enlighter-language="avrasm">void setup()
{
 //led Rosso
 pinMode(5, OUTPUT);
 //led verde
 pinMode(6, OUTPUT);
 //led blu
 pinMode(3, OUTPUT);
 //init seriale
 Serial.begin(9600);
}

void loop()
{
 //Aumenta il duty cycle da 100% a 0%
 for(byte sfuma = 0; sfuma &lt; 255; sfuma++)
 {
  analogWrite(3, sfuma);
  delay(40);
 }
 //diminuisci il duty cycle da 100% a 0%
 for(byte sfuma = 255; sfuma &gt; 0; sfuma--)
 {
  analogWrite(3, sfuma);
  delay(40);
 }
}</pre>
<p>Se volessi miscelare i colori potrei scrivere qualcosa del genere</p>
<pre class="EnlighterJSRAW" data-enlighter-language="avrasm">void setup()
{
 //led Rosso
 pinMode(5, OUTPUT);
 //led verde
 pinMode(6, OUTPUT);
 //led blu
 pinMode(3, OUTPUT);
 //init seriale
 Serial.begin(9600);
}

void loop()
{
 //accendo il led rosso
 digitalWrite(6, HIGH);
 //Aumenta il duty cycle da 100% a 0%
 for(byte sfuma = 0; sfuma &lt; 255; sfuma++)
 {
  analogWrite(3, sfuma);
  delay(40);
 }

 //spengo il rosso
 digitalWrite(6, LOW);
 //accendo il verde
 digitalWrite(5, HIGH);
 //diminuisci il duty cycle da 100% a 0%
 for(byte sfuma = 255; sfuma &gt; 0; sfuma--)
 {
  analogWrite(3, sfuma);
  delay(40);
 }
}</pre>
<p>Le combinazioni che possiamo creare sono innumerevoli, potete provare a sperimentare creando effetti luminosi che possono abbellire i vostri ambienti.</p>
<p>The post <a href="https://logicaprogrammabile.it/pilotare-striscia-led-rgb-arduino/">Pilotare striscia LED RGB</a> appeared first on <a href="https://logicaprogrammabile.it">Esperimenti con logiche programmabili</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://logicaprogrammabile.it/pilotare-striscia-led-rgb-arduino/feed/</wfw:commentRss>
			<slash:comments>43</slash:comments>
		
		
			</item>
		<item>
		<title>Utilizzare lo Spectrum Shield con Arduino</title>
		<link>https://logicaprogrammabile.it/utilizzare-spectrum-shield-arduino/</link>
					<comments>https://logicaprogrammabile.it/utilizzare-spectrum-shield-arduino/#comments</comments>
		
		<dc:creator><![CDATA[Marco Lai]]></dc:creator>
		<pubDate>Mon, 11 Feb 2013 11:17:10 +0000</pubDate>
				<category><![CDATA[Programmazione]]></category>
		<category><![CDATA[Tutorial Arduino]]></category>
		<category><![CDATA[Led]]></category>
		<guid isPermaLink="false">https://logicaprogrammabile.it/?p=3294</guid>

					<description><![CDATA[<p>Spectrum shield come accendere diversi led a ritmo di musica Un progetto che ha sempre attirato molta attenzione è il circuito VU meter sincronizzato con il ritmo della musica (il mitico luci psichedeliche ). Anche io quando ero alle superiori mi sono cimentato costruendone uno....</p>
<p>The post <a href="https://logicaprogrammabile.it/utilizzare-spectrum-shield-arduino/">Utilizzare lo Spectrum Shield con Arduino</a> appeared first on <a href="https://logicaprogrammabile.it">Esperimenti con logiche programmabili</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h3>Spectrum shield come accendere diversi led a ritmo di musica</h3>
<p>Un progetto che ha sempre attirato molta attenzione è il circuito VU meter sincronizzato con il ritmo della musica (il mitico <strong>luci psichedeliche</strong> ). Anche io quando ero alle superiori mi sono cimentato costruendone uno. Il circuito era <strong>formato da tre filtri analogici</strong>, uno <strong>passa basso</strong> uno <strong>passa banda</strong> e uno <strong>passa alto</strong>, che lavoravano rispettivamente alle frequenze 0-500Hz, 500Hz 4000Hz e 4000Hz-16000Hz. All&#8217;uscita dei filtri c&#8217;era un<strong> rilevatore di picco</strong> costruito con un operazionale che andava a pilotare dei driver che <strong>accendevano delle lampadine colorate</strong>.</p>
<p><a href="https://logicaprogrammabile.it/wp-content/uploads/2013/02/LuciPsichedelicheOLD.png"><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-3298" alt="Luci Psichedeliche" src="https://logicaprogrammabile.it/wp-content/uploads/2013/02/LuciPsichedelicheOLD.png" width="591" height="331" srcset="https://logicaprogrammabile.it/wp-content/uploads/2013/02/LuciPsichedelicheOLD.png 591w, https://logicaprogrammabile.it/wp-content/uploads/2013/02/LuciPsichedelicheOLD-300x168.png 300w" sizes="auto, (max-width: 591px) 100vw, 591px" /></a></p>
<p><span id="more-3294"></span></p>
<p>Oggi la tecnologia offre prodotti integrati a basso costo, specializzati in una vasta gamma di compiti che rendono più semplice la realizzazione dei nostri circuiti. Per quanto riguarda le nostre luci psichedeliche possiamo fa affidamento allo <a href="https://www.sparkfun.com/products/10306" target="_blank">Spectrum shield</a> per <strong>Arduino</strong>. Lo shield è molto semplice ed è composto principalmente da due integrati <a href="https://www.sparkfun.com/datasheets/Components/General/MSGEQ7.pdf" target="_blank">MSGEQ7 </a>(Equalizzatore grafico a 7 bande). Lo schema a blocchi dell&#8217;integrato è il seguente:</p>
<p><a href="https://logicaprogrammabile.it/wp-content/uploads/2013/02/MSGEQ7_Diagramma_Blocchi.png"><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-3302" alt="MSGEQ7 Diagramma a blocchi" src="https://logicaprogrammabile.it/wp-content/uploads/2013/02/MSGEQ7_Diagramma_Blocchi.png" width="647" height="437" srcset="https://logicaprogrammabile.it/wp-content/uploads/2013/02/MSGEQ7_Diagramma_Blocchi.png 647w, https://logicaprogrammabile.it/wp-content/uploads/2013/02/MSGEQ7_Diagramma_Blocchi-300x202.png 300w" sizes="auto, (max-width: 647px) 100vw, 647px" /></a></p>
<p>si osserva che in effetti il principio di funzionamento è molto simile a quello che si usava nei primi circuiti a luci psichedeliche, ma i filtri a disposizione sono ben 7 e le uscite dei filtri vengono multiplexate, in questo modo invece di avere 7 pin di output ne abbiamo solamente uno.<br />
Inviando un primo impulso positivo al pin strobe avremmo in uscita il valore analogico proveniente dal filtro a 63Hz, inviandone un altro impulso avremmo in uscita il valore analogico del filtro a 160Hz e così via fino a tornare dopo 8 impulsi al filtro a 63Hz.</p>
<p>I due integrati MSGEQ7 presenti nello <strong>spectrum shield</strong> analizzano il segnale audio proveniente dal canale destro e dal canale sinistro. Per brevità utilizzerò un solo integrato (canale) visto che il codice è interscambiabile.<br />
Le uscite analogiche dei due integrati sono collegate ai pin <strong>A0</strong> e <strong>A1</strong> mentre i pin <strong>Strobe</strong> e <strong>Reset</strong> sono collegati ai pin digitali <strong>D4</strong> e <strong>D5</strong>.</p>
<p>Questo è il codice:</p>
<p>[c]<br />
//Specifica i pin Reset, Strobe<br />
int spectrumReset=5;<br />
int spectrumStrobe=4;</p>
<p>//Specifico il canale di ingresso<br />
//pin A0 per canale destro<br />
//pin A1 per canale sinistro<br />
int spectrumAnalog = 1; //canale sinistro</p>
<p>//creo un vettore per contenere i valori analogici<br />
//delle 7 bande<br />
int Spectrum[7];</p>
<p>void setup()<br />
{<br />
  //pin reset e strobe in output<br />
  pinMode(spectrumReset, OUTPUT);<br />
  pinMode(spectrumStrobe, OUTPUT);</p>
<p>  //inizializzo lo spectrum shield<br />
  //Strobe<br />
  digitalWrite(spectrumStrobe,HIGH);<br />
  delay(1);<br />
  digitalWrite(spectrumStrobe,LOW);<br />
  delay(1)</p>
<p>  //Reset dei due chip<br />
  digitalWrite(spectrumReset,HIGH);<br />
  delay(1);<br />
  digitalWrite(spectrumReset,LOW);<br />
  delay(5);</p>
<p>  //definisco 7 uscite digitali per pilotare altrettanti led<br />
  pinMode(6, OUTPUT);<br />
  pinMode(7, OUTPUT);<br />
  pinMode(8, OUTPUT);<br />
  pinMode(9, OUTPUT);<br />
  pinMode(10, OUTPUT);<br />
  pinMode(11, OUTPUT);<br />
  pinMode(12, OUTPUT);</p>
<p>}</p>
<p>void loop()<br />
{<br />
  //esegui la lettura ogni 10mS<br />
  readSpectrum();<br />
  delay(10);<br />
}</p>
<p>void readSpectrum()<br />
{<br />
  //Questa funzione legge il valore analogico per ogni banda<br />
  //e ne rappresenta il valore tramite dei led</p>
<p>  byte Band;<br />
  //questo ciclo for viene eseguito 7 volte<br />
  for(Band = 0; Band &lt; 7; Band++)<br />
  {<br />
    //eseguo due letture per poi dividerle per due tramite<br />
    //spostamento di bit. Il valore ottenuto viene memorizzato<br />
    //nel vettore<br />
    Spectrum[Band] = (analogRead(spectrumAnalog) + analogRead(spectrumAnalog) ) &gt;&gt;1;</p>
<p>    //invio un impulso al pin strobe per passare al filtro successivo<br />
    digitalWrite(spectrumStrobe,HIGH);<br />
    digitalWrite(spectrumStrobe,LOW);<br />
  }</p>
<p>  //una volta effettuata la memorizzazione dei dati<br />
  //nel vettore, creo un altro ciclo for<br />
  //per rappresentare gli stessi tramite led<br />
  for (byte Ciclo = 0; Ciclo &lt; 7; Ciclo++)<br />
  {<br />
    //recupero il valore memorizzato nel vettore<br />
    //traslo il valore intero in un byte<br />
    byte x = map(Spectrum[Ciclo], 0, 1023, 1, 254);</p>
<p>    //se il valore supera una soglia accendi il led<br />
    //altrimenti spegnilo<br />
    if( x &gt; 120)<br />
      digitalWrite(Ciclo + 6 , HIGH);<br />
    else<br />
      digitalWrite(Ciclo + 6, LOW);<br />
  }<br />
}<br />
[/c]</p>
<p>Mentre questo è il circuito elettrico</p>
<p><a href="https://logicaprogrammabile.it/wp-content/uploads/2013/02/SpectrumShield.gif"><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-3337" alt="Luci psichedeliche con lo spectrum shield" src="https://logicaprogrammabile.it/wp-content/uploads/2013/02/SpectrumShield.gif" width="245" height="220" /></a></p>
<p>Per poter collegare delle lampade a 220Vac è necessario usare dei triac con relativo stadio pilota fotoisolato.</p>
<p>The post <a href="https://logicaprogrammabile.it/utilizzare-spectrum-shield-arduino/">Utilizzare lo Spectrum Shield con Arduino</a> appeared first on <a href="https://logicaprogrammabile.it">Esperimenti con logiche programmabili</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://logicaprogrammabile.it/utilizzare-spectrum-shield-arduino/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
		<item>
		<title>Netduino far lampeggiare un led</title>
		<link>https://logicaprogrammabile.it/netduino-lampeggiare-led/</link>
					<comments>https://logicaprogrammabile.it/netduino-lampeggiare-led/#respond</comments>
		
		<dc:creator><![CDATA[Marco Lai]]></dc:creator>
		<pubDate>Wed, 02 Mar 2011 12:43:49 +0000</pubDate>
				<category><![CDATA[Tutorial Netduino]]></category>
		<category><![CDATA[Led]]></category>
		<category><![CDATA[Onboard_led]]></category>
		<category><![CDATA[OutputPort]]></category>
		<guid isPermaLink="false">https://logicaprogrammabile.it/?p=132</guid>

					<description><![CDATA[<p>Netduino usare il led onboard Il primo programma che possiamo creare, per iniziare a sperimentare con Netduino, è il classico esempio che permette di far lampeggiare il led di sistema, posto sulla scheda del dispositivo. Questo programma è ormai un classico che si può trovare...</p>
<p>The post <a href="https://logicaprogrammabile.it/netduino-lampeggiare-led/">Netduino far lampeggiare un led</a> appeared first on <a href="https://logicaprogrammabile.it">Esperimenti con logiche programmabili</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h1>Netduino usare il led onboard</h1>
<p>Il primo programma che possiamo creare, per iniziare a sperimentare con <strong>Netduino</strong>, è il classico esempio che permette di far lampeggiare il <strong>led</strong> di sistema, posto sulla scheda del dispositivo.<br />
Questo programma è ormai un classico che si può trovare un po da per tutto in internet, ma nonostante ciò, anche io volevo proporvelo.</p>
<p>Dopo aver avviato <strong>Visual C#</strong> e creato un nuovo progetto, apriamo il file Program.cs e all&#8217;interno del blocco Main() inseriamo le seguenti righe di codice.</p>
<pre class="lang:c# decode:true ">OutputPort ledOnBoard = new OutputPort(Pins.ONBOARD_LED, false);

while(true) //Ciclo infinito
{
//accende il led
ledOnBoard.Write(true);
//attende 500 millisecondi
Thread.Sleep(500);
//Spegne il led
ledOnBoard.Write(false);
//attende 500 millisecondi
Thread.Sleep(500);
}</pre>
<p>&nbsp;</p>
<p>queste istruzioni accendono e spengono il led ad una frequenza di mezzo secondo.<br />
l&#8217;istruzione :</p>
<pre class="lang:c# decode:true ">OutputPort ledOnBoard = new OutputPort(Pins.ONBOARD_LED, false);</pre>
<p>&nbsp;</p>
<p>crea un oggetto che viene usato per controllare il led onboard; il costruttore della classe OutputPort richiede l&#8217;identificativo del pin e il relativo stato iniziale. <strong>Pins.ONBOARD_LED</strong> appunto, è il led fisico posto sul dispositivo e <strong>false</strong> indica lo stato iniziale, ovvero spento.</p>
<p>Il cico <strong>while</strong> è infinito ed esegue ciclicamente queste istruzioni:</p>
<pre class="lang:c# decode:true ">//accende il led
 ledOnBoard.Write(true);
//attende 500 millisecondi
Thread.Sleep(500);
//Spegne il led
ledOnBoard.Write(false);
//attende 500 millisecondi
 Thread.Sleep(500);</pre>
<p>&nbsp;</p>
<p>la funzione <strong>write()</strong> dell&#8217;oggetto non fa altro che accendere o spegnere il led a seconda del valore booleano passato come parametro.<br />
Thread.Sleep() serve per creare un ritardo tra le istruzioni Write() per creare l&#8217;effetto intermittente, il valore passato è espresso in millisecondi.</p>
<p>Non ci resta che avviare il debug per eseguire la compilazione e il caricamento dell&#8217;eseguibile nel Netduino.<br />
Il dispositivo deve essere collegato al pc tramite porta usb e Visual c# deve essere configurato per interaggire con il Netduino piuttosto che con l&#8217;emulatore.</p>
<p>The post <a href="https://logicaprogrammabile.it/netduino-lampeggiare-led/">Netduino far lampeggiare un led</a> appeared first on <a href="https://logicaprogrammabile.it">Esperimenti con logiche programmabili</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://logicaprogrammabile.it/netduino-lampeggiare-led/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Netduino, .Net micro Framework e Visual C#</title>
		<link>https://logicaprogrammabile.it/net-micro-framework-netduino-c-sharp/</link>
					<comments>https://logicaprogrammabile.it/net-micro-framework-netduino-c-sharp/#respond</comments>
		
		<dc:creator><![CDATA[Marco Lai]]></dc:creator>
		<pubDate>Tue, 01 Mar 2011 12:59:48 +0000</pubDate>
				<category><![CDATA[Tutorial Netduino]]></category>
		<category><![CDATA[.Net micro framework]]></category>
		<category><![CDATA[Configurazione]]></category>
		<category><![CDATA[Led]]></category>
		<category><![CDATA[Visual C#]]></category>
		<guid isPermaLink="false">https://logicaprogrammabile.it/?p=68</guid>

					<description><![CDATA[<p>Il .Net micro framework è il cuore del Netduino vediamo come configurare l&#8217;ambiente Ora che abbiamo il nostro mini laboratorio per creare i prototipi e il software sul pc è installato correttamente possiamo avviare il primo progetto per verificare se tutto funziona e se il...</p>
<p>The post <a href="https://logicaprogrammabile.it/net-micro-framework-netduino-c-sharp/">Netduino, .Net micro Framework e Visual C#</a> appeared first on <a href="https://logicaprogrammabile.it">Esperimenti con logiche programmabili</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h1>Il .Net micro framework è il cuore del Netduino vediamo come configurare l&#8217;ambiente</h1>
<p>Ora che abbiamo il nostro mini laboratorio per creare i prototipi e il software sul pc è installato correttamente possiamo avviare il primo progetto per verificare se tutto funziona e se il .net micro framework è correttamente attivo e funzionante sul Netduino.</p>
<p>Per prima cosa colleghiamo il <strong>Netduino </strong>al pc e verifichiamo che il led pwr sulla scheda sia acceso.<br />
Ora avviamo <strong>Visual C# 2010 Express</strong> e creiamo un nuovo progetto:</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-69 size-medium" title="NuovoProgetto" src="https://logicaprogrammabile.it/wp-content/uploads/2011/03/NuovoProgetto-300x201.jpg" alt="net micro framework" width="300" height="201" srcset="https://logicaprogrammabile.it/wp-content/uploads/2011/03/NuovoProgetto-300x201.jpg 300w, https://logicaprogrammabile.it/wp-content/uploads/2011/03/NuovoProgetto.jpg 344w" sizes="auto, (max-width: 300px) 100vw, 300px" /></p>
<p>la finestra Nuovo Progetto mostra tutti i tipi di soluzioni che possiamo generare con la nostra copia di Visual C# 2010 Express. Cliccando sulla voce Visual C# potremmo vedere la sottovoce <strong>Micro Framework</strong>, clicchiamo su di essa per visualizzare i vari tipi di progetto che possiamo creare. Se l&#8217;installazione dell&#8217; sdk di Netduino è stata eseguita correttamente, in questo box ci sarà una voce dal nome Netduino Application</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-70 size-full" title="NetduinoApp" src="https://logicaprogrammabile.it/wp-content/uploads/2011/03/NetduinoApp.jpg" width="270" height="181" /></p>
<p>Selezioniamo la voce come mostrato in figura, diamo un nome alla nostra soluzione compilando la casella di testo Nome e clicchiamo sul pulsante OK per dar modo a Visual C# di impostare l&#8217;ambiente per lo sviluppo con Netduino e con il .Net micro framework.</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-71 size-medium" title="Soluzione" src="https://logicaprogrammabile.it/wp-content/uploads/2011/03/Soluzione-300x231.jpg" alt="visual studio net micro framework" width="300" height="231" srcset="https://logicaprogrammabile.it/wp-content/uploads/2011/03/Soluzione-300x231.jpg 300w, https://logicaprogrammabile.it/wp-content/uploads/2011/03/Soluzione.jpg 320w" sizes="auto, (max-width: 300px) 100vw, 300px" /><span id="more-68"></span></p>
<p>Di tutte le voci elencate nella finestra Esplora Soluzione quella che ci interessa maggiormente è Program.cs che conterrà il codice della nostra applicazione. Avviamo l&#8217;editor cliccando due volte su questo file.</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-72 size-medium" title="Programcs" src="https://logicaprogrammabile.it/wp-content/uploads/2011/03/Programcs-292x300.jpg" width="292" height="300" srcset="https://logicaprogrammabile.it/wp-content/uploads/2011/03/Programcs-292x300.jpg 292w, https://logicaprogrammabile.it/wp-content/uploads/2011/03/Programcs.jpg 363w" sizes="auto, (max-width: 292px) 100vw, 292px" /></p>
<p>Il nostro codice può essere inserito nel blocco Main(), ma per il momento lasciamo tutto così com&#8217;è e proviamo subito a caricare il sorgente nel nostro Netduino.</p>
<p>Per prima cosa dobbiamo configurare Visual C# per comunicare con la scheda. Dalla finestra Esplora Soluzione clicchiamo due volte sulla voce Propierties per aprire la finestra delle proprietà della soluzione.</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-75 size-medium" title="Proprieta" src="https://logicaprogrammabile.it/wp-content/uploads/2011/03/Proprieta-300x189.jpg" width="300" height="189" srcset="https://logicaprogrammabile.it/wp-content/uploads/2011/03/Proprieta-300x189.jpg 300w, https://logicaprogrammabile.it/wp-content/uploads/2011/03/Proprieta.jpg 442w" sizes="auto, (max-width: 300px) 100vw, 300px" /></p>
<p>Selezioniamo la voce .Net Micro Framework; come si può vedere dalla figura nel box Deployment per default è selezionato l&#8217;emulatore. Per caricare il programma sul Netduino dobbiamo scegliere nella combobox Transport la voce USB. In questo modo Visual C# controllerà i dispositivi collegati alla porta usb e gli elencherà nella combobox Device. Selezioniamo la voce Netduino_Netduino disponibile nella lista dei device per poter comunicare con il Netduino.<br />
Ora chiudiamo la finestra delle proprietà.</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-78 size-medium" title="Proprieta1" src="https://logicaprogrammabile.it/wp-content/uploads/2011/03/Proprieta1-300x182.jpg" width="300" height="182" srcset="https://logicaprogrammabile.it/wp-content/uploads/2011/03/Proprieta1-300x182.jpg 300w, https://logicaprogrammabile.it/wp-content/uploads/2011/03/Proprieta1.jpg 455w" sizes="auto, (max-width: 300px) 100vw, 300px" /></p>
<p>Tutto è pronto per programmare il  Netduino basta cliccare sull&#8217;icona Avvia Debug(F5) e Visual C# compilerà il sorgente e caricherà l&#8217;eseguibile sul dispositivo</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-77 size-full" title="AvviaDebug" src="https://logicaprogrammabile.it/wp-content/uploads/2011/03/AvviaDebug.jpg" width="144" height="68" /></p>
<p>Nella finestra Output di Visual Studio (Menu Visualizza -&gt; Output) potremmo vedere tutti i passaggi della compilazione e del caricamento del sorgente sul Netduino.</p>
<p>Il .net micro framework contenuto nel Netduino inizierà a gestire ed eseguire il programma.</p>
<p>The post <a href="https://logicaprogrammabile.it/net-micro-framework-netduino-c-sharp/">Netduino, .Net micro Framework e Visual C#</a> appeared first on <a href="https://logicaprogrammabile.it">Esperimenti con logiche programmabili</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://logicaprogrammabile.it/net-micro-framework-netduino-c-sharp/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
