<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-881226244478613219</id><updated>2012-02-19T18:01:53.555-08:00</updated><title type='text'>Rod's Electronics Projects</title><subtitle type='html'>Home-made amateur opensource electronics projects.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://rodelectronics.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/881226244478613219/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://rodelectronics.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Rod</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>6</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-881226244478613219.post-4673582494359470592</id><published>2011-11-05T08:14:00.001-07:00</published><updated>2011-12-26T08:55:17.156-08:00</updated><title type='text'>Arduino based Big Countdown Timer for New Year</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-ToKW8eNEODM/TvVI-zulWbI/AAAAAAAABds/TByYlC4H_8o/s1600/IMG_8291.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="191" src="http://4.bp.blogspot.com/-ToKW8eNEODM/TvVI-zulWbI/AAAAAAAABds/TByYlC4H_8o/s320/IMG_8291.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;i&gt;The finished project at 11:39.&lt;/i&gt;&lt;/div&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="color: #6fa8dc; font-size: large;"&gt;Background:&lt;/span&gt;&lt;span style="color: #6fa8dc; font-size: large;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;I spent last new year at a relative's&amp;nbsp;apartment at the&amp;nbsp;beach, where hundreds of people gathered in the street right next to it so they could see the fireworks launched from a nearby raft at the sea.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-dh6EZIcsq5w/TvXovt3hoVI/AAAAAAAABeE/TD69S_ids5Q/s1600/IMG_5363.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="315" src="http://2.bp.blogspot.com/-dh6EZIcsq5w/TvXovt3hoVI/AAAAAAAABeE/TD69S_ids5Q/s320/IMG_5363.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;i&gt;This is what it looks like an hour before.&amp;nbsp;&lt;/i&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;i&gt;This gets so crowded at midnight that you can't see the asphalt.&lt;/i&gt;&lt;/div&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;br /&gt;It's hard to synchronize a countdown when you have hundreds of people with individual wristwatches, so what usually happens is that many of them count in groups and while a group is hugging after the new year and watching at the skies waiting for the fireworks, others are yelling "&lt;i&gt;nine!... eight!... seven!... six!...&lt;/i&gt;" &lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-iXa_p13ZWmQ/TvXqRmEvwOI/AAAAAAAABeQ/zZUh8-vSFt0/s1600/IMG_5384.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://2.bp.blogspot.com/-iXa_p13ZWmQ/TvXqRmEvwOI/AAAAAAAABeQ/zZUh8-vSFt0/s320/IMG_5384.jpg" width="290" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;i&gt;Happy new year!&lt;/i&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="color: #6fa8dc; font-size: large;"&gt;&lt;b&gt;Solution:&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;Inspired in &lt;a href="http://www.sparkfun.com/tutorials/47"&gt;Sparkfun's GPS clock&lt;/a&gt;, I decided to help all these folks to count in unison by building my own version of a big clock: hopefully simpler and designed to countdown for the new year.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="color: #6fa8dc;"&gt;1) The concept&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;So we don't need a 24h clock. A partial clock will suffice, say... something that tells the time from 11:00p to 11:58p and turns into a countdown timer for the last minute (11 turns off and the countdown starts from second 59 to 00).&lt;br /&gt;The idea of starting at 11:00 is to let everyone know that the clock is actually there.&lt;br /&gt;&lt;br /&gt;This design at saved me 6 segments and some space too.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="color: #6fa8dc;"&gt;2) The clock itself:&lt;/span&gt;&lt;/b&gt; &lt;br /&gt;Go big, readable. I used super-bright LEDs (not ultra-bright) and some transistors. I do like Ben Krasnow's &lt;a href="http://benkrasnow.blogspot.com/2011/05/how-to-design-transistor-circuit-that.html"&gt;way of dealing with transistors&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-KZihpfbKLA4/Tu6ovwjv4WI/AAAAAAAABcg/WImrC73D_iY/s1600/IMG_0607.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://4.bp.blogspot.com/-KZihpfbKLA4/Tu6ovwjv4WI/AAAAAAAABcg/WImrC73D_iY/s320/IMG_0607.jpg" width="308" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="color: #6fa8dc;"&gt;3) Controlling the clock: &lt;/span&gt;&lt;/b&gt;&lt;br /&gt;I used an Arduino and shift registers&amp;nbsp;to control the segments, you can also use two Arduinos via I2C.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="color: #6fa8dc;"&gt;4) Time accuracy:&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;I want this thing to be accurate.&amp;nbsp;The Atmega chip keeps track of time but they are not very accurate, reason why I added a &lt;a href="http://www.sparkfun.com/products/99"&gt;RealTime Clock Module&lt;/a&gt;.&lt;br /&gt;Now, in order to have the RTC set at the right time, I added &lt;a href="http://arduino.cc/playground/Main/DS1307OfTheLogshieldByMeansOfNTP"&gt;NTP Atomic Clock Synchronization&lt;/a&gt; capabilities through an &lt;a href="http://www.sparkfun.com/products/9026"&gt;Ethernet Shield&lt;/a&gt;. &lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="color: #6fa8dc;"&gt;5) The Design:&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;I couldn't think of a simpler design: Before the shift registers, I used a two-arduino approach with served me well while shift registers were not available at the local store.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-6RksGsophWQ/Tu6pQZ8ceJI/AAAAAAAABco/aP5OPxOmeBg/s1600/IMG_0603.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://2.bp.blogspot.com/-6RksGsophWQ/Tu6pQZ8ceJI/AAAAAAAABco/aP5OPxOmeBg/s320/IMG_0603.jpg" width="272" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;I considered an LCD serial display for monitoring status as well as a button for set-up purposes :&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-sWl2UkAFhAA/TrWSP0Y27xI/AAAAAAAABZk/qdJIgTXWqaU/s1600/Capture.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;br /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="color: #6fa8dc;"&gt;6) The building:&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;This design calls for portable and lightweight, so let's use these convenient cardboard box lid.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-ZLMWIhNACUo/TtRHW3HJEZI/AAAAAAAABas/GqQy4D6VP6g/s1600/IMG_7948.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" dda="true" height="245" src="http://1.bp.blogspot.com/-ZLMWIhNACUo/TtRHW3HJEZI/AAAAAAAABas/GqQy4D6VP6g/s320/IMG_7948.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-1oihFojQsoc/TtRHkaCKXfI/AAAAAAAABa0/I0gZSKo0vCA/s1600/IMG_7949.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" dda="true" height="178" src="http://4.bp.blogspot.com/-1oihFojQsoc/TtRHkaCKXfI/AAAAAAAABa0/I0gZSKo0vCA/s320/IMG_7949.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;i&gt;I had these boxes in my storage room. I borrowed 3 lids.&lt;/i&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-YhoY1-sGMv8/TtRHypKehQI/AAAAAAAABa8/_KeKo39pheU/s1600/IMG_7950.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" dda="true" height="217" src="http://3.bp.blogspot.com/-YhoY1-sGMv8/TtRHypKehQI/AAAAAAAABa8/_KeKo39pheU/s320/IMG_7950.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;i&gt;Design of the digits. I drew them proportional to a small 7 segment display, under the assumption that it will increase readability.&lt;/i&gt;&lt;/div&gt;&lt;br /&gt;Good, let's add some LEDs to this then:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-olN-hbtqgWg/TtRIE9gqxXI/AAAAAAAABbE/dskPX4vdd4w/s1600/IMG_7953.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" dda="true" height="240" src="http://4.bp.blogspot.com/-olN-hbtqgWg/TtRIE9gqxXI/AAAAAAAABbE/dskPX4vdd4w/s320/IMG_7953.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;i&gt;8 segments in place. Each segment consists of 3 LEDs&lt;/i&gt;&lt;/div&gt;&lt;br /&gt;Cool. Time to solder some wire, add current limiting resistors, some transistors and more resistors for their base. In other words, let's follow the original design!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-Fp2XX6AQQTQ/TtRIfkVI9FI/AAAAAAAABbM/QQKdAYKbc2A/s1600/IMG_7952.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" dda="true" height="240" src="http://2.bp.blogspot.com/-Fp2XX6AQQTQ/TtRIfkVI9FI/AAAAAAAABbM/QQKdAYKbc2A/s320/IMG_7952.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;i&gt;Wiring at the back. The chip at the center is a resistor array.&lt;/i&gt;&lt;/div&gt;&lt;br /&gt;How about testing the code from the Arduino?&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-ZnJ4S-JKRPk/TtRI5FNHTvI/AAAAAAAABbU/70L7pUtAmQs/s1600/IMG_7951.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" dda="true" height="320" src="http://3.bp.blogspot.com/-ZnJ4S-JKRPk/TtRI5FNHTvI/AAAAAAAABbU/70L7pUtAmQs/s320/IMG_7951.jpg" width="304" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;i&gt;First digit is complete and code sends number 3.&lt;/i&gt;&lt;/div&gt;&lt;br /&gt;Voilá! We have the first digit.&lt;br /&gt;&lt;br /&gt;And then another instance of the same digit plus a third that only does number 11, to get the project complete.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-97lIxCVBNkQ/TvXPHQTrxCI/AAAAAAAABd4/71Y42Xmnz3g/s1600/IMG_8233.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="134" src="http://1.bp.blogspot.com/-97lIxCVBNkQ/TvXPHQTrxCI/AAAAAAAABd4/71Y42Xmnz3g/s320/IMG_8233.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;i&gt;Front of the completed project, the three digits can be easily separated and piled up for easy transportation.&lt;/i&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-jguADBe9HSc/TvSZQ1RPVZI/AAAAAAAABc0/Wd1i6nV_D64/s1600/IMG_8235.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="136" src="http://1.bp.blogspot.com/-jguADBe9HSc/TvSZQ1RPVZI/AAAAAAAABc0/Wd1i6nV_D64/s320/IMG_8235.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;i&gt;Back of the unit&lt;/i&gt;&lt;/div&gt;&lt;br /&gt;Test scenario: balcony. View from ground, 8 floors below:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-cbGf4ncqvrI/TvVD9GkfiaI/AAAAAAAABdg/Nrn0tPAb-uI/s1600/IMG_8300.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="254" src="http://2.bp.blogspot.com/-cbGf4ncqvrI/TvVD9GkfiaI/AAAAAAAABdg/Nrn0tPAb-uI/s320/IMG_8300.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;i&gt;Photo Enhanced ASA800 (Canon S3IS)&lt;/i&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-FfbiHNz34RQ/TvVDHYCwsjI/AAAAAAAABdU/MqS4wj7ZFjo/s1600/IMG_8293.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="206" src="http://2.bp.blogspot.com/-FfbiHNz34RQ/TvVDHYCwsjI/AAAAAAAABdU/MqS4wj7ZFjo/s320/IMG_8293.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;i&gt;Normal Photo (ASA 100)&lt;/i&gt;&lt;/div&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="color: #6fa8dc;"&gt;7) Power:&lt;/span&gt;&lt;/b&gt; &lt;br /&gt;&lt;br /&gt;When all of the LEDs are on, consumption of the whole circuit is very low.&lt;br /&gt;This allows me to power the entire system with a 2000[mAh] 11.1[V] Lithium Polymer battery, making the clock 100% autonomous.&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/881226244478613219-4673582494359470592?l=rodelectronics.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rodelectronics.blogspot.com/feeds/4673582494359470592/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rodelectronics.blogspot.com/2011/11/new-year-countdown-timer.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/881226244478613219/posts/default/4673582494359470592'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/881226244478613219/posts/default/4673582494359470592'/><link rel='alternate' type='text/html' href='http://rodelectronics.blogspot.com/2011/11/new-year-countdown-timer.html' title='Arduino based Big Countdown Timer for New Year'/><author><name>Rod</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-ToKW8eNEODM/TvVI-zulWbI/AAAAAAAABds/TByYlC4H_8o/s72-c/IMG_8291.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-881226244478613219.post-5365003089814541608</id><published>2011-01-05T15:43:00.000-08:00</published><updated>2011-12-18T18:52:51.309-08:00</updated><title type='text'>Arduino Protoshield Mods</title><content type='html'>&lt;b&gt;&lt;i&gt;Three simple and quick modifications that will transform your protoshield to a fully functional monster.&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;1) One millimeter higher:&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Use 4 male header plastic bits. One for each of the 4 corners of the protoshield&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-f1jZA023Bns/Tu6iupOc0OI/AAAAAAAABbo/zu5THZ3-fxY/s1600/IMG_7923.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="296" src="http://1.bp.blogspot.com/-f1jZA023Bns/Tu6iupOc0OI/AAAAAAAABbo/zu5THZ3-fxY/s320/IMG_7923.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;This way, the protoshield stands a little higher than standard&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-zkRF7s0iIy4/Tu6ixdmfu-I/AAAAAAAABbw/poDeXcBXjr0/s1600/IMG_7930.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="195" src="http://2.bp.blogspot.com/-zkRF7s0iIy4/Tu6ixdmfu-I/AAAAAAAABbw/poDeXcBXjr0/s320/IMG_7930.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;But the benefits are great: You don't have to worry about shorts with the USB connector anymore.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-oKBYMtaGqvQ/Tu6izhL4RgI/AAAAAAAABb4/Qgurjwt_qJo/s1600/IMG_7928.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="240" src="http://4.bp.blogspot.com/-oKBYMtaGqvQ/Tu6izhL4RgI/AAAAAAAABb4/Qgurjwt_qJo/s320/IMG_7928.JPG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Safe distance. At the same time, the protoshield is so much easier to plug and unplug now.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-20699WzTvOQ/Tu6i04xVZ_I/AAAAAAAABcA/544xuKMj298/s1600/IMG_7931.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="286" src="http://3.bp.blogspot.com/-20699WzTvOQ/Tu6i04xVZ_I/AAAAAAAABcA/544xuKMj298/s320/IMG_7931.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;2) An LED tester&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;I don't use the BlueSmirf socket. But I connected the female headers because it provides an extra +5 and extra GND for prototyping.&amp;nbsp;&lt;br /&gt;With a single 300 Ohm resistor between GND and the centermost pin (originally unused in the Sparkfun protoshield, you will be able to use the two centermost pins to test any led: Very handy!!!&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-9VCgXtRQTsk/Tu6jbMFWDAI/AAAAAAAABcI/pNYZoRIZ9uc/s1600/IMG_7924.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="232" src="http://2.bp.blogspot.com/-9VCgXtRQTsk/Tu6jbMFWDAI/AAAAAAAABcI/pNYZoRIZ9uc/s320/IMG_7924.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;3) A Power LED on top&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;If you add a resistor to +5 &amp;nbsp;and an LED on top will serve as a Power LED on top of the protoshield. This is very handy to make sure your system is powered:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-8LNSDcnKDfc/Tu6kIgrdb1I/AAAAAAAABcQ/26mLffs8vXw/s1600/IMG_7925.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="240" src="http://2.bp.blogspot.com/-8LNSDcnKDfc/Tu6kIgrdb1I/AAAAAAAABcQ/26mLffs8vXw/s320/IMG_7925.JPG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;Enjoy!&lt;/div&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/881226244478613219-5365003089814541608?l=rodelectronics.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rodelectronics.blogspot.com/feeds/5365003089814541608/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rodelectronics.blogspot.com/2011/11/protoshield-mods.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/881226244478613219/posts/default/5365003089814541608'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/881226244478613219/posts/default/5365003089814541608'/><link rel='alternate' type='text/html' href='http://rodelectronics.blogspot.com/2011/11/protoshield-mods.html' title='Arduino Protoshield Mods'/><author><name>Rod</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-f1jZA023Bns/Tu6iupOc0OI/AAAAAAAABbo/zu5THZ3-fxY/s72-c/IMG_7923.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-881226244478613219.post-5277566163698692997</id><published>2010-12-01T15:41:00.000-08:00</published><updated>2011-11-06T18:33:46.556-08:00</updated><title type='text'>Helping hand mods</title><content type='html'>This is only a placeholder. Photos and details coming soon...&lt;br /&gt;&lt;br /&gt;How to get more help from your helping hand:&lt;br /&gt;&lt;br /&gt;1) Add more weight to the base&lt;br /&gt;&lt;br /&gt;2) Add a third hand to your third hand&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/881226244478613219-5277566163698692997?l=rodelectronics.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rodelectronics.blogspot.com/feeds/5277566163698692997/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rodelectronics.blogspot.com/2011/11/helping-hand-mods.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/881226244478613219/posts/default/5277566163698692997'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/881226244478613219/posts/default/5277566163698692997'/><link rel='alternate' type='text/html' href='http://rodelectronics.blogspot.com/2011/11/helping-hand-mods.html' title='Helping hand mods'/><author><name>Rod</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-881226244478613219.post-1711273901182313830</id><published>2010-07-29T18:35:00.000-07:00</published><updated>2011-12-18T18:56:46.181-08:00</updated><title type='text'>Atari SIO interface using a Duemilanove</title><content type='html'>How to interface your vintage Atari 130XE (800XL and others) with a laptop in order to download and play games using the laptop as a substitute for the Atari floppy disk drive.&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;b&gt;&lt;a href="http://arduino.cc/forum/index.php/topic,82793.0.html"&gt;Click here to go to Arduino Forums and see the post&lt;/a&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;img border="0" height="400" src="http://4.bp.blogspot.com/-vnmi-0I_-Nk/Tu6nnYoTmiI/AAAAAAAABcY/qGTgaKoIolk/s400/Atari.PNG" width="252" /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/881226244478613219-1711273901182313830?l=rodelectronics.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rodelectronics.blogspot.com/feeds/1711273901182313830/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rodelectronics.blogspot.com/2011/12/atari-sio-interface-using-duemilanove.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/881226244478613219/posts/default/1711273901182313830'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/881226244478613219/posts/default/1711273901182313830'/><link rel='alternate' type='text/html' href='http://rodelectronics.blogspot.com/2011/12/atari-sio-interface-using-duemilanove.html' title='Atari SIO interface using a Duemilanove'/><author><name>Rod</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-vnmi-0I_-Nk/Tu6nnYoTmiI/AAAAAAAABcY/qGTgaKoIolk/s72-c/Atari.PNG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-881226244478613219.post-6903135902430949359</id><published>2010-03-21T17:10:00.000-07:00</published><updated>2011-12-20T10:13:21.802-08:00</updated><title type='text'>Extremely simple I/O port expansion using two arduinos and I2C</title><content type='html'>Here's a simple way to expand your I/O ports using two Arduinos.&lt;br /&gt;&lt;br /&gt;I like this approach better than going for an Arduino Mega because you get to use all your smaller shields at the time it's a more affordable solution. It works flawlessly in my projects, even with other I2C devices hooked up at the same time. &lt;span class="Apple-style-span" style="color: #f1c232;"&gt;This is not as good and certainly not as cheap as using a multiplexer, shift registers, a MuxShield or so many other ways of doing this but hey, it's dead simple and will definitely save you if in need of more ports and you have more than one Atmega328 lying around.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-yTGQhdE0HXQ/Trc-i8QppuI/AAAAAAAABZ8/5LUtYCPEYJw/s1600/i2c.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="167" src="http://2.bp.blogspot.com/-yTGQhdE0HXQ/Trc-i8QppuI/AAAAAAAABZ8/5LUtYCPEYJw/s320/i2c.PNG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;i&gt;The connection diagram: two Atmel microcontrollers will be less expensive than two actual Arduino boards, just like the one in the video.&lt;/i&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;br /&gt;The connection is the same as what you would do with a standard I2C between two arduinos. I added pull-up resistors to each wire.&lt;br /&gt;&lt;div style="color: #ffe599;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="color: #ffe599;"&gt;&lt;b&gt;&lt;span class="Apple-style-span"&gt;Basically what this does is to allow the master Arduino to access the remote's I/O pins, thus, expanding its original I/O capacity. You can hook up many Arduinos in parallel expanding to more I/O pins as needed. &lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style="color: #ffe599;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="color: #ffe599;"&gt;&lt;b&gt;&lt;span class="Apple-style-span"&gt;Needless to say, this also duplicates you processing capabilities at the time it allows you to add software watchdogs for a crash-self-recover system.&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="color: yellow;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;You don't really need to use two Arduinos: You can also use a barebones ATmegas just like I did in the video tutorial if you want to keep your costs low..&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;object class="BLOGGER-youtube-video" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" data-thumbnail-src="http://3.gvt0.com/vi/lZBZ_Nco1pc/0.jpg" height="266" width="320"&gt;&lt;param name="movie" value="http://www.youtube.com/v/lZBZ_Nco1pc&amp;fs=1&amp;source=uds" /&gt;&lt;param name="bgcolor" value="#FFFFFF" /&gt;&lt;embed width="320" height="266"  src="http://www.youtube.com/v/lZBZ_Nco1pc&amp;fs=1&amp;source=uds" type="application/x-shockwave-flash"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="color: #f1c232;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;For the code, I started with "Wire Slave Receiver"&amp;nbsp;by &lt;a href="http://www.zambetti.com/"&gt;Nicholas Zambetti&lt;/a&gt; and modified it to this purpose:&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #f1c232;"&gt;&lt;b&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;b style="color: #f1c232;"&gt;The code at the Master Arduino:&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #999999; font-family: 'Courier New',Courier,monospace;"&gt;&lt;i&gt;#include &amp;lt;Wire.h&amp;gt;&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #999999; font-family: 'Courier New',Courier,monospace;"&gt;&lt;i&gt;#define LOCAL_PIN_TWO 2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Pin 2 on local &lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #999999; font-family: 'Courier New',Courier,monospace;"&gt;&lt;i&gt;#define REMOTE_PIN_TWO 102&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Pin 2 on remote &lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #999999; font-family: 'Courier New',Courier,monospace;"&gt;&lt;i&gt;#define TEMPERATURE_PROBE_PIN 103&amp;nbsp;&amp;nbsp; // Pin 3 on remote&lt;br /&gt;#define SPEAKER_PIN 104&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Pin 4 on remote&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #999999; font-family: 'Courier New',Courier,monospace;"&gt;&lt;i&gt;void setup()&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #999999; font-family: 'Courier New',Courier,monospace;"&gt;&lt;i&gt;{&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #999999; font-family: 'Courier New',Courier,monospace;"&gt;&lt;i&gt;&amp;nbsp; Wire.begin(); // join i2c bus (address optional for master)&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #999999; font-family: 'Courier New',Courier,monospace;"&gt;&lt;i&gt;}&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #999999; font-family: 'Courier New',Courier,monospace;"&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #999999; font-family: 'Courier New',Courier,monospace;"&gt;&lt;i&gt;void loop()&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #999999; font-family: 'Courier New',Courier,monospace;"&gt;&lt;i&gt;{&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #999999; font-family: 'Courier New',Courier,monospace;"&gt;&lt;i&gt;// Whenever you want to write to the other Arduino just go with something like expansionWrite(102,HIGH);&amp;nbsp;&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #999999; font-family: 'Courier New',Courier,monospace;"&gt;&lt;i&gt;// That will -for example- set the pin 2 on the second arduino to high. I used the 102 nomenclature only to differentiate the two boards. It makes it easier and avoids confusion. You will see how the exceeding 100 is substracted when the time comes.&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #999999; font-family: 'Courier New',Courier,monospace;"&gt;&lt;i&gt;}&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #999999; font-family: 'Courier New',Courier,monospace;"&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #999999; font-family: 'Courier New',Courier,monospace;"&gt;&lt;i&gt;void expansionWrite(int pin, int value)&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #999999; font-family: 'Courier New',Courier,monospace;"&gt;&lt;i&gt;{&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #999999; font-family: 'Courier New',Courier,monospace;"&gt;&lt;i&gt;&amp;nbsp; pin = pin-100; &amp;nbsp;// substracts 100 to it maps to the real ports on the expansion arduino&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #999999; font-family: 'Courier New',Courier,monospace;"&gt;&lt;i&gt;&amp;nbsp; Wire.beginTransmission(2); // transmit to device #2&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #999999; font-family: 'Courier New',Courier,monospace;"&gt;&lt;i&gt;&amp;nbsp; Wire.send(pin); &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// sends one byte stating the pin to be addressed&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #999999; font-family: 'Courier New',Courier,monospace;"&gt;&lt;i&gt;&amp;nbsp; Wire.send(value); &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// sends the value to be transmitted to the pin selected&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #999999; font-family: 'Courier New',Courier,monospace;"&gt;&lt;i&gt;&amp;nbsp; Wire.endTransmission(); &amp;nbsp; &amp;nbsp;// stop transmitting&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #999999; font-family: 'Courier New',Courier,monospace;"&gt;&lt;i&gt;}&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #f1c232;"&gt;&lt;b&gt;The code at the Slave Arduino:&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New',Courier,monospace; font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #999999; font-family: 'Courier New',Courier,monospace;"&gt;&lt;i&gt;#include &amp;lt;Wire.h&amp;gt;&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="color: #999999;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #999999; font-family: 'Courier New',Courier,monospace;"&gt;&lt;i&gt;void setup()&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #999999; font-family: 'Courier New',Courier,monospace;"&gt;&lt;i&gt;{&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #999999; font-family: 'Courier New',Courier,monospace;"&gt;&lt;i&gt;&amp;nbsp; Wire.begin(2); &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// join i2c bus with address #2&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #999999; font-family: 'Courier New',Courier,monospace;"&gt;&lt;i&gt;&amp;nbsp; Wire.onReceive(receiveEvent); // register event&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #999999; font-family: 'Courier New',Courier,monospace;"&gt;&lt;i&gt;}&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="color: #999999;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #999999; font-family: 'Courier New',Courier,monospace;"&gt;&lt;i&gt;void loop()&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #999999; font-family: 'Courier New',Courier,monospace;"&gt;&lt;i&gt;{&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #999999; font-family: 'Courier New',Courier,monospace;"&gt;&lt;i&gt;&amp;nbsp; &amp;nbsp; // Whatever. maybe nothing.&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #999999; font-family: 'Courier New',Courier,monospace;"&gt;&lt;i&gt;}&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="color: #999999;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="color: #999999; font-family: 'Courier New',Courier,monospace;"&gt;&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #999999; font-family: 'Courier New',Courier,monospace;"&gt;&lt;i&gt;void receiveEvent(int howMany)&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #999999; font-family: 'Courier New',Courier,monospace;"&gt;&lt;i&gt;{&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #999999; font-family: 'Courier New',Courier,monospace;"&gt;&lt;i&gt;&amp;nbsp; int port = Wire.receive(); &amp;nbsp; &amp;nbsp;// receive byte as an integer&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #999999; font-family: 'Courier New',Courier,monospace;"&gt;&lt;i&gt;&amp;nbsp; int value = Wire.receive(); &amp;nbsp; // receives the byte with the value&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #999999; font-family: 'Courier New',Courier,monospace;"&gt;&lt;i&gt;&amp;nbsp; digitalWrite(port,value); &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // sets the pin to the desired value&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #999999; font-family: 'Courier New',Courier,monospace;"&gt;&lt;i&gt;}&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Final Note: You can even use the second arduino for READING at the same time even it's a slave machine. The only thing you need to do is add some extra code as follows:&lt;br /&gt;&lt;br /&gt;Master requests the value on a certain pin located at the slave Arduino:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #999999; font-family: 'Courier New',Courier,monospace;"&gt;&lt;i&gt;&amp;nbsp; Wire.beginTransmission(2); // transmit to device #2&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #999999; font-family: 'Courier New',Courier,monospace;"&gt;&lt;i&gt;&amp;nbsp; Wire.requestFrom(2, 1); // Requests 1 byte from device #2&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #999999; font-family: 'Courier New',Courier,monospace;"&gt;&lt;i&gt;&amp;nbsp; auxiliary_power_status = Wire.receive();&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #999999; font-family: 'Courier New',Courier,monospace;"&gt;&lt;i&gt;&amp;nbsp; Wire.endTransmission(); &amp;nbsp; &amp;nbsp;// stop transmitting&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Then the slave needs something like this:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #999999; font-family: 'Courier New',Courier,monospace;"&gt;&lt;i&gt;void setup()&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #999999; font-family: 'Courier New',Courier,monospace;"&gt;&lt;i&gt;{&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #999999; font-family: 'Courier New',Courier,monospace;"&gt;&lt;i&gt;&amp;nbsp; &amp;nbsp; Wire.onRequest(requestEvent); // register event&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #999999; font-family: 'Courier New',Courier,monospace;"&gt;&lt;i&gt;}&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;and somewhere else in your code something like this:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #999999; font-family: 'Courier New',Courier,monospace;"&gt;&lt;i&gt;void requestEvent()&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #999999; font-family: 'Courier New',Courier,monospace;"&gt;&lt;i&gt;{&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #999999; font-family: 'Courier New',Courier,monospace;"&gt;&lt;i&gt;&amp;nbsp; byte&amp;nbsp;variable_name = digitalRead(pin_of_your_choice);&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #999999; font-family: 'Courier New',Courier,monospace;"&gt;&lt;i&gt;&amp;nbsp; Wire.send(variable_name); // respond with message of 1 byte as expected from Master&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #999999; font-family: 'Courier New',Courier,monospace;"&gt;&lt;i&gt;}&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://hackaday.com/2011/11/08/a-simple-method-for-expanding-arduino-io-capacity/"&gt;&lt;img border="0" ida="true" src="http://2.bp.blogspot.com/-hIGFTfNcWjA/TrqSEeEO8zI/AAAAAAAABak/T-MVgtM2YIE/s1600/untitled.bmp" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/881226244478613219-6903135902430949359?l=rodelectronics.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rodelectronics.blogspot.com/feeds/6903135902430949359/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rodelectronics.blogspot.com/2010/03/expand-io-ports-with-another-arduino.html#comment-form' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/881226244478613219/posts/default/6903135902430949359'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/881226244478613219/posts/default/6903135902430949359'/><link rel='alternate' type='text/html' href='http://rodelectronics.blogspot.com/2010/03/expand-io-ports-with-another-arduino.html' title='Extremely simple I/O port expansion using two arduinos and I2C'/><author><name>Rod</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-yTGQhdE0HXQ/Trc-i8QppuI/AAAAAAAABZ8/5LUtYCPEYJw/s72-c/i2c.PNG' height='72' width='72'/><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-881226244478613219.post-3314788853757905180</id><published>2010-01-31T07:26:00.000-08:00</published><updated>2011-12-18T19:10:11.076-08:00</updated><title type='text'>About me</title><content type='html'>2010: I am not 40 yet, but getting closer.&lt;br /&gt;&lt;br /&gt;I am an Civil Engineer in Informatics.I am no EE, however electronics have been a hobby since I was 8. Please bear that in mind, because it means that the information posted here could be inaccurate from an EE perspective.&lt;br /&gt;&lt;br /&gt;Formal engineering studies helped me out to understand the basics of electronics and has allowed me to build some simple projects providing hours and hours of fun.At the age of 20, I stepped away from electronics mainly because of life-changing priorities like family, studies, other hobbies, sports and work in business-related areas.&lt;br /&gt;&lt;br /&gt;....But, something changed dramatically not too long ago: while browsing the web looking some information about servos for my remote control helicopters, I bumped -by accident- into this video from Marc Devinck:  &lt;a href="http://www.youtube.com/watch?v=FKj9jJgj8Pc"&gt;How-To Tuesday: Arduino 101 potentiometers and servos&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;It was late October of 2009, so the Arduino Duemilanove was the model out there. "&lt;i&gt;Did I just find a board you can program in C with several digital and analog input output pins to play with?&lt;/i&gt;" I thought.&amp;nbsp;The idea blew my mind.&lt;br /&gt;&lt;br /&gt;Hours after, I learned more about Arduinos, the &lt;a href="http://twitter.com/#!/arduinoteam"&gt;Italian/Spanish/American team&lt;/a&gt; behind it, the &lt;a href="http://shieldlist.org/"&gt;shields&lt;/a&gt; and of course after a couple days, I had one in my hand (I was lucky enough to find a store that carried them, right where I lived).&lt;br /&gt;&lt;br /&gt;So that's the start. I'll never forget that day in where the Arduino opened a huge door to hours of fun right in front of me without even knowing it.&lt;br /&gt;&lt;br /&gt;****&lt;br /&gt;&lt;br /&gt;Of course many other people came into the teaching-dance without noticing, so after a 2+ year of continuous learning, I'll start by thanking the people who contributes to the OpenSource Hardware community, spreading the knowledge for free:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Massimo Banzi, David Cuartielles, Tom Igoe, Gianluca Martino, and David Mellis for putting together such an awesome environment.&lt;/li&gt;&lt;li&gt;&lt;a href="http://makeprojects.com/User/Contributions/11/Marc+de+Vinck"&gt;Marc de Vinck&lt;/a&gt;&amp;nbsp;: for his cool videos. It all started right there.&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.sparkfun.com/"&gt;Sparkfun&lt;/a&gt; : Nate, Rob, everyone: Such a cool job and such a relevant role to bring electronics to regular people. Most of my lab tools and parts comes from there.&lt;/li&gt;&lt;li&gt;&lt;a href="http://blog.makezine.com/archive/author/collin_cunningham_1"&gt;Collin Cunningham&lt;/a&gt; : for putting great sense of humor and great music into his teaching. I've seen them all man.&lt;/li&gt;&lt;li&gt;Phil Torrone and LadyAda from &lt;a href="http://www.adafruit.com/"&gt;Adafruit&lt;/a&gt; : I rarely miss an &lt;a href="http://www.adafruit.com/ask"&gt;AAE&lt;/a&gt; show as [ChileanRegulator].&lt;/li&gt;&lt;li&gt;The people behind &lt;a href="http://fritzing.org/"&gt;Fritzing&lt;/a&gt;. What a great piece of project design software.&lt;/li&gt;&lt;li&gt;The people behind &lt;a href="http://hackaday.com/"&gt;Hack A Day&lt;/a&gt;. Every morning goes like this: Coffe, HaD, then the newspaper.&lt;/li&gt;&lt;li&gt;Guys at &lt;a href="http://www.pachube.com/"&gt;Pachube&lt;/a&gt;. I think I was one of the early adopters. Incredible project, extremely useful. My &lt;a href="https://pachube.com/feeds/8483"&gt;Home Automation Project&lt;/a&gt; was listed for several months at Pachube as the second most popular! I'm honored.&lt;/li&gt;&lt;li&gt;The entire Make Magazine team.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/881226244478613219-3314788853757905180?l=rodelectronics.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rodelectronics.blogspot.com/feeds/3314788853757905180/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rodelectronics.blogspot.com/2011/11/about-me.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/881226244478613219/posts/default/3314788853757905180'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/881226244478613219/posts/default/3314788853757905180'/><link rel='alternate' type='text/html' href='http://rodelectronics.blogspot.com/2011/11/about-me.html' title='About me'/><author><name>Rod</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
