<?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>Bruno Soares &#187; C++</title>
	<atom:link href="http://blog.bsoares.com.br/category/c/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.bsoares.com.br</link>
	<description></description>
	<lastBuildDate>Sat, 23 Apr 2011 00:32:26 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Jogando Super Nintendo no Android com controle original</title>
		<link>http://blog.bsoares.com.br/arduino/snes-android-amarino-original-controller-bluesmirf</link>
		<comments>http://blog.bsoares.com.br/arduino/snes-android-amarino-original-controller-bluesmirf#comments</comments>
		<pubDate>Fri, 22 Apr 2011 01:15:52 +0000</pubDate>
		<dc:creator>Bruno Soares</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[Arduino]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[Electronics]]></category>
		<category><![CDATA[Game]]></category>
		<category><![CDATA[Amarino]]></category>
		<category><![CDATA[BlueSMiRF]]></category>
		<category><![CDATA[Bluetooth]]></category>
		<category><![CDATA[DIY]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Open Hardware]]></category>
		<category><![CDATA[SNES]]></category>

		<guid isPermaLink="false">http://blog.bsoares.com.br/?p=620</guid>
		<description><![CDATA[Logo que comprei meu HTC Desire HD (sistema operacional Android) instalei um emulador de Super Nintendo (SNES), este foi um dos poucos videogames que tive, e era viciado (quando tinha 10 / 11 anos) em Super Mario World, assim que instalei o Mario me veio aquela nostalgia! Mas jogar com o controle touch screen é [...]]]></description>
			<content:encoded><![CDATA[<iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fblog.bsoares.com.br%2Farduino%2Fsnes-android-amarino-original-controller-bluesmirf&amp;layout=standard&amp;show_faces=true&amp;width=450&amp;action=like&amp;colorscheme=light&amp;height=80" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:450px; height:80px;" allowTransparency="true"></iframe><p><a href="http://blog.bsoares.com.br/wp-content/uploads/2011/04/android-snes-controller-arduino-bluetooth-amarino-1.jpg" rel="shadowbox[post-620];player=img;"><img src="http://blog.bsoares.com.br/wp-content/uploads/2011/04/android-snes-controller-arduino-bluetooth-amarino-1-300x300.jpg" alt="Jogando SNES com controle original via bluetooth" title="android-snes-controller-arduino-bluetooth-amarino-1" width="300" height="300" class="alignleft size-thumbnail wp-image-666" /></a> Logo que comprei meu <a href="http://www.htc.com/www/product/desirehd/overview.html">HTC Desire HD</a> (sistema operacional <a href="http://www.android.com/">Android</a>) instalei um <a href="https://market.android.com/details?id=com.tiger.snes">emulador de Super Nintendo (SNES)</a>, este foi um dos poucos videogames que tive, e era viciado (quando tinha 10 / 11 anos) em <a href="http://pt.wikipedia.org/wiki/Super_Mario_World">Super Mario World</a>, assim que instalei o Mario me veio aquela nostalgia! Mas jogar com o controle touch screen é péssimo, não tem experiência tátil e o seu dedo fica encima do jogo.<br />
Então pensei, é claro que alguém já ligou o controle original no celular, e estava certo,  encontrei este vídeo: &#8220;<a href="http://www.youtube.com/watch?v=_FZTz2KO9vU">http://www.youtube.com/watch?v=_FZTz2KO9vU</a>&#8220;. Mas tem um detalhe muito importante este projeto, é para <a href="http://pt.wikipedia.org/wiki/Nintendo_Entertainment_System">NES</a> e não o <a href="http://pt.wikipedia.org/wiki/Super_Nintendo_Entertainment_System">SNES</a> (mais novo), ou seja, sabia que era possível fazer e tinha os materiais para isto, então só esperei sobrar um tempo para fazer (o único componente que não tinha era o controle, mas consegui um paralelo por R$ 8,00 no <a href="http://lista.mercadolivre.com.br/SNES%20Controle">Mercado Livre</a>).</p>
<p><iframe src="http://player.vimeo.com/video/22722692?portrait=0&amp;color=4c4787" width="580" height="435" frameborder="0"></iframe><br />
<a href="http://vimeo.com/bsoares/snes-on-android-with-controller-and-bluesmirf">vimeo.com/bsoares/snes-on-android-with-controller-and-bluesmirf</a></p>
<p><strong>Como funciona:</strong><br />
O controle do SNES esta ligado a Arduino, é bem fácil obter as teclas pressionadas, mas existe uma biblioteca para tornar esta tarefa ainda mais simples (<a href="http://code.google.com/p/nespad/">NESpad/SNESpad</a>). Cada tecla pressionada liga um bit dentro do número que representa o estado das teclas do controle, e este estado (número) é enviado via Bluetooth (uso o <a href="http://www.sparkfun.com/products/10269">BlueSMiRF</a>) para o Android.<br />
No Android, quem recebe este número é o <a href="http://www.amarino-toolkit.net/">Amarino</a>, mas ele apenas recebe o número, ainda é necessário um App (que foi modificado a partir deste exemplo &#8220;<a href="http://developer.android.com/resources/samples/SoftKeyboard/index.html">SoftKeyboard</a>&#8220;) para converter este número em teclas pressionadas (uso <a href="http://blog.bsoares.com.br/aspnet/operacoes-binarias">Bitwise</a>) como um teclado do Android.<br />
Por fim é só <strong>configurar o emulador</strong> para entender as teclas pressionadas como os comandos dentro do mesmo (pular, andar, girar, etc&#8230;)</p>
<p><strong>Desta forma o controle pode ser usado como o teclado do seu Android, e ainda ser configurado como o controle de outros emuladores.</strong></p>
<p><strong>Sobre o módulo bluetooth BlueSMiRF:</strong><br />
Depois de configurado ele será o seu &#8220;cabo USB virtual&#8221; pois da mesma forma que usamos o comando Serial.print(&#8220;&#8230;&#8221;) para enviar dados via porta serial, o mesmo dado será enviado via bluetooth.<br />
A App Amarino utiliza 57.600 de baudrate, e os módulos BlueSMiRF normalmente vem com 9.600.<br />
Para configurar o blueSMiRF utilizei alguns tutoriais:<br />
- <a href="http://todbot.com/blog/2006/02/23/howto-mac-os-x-bluetooth-serial-port/">http://todbot.com/blog/2006/02/23/howto-mac-os-x-bluetooth-serial-port/</a><br />
- <a href="http://www.sparkfun.com/tutorials/67">http://www.sparkfun.com/tutorials/67</a></p>
<p><strong>Sobre o Soft Keyboard (App para Android):</strong><br />
Modifiquei o <a href="http://developer.android.com/resources/samples/SoftKeyboard/index.html">exemplo de Keyboard App</a> disponível no <a href="http://developer.android.com/index.html"><strong>Android Developers</strong></a> para obter os dados via Amarino e agir como teclado. Me baseei <a href="https://github.com/sk3tch/android-arduino-nes-controller">neste projeto criado para NES</a>, porém criei outro código para a Arduino e alterei 95% do código para o Android.</p>
<p>O código fonte do projeto para Androi, Arduino e as versões das bibliotecas que foram utilizadas, podem ser baixadas do meu Github:<br />
<a href="https://github.com/BSoares/SNES-on-Android-with-original-controller">https://github.com/BSoares/SNES-on-Android-with-original-controller</a></p>

<div class="ngg-galleryoverview" id="ngg-gallery-7-620">


	
	<!-- Thumbnails -->
		
	<div id="ngg-image-37" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://blog.bsoares.com.br/wp-content/gallery/snes-on-android-with-controller-original-via-amarino-and-bluesmirf/android-snes-controller-arduino-bluetooth-amarino-0.JPG" rel="shadowbox[post-620];player=img;" title=" "  >
								<img title="android-snes-controller-arduino-bluetooth-amarino-0" alt="android-snes-controller-arduino-bluetooth-amarino-0" src="http://blog.bsoares.com.br/wp-content/gallery/snes-on-android-with-controller-original-via-amarino-and-bluesmirf/thumbs/thumbs_android-snes-controller-arduino-bluetooth-amarino-0.JPG" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-38" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://blog.bsoares.com.br/wp-content/gallery/snes-on-android-with-controller-original-via-amarino-and-bluesmirf/android-snes-controller-arduino-bluetooth-amarino-1.JPG" rel="shadowbox[post-620];player=img;" title=" "  >
								<img title="android-snes-controller-arduino-bluetooth-amarino-1" alt="android-snes-controller-arduino-bluetooth-amarino-1" src="http://blog.bsoares.com.br/wp-content/gallery/snes-on-android-with-controller-original-via-amarino-and-bluesmirf/thumbs/thumbs_android-snes-controller-arduino-bluetooth-amarino-1.JPG" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-39" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://blog.bsoares.com.br/wp-content/gallery/snes-on-android-with-controller-original-via-amarino-and-bluesmirf/android-snes-controller-arduino-bluetooth-amarino-2.JPG" rel="shadowbox[post-620];player=img;" title=" "  >
								<img title="android-snes-controller-arduino-bluetooth-amarino-2" alt="android-snes-controller-arduino-bluetooth-amarino-2" src="http://blog.bsoares.com.br/wp-content/gallery/snes-on-android-with-controller-original-via-amarino-and-bluesmirf/thumbs/thumbs_android-snes-controller-arduino-bluetooth-amarino-2.JPG" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-40" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://blog.bsoares.com.br/wp-content/gallery/snes-on-android-with-controller-original-via-amarino-and-bluesmirf/android-snes-controller-arduino-bluetooth-amarino-3.JPG" rel="shadowbox[post-620];player=img;" title=" "  >
								<img title="android-snes-controller-arduino-bluetooth-amarino-3" alt="android-snes-controller-arduino-bluetooth-amarino-3" src="http://blog.bsoares.com.br/wp-content/gallery/snes-on-android-with-controller-original-via-amarino-and-bluesmirf/thumbs/thumbs_android-snes-controller-arduino-bluetooth-amarino-3.JPG" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-41" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://blog.bsoares.com.br/wp-content/gallery/snes-on-android-with-controller-original-via-amarino-and-bluesmirf/android-snes-controller-arduino-bluetooth-amarino-4.JPG" rel="shadowbox[post-620];player=img;" title=" "  >
								<img title="android-snes-controller-arduino-bluetooth-amarino-4" alt="android-snes-controller-arduino-bluetooth-amarino-4" src="http://blog.bsoares.com.br/wp-content/gallery/snes-on-android-with-controller-original-via-amarino-and-bluesmirf/thumbs/thumbs_android-snes-controller-arduino-bluetooth-amarino-4.JPG" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-42" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://blog.bsoares.com.br/wp-content/gallery/snes-on-android-with-controller-original-via-amarino-and-bluesmirf/android-snes-controller-arduino-bluetooth-amarino-5.JPG" rel="shadowbox[post-620];player=img;" title=" "  >
								<img title="android-snes-controller-arduino-bluetooth-amarino-5" alt="android-snes-controller-arduino-bluetooth-amarino-5" src="http://blog.bsoares.com.br/wp-content/gallery/snes-on-android-with-controller-original-via-amarino-and-bluesmirf/thumbs/thumbs_android-snes-controller-arduino-bluetooth-amarino-5.JPG" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-43" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://blog.bsoares.com.br/wp-content/gallery/snes-on-android-with-controller-original-via-amarino-and-bluesmirf/android-snes-controller-arduino-bluetooth-amarino-6.JPG" rel="shadowbox[post-620];player=img;" title=" "  >
								<img title="android-snes-controller-arduino-bluetooth-amarino-6" alt="android-snes-controller-arduino-bluetooth-amarino-6" src="http://blog.bsoares.com.br/wp-content/gallery/snes-on-android-with-controller-original-via-amarino-and-bluesmirf/thumbs/thumbs_android-snes-controller-arduino-bluetooth-amarino-6.JPG" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-44" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://blog.bsoares.com.br/wp-content/gallery/snes-on-android-with-controller-original-via-amarino-and-bluesmirf/android-snes-controller-arduino-bluetooth-amarino-7.JPG" rel="shadowbox[post-620];player=img;" title=" "  >
								<img title="android-snes-controller-arduino-bluetooth-amarino-7" alt="android-snes-controller-arduino-bluetooth-amarino-7" src="http://blog.bsoares.com.br/wp-content/gallery/snes-on-android-with-controller-original-via-amarino-and-bluesmirf/thumbs/thumbs_android-snes-controller-arduino-bluetooth-amarino-7.JPG" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-45" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://blog.bsoares.com.br/wp-content/gallery/snes-on-android-with-controller-original-via-amarino-and-bluesmirf/android-snes-controller-arduino-bluetooth-amarino-8.JPG" rel="shadowbox[post-620];player=img;" title=" "  >
								<img title="android-snes-controller-arduino-bluetooth-amarino-8" alt="android-snes-controller-arduino-bluetooth-amarino-8" src="http://blog.bsoares.com.br/wp-content/gallery/snes-on-android-with-controller-original-via-amarino-and-bluesmirf/thumbs/thumbs_android-snes-controller-arduino-bluetooth-amarino-8.JPG" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-46" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://blog.bsoares.com.br/wp-content/gallery/snes-on-android-with-controller-original-via-amarino-and-bluesmirf/android-snes-controller-arduino-bluetooth-amarino-9.JPG" rel="shadowbox[post-620];player=img;" title=" "  >
								<img title="android-snes-controller-arduino-bluetooth-amarino-9" alt="android-snes-controller-arduino-bluetooth-amarino-9" src="http://blog.bsoares.com.br/wp-content/gallery/snes-on-android-with-controller-original-via-amarino-and-bluesmirf/thumbs/thumbs_android-snes-controller-arduino-bluetooth-amarino-9.JPG" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 	 	
	<!-- Pagination -->
 	<div class='ngg-clear'></div>
 	
</div>


<p><strong>Conteúdo Relacionado:</strong><br />
<a href="https://github.com/BSoares/SNES-on-Android-with-original-controller">Código fonte</a><br />
<a href="http://arduino.cc/en/Main/ArduinoBoardUno">Arduino UNO</a><br />
<a href="http://www.sparkfun.com/products/10269">BlueSMiRF</a><br />
<a href="http://www.amarino-toolkit.net/">Amarino</a><br />
<a href="http://developer.android.com/resources/samples/SoftKeyboard/index.html">Android Sample Soft Keyboard</a><br />
<a href="http://code.google.com/p/nespad/">NESpad/SNESpad</a><br />
<a href="http://www.youtube.com/watch?v=jPJUF8yPoFc">Vídeo no Youtube</a></p>
<p>Enjoy :-)<br />
<!--XV6FK3CX2M3E--></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bsoares.com.br/arduino/snes-android-amarino-original-controller-bluesmirf/feed</wfw:commentRss>
		<slash:comments>46</slash:comments>
		</item>
		<item>
		<title>PianoDuino (Arduino + Processing + SoundCipher)</title>
		<link>http://blog.bsoares.com.br/processing/pianoduino-arduino-processing-soundcipher</link>
		<comments>http://blog.bsoares.com.br/processing/pianoduino-arduino-processing-soundcipher#comments</comments>
		<pubDate>Sat, 30 May 2009 18:17:48 +0000</pubDate>
		<dc:creator>Bruno Soares</dc:creator>
				<category><![CDATA[Arduino]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[Electronics]]></category>
		<category><![CDATA[Processing]]></category>
		<category><![CDATA[4051]]></category>
		<category><![CDATA[Demultiplexer]]></category>
		<category><![CDATA[Multiplexer]]></category>
		<category><![CDATA[Open Hardware]]></category>
		<category><![CDATA[Sound]]></category>
		<category><![CDATA[SoundCipher]]></category>
		<category><![CDATA[Techology]]></category>

		<guid isPermaLink="false">http://blog.bsoares.com.br/?p=406</guid>
		<description><![CDATA[PianoDuino é um experimento simples que integra Arduino, Processing e uma biblioteca para manipular sons, a SoundCipher. A ideia serviu para experimentar o Multiplexador / Demultiplexador 4051. PianoDuino (Arduino + Processing + SoundCipher) from Bruno Soares on Vimeo. Arduino: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152/** &#160;* PianoDuino &#160;* &#160;* @author &#160; Bruno Soares &#160;* @link &#160; &#160; http://www.bsoares.com.br &#160;* @language [...]]]></description>
			<content:encoded><![CDATA[<iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fblog.bsoares.com.br%2Fprocessing%2Fpianoduino-arduino-processing-soundcipher&amp;layout=standard&amp;show_faces=true&amp;width=450&amp;action=like&amp;colorscheme=light&amp;height=80" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:450px; height:80px;" allowTransparency="true"></iframe><p>PianoDuino é um experimento simples que integra <a href="http://arduino.cc" target="_blank">Arduino</a>, <a href="http://processing.org" target="_blank">Processing</a> e uma biblioteca para manipular sons, a <a href="http://soundcipher.org/" target="_blank">SoundCipher</a>. A ideia serviu para experimentar o <a href="http://www.arduino.cc/playground/Learning/4051" target="_blank">Multiplexador / Demultiplexador 4051</a>.</p>
<p><center><object width="400" height="307"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=4916367&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=c9ff23&amp;fullscreen=1" /><embed src="http://vimeo.com/moogaloop.swf?clip_id=4916367&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=c9ff23&amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="400" height="307"></embed></object>
<p><a href="http://vimeo.com/4916367">PianoDuino (Arduino + Processing + SoundCipher)</a> from <a href="http://vimeo.com/bsoares">Bruno Soares</a> on <a href="http://vimeo.com">Vimeo</a>.</p>
<p></center></p>
<p><strong>Arduino:</strong></p>
<div class="codecolorer-container cpp mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;height:500px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br />31<br />32<br />33<br />34<br />35<br />36<br />37<br />38<br />39<br />40<br />41<br />42<br />43<br />44<br />45<br />46<br />47<br />48<br />49<br />50<br />51<br />52<br /></div></td><td><div class="cpp codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #ff0000; font-style: italic;">/**<br />
&nbsp;* PianoDuino<br />
&nbsp;*<br />
&nbsp;* @author &nbsp; Bruno Soares<br />
&nbsp;* @link &nbsp; &nbsp; http://www.bsoares.com.br<br />
&nbsp;* @language Arduino / C++<br />
&nbsp;*/</span><br />
<br />
<span style="color: #339900;">#define PIN_SELECTOR0 2</span><br />
<span style="color: #339900;">#define PIN_SELECTOR1 3</span><br />
<span style="color: #339900;">#define PIN_SELECTOR2 4</span><br />
<br />
<span style="color: #0000ff;">int</span> value<span style="color: #008080;">;</span><br />
<span style="color: #0000ff;">int</span> count<span style="color: #008080;">;</span><br />
<br />
<span style="color: #666666;">// Selectors</span><br />
byte s0<span style="color: #008080;">;</span><br />
byte s1<span style="color: #008080;">;</span><br />
byte s2<span style="color: #008080;">;</span><br />
<br />
<span style="color: #0000ff;">void</span> setup<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><br />
<span style="color: #008000;">&#123;</span><br />
&nbsp; Serial.<span style="color: #007788;">begin</span><span style="color: #008000;">&#40;</span><span style="color: #0000dd;">9600</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; <br />
&nbsp; pinMode<span style="color: #008000;">&#40;</span>PIN_SELECTOR0, OUTPUT<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; pinMode<span style="color: #008000;">&#40;</span>PIN_SELECTOR1, OUTPUT<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; pinMode<span style="color: #008000;">&#40;</span>PIN_SELECTOR2, OUTPUT<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
<span style="color: #008000;">&#125;</span><br />
<br />
<span style="color: #0000ff;">void</span> loop<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><br />
<span style="color: #008000;">&#123;</span><br />
&nbsp; <span style="color: #0000ff;">for</span> <span style="color: #008000;">&#40;</span>count <span style="color: #000080;">=</span> <span style="color: #0000dd;">0</span><span style="color: #008080;">;</span> count <span style="color: #000080;">&lt;</span> <span style="color: #0000dd;">8</span><span style="color: #008080;">;</span> count<span style="color: #000040;">++</span><span style="color: #008000;">&#41;</span><br />
&nbsp; <span style="color: #008000;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #666666;">// Extract active bits</span><br />
&nbsp; &nbsp; s0 <span style="color: #000080;">=</span> &nbsp;count &nbsp; &nbsp; &nbsp; <span style="color: #000040;">&amp;</span> <span style="color: #208080;">0x1</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp; s1 <span style="color: #000080;">=</span> <span style="color: #008000;">&#40;</span>count <span style="color: #000080;">&gt;&gt;</span> <span style="color: #0000dd;">1</span><span style="color: #008000;">&#41;</span> <span style="color: #000040;">&amp;</span> <span style="color: #208080;">0x1</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp; s2 <span style="color: #000080;">=</span> <span style="color: #008000;">&#40;</span>count <span style="color: #000080;">&gt;&gt;</span> <span style="color: #0000dd;">2</span><span style="color: #008000;">&#41;</span> <span style="color: #000040;">&amp;</span> <span style="color: #208080;">0x1</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span style="color: #666666;">// Select input</span><br />
&nbsp; &nbsp; digitalWrite<span style="color: #008000;">&#40;</span><span style="color: #0000dd;">2</span>, s0<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp; digitalWrite<span style="color: #008000;">&#40;</span><span style="color: #0000dd;">3</span>, s1<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp; digitalWrite<span style="color: #008000;">&#40;</span><span style="color: #0000dd;">4</span>, s2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span style="color: #666666;">// Read input selected</span><br />
&nbsp; &nbsp; value <span style="color: #000080;">=</span> analogRead<span style="color: #008000;">&#40;</span><span style="color: #0000dd;">0</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp; <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>value <span style="color: #000080;">&gt;</span> <span style="color: #0000dd;">5</span><span style="color: #008000;">&#41;</span><br />
&nbsp; &nbsp; <span style="color: #008000;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; Serial.<span style="color: #007788;">print</span><span style="color: #008000;">&#40;</span>count<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">while</span><span style="color: #008000;">&#40;</span>analogRead<span style="color: #008000;">&#40;</span><span style="color: #0000dd;">0</span><span style="color: #008000;">&#41;</span> <span style="color: #000080;">&gt;</span> <span style="color: #0000dd;">5</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp; <span style="color: #008000;">&#125;</span><br />
&nbsp; <span style="color: #008000;">&#125;</span><br />
<span style="color: #008000;">&#125;</span></div></td></tr></tbody></table></div>
<p><strong>Processing:</strong></p>
<div class="codecolorer-container java mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;height:500px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br />31<br />32<br />33<br />34<br /></div></td><td><div class="java codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #008000; font-style: italic; font-weight: bold;">/**<br />
&nbsp;* PianoDuino<br />
&nbsp;*<br />
&nbsp;* @author &nbsp; Bruno Soares<br />
&nbsp;* @link &nbsp; &nbsp; http://www.bsoares.com.br<br />
&nbsp;* @language Processing<br />
&nbsp;*/</span><br />
<br />
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">arb.soundcipher.*</span><span style="color: #339933;">;</span><br />
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">processing.serial.*</span><span style="color: #339933;">;</span><br />
<br />
SoundCipher<span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> sc <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> SoundCipher<span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">8</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span><br />
Serial port<span style="color: #339933;">;</span><br />
<span style="color: #000066; font-weight: bold;">int</span> portValue <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span><br />
<br />
<span style="color: #000066; font-weight: bold;">void</span> setup<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><br />
<span style="color: #009900;">&#123;</span><br />
&nbsp; <span style="color: #000000; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">int</span> i <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span> i <span style="color: #339933;">&lt;</span> sc.<span style="color: #006633;">length</span><span style="color: #339933;">;</span> i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span><br />
&nbsp; <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; sc<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> SoundCipher<span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">this</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; <br />
&nbsp; println<span style="color: #009900;">&#40;</span>Serial.<span style="color: #006633;">list</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; port <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> Serial<span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">this</span>, Serial.<span style="color: #006633;">list</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span>, <span style="color: #cc66cc;">14400</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span><br />
<br />
<span style="color: #000066; font-weight: bold;">void</span> draw<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><br />
<span style="color: #009900;">&#123;</span><br />
&nbsp; <span style="color: #000000; font-weight: bold;">while</span> <span style="color: #009900;">&#40;</span>port.<span style="color: #006633;">available</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&gt;</span> <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; portValue <span style="color: #339933;">=</span> <span style="color: #000066; font-weight: bold;">int</span><span style="color: #009900;">&#40;</span>port.<span style="color: #006633;">readString</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #006633;">substring</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">0</span>, <span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; print<span style="color: #009900;">&#40;</span>portValue<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; sc<span style="color: #009900;">&#91;</span>portValue<span style="color: #009900;">&#93;</span>.<span style="color: #006633;">playNote</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">80</span> <span style="color: #339933;">-</span> <span style="color: #009900;">&#40;</span>portValue <span style="color: #339933;">*</span> <span style="color: #cc66cc;">7</span><span style="color: #009900;">&#41;</span>, <span style="color: #cc66cc;">100</span>, <span style="color: #cc66cc;">2.5</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; <span style="color: #009900;">&#125;</span><br />
<span style="color: #009900;">&#125;</span></div></td></tr></tbody></table></div>
<p><a href="http://blog.bsoares.com.br/wp-content/uploads/2009/05/pianduino.zip">Baixe o código fonte completo aqui</a>.</p>
<p>&nbsp;<br />

<div class="ngg-galleryoverview" id="ngg-gallery-4-406">


	
	<!-- Thumbnails -->
		
	<div id="ngg-image-17" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://blog.bsoares.com.br/wp-content/gallery/pianoduino/PianoDuino-Arduino-Processing-SoundCipher-(3).jpg" rel="shadowbox[post-406];player=img;" title=" "  >
								<img title="PianoDuino-Arduino-Processing-SoundCipher-(3).jpg" alt="PianoDuino-Arduino-Processing-SoundCipher-(3).jpg" src="http://blog.bsoares.com.br/wp-content/gallery/pianoduino/thumbs/thumbs_PianoDuino-Arduino-Processing-SoundCipher-(3).jpg" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-18" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://blog.bsoares.com.br/wp-content/gallery/pianoduino/PianoDuino-Arduino-Processing-SoundCipher-(5).jpg" rel="shadowbox[post-406];player=img;" title=" "  >
								<img title="PianoDuino-Arduino-Processing-SoundCipher-(5).jpg" alt="PianoDuino-Arduino-Processing-SoundCipher-(5).jpg" src="http://blog.bsoares.com.br/wp-content/gallery/pianoduino/thumbs/thumbs_PianoDuino-Arduino-Processing-SoundCipher-(5).jpg" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-19" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://blog.bsoares.com.br/wp-content/gallery/pianoduino/PianoDuino-Arduino-Processing-SoundCipher-(6).jpg" rel="shadowbox[post-406];player=img;" title=" "  >
								<img title="PianoDuino-Arduino-Processing-SoundCipher-(6).jpg" alt="PianoDuino-Arduino-Processing-SoundCipher-(6).jpg" src="http://blog.bsoares.com.br/wp-content/gallery/pianoduino/thumbs/thumbs_PianoDuino-Arduino-Processing-SoundCipher-(6).jpg" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-20" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://blog.bsoares.com.br/wp-content/gallery/pianoduino/PianoDuino-Arduino-Processing-SoundCipher.jpg" rel="shadowbox[post-406];player=img;" title=" "  >
								<img title="PianoDuino-Arduino-Processing-SoundCipher.jpg" alt="PianoDuino-Arduino-Processing-SoundCipher.jpg" src="http://blog.bsoares.com.br/wp-content/gallery/pianoduino/thumbs/thumbs_PianoDuino-Arduino-Processing-SoundCipher.jpg" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 	 	
	<!-- Pagination -->
 	<div class='ngg-clear'></div>
 	
</div>

<br />
&nbsp;</p>
<p><strong>Conteúdo relacionado:</strong><br />
<a href="http://www.flickr.com/photos/bsoares/sets/72157619009072330/" target="_blank">Fotos no Flickr</a><br />
<a href="http://arduino.cc" target="_blank">Arduino</a><br />
<a href="http://processing.org" target="_blank">Processing</a><br />
<a href="http://soundcipher.org/" target="_blank">SoundCipher</a><br />
<a href="http://www.arduino.cc/playground/Learning/4051" target="_blank">Analog multiplexer / demultiplexer 4051</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bsoares.com.br/processing/pianoduino-arduino-processing-soundcipher/feed</wfw:commentRss>
		<slash:comments>18</slash:comments>
		</item>
		<item>
		<title>Operações binárias</title>
		<link>http://blog.bsoares.com.br/aspnet/operacoes-binarias</link>
		<comments>http://blog.bsoares.com.br/aspnet/operacoes-binarias#comments</comments>
		<pubDate>Tue, 26 May 2009 02:28:09 +0000</pubDate>
		<dc:creator>Bruno Soares</dc:creator>
				<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[ActionScript 3.0]]></category>
		<category><![CDATA[Arduino]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[Electronics]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Matemática]]></category>
		<category><![CDATA[Open Hardware]]></category>
		<category><![CDATA[Techology]]></category>

		<guid isPermaLink="false">http://blog.bsoares.com.br/?p=340</guid>
		<description><![CDATA[Ultimamente tenho me deparado com muitos trechos de códigos que utilizam operações binárias, como chaveamento de multiplexador, extração de RGB a partir de um inteiro ou hexadecimal, bitshift para controlar LED Matrix, etc&#8230; E finalmente dei aquela estuda, agora vai ai um post sobre o que resultou o estudo. Obs.: Os trechos de códigos deste [...]]]></description>
			<content:encoded><![CDATA[<iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fblog.bsoares.com.br%2Faspnet%2Foperacoes-binarias&amp;layout=standard&amp;show_faces=true&amp;width=450&amp;action=like&amp;colorscheme=light&amp;height=80" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:450px; height:80px;" allowTransparency="true"></iframe><p>Ultimamente tenho me deparado com muitos trechos de códigos que utilizam <a href="http://en.wikipedia.org/wiki/Bitwise_operation" target="_blank">operações binárias</a>, como chaveamento de <a href="http://pt.wikipedia.org/wiki/Multiplexador" target="_blank">multiplexador</a>, extração de <a href="http://pt.wikipedia.org/wiki/RGB" target="_blank">RGB</a> a partir de um inteiro ou <a href="http://pt.wikipedia.org/wiki/Sistema_hexadecimal" target="_blank">hexadecimal</a>, bitshift para controlar <a href="http://blog.bsoares.com.br/tag/8x8-led-matrix">LED Matrix</a>, etc&#8230; E finalmente dei aquela estuda, agora vai ai um post sobre o que resultou o estudo.</p>
<p>Obs.: Os trechos de códigos deste post foram escritos em <a href="http://blog.bsoares.com.br/tag/as3">ActionScript</a>, mas pode ser aplicado a C, <a href="http://blog.bsoares.com.br/tag/cpp">C++</a>, Java, <a href="http://blog.bsoares.com.br/tag/processing">Processing</a>, <a href="http://blog.bsoares.com.br/tag/php">PHP</a>, entre outras linguagens.</p>
<hr />
• <a href="#introducao">Introdução</a><br />
• Bit Shift<br />
&nbsp;&nbsp;&nbsp;• <a href="#bitwise-right-shift">Operador >> (bitwise right shift)</a><br />
&nbsp;&nbsp;&nbsp;• <a href="#bitwise-left-shift">Operador << (bitwise left shift)</a><br />
• Operações Bitwise<br />
&nbsp;&nbsp;&nbsp;• <a href="#bitwise-and">Operador &#038; (bitwise AND)</a><br />
&nbsp;&nbsp;&nbsp;• <a href="#bitwise-or">Operador | (bitwise OR)</a><br />
&nbsp;&nbsp;&nbsp;• <a href="#bitwise-xor">Operador ^ (bitwise XOR)</a><br />
&nbsp;&nbsp;&nbsp;• <a href="#bitwise-not">Operador ~ (bitwise NOT)</a><br />
• Exemplos<br />
&nbsp;&nbsp;&nbsp;• <a href="#extract-rgb">Extraindo o RGB de uma cor</a><br />
&nbsp;&nbsp;&nbsp;• <a href="#multiplexer-4051">Chaveando multiplexador 4051</a><br />
&nbsp;</p>
<hr /><a name="introducao"><strong>Introdução</strong></a><br />
Um operador binário, como o nome sugere, é um operador que trabalha com a representação binária do número, e como normalmente não sabemos a representação binária dos números de cabeça, vamos utilizar a tabela abaixo:</p>
<pre style="font-family: 'Lucida Console', 'Courier New', 'Courier'; font-size: 10px; line-height: 10px;"> -----------------------
|      BIN |  DEC | HEX |
|-----------------------|
|        1 |    1 |   1 |
|       10 |    2 |   2 |
|       11 |    3 |   3 |
|      100 |    4 |   4 |
|      101 |    5 |   5 |
|      110 |    6 |   6 |
|      111 |    7 |   7 |
|     1000 |    8 |   8 |
|     1001 |    9 |   9 |
|     1010 |   10 |   A |
|     1011 |   11 |   B |
|     1100 |   12 |   C |
|     1101 |   13 |   D |
|     1110 |   14 |   E |
|     1111 |   15 |   F |
|    10000 |   16 |  10 |
|    10001 |   17 |  11 |
|    10010 |   18 |  12 |
|    10011 |   19 |  13 |
|    10100 |   20 |  14 |
|-----------------------|
| 11111111 |  255 |  FF |
 ----------------------- </pre>
<p>A tabela lista os números de 1 à 20 e 255 em três bases diferentes:<br />
• <a href="http://pt.wikipedia.org/wiki/Sistema_bin%C3%A1rio_%28matem%C3%A1tica%29" target="_blank">Binário (BIN)</a><br />
• Decimal (DEC)<br />
• <a href="http://pt.wikipedia.org/wiki/Sistema_hexadecimal" target="_blank">Hexadecimal (HEX)</a></p>
<p>Analisando a tabela podemos concluir que 3d = 11b, 19d = 10011b (as letras d e b significam decimal e binário respectivamente). Lembrando que pode ser utilizada uma calculadora que opere em binário (como a do windows) ou uma alternativa de conversão de bases on-line como está: <a href="http://calculadoraonline.com.br/view/conversao-binario.php" target="_blank">&#8220;Conversão de número binário&#8221;</a>.</p>
<p>Então vamos <strong>deslocar</strong>, <strong>escorregar</strong>, <strong>escovar</strong> alguns bits para entender melhor.</p>
<p>
<hr /><a name="bitwise-right-shift"><strong>Operador >></strong></a><br />
Deslocamento de bits para a direita (bitwise right shift)</p>
<div class="codecolorer-container actionscript3 mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br /></div></td><td><div class="actionscript3 codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #004993;">trace</span><span style="color: #000000;">&#40;</span><span style="color: #000000; font-weight:bold;">8</span> <span style="color: #000066; font-weight: bold;">&gt;&gt;</span> <span style="color: #000000; font-weight:bold;">1</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span> <span style="color: #009900; font-style: italic;">// 4</span><br />
<span style="color: #004993;">trace</span><span style="color: #000000;">&#40;</span><span style="color: #000000; font-weight:bold;">8</span> <span style="color: #000066; font-weight: bold;">&gt;&gt;</span> <span style="color: #000000; font-weight:bold;">2</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span> <span style="color: #009900; font-style: italic;">// 2</span><br />
<span style="color: #004993;">trace</span><span style="color: #000000;">&#40;</span><span style="color: #000000; font-weight:bold;">8</span> <span style="color: #000066; font-weight: bold;">&gt;&gt;</span> <span style="color: #000000; font-weight:bold;">3</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span> <span style="color: #009900; font-style: italic;">// 1</span><br />
<span style="color: #004993;">trace</span><span style="color: #000000;">&#40;</span><span style="color: #000000; font-weight:bold;">8</span> <span style="color: #000066; font-weight: bold;">&gt;&gt;</span> <span style="color: #000000; font-weight:bold;">4</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span> <span style="color: #009900; font-style: italic;">// 0</span></div></td></tr></tbody></table></div>
<p>Olhando os números na base decimal faz pouco sentido, ou talvez nenhum sentido, então passamos os números corretos para a base binária e tudo fica mais claro:<br />
8d = 1000b (8 decimal é igual a 1000 em binário), então:<br />
1000b >> 1 (deslocando uma casa para direita) temos o número:<br />
100b que em decimal é 4(dê uma olhada na tabela).</p>
<p>Agora ficou fácil não? Vamos deslocar o número 13:</p>
<div class="codecolorer-container actionscript3 mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="actionscript3 codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #004993;">trace</span><span style="color: #000000;">&#40;</span><span style="color: #000000; font-weight:bold;">13</span> <span style="color: #000066; font-weight: bold;">&gt;&gt;</span> <span style="color: #000000; font-weight:bold;">1</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span> <span style="color: #009900; font-style: italic;">// 6</span></div></td></tr></tbody></table></div>
<p>13 em binário é 1101, deslocando uma casa para a direita (ou removendo 1 bit), fica 110, e 110 é igual a 6 em decimal.</p>
<p>
<hr /><a name="bitwise-left-shift"><strong>Operador <<</strong></a><br />
Deslocamento de bits para a esquerda (bitwise left shift)</p>
<div class="codecolorer-container actionscript3 mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br /></div></td><td><div class="actionscript3 codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #004993;">trace</span><span style="color: #000000;">&#40;</span><span style="color: #000000; font-weight:bold;">2</span> <span style="color: #000066; font-weight: bold;">&lt;&lt;</span> <span style="color: #000000; font-weight:bold;">1</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span> <span style="color: #009900; font-style: italic;">// 4</span><br />
<span style="color: #004993;">trace</span><span style="color: #000000;">&#40;</span><span style="color: #000000; font-weight:bold;">2</span> <span style="color: #000066; font-weight: bold;">&lt;&lt;</span> <span style="color: #000000; font-weight:bold;">2</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span> <span style="color: #009900; font-style: italic;">// 8</span><br />
<span style="color: #004993;">trace</span><span style="color: #000000;">&#40;</span><span style="color: #000000; font-weight:bold;">2</span> <span style="color: #000066; font-weight: bold;">&lt;&lt;</span> <span style="color: #000000; font-weight:bold;">3</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span> <span style="color: #009900; font-style: italic;">// 16</span></div></td></tr></tbody></table></div>
<p>Agora é só seguir o mesmo raciocino já utilizando anteriormente.<br />
Se 2 em base binária é igual a 10 e deslocarmos um bit para esquerda, vamos ganhar mais um zero, ficando com 100 que é igual a 4 em decimal.</p>
<p>
<hr /><a name="bitwise-and"><strong>Operador &#038;</strong></a><br />
AND binário (bitwise AND)<br />
O operador &#038; compara bit a bit os números a sua direita e esquerda, por exemplo o resultado de 10 &#038; 11 é 10:</p>
<pre style="font-family: 'Lucida Console', 'Courier New', 'Courier'; font-size: 10px; line-height: 10px;">
  1010
&#038; 1011
------
  1010</pre>
<p>A comparação bit-a-bit somente retorna True (1) quando os bits comparados são iguais a 1, caso contrário retorna False (0). Formando assim um novo número.<br />
Mais alguns exemplos para fortalecer:</p>
<pre style="font-family: 'Lucida Console', 'Courier New', 'Courier'; font-size: 10px; line-height: 10px;">
|14 &#038;  9|13 &#038; 11|20 &#038;  9|14 &#038; 10|89 &#038;  112|45  &#038;  77|255  &#038;  13|112 &#038;  255|
|       |       |       |       |         |         |          |          |
|  1110 |  1101 |  10100|  1110 |  1011001|   101101|  11111111|   1110000|
|&#038; 1001 |&#038; 1011 |&#038;  1001|&#038; 1010 |&#038; 1110000|&#038; 1001101|&#038;     1101|&#038; 11111111|
|  ---- |  ---- |  -----|  ---- |  -------|  -------|  --------|  --------|
|  1000 |  1001 |      0|  1010 |  1010000|     1101|      1101|   1110000|
|    8d |    9d |     0d|   10d |      80d|      13d|       13d|      112d|</pre>
<p>
<hr /><a name="bitwise-or"><strong>Operador |</strong></a><br />
OR binário (bitwise OR)<br />
O operador | tem a mesma função do operador OR comum (||) só que atua bit-a-bit, assim como os outros operadores binários. Vejamos um exemplo:</p>
<pre style="font-family: 'Lucida Console', 'Courier New', 'Courier'; font-size: 10px; line-height: 10px;">
  1010
| 1011
------
  1011</pre>
<p>Se um dos bits comparados forem iguais a 1 a expressão retornará 1, caso os dois bits comparados forem iguais a 0, a expressão retorna 0. Agora vamos refazer o exemplo anterior trocando apenas o operador &#038; (and binário) por | (or binário):</p>
<pre style="font-family: 'Lucida Console', 'Courier New', 'Courier'; font-size: 10px; line-height: 10px;">
|14 |  9|13 | 11|20 |  9|14 | 10|89 |  112|45  |  77|255  |  13|112 |  255|
|       |       |       |       |         |         |          |          |
|  1110 |  1101 |  10100|  1110 |  1011001|   101101|  11111111|   1110000|
|| 1001 || 1011 ||  1001|| 1010 || 1110000|| 1001101||     1101|| 11111111|
|  ---- |  ---- |  -----|  ---- |  -------|  -------|  --------|  --------|
|  1111 |  1111 |  11101|  1110 |  1111001|  1101101|  11111111|  11111111|
|   15d |   15d |    29d|   14d |     121d|     109d|      255d|      255d|</pre>
<p>
<hr /><a name="bitwise-xor"><strong>Operador ^</strong></a><br />
OU exclusivo (bitwise XOR)<br />
A letra X na frente do OR significa Exclusive (Exclusive OR). Isso quer dizer que este operador faz a comparação binária de dois números e resulta os bits que são diferentes. Por exemplos, quais são os bits diferentes entre os números 10 e 11?</p>
<pre style="font-family: 'Lucida Console', 'Courier New', 'Courier'; font-size: 10px; line-height: 10px;">
  1010
^ 1011
------
     1</pre>
<p>Vamos novamente trocar o operador do exemplo anterior para analisar os resultados:</p>
<pre style="font-family: 'Lucida Console', 'Courier New', 'Courier'; font-size: 10px; line-height: 10px;">
|14 ^  9|13 ^ 11|20 ^  9|14 ^ 10|89 ^  112|45  ^  77|255  ^  13|112 ^  255|
|       |       |       |       |         |         |          |          |
|  1110 |  1101 |  10100|  1110 |  1011001|   101101|  11111111|   1110000|
|^ 1001 |^ 1011 |^  1001|^ 1010 |^ 1110000|^ 1001101|^     1101|^ 11111111|
|  ---- |  ---- |  -----|  ---- |  -------|  -------|  --------|  --------|
|   111 |   110 |  11101|   100 |   101001|  1100000|  11110010|  10001111|
|    7d |    6d |    29d|    4d |      41d|      96d|      242d|      143d|</pre>
<p>
<hr /><a name="bitwise-not"><strong>Operador ~</strong></a><br />
Negação (bitwise NOT)<br />
O operador NOT inverte o sinal e complementa em um.<br />
Negando o número 168 (~168) teremos -169.</p>
<p>Alguns exemplos:</p>
<div class="codecolorer-container actionscript3 mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br /></div></td><td><div class="actionscript3 codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #004993;">trace</span><span style="color: #000000;">&#40;</span><span style="color: #000066; font-weight: bold;">~</span><span style="color: #000000; font-weight:bold;">7</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span> &nbsp; <span style="color: #009900; font-style: italic;">// -8</span><br />
<span style="color: #004993;">trace</span><span style="color: #000000;">&#40;</span><span style="color: #000066; font-weight: bold;">~-</span><span style="color: #000000; font-weight:bold;">7</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span> &nbsp;<span style="color: #009900; font-style: italic;">// 6</span><br />
<span style="color: #004993;">trace</span><span style="color: #000000;">&#40;</span><span style="color: #000066; font-weight: bold;">~</span><span style="color: #000000; font-weight:bold;">14</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span> &nbsp;<span style="color: #009900; font-style: italic;">// -15</span><br />
<span style="color: #004993;">trace</span><span style="color: #000000;">&#40;</span><span style="color: #000066; font-weight: bold;">~</span><span style="color: #000000; font-weight:bold;">13</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span> &nbsp;<span style="color: #009900; font-style: italic;">// -14</span><br />
<span style="color: #004993;">trace</span><span style="color: #000000;">&#40;</span><span style="color: #000066; font-weight: bold;">~</span><span style="color: #000000; font-weight:bold;">255</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span> <span style="color: #009900; font-style: italic;">// -256</span><br />
<span style="color: #004993;">trace</span><span style="color: #000000;">&#40;</span><span style="color: #000066; font-weight: bold;">~</span><span style="color: #000000; font-weight:bold;">112</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span> <span style="color: #009900; font-style: italic;">// -113</span></div></td></tr></tbody></table></div>
</p>
<p>&nbsp;</p>
<hr /><a name="extract-rgb"><strong>Extraindo o RGB de uma cor</strong></a><br />
Sabendo que uma cor no formato RGB utiliza dois dígitos hexadecimais para definir quanto existe de Vermelho, Verde e Azul (respectivamente), formando cores como: Vermelho (FF0000), Cinza (C0C0C0), Laranja (FF9900), etc. Temos ai a possibilidade de gerar 16.581.375 de cores com este código, é só fazer a conta para conferir: 255 * 255 * 255 ou FF * FF * FF.<br />
Vamos desmembrar um tom de azul (<strong><font color="#347BB7">#347BB7</font></strong>) para saber quanto esta cor tem de Vermelho, Verde e Azul (o valor dos canais RGB).</p>
<div class="codecolorer-container actionscript3 mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br /></div></td><td><div class="actionscript3 codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #009900; font-style: italic;">// DEC: 3439543</span><br />
<span style="color: #009900; font-style: italic;">// BIN: 1101000111101110110111</span><br />
<span style="color: #6699cc; font-weight: bold;">var</span> <span style="color: #004993;">color</span><span style="color: #000066; font-weight: bold;">:</span><a href="http://www.google.com/search?q=uint%20inurl:http://livedocs.adobe.com/flex/201/langref/%20inurl:uint.html"><span style="color: #004993;">uint</span></a> = 0x347BB7<span style="color: #000066; font-weight: bold;">;</span><br />
<br />
<span style="color: #6699cc; font-weight: bold;">var</span> r<span style="color: #000066; font-weight: bold;">:</span><a href="http://www.google.com/search?q=uint%20inurl:http://livedocs.adobe.com/flex/201/langref/%20inurl:uint.html"><span style="color: #004993;">uint</span></a> = <span style="color: #000000;">&#40;</span><span style="color: #004993;">color</span> <span style="color: #000066; font-weight: bold;">&gt;&gt;</span> <span style="color: #000000; font-weight:bold;">16</span><span style="color: #000000;">&#41;</span> <span style="color: #000066; font-weight: bold;">&amp;</span> 0xFF<span style="color: #000066; font-weight: bold;">;</span><br />
<span style="color: #6699cc; font-weight: bold;">var</span> g<span style="color: #000066; font-weight: bold;">:</span><a href="http://www.google.com/search?q=uint%20inurl:http://livedocs.adobe.com/flex/201/langref/%20inurl:uint.html"><span style="color: #004993;">uint</span></a> = <span style="color: #000000;">&#40;</span><span style="color: #004993;">color</span> <span style="color: #000066; font-weight: bold;">&gt;&gt;</span> &nbsp;<span style="color: #000000; font-weight:bold;">8</span><span style="color: #000000;">&#41;</span> <span style="color: #000066; font-weight: bold;">&amp;</span> 0xFF<span style="color: #000066; font-weight: bold;">;</span><br />
<span style="color: #6699cc; font-weight: bold;">var</span> <span style="color: #004993;">b</span><span style="color: #000066; font-weight: bold;">:</span><a href="http://www.google.com/search?q=uint%20inurl:http://livedocs.adobe.com/flex/201/langref/%20inurl:uint.html"><span style="color: #004993;">uint</span></a> = &nbsp;<span style="color: #004993;">color</span> &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #000066; font-weight: bold;">&amp;</span> 0xFF<span style="color: #000066; font-weight: bold;">;</span><br />
<br />
<span style="color: #004993;">trace</span><span style="color: #000000;">&#40;</span><span style="color: #990000;">&quot;Red:&quot;</span><span style="color: #000066; font-weight: bold;">,</span> r<span style="color: #000066; font-weight: bold;">,</span> <span style="color: #990000;">&quot;Green:&quot;</span><span style="color: #000066; font-weight: bold;">,</span> g<span style="color: #000066; font-weight: bold;">,</span> <span style="color: #990000;">&quot;Blue:&quot;</span><span style="color: #000066; font-weight: bold;">,</span> <span style="color: #004993;">b</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span><br />
<span style="color: #009900; font-style: italic;">// Red: 52 Green: 123 Blue: 183</span></div></td></tr></tbody></table></div>
<p>Linha 5) Deslocando 16 bits para a direita temos:</p>
<pre style="font-family: 'Lucida Console', 'Courier New', 'Courier'; font-size: 10px; line-height: 10px;">
  1101000111101110110111 >> 16
=                 110100 (DEC: 52)</pre>
<p>Para o caso do vermelho não precisamos continuar a expressão (&#038; 0xFF),<br />
pois deslocando 16 bits para a direita já temos o resultado do vermelho,<br />
mas se a cor estivesse no formato ARGB (Alpha Red Green Blue), seria necessário.</p>
<p>Linha 6) Deslocando 8 bits para conseguir o verde:</p>
<pre style="font-family: 'Lucida Console', 'Courier New', 'Courier'; font-size: 10px; line-height: 10px;">
  1101000111101110110111 >> 8
=         11010001111011 (DEC: 13435)</pre>
<p>Só com o valor do deslocamentos não vamos conseguir a cor verde, então utilizamos o<br />
operador &#038; (AND) com o valor 255 (0xFF) para extrair a parte binária que nos interessa:</p>
<pre style="font-family: 'Lucida Console', 'Courier New', 'Courier'; font-size: 10px; line-height: 10px;">
  11010001111011 (DEC: 13435)
&#038;       11111111 (DEC: 255, HEX: 0xFF)
  --------------
        01111011 (DEC: 123)</pre>
<p>Linha 7) Para extrair o azul não precisamos deslocar bits e sim pegar os últimos 8 bits:</p>
<pre style="font-family: 'Lucida Console', 'Courier New', 'Courier'; font-size: 10px; line-height: 10px;">
  1101000111101110110111
&#038;               11111111 (DEC: 255, HEX: 0xFF)
  ----------------------
                10110111 (DEC: 183)</pre>
<p>Agora voltando para o hexadecimal:</p>
<div class="codecolorer-container actionscript3 mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br /></div></td><td><div class="actionscript3 codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #6699cc; font-weight: bold;">var</span> r<span style="color: #000066; font-weight: bold;">:</span><a href="http://www.google.com/search?q=uint%20inurl:http://livedocs.adobe.com/flex/201/langref/%20inurl:uint.html"><span style="color: #004993;">uint</span></a> = <span style="color: #000000; font-weight:bold;">52</span><span style="color: #000066; font-weight: bold;">;</span><br />
<span style="color: #6699cc; font-weight: bold;">var</span> g<span style="color: #000066; font-weight: bold;">:</span><a href="http://www.google.com/search?q=uint%20inurl:http://livedocs.adobe.com/flex/201/langref/%20inurl:uint.html"><span style="color: #004993;">uint</span></a> = <span style="color: #000000; font-weight:bold;">123</span><span style="color: #000066; font-weight: bold;">;</span><br />
<span style="color: #6699cc; font-weight: bold;">var</span> <span style="color: #004993;">b</span><span style="color: #000066; font-weight: bold;">:</span><a href="http://www.google.com/search?q=uint%20inurl:http://livedocs.adobe.com/flex/201/langref/%20inurl:uint.html"><span style="color: #004993;">uint</span></a> = <span style="color: #000000; font-weight:bold;">183</span><span style="color: #000066; font-weight: bold;">;</span><br />
<span style="color: #6699cc; font-weight: bold;">var</span> <span style="color: #004993;">color</span><span style="color: #000066; font-weight: bold;">:</span><a href="http://www.google.com/search?q=uint%20inurl:http://livedocs.adobe.com/flex/201/langref/%20inurl:uint.html"><span style="color: #004993;">uint</span></a> = <span style="color: #000000;">&#40;</span>r <span style="color: #000066; font-weight: bold;">&lt;&lt;</span> <span style="color: #000000; font-weight:bold;">16</span><span style="color: #000000;">&#41;</span> <span style="color: #000066; font-weight: bold;">|</span> <span style="color: #000000;">&#40;</span>g <span style="color: #000066; font-weight: bold;">&lt;&lt;</span> <span style="color: #000000; font-weight:bold;">8</span><span style="color: #000000;">&#41;</span> <span style="color: #000066; font-weight: bold;">|</span> <span style="color: #004993;">b</span><span style="color: #000066; font-weight: bold;">;</span><br />
<br />
<span style="color: #004993;">trace</span><span style="color: #000000;">&#40;</span><span style="color: #004993;">color</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">toString</span><span style="color: #000000;">&#40;</span><span style="color: #000000; font-weight:bold;">16</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span><br />
<span style="color: #009900; font-style: italic;">// 347bb7</span></div></td></tr></tbody></table></div>
<p>Linha 4) Deslocando 16 bits para a esquerda do número 52 (Vermelho):</p>
<pre style="font-family: 'Lucida Console', 'Courier New', 'Courier'; font-size: 10px; line-height: 10px;">
  110100 << 16
= 1101000000000000000000</pre>
<p>Deslocando 8 bits para a esquerda do número 123 (Verde):</p>
<pre style="font-family: 'Lucida Console', 'Courier New', 'Courier'; font-size: 10px; line-height: 10px;">
  1111011 << 8
= 111101100000000</pre>
<p>Efetuando o OR (|) com o resultado das duas operações ((r << 16) | (g << 8)):</p>
<pre style="font-family: 'Lucida Console', 'Courier New', 'Courier'; font-size: 10px; line-height: 10px;">
  1101000000000000000000
|        111101100000000
  ----------------------
  1101000111101100000000</pre>
<p>Efetuando a última operação, o OR com o Azul (183)</p>
<pre style="font-family: 'Lucida Console', 'Courier New', 'Courier'; font-size: 10px; line-height: 10px;">
  1101000111101100000000
| 0000000000000010110111
  ----------------------
  1101000111101110110111</pre>
<p>O resultado agora ficou claro. O número 1101000111101110110111 (binário) é igual a 3439543 (decimal) e 347BB7 (hexadecimal).</p>
<p>&nbsp;</p>
<hr /><a name="multiplexer-4051"><strong>Chaveando multiplexador 4051</strong></a><br />
A tarefa de chavear um Multiplexador / Demultiplexador (MUX / DEMUX) 4051 é muito parecida com a extração dos canais RGB de uma cor. Você só precisa Ligar ou Desligar três pinos de seleção (select pins) para que o circuito interprete o valor gerado e transmita a voltagem da entrada desejada.<br />
Existe um gif animado do <a href="http://www.rogercom.com" target="_blank">RogerCom</a> muito didático que demonstra o funcionamento do CI 4051, <a href="http://blog.bsoares.com.br/wp-content/uploads/2009/05/animacd4051b.gif" rel="shadowbox[post-340];player=img;" target="_blank">gif animado CI 4051 aqui</a>.<br />
Por exemplo, para ler a entrada 3, precisamos desligar o pino de seleção 0, ligar o 1 e o 2, formando assim o número 011 (binário) que é igual a 3 em decimal. Veja no código (Escrito em Arduino / C++):</p>
<div class="codecolorer-container cpp mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br /></div></td><td><div class="cpp codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #666666;">// Entrada desejada</span><br />
<span style="color: #0000ff;">int</span> count <span style="color: #000080;">=</span> <span style="color: #0000dd;">3</span><span style="color: #008080;">;</span><br />
<br />
<span style="color: #666666;">// Extração dos bits ativos</span><br />
byte s0 <span style="color: #000080;">=</span> &nbsp;count &nbsp; &nbsp; &nbsp; <span style="color: #000040;">&amp;</span> <span style="color: #208080;">0x1</span><span style="color: #008080;">;</span><br />
byte s1 <span style="color: #000080;">=</span> <span style="color: #008000;">&#40;</span>count <span style="color: #000080;">&gt;&gt;</span> <span style="color: #0000dd;">1</span><span style="color: #008000;">&#41;</span> <span style="color: #000040;">&amp;</span> <span style="color: #208080;">0x1</span><span style="color: #008080;">;</span><br />
byte s2 <span style="color: #000080;">=</span> <span style="color: #008000;">&#40;</span>count <span style="color: #000080;">&gt;&gt;</span> <span style="color: #0000dd;">2</span><span style="color: #008000;">&#41;</span> <span style="color: #000040;">&amp;</span> <span style="color: #208080;">0x1</span><span style="color: #008080;">;</span><br />
<br />
<span style="color: #666666;">// Ligando ou desligando os pinos de seleção</span><br />
digitalWrite<span style="color: #008000;">&#40;</span><span style="color: #0000dd;">2</span>, s0<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
digitalWrite<span style="color: #008000;">&#40;</span><span style="color: #0000dd;">3</span>, s1<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
digitalWrite<span style="color: #008000;">&#40;</span><span style="color: #0000dd;">4</span>, s2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span></div></td></tr></tbody></table></div>
<hr /><strong>Conteúdo relacionado:</strong><br />
• <a href="http://en.wikipedia.org/wiki/Bitwise_operation" target="_blank">Bitwise operation on Wikipedia</a><br />
&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bsoares.com.br/aspnet/operacoes-binarias/feed</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Funções do C++ úteis para Arduino</title>
		<link>http://blog.bsoares.com.br/arduino/useful-functions-of-the-cpp-for-arduino</link>
		<comments>http://blog.bsoares.com.br/arduino/useful-functions-of-the-cpp-for-arduino#comments</comments>
		<pubDate>Sat, 16 May 2009 14:31:52 +0000</pubDate>
		<dc:creator>Bruno Soares</dc:creator>
				<category><![CDATA[Arduino]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[Electronics]]></category>
		<category><![CDATA[Open Hardware]]></category>
		<category><![CDATA[Techology]]></category>

		<guid isPermaLink="false">http://blog.bsoares.com.br/?p=373</guid>
		<description><![CDATA[Para aqueles que sempre gostaram de eletrônica e que agora se envolveram com eletrônica digital, vai uma diga bem interessante. Nós sabemos que para programar para microcontroladores é necessário entender um pouco de C, C++ ou até mesmo Assembly, e isso pode ser uma barreira para aqueles que tem interesse mas não dominam tais linguagens, [...]]]></description>
			<content:encoded><![CDATA[<iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fblog.bsoares.com.br%2Farduino%2Fuseful-functions-of-the-cpp-for-arduino&amp;layout=standard&amp;show_faces=true&amp;width=450&amp;action=like&amp;colorscheme=light&amp;height=80" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:450px; height:80px;" allowTransparency="true"></iframe><p>Para aqueles que sempre gostaram de eletrônica e que agora se envolveram com eletrônica digital, vai uma diga bem interessante.<br />
Nós sabemos que para programar para <a href="http://pt.wikipedia.org/wiki/Microcontrolador" target="_self">microcontroladores</a> é necessário entender um pouco de <a href="http://pt.wikipedia.org/wiki/C_(linguagem_de_programa%C3%A7%C3%A3o)" target="_blank">C</a>, <a href="http://pt.wikipedia.org/wiki/C%2B%2B" target="_blank">C++</a> ou até mesmo <a href="http://pt.wikipedia.org/wiki/Assembly" target="_blank">Assembly</a>, e isso pode ser uma barreira para aqueles que tem interesse mas não dominam tais linguagens, então vai ai um site que pode ajudar muito a encontrar as funções necessárias para se manipular string, arrays, converter tipos, alocar memória, efetuar operações matemáticas entre outros:<br />
<a href="http://www.cplusplus.com/" target="_blank">http://www.cplusplus.com/</a></p>
<p>Na verdade o que o programa compilador do código <a href="http://arduino.cc/" target="_self">Arduino</a> faz é simplesmente converter o código &#8220;Arduino&#8221; para C++, compilar e gravar no microcontrolador. Por isso que podemos utilizar muitas funções do C++ para o Arduino. Para conferir entre no diretório /applet (sua aplicação/applet) e abra o arquivo com o mesmo nome do seu &#8220;.pde&#8221; só que com a extensão &#8220;.cpp&#8221;.<br />
<strong><br />
</strong><em>Vou listar aqui algumas funções bem úteis:</em></p>
<p><strong>Conversão de tipos:</strong><a href="http://www.cplusplus.com/reference/clibrary/cstdlib/atof/" target="_blank"><br />
atof</a> &#8211; Converte string para double<br />
<a href="http://www.cplusplus.com/reference/clibrary/cstdlib/atoi/" target="_blank">atoi</a> &#8211; Converte string  para integer<br />
<a href="http://www.cplusplus.com/reference/clibrary/cstdlib/itoa/" target="_blank">itoa</a> &#8211; Converte integer para string<br />
<a href="http://www.cplusplus.com/reference/clibrary/cstdlib/atol/" target="_blank">atol</a> &#8211; Converte string  para long integer<br />
<a href="http://www.cplusplus.com/reference/clibrary/cstdlib/strtod/" target="_blank">strtod</a> &#8211; Converte string  para double<br />
<a href="http://www.cplusplus.com/reference/clibrary/cstdlib/strtol/" target="_blank">strtol</a> &#8211; Converte string  para long integer<br />
<a href="http://www.cplusplus.com/reference/clibrary/cstdlib/strtoul/" target="_blank">strtoul</a> &#8211; Converte string  para unsigned long integer<br />
<span style="color: #ff0000;">Obs.:</span><strong> </strong>Você pode encontrar mais funões de conversão de tipos no site da <a href="http://arduino.cc/en/Reference/HomePage" target="_self">Arduino</a>:<br />
<a href="http://arduino.cc/en/Reference/CharCast" target="_blank">char()</a>, <a href="http://arduino.cc/en/Reference/ByteCast" target="_blank">byte()</a>, <a href="http://arduino.cc/en/Reference/IntCast" target="_blank">int()</a>, <a href="http://arduino.cc/en/Reference/LongCast" target="_blank">long()</a> e <a href="http://arduino.cc/en/Reference/FloatCast" target="_blank">float()</a></p>
<p><strong>Manipulação dinâmica da memória:<br />
</strong><a href="http://www.cplusplus.com/reference/clibrary/cstdlib/calloc/" target="_blank">calloc</a> &#8211; Aloca espaço na memória para um array<br />
<a href="http://www.cplusplus.com/reference/clibrary/cstdlib/free/" target="_blank">free</a> &#8211; Desaloca espaço na memória</p>
<p><strong>Busca e ordenação:</strong><br />
<a href="http://www.cplusplus.com/reference/clibrary/cstdlib/bsearch/" target="_blank">bsearch</a> &#8211; Busca binária em arrays<br />
<a href="http://www.cplusplus.com/reference/clibrary/cstdlib/qsort/" target="_blank">qsort</a> &#8211; Ordena elementos de um array</p>
<p><strong>Operações matemáticas (Math):<br />
</strong><a href="http://www.cplusplus.com/reference/clibrary/cmath/atan2/" target="_blank">atan2</a> &#8211; Calcula o arco tangente com dois parâmetros<br />
<a href="http://www.cplusplus.com/reference/clibrary/cmath/log/" target="_blank">log</a> &#8211; Calcula o logaritmo natural<br />
<a href="http://www.cplusplus.com/reference/clibrary/cmath/log10/" target="_blank">log10</a> &#8211; Calcula o logaritmo comum<br />
<a href="http://www.cplusplus.com/reference/clibrary/cmath/floor/" target="_blank">floor</a> &#8211; Arredonda um valor para baixo</p>
<p><strong>Manipulação de strings (char*):</strong><br />
<a href="http://www.cplusplus.com/reference/clibrary/cstring/strcat/" target="_blank">strcat</a> &#8211; Concatena strings<br />
<a href="http://www.cplusplus.com/reference/clibrary/cstring/strncat/" target="_blank">strncat</a> &#8211; Concatena caracteres com base nas suas posições<br />
<a href="http://www.cplusplus.com/reference/clibrary/cstring/strchr/" target="_blank">strchr</a> &#8211; Localiza a primeira ocorrência do caracter em uma string<br />
<a href="http://www.cplusplus.com/reference/clibrary/cstring/strstr/" target="_blank">strstr</a> &#8211; Localiza a primeira ocorrência de uma string dentro de outra</p>
<p>Vale a pena conferir e dar uma estudada.<strong></strong></p>
<p><strong>Conteúdo relacionado:</strong><br />
<a href="http://www.cplusplus.com" target="_blank"> Referência</a><a href="http://arduino.cc/" target="_blank"><br />
Arduino</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bsoares.com.br/arduino/useful-functions-of-the-cpp-for-arduino/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Classe C++ para controlar Display de 7 seguimentos</title>
		<link>http://blog.bsoares.com.br/arduino/cpp-class-for-controlling-7-segments-led-display</link>
		<comments>http://blog.bsoares.com.br/arduino/cpp-class-for-controlling-7-segments-led-display#comments</comments>
		<pubDate>Tue, 05 May 2009 03:25:58 +0000</pubDate>
		<dc:creator>Bruno Soares</dc:creator>
				<category><![CDATA[Arduino]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[Electronics]]></category>
		<category><![CDATA[7 Segments Display]]></category>
		<category><![CDATA[Open Hardware]]></category>
		<category><![CDATA[Techology]]></category>

		<guid isPermaLink="false">http://blog.bsoares.com.br/?p=312</guid>
		<description><![CDATA[No meio de um experimento com Display de 7 seguimentos e Arduino, achei melhor criar uma classe para tratar dos números exibidos no Display. Deixo aqui a Classe e um exemplo de como usá-la. Configuração de pinos (Digital) utilizada no exemplo: Obs.: Está configuração pode ser modificada no momento em que é criada a instância [...]]]></description>
			<content:encoded><![CDATA[<iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fblog.bsoares.com.br%2Farduino%2Fcpp-class-for-controlling-7-segments-led-display&amp;layout=standard&amp;show_faces=true&amp;width=450&amp;action=like&amp;colorscheme=light&amp;height=80" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:450px; height:80px;" allowTransparency="true"></iframe><p>No meio de um experimento com <a href="http://en.wikipedia.org/wiki/Seven-segment_display" target="_blank">Display de 7 seguimentos</a> e <a href="http://www.arduino.cc/" target="_blank">Arduino</a>, achei melhor criar uma classe para tratar dos números exibidos no Display.<br />
Deixo aqui a Classe e um exemplo de como usá-la.</p>
<p style="text-align: center;"><object width="470" height="360"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=4447498&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=00adef&amp;fullscreen=1" /><embed src="http://vimeo.com/moogaloop.swf?clip_id=4447498&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=00adef&amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="470" height="360"></embed></object></p>
<p><strong>Configuração de pinos (Digital) utilizada no exemplo:</strong><br />
<img src="http://blog.bsoares.com.br/wp-content/uploads/2009/05/7-segments-display-pin-configuration.gif" alt="7 Segments LED Display - Pin Configuration" /><br />
Obs.: Está configuração pode ser modificada no momento em que é criada a instância da classe &#8220;<strong>Simple7Segments</strong>&#8221; (<em>Simple7Segments display(2, 3, 4, 5, 6, 7, 8, 9);</em>).</p>
<p><strong>Simple7Segments.h</strong></p>
<div class="codecolorer-container cpp mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;height:200px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br /></div></td><td><div class="cpp codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #ff0000; font-style: italic;">/**<br />
&nbsp;* Simple seven segments LED display<br />
&nbsp;*<br />
&nbsp;* @author &nbsp;Bruno Soares<br />
&nbsp;* @website www.bsoares.com.br<br />
&nbsp;*/</span><br />
<br />
<span style="color: #339900;">#ifndef Simple7Segments_h</span><br />
<span style="color: #339900;">#define Simple7Segments_h</span><br />
<br />
<span style="color: #339900;">#include &lt;inttypes.h&gt;</span><br />
<br />
<span style="color: #0000ff;">class</span> Simple7Segments<br />
<span style="color: #008000;">&#123;</span><br />
&nbsp; <span style="color: #0000ff;">private</span><span style="color: #008080;">:</span><br />
&nbsp; &nbsp; uint8_t <span style="color: #000040;">*</span>_pins<span style="color: #008080;">;</span><br />
&nbsp; &nbsp; uint8_t _count<span style="color: #008080;">;</span><br />
&nbsp; <br />
&nbsp; <span style="color: #0000ff;">public</span><span style="color: #008080;">:</span><br />
&nbsp; &nbsp; Simple7Segments<span style="color: #008000;">&#40;</span>uint8_t, uint8_t, uint8_t, uint8_t,<br />
&nbsp; &nbsp; &nbsp; uint8_t, uint8_t, uint8_t, uint8_t<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp; <span style="color: #0000ff;">void</span> showNumber<span style="color: #008000;">&#40;</span><span style="color: #0000ff;">char</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp; <span style="color: #0000ff;">void</span> showAll<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp; <span style="color: #0000ff;">void</span> clearAll<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
<span style="color: #008000;">&#125;</span><span style="color: #008080;">;</span><br />
<br />
<span style="color: #339900;">#endif</span></div></td></tr></tbody></table></div>
<p><strong>Simple7Segments.cpp</strong></p>
<div class="codecolorer-container cpp mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;height:200px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br />31<br />32<br />33<br />34<br />35<br />36<br />37<br />38<br />39<br />40<br />41<br />42<br />43<br />44<br />45<br />46<br />47<br />48<br />49<br />50<br />51<br />52<br />53<br />54<br />55<br />56<br />57<br />58<br />59<br />60<br />61<br />62<br />63<br />64<br />65<br />66<br />67<br />68<br />69<br />70<br />71<br />72<br />73<br />74<br />75<br />76<br />77<br />78<br />79<br />80<br />81<br />82<br />83<br />84<br />85<br />86<br />87<br />88<br />89<br />90<br />91<br />92<br />93<br />94<br />95<br />96<br />97<br />98<br />99<br />100<br />101<br />102<br />103<br />104<br />105<br />106<br />107<br />108<br />109<br />110<br />111<br />112<br />113<br />114<br />115<br />116<br />117<br />118<br />119<br />120<br />121<br />122<br />123<br />124<br />125<br />126<br />127<br />128<br /></div></td><td><div class="cpp codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #ff0000; font-style: italic;">/**<br />
&nbsp;* Simple seven segments LED display<br />
&nbsp;*<br />
&nbsp;* @author &nbsp;Bruno Soares<br />
&nbsp;* @website www.bsoares.com.br<br />
&nbsp;*/</span><br />
<br />
<span style="color: #339900;">#include &quot;Simple7Segments.h&quot;</span><br />
<span style="color: #339900;">#include &quot;WProgram.h&quot;</span><br />
<br />
<span style="color: #339900;">#include &lt;inttypes.h&gt;</span><br />
<br />
<span style="color: #339900;">#define QUANTITY_PINS 8</span><br />
<br />
Simple7Segments<span style="color: #008080;">::</span><span style="color: #007788;">Simple7Segments</span><span style="color: #008000;">&#40;</span>uint8_t a, uint8_t b, uint8_t c, uint8_t d,<br />
&nbsp; uint8_t e, uint8_t f, uint8_t g, uint8_t pd<span style="color: #008000;">&#41;</span><br />
<span style="color: #008000;">&#123;</span><br />
&nbsp; <span style="color: #666666;">// Alocate memory for Array _pins</span><br />
&nbsp; _pins <span style="color: #000080;">=</span> <span style="color: #008000;">&#40;</span>uint8_t<span style="color: #000040;">*</span><span style="color: #008000;">&#41;</span><span style="color: #0000dd;">calloc</span><span style="color: #008000;">&#40;</span>QUANTITY_PINS, <span style="color: #0000dd;">4</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; <br />
&nbsp; <span style="color: #666666;">// Transfer parameters to array pins</span><br />
&nbsp; _pins<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">0</span><span style="color: #008000;">&#93;</span> <span style="color: #000080;">=</span> a<span style="color: #008080;">;</span><br />
&nbsp; _pins<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">1</span><span style="color: #008000;">&#93;</span> <span style="color: #000080;">=</span> b<span style="color: #008080;">;</span><br />
&nbsp; _pins<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">2</span><span style="color: #008000;">&#93;</span> <span style="color: #000080;">=</span> c<span style="color: #008080;">;</span><br />
&nbsp; _pins<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">3</span><span style="color: #008000;">&#93;</span> <span style="color: #000080;">=</span> d<span style="color: #008080;">;</span><br />
&nbsp; _pins<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">4</span><span style="color: #008000;">&#93;</span> <span style="color: #000080;">=</span> e<span style="color: #008080;">;</span><br />
&nbsp; _pins<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">5</span><span style="color: #008000;">&#93;</span> <span style="color: #000080;">=</span> f<span style="color: #008080;">;</span><br />
&nbsp; _pins<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">6</span><span style="color: #008000;">&#93;</span> <span style="color: #000080;">=</span> g<span style="color: #008080;">;</span><br />
&nbsp; _pins<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">7</span><span style="color: #008000;">&#93;</span> <span style="color: #000080;">=</span> pd<span style="color: #008080;">;</span><br />
&nbsp; <br />
&nbsp; <span style="color: #666666;">// Set pin mode to all</span><br />
&nbsp; <span style="color: #0000ff;">for</span> <span style="color: #008000;">&#40;</span>_count <span style="color: #000080;">=</span> <span style="color: #0000dd;">0</span><span style="color: #008080;">;</span> _count <span style="color: #000080;">&lt;</span> QUANTITY_PINS<span style="color: #008080;">;</span> _count<span style="color: #000040;">++</span><span style="color: #008000;">&#41;</span><br />
&nbsp; <span style="color: #008000;">&#123;</span><br />
&nbsp; &nbsp; pinMode<span style="color: #008000;">&#40;</span>_pins<span style="color: #008000;">&#91;</span>_count<span style="color: #008000;">&#93;</span>, OUTPUT<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; <span style="color: #008000;">&#125;</span><br />
<span style="color: #008000;">&#125;</span><br />
<br />
<span style="color: #0000ff;">void</span> Simple7Segments<span style="color: #008080;">::</span><span style="color: #007788;">showNumber</span><span style="color: #008000;">&#40;</span><span style="color: #0000ff;">char</span> letter<span style="color: #008000;">&#41;</span><br />
<span style="color: #008000;">&#123;</span><br />
&nbsp; clearAll<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; <span style="color: #0000ff;">switch</span> <span style="color: #008000;">&#40;</span>letter<span style="color: #008000;">&#41;</span><br />
&nbsp; <span style="color: #008000;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #0000ff;">case</span> <span style="color: #FF0000;">'0'</span><span style="color: #008080;">:</span><br />
&nbsp; &nbsp; &nbsp; digitalWrite<span style="color: #008000;">&#40;</span>_pins<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">0</span><span style="color: #008000;">&#93;</span>, HIGH<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp; &nbsp; digitalWrite<span style="color: #008000;">&#40;</span>_pins<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">1</span><span style="color: #008000;">&#93;</span>, HIGH<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp; &nbsp; digitalWrite<span style="color: #008000;">&#40;</span>_pins<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">2</span><span style="color: #008000;">&#93;</span>, HIGH<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp; &nbsp; digitalWrite<span style="color: #008000;">&#40;</span>_pins<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">3</span><span style="color: #008000;">&#93;</span>, HIGH<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp; &nbsp; digitalWrite<span style="color: #008000;">&#40;</span>_pins<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">4</span><span style="color: #008000;">&#93;</span>, HIGH<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp; &nbsp; digitalWrite<span style="color: #008000;">&#40;</span>_pins<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">5</span><span style="color: #008000;">&#93;</span>, HIGH<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp; <span style="color: #0000ff;">break</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp; <span style="color: #0000ff;">case</span> <span style="color: #FF0000;">'1'</span><span style="color: #008080;">:</span><br />
&nbsp; &nbsp; &nbsp; digitalWrite<span style="color: #008000;">&#40;</span>_pins<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">1</span><span style="color: #008000;">&#93;</span>, HIGH<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp; &nbsp; digitalWrite<span style="color: #008000;">&#40;</span>_pins<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">2</span><span style="color: #008000;">&#93;</span>, HIGH<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp; <span style="color: #0000ff;">break</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp; <span style="color: #0000ff;">case</span> <span style="color: #FF0000;">'2'</span><span style="color: #008080;">:</span><br />
&nbsp; &nbsp; &nbsp; digitalWrite<span style="color: #008000;">&#40;</span>_pins<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">0</span><span style="color: #008000;">&#93;</span>, HIGH<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp; &nbsp; digitalWrite<span style="color: #008000;">&#40;</span>_pins<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">1</span><span style="color: #008000;">&#93;</span>, HIGH<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp; &nbsp; digitalWrite<span style="color: #008000;">&#40;</span>_pins<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">6</span><span style="color: #008000;">&#93;</span>, HIGH<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp; &nbsp; digitalWrite<span style="color: #008000;">&#40;</span>_pins<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">4</span><span style="color: #008000;">&#93;</span>, HIGH<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp; &nbsp; digitalWrite<span style="color: #008000;">&#40;</span>_pins<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">3</span><span style="color: #008000;">&#93;</span>, HIGH<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp; <span style="color: #0000ff;">break</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp; <span style="color: #0000ff;">case</span> <span style="color: #FF0000;">'3'</span><span style="color: #008080;">:</span><br />
&nbsp; &nbsp; &nbsp; digitalWrite<span style="color: #008000;">&#40;</span>_pins<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">0</span><span style="color: #008000;">&#93;</span>, HIGH<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp; &nbsp; digitalWrite<span style="color: #008000;">&#40;</span>_pins<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">1</span><span style="color: #008000;">&#93;</span>, HIGH<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp; &nbsp; digitalWrite<span style="color: #008000;">&#40;</span>_pins<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">6</span><span style="color: #008000;">&#93;</span>, HIGH<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp; &nbsp; digitalWrite<span style="color: #008000;">&#40;</span>_pins<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">2</span><span style="color: #008000;">&#93;</span>, HIGH<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp; &nbsp; digitalWrite<span style="color: #008000;">&#40;</span>_pins<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">3</span><span style="color: #008000;">&#93;</span>, HIGH<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp; <span style="color: #0000ff;">break</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp; <span style="color: #0000ff;">case</span> <span style="color: #FF0000;">'4'</span><span style="color: #008080;">:</span><br />
&nbsp; &nbsp; &nbsp; digitalWrite<span style="color: #008000;">&#40;</span>_pins<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">5</span><span style="color: #008000;">&#93;</span>, HIGH<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp; &nbsp; digitalWrite<span style="color: #008000;">&#40;</span>_pins<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">6</span><span style="color: #008000;">&#93;</span>, HIGH<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp; &nbsp; digitalWrite<span style="color: #008000;">&#40;</span>_pins<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">1</span><span style="color: #008000;">&#93;</span>, HIGH<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp; &nbsp; digitalWrite<span style="color: #008000;">&#40;</span>_pins<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">2</span><span style="color: #008000;">&#93;</span>, HIGH<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp; <span style="color: #0000ff;">break</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp; <span style="color: #0000ff;">case</span> <span style="color: #FF0000;">'5'</span><span style="color: #008080;">:</span><br />
&nbsp; &nbsp; &nbsp; digitalWrite<span style="color: #008000;">&#40;</span>_pins<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">0</span><span style="color: #008000;">&#93;</span>, HIGH<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp; &nbsp; digitalWrite<span style="color: #008000;">&#40;</span>_pins<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">5</span><span style="color: #008000;">&#93;</span>, HIGH<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp; &nbsp; digitalWrite<span style="color: #008000;">&#40;</span>_pins<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">6</span><span style="color: #008000;">&#93;</span>, HIGH<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp; &nbsp; digitalWrite<span style="color: #008000;">&#40;</span>_pins<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">2</span><span style="color: #008000;">&#93;</span>, HIGH<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp; &nbsp; digitalWrite<span style="color: #008000;">&#40;</span>_pins<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">3</span><span style="color: #008000;">&#93;</span>, HIGH<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp; <span style="color: #0000ff;">break</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp; <span style="color: #0000ff;">case</span> <span style="color: #FF0000;">'6'</span><span style="color: #008080;">:</span><br />
&nbsp; &nbsp; &nbsp; digitalWrite<span style="color: #008000;">&#40;</span>_pins<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">0</span><span style="color: #008000;">&#93;</span>, HIGH<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp; &nbsp; digitalWrite<span style="color: #008000;">&#40;</span>_pins<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">2</span><span style="color: #008000;">&#93;</span>, HIGH<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp; &nbsp; digitalWrite<span style="color: #008000;">&#40;</span>_pins<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">3</span><span style="color: #008000;">&#93;</span>, HIGH<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp; &nbsp; digitalWrite<span style="color: #008000;">&#40;</span>_pins<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">4</span><span style="color: #008000;">&#93;</span>, HIGH<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp; &nbsp; digitalWrite<span style="color: #008000;">&#40;</span>_pins<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">5</span><span style="color: #008000;">&#93;</span>, HIGH<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp; &nbsp; digitalWrite<span style="color: #008000;">&#40;</span>_pins<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">6</span><span style="color: #008000;">&#93;</span>, HIGH<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp; <span style="color: #0000ff;">break</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp; <span style="color: #0000ff;">case</span> <span style="color: #FF0000;">'7'</span><span style="color: #008080;">:</span><br />
&nbsp; &nbsp; &nbsp; digitalWrite<span style="color: #008000;">&#40;</span>_pins<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">0</span><span style="color: #008000;">&#93;</span>, HIGH<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp; &nbsp; digitalWrite<span style="color: #008000;">&#40;</span>_pins<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">1</span><span style="color: #008000;">&#93;</span>, HIGH<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp; &nbsp; digitalWrite<span style="color: #008000;">&#40;</span>_pins<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">2</span><span style="color: #008000;">&#93;</span>, HIGH<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp; <span style="color: #0000ff;">break</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp; <span style="color: #0000ff;">case</span> <span style="color: #FF0000;">'8'</span><span style="color: #008080;">:</span><br />
&nbsp; &nbsp; &nbsp; digitalWrite<span style="color: #008000;">&#40;</span>_pins<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">0</span><span style="color: #008000;">&#93;</span>, HIGH<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp; &nbsp; digitalWrite<span style="color: #008000;">&#40;</span>_pins<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">1</span><span style="color: #008000;">&#93;</span>, HIGH<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp; &nbsp; digitalWrite<span style="color: #008000;">&#40;</span>_pins<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">2</span><span style="color: #008000;">&#93;</span>, HIGH<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp; &nbsp; digitalWrite<span style="color: #008000;">&#40;</span>_pins<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">3</span><span style="color: #008000;">&#93;</span>, HIGH<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp; &nbsp; digitalWrite<span style="color: #008000;">&#40;</span>_pins<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">4</span><span style="color: #008000;">&#93;</span>, HIGH<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp; &nbsp; digitalWrite<span style="color: #008000;">&#40;</span>_pins<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">5</span><span style="color: #008000;">&#93;</span>, HIGH<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp; &nbsp; digitalWrite<span style="color: #008000;">&#40;</span>_pins<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">6</span><span style="color: #008000;">&#93;</span>, HIGH<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp; <span style="color: #0000ff;">break</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp; <span style="color: #0000ff;">case</span> <span style="color: #FF0000;">'9'</span><span style="color: #008080;">:</span><br />
&nbsp; &nbsp; &nbsp; digitalWrite<span style="color: #008000;">&#40;</span>_pins<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">0</span><span style="color: #008000;">&#93;</span>, HIGH<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp; &nbsp; digitalWrite<span style="color: #008000;">&#40;</span>_pins<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">1</span><span style="color: #008000;">&#93;</span>, HIGH<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp; &nbsp; digitalWrite<span style="color: #008000;">&#40;</span>_pins<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">2</span><span style="color: #008000;">&#93;</span>, HIGH<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp; &nbsp; digitalWrite<span style="color: #008000;">&#40;</span>_pins<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">5</span><span style="color: #008000;">&#93;</span>, HIGH<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp; &nbsp; digitalWrite<span style="color: #008000;">&#40;</span>_pins<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">6</span><span style="color: #008000;">&#93;</span>, HIGH<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp; <span style="color: #0000ff;">break</span><span style="color: #008080;">;</span><br />
&nbsp; <span style="color: #008000;">&#125;</span><br />
<span style="color: #008000;">&#125;</span><br />
<br />
<span style="color: #0000ff;">void</span> Simple7Segments<span style="color: #008080;">::</span><span style="color: #007788;">clearAll</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><br />
<span style="color: #008000;">&#123;</span><br />
&nbsp; <span style="color: #0000ff;">for</span> <span style="color: #008000;">&#40;</span>_count <span style="color: #000080;">=</span> <span style="color: #0000dd;">0</span><span style="color: #008080;">;</span> _count <span style="color: #000080;">&lt;</span> QUANTITY_PINS<span style="color: #008080;">;</span> _count<span style="color: #000040;">++</span><span style="color: #008000;">&#41;</span><br />
&nbsp; <span style="color: #008000;">&#123;</span><br />
&nbsp; &nbsp; digitalWrite<span style="color: #008000;">&#40;</span>_pins<span style="color: #008000;">&#91;</span>_count<span style="color: #008000;">&#93;</span>, LOW<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; <span style="color: #008000;">&#125;</span><br />
<span style="color: #008000;">&#125;</span><br />
<br />
<span style="color: #0000ff;">void</span> Simple7Segments<span style="color: #008080;">::</span><span style="color: #007788;">showAll</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><br />
<span style="color: #008000;">&#123;</span><br />
&nbsp; <span style="color: #0000ff;">for</span> <span style="color: #008000;">&#40;</span>_count <span style="color: #000080;">=</span> <span style="color: #0000dd;">0</span><span style="color: #008080;">;</span> _count <span style="color: #000080;">&lt;</span> QUANTITY_PINS<span style="color: #008080;">;</span> _count<span style="color: #000040;">++</span><span style="color: #008000;">&#41;</span><br />
&nbsp; <span style="color: #008000;">&#123;</span><br />
&nbsp; &nbsp; digitalWrite<span style="color: #008000;">&#40;</span>_pins<span style="color: #008000;">&#91;</span>_count<span style="color: #008000;">&#93;</span>, HIGH<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; <span style="color: #008000;">&#125;</span><br />
<span style="color: #008000;">&#125;</span></div></td></tr></tbody></table></div>
<p><strong>SevenSegmentsExample.pde</strong></p>
<div class="codecolorer-container cpp mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;height:500px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br />31<br />32<br />33<br />34<br />35<br />36<br />37<br />38<br />39<br />40<br />41<br />42<br />43<br />44<br />45<br />46<br /></div></td><td><div class="cpp codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #ff0000; font-style: italic;">/**<br />
&nbsp;* Simple seven segments LED display<br />
&nbsp;*<br />
&nbsp;* @author &nbsp;Bruno Soares<br />
&nbsp;* @website www.bsoares.com.br<br />
&nbsp;*/</span><br />
<br />
<span style="color: #339900;">#include &quot;Simple7Segments.h&quot;</span><br />
<br />
<span style="color: #339900;">#define LED_FINISH 12</span><br />
<span style="color: #339900;">#define DELAY 500</span><br />
<br />
<span style="color: #0000ff;">unsigned</span> <span style="color: #0000ff;">int</span> count <span style="color: #000080;">=</span> <span style="color: #0000dd;">0</span><span style="color: #008080;">;</span><br />
<br />
<span style="color: #666666;">// Define variable display.</span><br />
<span style="color: #666666;">// The numbers are the pins of the display</span><br />
Simple7Segments display<span style="color: #008000;">&#40;</span><span style="color: #0000dd;">2</span>, <span style="color: #0000dd;">3</span>, <span style="color: #0000dd;">4</span>, <span style="color: #0000dd;">5</span>, <span style="color: #0000dd;">6</span>, <span style="color: #0000dd;">7</span>, <span style="color: #0000dd;">8</span>, <span style="color: #0000dd;">9</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
<br />
<span style="color: #0000ff;">void</span> setup<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><br />
<span style="color: #008000;">&#123;</span><br />
&nbsp; pinMode<span style="color: #008000;">&#40;</span>LED_FINISH, OUTPUT<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
<span style="color: #008000;">&#125;</span><br />
<br />
<span style="color: #0000ff;">void</span> loop<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><br />
<span style="color: #008000;">&#123;</span><br />
&nbsp; <span style="color: #0000ff;">char</span><span style="color: #000040;">*</span> buffer<span style="color: #008080;">;</span><br />
&nbsp; itoa<span style="color: #008000;">&#40;</span>count, buffer, <span style="color: #0000dd;">10</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; display.<span style="color: #007788;">showNumber</span><span style="color: #008000;">&#40;</span>buffer<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">0</span><span style="color: #008000;">&#93;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; delay<span style="color: #008000;">&#40;</span>DELAY<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span><span style="color: #000040;">++</span>count <span style="color: #000080;">==</span> <span style="color: #0000dd;">10</span><span style="color: #008000;">&#41;</span><br />
&nbsp; <span style="color: #008000;">&#123;</span><br />
&nbsp; &nbsp; count <span style="color: #000080;">=</span> <span style="color: #0000dd;">0</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp; finish<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; <span style="color: #008000;">&#125;</span><br />
<span style="color: #008000;">&#125;</span><br />
<br />
<span style="color: #0000ff;">void</span> finish<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><br />
<span style="color: #008000;">&#123;</span><br />
&nbsp; digitalWrite<span style="color: #008000;">&#40;</span>LED_FINISH, HIGH<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; delay<span style="color: #008000;">&#40;</span><span style="color: #0000dd;">50</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; digitalWrite<span style="color: #008000;">&#40;</span>LED_FINISH, LOW<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; delay<span style="color: #008000;">&#40;</span><span style="color: #0000dd;">50</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; digitalWrite<span style="color: #008000;">&#40;</span>LED_FINISH, HIGH<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; delay<span style="color: #008000;">&#40;</span><span style="color: #0000dd;">50</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; digitalWrite<span style="color: #008000;">&#40;</span>LED_FINISH, LOW<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
<span style="color: #008000;">&#125;</span></div></td></tr></tbody></table></div>
<p>Linha 17) Cria uma instância da classe Simple7Segments passando no construtor os pinos correspondentes as posições no display.<br />
Linha 27) Converte o valor da variável contadora (count) para char* (&#8220;String&#8221;).<br />
Linha 28) Chama o método showNumber da instância display passando o número a exibir.<br />
Linha 37) Método chamado quando uma contagem de 0 à 9 chega ao fim (pisca o LED).</p>

<div class="ngg-galleryoverview" id="ngg-gallery-3-312">


	
	<!-- Thumbnails -->
		
	<div id="ngg-image-13" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://blog.bsoares.com.br/wp-content/gallery/7-segments-led-display/7-segments-led-display-1.jpg" rel="shadowbox[post-312];player=img;" title=" "  >
								<img title="7-segments-led-display-1.jpg" alt="7-segments-led-display-1.jpg" src="http://blog.bsoares.com.br/wp-content/gallery/7-segments-led-display/thumbs/thumbs_7-segments-led-display-1.jpg" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-14" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://blog.bsoares.com.br/wp-content/gallery/7-segments-led-display/7-segments-led-display-2.jpg" rel="shadowbox[post-312];player=img;" title=" "  >
								<img title="7-segments-led-display-2.jpg" alt="7-segments-led-display-2.jpg" src="http://blog.bsoares.com.br/wp-content/gallery/7-segments-led-display/thumbs/thumbs_7-segments-led-display-2.jpg" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-15" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://blog.bsoares.com.br/wp-content/gallery/7-segments-led-display/7-segments-led-display-3.jpg" rel="shadowbox[post-312];player=img;" title=" "  >
								<img title="7-segments-led-display-3.jpg" alt="7-segments-led-display-3.jpg" src="http://blog.bsoares.com.br/wp-content/gallery/7-segments-led-display/thumbs/thumbs_7-segments-led-display-3.jpg" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-16" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://blog.bsoares.com.br/wp-content/gallery/7-segments-led-display/7-segments-led-display-4.jpg" rel="shadowbox[post-312];player=img;" title=" "  >
								<img title="7-segments-led-display-4.jpg" alt="7-segments-led-display-4.jpg" src="http://blog.bsoares.com.br/wp-content/gallery/7-segments-led-display/thumbs/thumbs_7-segments-led-display-4.jpg" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 	 	
	<!-- Pagination -->
 	<div class='ngg-clear'></div>
 	
</div>


<p>Faça o <a href="http://blog.bsoares.com.br/wp-content/uploads/2009/05/sevensegmentsexample.zip">download do código fonte completo aqui</a>.</p>
<p><strong>Conteúdo relacionado:</strong><br />
Arduino: <a href="http://www.arduino.cc/" target="_blank">http://www.arduino.cc/</a><br />
Mais fotos: <a href="http://www.flickr.com/photos/bsoares/sets/72157617609513978/" target="_blank">http://www.flickr.com/photos/bsoares/sets/72157617609513978/</a><br />
Display de 7 seguimento na Wikipedia: <a href="http://en.wikipedia.org/wiki/Seven-segment_display" target="_blank">http://en.wikipedia.org/wiki/Seven-segment_display</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bsoares.com.br/arduino/cpp-class-for-controlling-7-segments-led-display/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

