<?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>Daniel Andrade &#187; binário</title>
	<atom:link href="http://blog.danielandrade.net/tag/binario/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.danielandrade.net</link>
	<description>tecnologia, eletrônica e aleatoriedades</description>
	<lastBuildDate>Sun, 03 Jul 2011 00:49:05 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>DIY: Relógio Binário com Arduino</title>
		<link>http://blog.danielandrade.net/2009/12/diy-relogio-binario/</link>
		<comments>http://blog.danielandrade.net/2009/12/diy-relogio-binario/#comments</comments>
		<pubDate>Sat, 12 Dec 2009 14:29:39 +0000</pubDate>
		<dc:creator>DanielAndrade</dc:creator>
				<category><![CDATA[arduino]]></category>
		<category><![CDATA[eletrônica]]></category>
		<category><![CDATA[binário]]></category>
		<category><![CDATA[led]]></category>
		<category><![CDATA[relógio]]></category>
		<category><![CDATA[resistor]]></category>

		<guid isPermaLink="false">http://blog.danielandrade.net/?p=101</guid>
		<description><![CDATA[Hoje irei explicar como montar um relógio binários utilizando apenas LEDs, Resistores e um Arduino. Este projeto foi feito durante uma noite, onde eu e um grande amigo pedro desistimos [...]]]></description>
			<content:encoded><![CDATA[<p>Hoje irei explicar como montar um relógio binários utilizando apenas LEDs, Resistores e um Arduino. Este projeto foi feito durante uma noite, onde eu e um grande amigo  <a href="http://ovelha.org/pedro/">pedro</a> desistimos de assistir um filme e decidimos montar algo legal com leds e arduino. Passamos a noite inteira montando/programando/melhorando o circuitos e o resultado final foi muito bom, então resolvi explicar como você pode montar um na sua casa. Espero que goste. <img src='http://blog.danielandrade.net/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> </p>
<p><a href="http://www.flickr.com/photos/pasteler0/2672798839/" title="Binary Clock II by Daniel Spillere Andrade, on Flickr"><img src="http://farm4.static.flickr.com/3143/2672798839_87cc88de17.jpg" width="500" height="314" alt="Binary Clock II" /></a></p>
<p><span id="more-101"></span></p>
<p><strong>Partes:</strong><br />
- Arduino<br />
- 13x Leds<br />
- 13x Resistores de 220 Ω<br />
- 3x Resistores de 2.2 KΩ<br />
- 2x Push-Buttons<br />
- 1x Botão normal<br />
- Protoboard<br />
- Cabos</p>
<p>Este projeto é bem simples, porém pode ser complicado para pessoas com pouca experiência com eletrônica, então vou tentar explicar detalhadamente como montar.</p>
<p><strong>Como funciona</strong></p>
<p><img src='http://www.danielandrade.net/wp-content/uploads/2008/07/leds1.png' alt='leds1.png' /></p>
<p><img src='http://www.danielandrade.net/wp-content/uploads/2008/07/binary-example.png' alt='binary-example.png' /></p>
<p>Acredito que imagens valem mais do que mil palavras. Para saber a hora, você deve somar o valor de cada LED que esteja ligado em cada coluna, isso resultará na hora atual.</p>
<p><strong>Montando</strong><br />
Para montar o circuito, você deve primeiro conectar os leds e resistores nos pinos de saída do arduino do 1 ao 13. Lembre-se que a pena maior do LED é sempre o positivo, e a outra perna do LED é o terra, e deve ser conectado ao terra do arduino.<br />
Para que o circuito funcione, você deve conectar o LED 1 no PINO 1, LED 2 no PINO 2&#8230;</p>
<p><img src='http://www.danielandrade.net/wp-content/uploads/2008/07/imagem-binario.png' alt='imagem-binario.png' /></p>
<p>Para conectar os botões, utilizei uma entrada digital e duas analógicas. Para alterar as horas/minutos, você terá que usar dois botões do estilo push-buttons. E eles serão ligados às entradas analógicas 0 e 5. E para LIGAS/DESLIGAR os LEDs usei um botão normal conectado na entrada digital 0. Para montar o botão, você deve conectar uma perna do mesmo a um resistor de 2.2 KΩ e conectá-lo a saída de 5 Volts junto com a entrada digital/analógica. E a outra pena do botão vai para o terra. Algo como a imagem abaixo:</p>
<p><img src='http://www.danielandrade.net/wp-content/uploads/2008/07/button1.png' alt='button1.png' /></p>
<p>Se você não conseguiu entender minha explicação, tem informações mais detalhadas (em inglês) no site oficial do arduino.<a href="http://www.arduino.cc/en/Tutorial/Button">AQUI</a>. </p>
<p><strong>Imagens + Video</strong></p>
<p><a href="http://www.flickr.com/photos/pasteler0/2672798839/" title="Binary Clock II by Daniel Spillere Andrade, on Flickr"><img src="http://farm4.static.flickr.com/3143/2672798839_87cc88de17.jpg" width="500" height="314" alt="Binary Clock II" /></a></p>
<p><a href="http://www.flickr.com/photos/pasteler0/2672795611/" title="Binary Clock I by Daniel Spillere Andrade, on Flickr"><img src="http://farm4.static.flickr.com/3281/2672795611_ebcc7224fc.jpg" width="500" height="375" alt="Binary Clock I" /></a></p>
<p><object width="500" height="377"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://www.vimeo.com/moogaloop.swf?clip_id=1349421&amp;server=www.vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=00ADEF&amp;fullscreen=1" /><embed src="http://www.vimeo.com/moogaloop.swf?clip_id=1349421&amp;server=www.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="500" height="377"></embed></object></p>
<p><strong>Código</strong><br />
O código do relógio é baseado no <a href="http://www.faludi.com/projects/open-source-arduino-clock/">open-source-arduino-clock</a> feito pelo Rob Faludi. Fiz algumas alterações, mas o função do relógio é basicamente o mesmo. Se o código abaixo não estiver funcionando, você pode baixá-lo em .txt <a href="http://www.danielandrade.net/wp-content/uploads/2008/07/arduno-binary-clock.txt">AQUI</a>.</p>
<div class="codecolorer-container text default" 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 />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 /></div></td><td><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">/*<br />
An open-source binary clock for Arduino. <br />
Based on the code from by Rob Faludi (http://www.faludi.com)<br />
Code under (cc) by Daniel Spillere Andrade, www.danielandrade.net<br />
http://creativecommons.org/license/cc-gpl<br />
*/<br />
<br />
int second=0, minute=0, hour=0; //start the time on 00:00:00<br />
int munit,hunit,valm=0,valh=0,ledstats,i;<br />
<br />
void setup() { //set outputs and inputs<br />
pinMode(1, OUTPUT);pinMode(2, OUTPUT);pinMode(3, OUTPUT);pinMode(4, OUTPUT);pinMode(5, OUTPUT);<br />
pinMode(6, OUTPUT);pinMode(7, OUTPUT);pinMode(8, OUTPUT);pinMode(9, OUTPUT);pinMode(10, OUTPUT);<br />
pinMode(11, OUTPUT);pinMode(12, OUTPUT);pinMode(13, OUTPUT);<br />
<br />
pinMode(0, INPUT);<br />
}<br />
<br />
void loop() {<br />
<br />
static unsigned long lastTick = 0; // set up a local variable to hold the last time we moved forward one second<br />
// (static variables are initialized once and keep their values between function calls)<br />
// move forward one second every 1000 milliseconds<br />
<br />
if (millis() - lastTick &gt;= 1000) {<br />
&nbsp; &nbsp; lastTick = millis();<br />
&nbsp; &nbsp; second++;<br />
<br />
}<br />
<br />
// move forward one minute every 60 seconds<br />
&nbsp; &nbsp; if (second &gt;= 60) {<br />
&nbsp; &nbsp; minute++;<br />
&nbsp; &nbsp; second = 0; // reset seconds to zero<br />
}<br />
<br />
// move forward one hour every 60 minutes<br />
if (minute &gt;=60) {<br />
&nbsp; &nbsp; hour++;<br />
&nbsp; &nbsp; minute = 0; // reset minutes to zero<br />
}<br />
<br />
if (hour &gt;=24) {<br />
&nbsp; &nbsp; hour=0;<br />
&nbsp; &nbsp; minute = 0; // reset minutes to zero<br />
}<br />
<br />
&nbsp; &nbsp; munit = minute%10; //sets the variable munit and hunit for the unit digits<br />
&nbsp; &nbsp; hunit = hour%10;<br />
<br />
<br />
&nbsp; &nbsp; ledstats = digitalRead(0); &nbsp;// read input value, for setting leds off, but keeping count<br />
&nbsp; &nbsp; if (ledstats == LOW) {<br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; for(i=1;i&lt; =13;i++){<br />
&nbsp; &nbsp; digitalWrite(i, LOW);}<br />
&nbsp; <br />
&nbsp; &nbsp; } else &nbsp;{<br />
<br />
&nbsp; &nbsp; //minutes units<br />
&nbsp; &nbsp; if(munit == 1 || munit == 3 || munit == 5 || munit == 7 || munit == 9) { &nbsp;digitalWrite(1, HIGH);} else { &nbsp;digitalWrite(1,LOW);}<br />
&nbsp; &nbsp; if(munit == 2 || munit == 3 || munit == 6 || munit == 7) {digitalWrite(2, HIGH);} else {digitalWrite(2,LOW);}<br />
&nbsp; &nbsp; if(munit == 4 || munit == 5 || munit == 6 || munit == 7) {digitalWrite(3, HIGH);} else {digitalWrite(3,LOW);}<br />
&nbsp; &nbsp; if(munit == 8 || munit == 9) {digitalWrite(4, HIGH);} else {digitalWrite(4,LOW);}<br />
<br />
&nbsp; &nbsp; //minutes <br />
&nbsp; &nbsp; if((minute &gt;= 10 &amp;&amp; minute &lt; 20) || (minute &gt;= 30 &amp;&amp; minute &lt; 40) || (minute &gt;= 50 &amp;&amp; minute &lt; 60)) &nbsp;{digitalWrite(5, HIGH);} else {digitalWrite(5,LOW);}<br />
&nbsp; &nbsp; if(minute &gt;= 20 &amp;&amp; minute &lt; 40) &nbsp;{digitalWrite(6, HIGH);} else {digitalWrite(6,LOW);}<br />
&nbsp; &nbsp; if(minute &gt;= 40 &amp;&amp; minute &lt; 60) {digitalWrite(7, HIGH);} else {digitalWrite(7,LOW);}<br />
<br />
&nbsp; &nbsp; //hour units<br />
&nbsp; &nbsp; if(hunit == 1 || hunit == 3 || hunit == 5 || hunit == 7 || hunit == 9) {digitalWrite(8, HIGH);} else {digitalWrite(8,LOW);}<br />
&nbsp; &nbsp; if(hunit == 2 || hunit == 3 || hunit == 6 || hunit == 7) {digitalWrite(9, HIGH);} else {digitalWrite(9,LOW);}<br />
&nbsp; &nbsp; if(hunit == 4 || hunit == 5 || hunit == 6 || hunit == 7) {digitalWrite(10, HIGH);} else {digitalWrite(10,LOW);}<br />
&nbsp; &nbsp; if(hunit == 8 || hunit == 9) {digitalWrite(11, HIGH);} else {digitalWrite(11,LOW);}<br />
<br />
&nbsp; &nbsp; //hour<br />
&nbsp; &nbsp; if(hour &gt;= 10 &amp;&amp; hour &lt; 20) &nbsp;{digitalWrite(12, HIGH);} else {digitalWrite(12,LOW);}<br />
&nbsp; &nbsp; if(hour &gt;= 20 &amp;&amp; hour &lt; 24) &nbsp;{digitalWrite(13, HIGH);} else {digitalWrite(13,LOW);}<br />
<br />
&nbsp; &nbsp; }<br />
<br />
&nbsp; &nbsp; valm = analogRead(0); &nbsp; &nbsp;// add one minute when pressed<br />
&nbsp; &nbsp; &nbsp;if(valm&amp;lt;800) {<br />
&nbsp; &nbsp; &nbsp;minute++;<br />
&nbsp; &nbsp; &nbsp;second=0;<br />
&nbsp; &nbsp; &nbsp;delay(250);<br />
&nbsp; &nbsp; }<br />
&nbsp; <br />
&nbsp; &nbsp; valh = analogRead(5); &nbsp; &nbsp;// add one hour when pressed<br />
&nbsp; &nbsp; &nbsp;if(valh&amp;lt;800) {<br />
&nbsp; &nbsp; &nbsp;hour++;<br />
&nbsp; &nbsp; &nbsp;second=0;<br />
&nbsp; &nbsp; &nbsp;delay(250);<br />
&nbsp; &nbsp; }<br />
<br />
<br />
}</div></td></tr></tbody></table></div>
<p><a href="http://www.flickr.com/photos/pasteler0/2673622074/" title="Binary Clock III by Daniel Spillere Andrade, on Flickr"><img src="http://farm4.static.flickr.com/3253/2673622074_d5d44ea966.jpg" width="375" height="500" alt="Binary Clock III" /></a></p>
<p>Espero que gostem, qualquer coisa só comentar abaixo ou enviar um email.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.danielandrade.net/2009/12/diy-relogio-binario/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

