<?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>Mon, 29 Mar 2010 19:54:36 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</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 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]]></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>
<p><code><br />
/*<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</p>
<p>http://creativecommons.org/license/cc-gpl</p>
<p>*/</p>
<p>int second=0, minute=0, hour=0; //start the time on 00:00:00<br />
int munit,hunit,valm=0,valh=0,ledstats,i;</p>
<p>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);</p>
<p>pinMode(0, INPUT);<br />
}</p>
<p>void loop() {</p>
<p>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</p>
<p>if (millis() - lastTick >= 1000) {<br />
	lastTick = millis();<br />
	second++;</p>
<p>}</p>
<p>// move forward one minute every 60 seconds<br />
	if (second >= 60) {<br />
	minute++;<br />
	second = 0; // reset seconds to zero<br />
}</p>
<p>// move forward one hour every 60 minutes<br />
if (minute >=60) {<br />
	hour++;<br />
	minute = 0; // reset minutes to zero<br />
}</p>
<p>if (hour >=24) {<br />
	hour=0;<br />
	minute = 0; // reset minutes to zero<br />
}</p>
<p>	munit = minute%10; //sets the variable munit and hunit for the unit digits<br />
	hunit = hour%10;</p>
<p>	ledstats = digitalRead(0);  // read input value, for setting leds off, but keeping count<br />
	if (ledstats == LOW) {</p>
<p>	for(i=1;i< =13;i++){<br />
	digitalWrite(i, LOW);}</p>
<p>	} else  {</p>
<p>	//minutes units<br />
	if(munit == 1 || munit == 3 || munit == 5 || munit == 7 || munit == 9) {  digitalWrite(1, HIGH);} else {  digitalWrite(1,LOW);}<br />
	if(munit == 2 || munit == 3 || munit == 6 || munit == 7) {digitalWrite(2, HIGH);} else {digitalWrite(2,LOW);}<br />
	if(munit == 4 || munit == 5 || munit == 6 || munit == 7) {digitalWrite(3, HIGH);} else {digitalWrite(3,LOW);}<br />
	if(munit == 8 || munit == 9) {digitalWrite(4, HIGH);} else {digitalWrite(4,LOW);}</p>
<p>	//minutes<br />
	if((minute >= 10 &#038;&#038; minute < 20) || (minute >= 30 &#038;&#038; minute < 40) || (minute >= 50 &#038;&#038; minute < 60))  {digitalWrite(5, HIGH);} else {digitalWrite(5,LOW);}<br />
	if(minute >= 20 &#038;&#038; minute < 40)  {digitalWrite(6, HIGH);} else {digitalWrite(6,LOW);}<br />
	if(minute >= 40 &#038;&#038; minute < 60) {digitalWrite(7, HIGH);} else {digitalWrite(7,LOW);}</p>
<p>	//hour units<br />
	if(hunit == 1 || hunit == 3 || hunit == 5 || hunit == 7 || hunit == 9) {digitalWrite(8, HIGH);} else {digitalWrite(8,LOW);}<br />
	if(hunit == 2 || hunit == 3 || hunit == 6 || hunit == 7) {digitalWrite(9, HIGH);} else {digitalWrite(9,LOW);}<br />
	if(hunit == 4 || hunit == 5 || hunit == 6 || hunit == 7) {digitalWrite(10, HIGH);} else {digitalWrite(10,LOW);}<br />
	if(hunit == 8 || hunit == 9) {digitalWrite(11, HIGH);} else {digitalWrite(11,LOW);}</p>
<p>	//hour<br />
	if(hour >= 10 &#038;&#038; hour < 20)  {digitalWrite(12, HIGH);} else {digitalWrite(12,LOW);}<br />
	if(hour >= 20 &#038;&#038; hour < 24)  {digitalWrite(13, HIGH);} else {digitalWrite(13,LOW);}</p>
<p>	}</p>
<p>	valm = analogRead(0);    // add one minute when pressed<br />
	 if(valm&lt;800) {<br />
	 minute++;<br />
	 second=0;<br />
	 delay(250);<br />
	}</p>
<p>	valh = analogRead(5);    // add one hour when pressed<br />
	 if(valh&lt;800) {<br />
	 hour++;<br />
	 second=0;<br />
	 delay(250);<br />
	}</p>
<p>}</p>
<p></code></p>
<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>0</slash:comments>
		</item>
	</channel>
</rss>
