<?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>gonium.net &#187; arduino</title>
	<atom:link href="http://gonium.net/md/tag/arduino/feed/" rel="self" type="application/rss+xml" />
	<link>http://gonium.net/md</link>
	<description>so much time, so little to do.</description>
	<lastBuildDate>Fri, 30 Jul 2010 13:47:27 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>DCF77 Radio Receiver &#8211; Filter Signals</title>
		<link>http://gonium.net/md/2009/09/16/dcf77-radio-receiver-filter-signals/</link>
		<comments>http://gonium.net/md/2009/09/16/dcf77-radio-receiver-filter-signals/#comments</comments>
		<pubDate>Wed, 16 Sep 2009 15:36:46 +0000</pubDate>
		<dc:creator>md</dc:creator>
				<category><![CDATA[arduino]]></category>
		<category><![CDATA[digital]]></category>
		<category><![CDATA[english]]></category>
		<category><![CDATA[nerdism]]></category>
		<category><![CDATA[dcf77]]></category>
		<category><![CDATA[microcontroller]]></category>

		<guid isPermaLink="false">http://gonium.net/md/?p=157</guid>
		<description><![CDATA[
I live close to the DCF77 radio transmitter, so my signal was always pretty strong and clear. This is of course not the case for everybody :-) Gwen Roelants did run into problems. He writes:

Although your code works (thanks for that!) it looked like it was very sensitive to how the antenna was positioned.
I found [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://gonium.net/md/wp-content/uploads/2009/09/3307744005_240347734f.jpg" alt="Broadcast Tower" title="Broadcast Tower" width="333" height="500" class="alignnone size-full wp-image-158" /></p>
<p>I live close to the DCF77 radio transmitter, so my signal was always pretty strong and clear. This is of course not the case for everybody :-) Gwen Roelants did run into problems. He writes:</p>
<blockquote><p>
Although your code works (thanks for that!) it looked like it was very sensitive to how the antenna was positioned.<br />
I found that I did receive a signal every second, but that for the longer signals, I sometimes got a short flash interrupting it, causing the library to add 2 seconds instead of one. Since I got such a flash in almost every minute it could take a very long time before a proper sync was found, and because 2 seconds were counted the time would also drift during the time no new signal could be decoded.<br />
I found a rather simple fix for your code that greatly improved the reliability and time to find a correct signal.
</p></blockquote>
<p>I don&#8217;t have an Arduino around so I did not test it, but the proposed changes seem to be reasonable. You can find the changes <a href="http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1252842755">in the Arduino forums</a>. Thanks, Gwen!</p>
<p>The photo was CCed on flickr by <a href="http://www.flickr.com/photos/nathangibbs/3307744005/">Nathan Gibbs</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://gonium.net/md/2009/09/16/dcf77-radio-receiver-filter-signals/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tweaking the code</title>
		<link>http://gonium.net/md/2007/04/18/tweaking-the-code/</link>
		<comments>http://gonium.net/md/2007/04/18/tweaking-the-code/#comments</comments>
		<pubDate>Wed, 18 Apr 2007 14:54:47 +0000</pubDate>
		<dc:creator>md</dc:creator>
				<category><![CDATA[arduino]]></category>
		<category><![CDATA[digital]]></category>
		<category><![CDATA[english]]></category>
		<category><![CDATA[ATMega]]></category>
		<category><![CDATA[clock]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[dcf77]]></category>

		<guid isPermaLink="false">http://gonium.net/md/2007/04/18/tweaking-the-code/</guid>
		<description><![CDATA[


Thanks to Lasse Lambrecht, I can release a new version of the DCF77 code &#8211; now you can run it on the ATMega168-based Arduinos.



The ATMega8 differs slightly from the ATMega48/88/168-series: The latter chips have an extended Timer2-hardware and therefore need different initializations. Lasse send me a nice adjustment of the code, basically he uses preprocessor [...]]]></description>
			<content:encoded><![CDATA[<img src='http://gonium.net/md/wp-content/uploads/2007/04/tweaking.png' alt='tweaking.png' />
<br />

<p>Thanks to <a href="http://www.lobl.de">Lasse Lambrecht</a>, I can release a new version of the DCF77 code &#8211; now you can run it on the ATMega168-based Arduinos.</p>

<span id="more-55"></span>

The ATMega8 differs slightly from the ATMega48/88/168-series: The latter chips have an extended Timer2-hardware and therefore need different initializations. Lasse send me a nice adjustment of the code, basically he uses preprocessor flags to figure out which initialization commands to use:


#ifdef ATMEGA168
  TCCR2B |= (1< <CS22);    // turn on CS22 bit
  TCCR2B &#038;= ~((1<<CS21) | (1<<CS20));    // turn off CS21 and CS20 bits   
#else
  TCCR2 |= (1<<CS22);    // turn on CS22 bit
  TCCR2 &#038;= ~((1<<CS21) | (1<<CS20));    // turn off CS21 and CS20 bits   
#endif
  // Use normal mode
#ifdef ATMEGA168
  TCCR2A &#038;= ~((1<<WGM21) | (1<<WGM20));   // turn off WGM21 and WGM20 bits 
  TCCR2B &#038;= ~(1<<WGM22);                  // turn off WGM22
#else
  TCCR2 &#038;= ~((1<<WGM21) | (1<<WGM20));   // turn off WGM21 and WGM20 bits 
#endif
  // Use internal clock - external clock not used in Arduino
  ASSR |= (0<<AS2);
#ifdef ATMEGA168
  TIMSK2 |= (1<<TOIE2) | (0<<OCIE2A);        //Timer2 Overflow Interrupt Enable  
#else
  TIMSK |= (1<<TOIE2) | (0<<OCIE2);        //Timer2 Overflow Interrupt Enable  
#endif


As you can see, the avr-libc just defines other names, e.g. TCCR2A/B for the ATMega168 and TCCR2 for the ATMega8.

You can get the new code here
<ul>
	<li><a href="http://gonium.net/media/arduino-dcf77-clock-0.2.1.tar.bz">arduino-dcf77-clock-0.2.1.tar.bz</a></li>


For the hardware setup, please refer to my <a href="http://gonium.net/md/2006/11/05/arduino-dcf77-radio-clock-receiver/">initial post</a>.

]]></content:encoded>
			<wfw:commentRss>http://gonium.net/md/2007/04/18/tweaking-the-code/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>Using mySmartUSB programmer on Mac OS X</title>
		<link>http://gonium.net/md/2007/02/04/using-mysmartusb-programmer-on-mac-os-x/</link>
		<comments>http://gonium.net/md/2007/02/04/using-mysmartusb-programmer-on-mac-os-x/#comments</comments>
		<pubDate>Sun, 04 Feb 2007 18:25:25 +0000</pubDate>
		<dc:creator>md</dc:creator>
				<category><![CDATA[arduino]]></category>
		<category><![CDATA[deutsch]]></category>
		<category><![CDATA[english]]></category>
		<category><![CDATA[mac]]></category>
		<category><![CDATA[microcontroller]]></category>
		<category><![CDATA[programmer]]></category>

		<guid isPermaLink="false">http://gonium.net/md/2007/02/04/using-mysmartusb-programmer-on-mac-os-x/</guid>
		<description><![CDATA[
During the upgrade of my Arduino, I used the mySmartUSB programmer &#8211; initially on my Windows box, but since it&#8217;s USB and it mimics the AVR910 protocol, you can use it with avrdude on your Mac. Here&#8217;s how.

Note: This currently only works for PowerPC-based Macs. Silicon Laboratories is not able to get a Intel Mac [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://gonium.net/md/wp-content/uploads/2007/02/mySmartUSB.jpg" alt="mySmartUSB in Action" /></p>
<p>During the upgrade of my Arduino, I used the mySmartUSB programmer &#8211; initially on my Windows box, but since it&#8217;s USB and it mimics the AVR910 protocol, you can use it with avrdude on your Mac. Here&#8217;s how.</p>
<p><span id="more-40"></span></p>
<p><strong>Note: </strong>This currently only works for PowerPC-based Macs. Silicon Laboratories is not able to get a Intel Mac driver out &#8211; see 	<a href="http://www.surveyor.com/cgi-bin/yabb2/YaBB.pl?num=1161916754/4">http://www.surveyor.com/cgi-bin/yabb2/YaBB.pl?num=1161916754/4</a></p>
<p>First of all, you need to install the USB driver for the chipset used in the programmer &#8211; it&#8217;s a <a href="http://www.silabs.com/public/documents/tpub_doc/dsheet/Microcontrollers/Interface/en/cp2102.pdf">CP2102</a> from Silicon Laboratories. You can download a driver from <a href="http://www.chip45.com/index.pl?page=Crumb128_Downloads&#038;lang=de">chip45</a>. So go ahead and download it. Once it is installed, plug in the programmer. A file<br />
<code>
<pre>
/dev/cu.SLAB_USBtoUART
</pre>
<p></code><br />
shows up &#8211; this is the USB-to-UART device that you can use with avrdude.I installed the latter using <a href="http://www.macports.org/">Macports</a>, if you install it from another source, please make sure it is at least v5.3 &#8211; older versions do AFAIK not support the ATMega168.</p>
<p>By default, the avrdude.conf does not contain the right device code for the AVR910 protocol. Open /opt/local/etc/avrdude.conf and make sure the following line is in the ATMega168 definition:<br />
<code>
<pre>
avr910_devcode = 0x06;
</pre>
<p></code></p>
<p>When everything is set, you can use the command<br />
<code>
<pre>
avrdude -p m168 -P /dev/cu.SLAB_USBtoUART -c avr910 -t -u
</pre>
<p></code><br />
to get to avrdude&#8217;s terminal mode &#8211; you can use e.g. &#8217;sig&#8217; to print the signature of your ATMega chip.</p>
<p>You can buy the mySmartUSB programmer from <a href="http://myavr.de/shop/artikel.php?artID=42">myAVR</a> &#8211; currently, it costs EUR 28,-.</p>
]]></content:encoded>
			<wfw:commentRss>http://gonium.net/md/2007/02/04/using-mysmartusb-programmer-on-mac-os-x/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Arduino on Steroids</title>
		<link>http://gonium.net/md/2007/01/23/arduino-on-steroids/</link>
		<comments>http://gonium.net/md/2007/01/23/arduino-on-steroids/#comments</comments>
		<pubDate>Tue, 23 Jan 2007 21:46:29 +0000</pubDate>
		<dc:creator>md</dc:creator>
				<category><![CDATA[arduino]]></category>
		<category><![CDATA[english]]></category>
		<category><![CDATA[ATMega]]></category>
		<category><![CDATA[microcontroller]]></category>
		<category><![CDATA[programmer]]></category>
		<category><![CDATA[upgrade]]></category>

		<guid isPermaLink="false">http://gonium.net/md/2007/01/23/arduino-on-steroids/</guid>
		<description><![CDATA[
I just upgraded by little Arduino to the ATMega168 &#8211; and basically doubled the memory. But, be warned: This is not a hassle-free procedure if you have not some experience with microcontrollers.

I bought a cheap serial programmer &#8211; only to figure out that the firmware is outdated and the ATMega168 is not supported. You can [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://gonium.net/md/wp-content/uploads/2007/01/steroids.jpg" alt="steroids" /></p>
<p>I just upgraded by little <a href="http://arduino.cc">Arduino</a> to the ATMega168 &#8211; and basically doubled the memory. But, be warned: This is not a hassle-free procedure if you have not some experience with microcontrollers.</p>
<p><span id="more-38"></span></p>
<p>I bought a cheap serial programmer &#8211; only to figure out that the firmware is outdated and the ATMega168 is not supported. You <strong>can</strong> update the firmware &#8211; but you need another programmer for this *grmp*. So I bought a not-so-cheap <a href="http://myavr.de/shop/artikel.php?artID=42">mySmartUSB</a> which runs over USB  (so there is a chance it will work on the mac, I already found a driver for the USB chipset &#8211; stay tuned.)</p>
<p>Today, most programmers come with a 10-pin header (aka Kanda connector), but the Arduino uses the old 6-pin ICSP header. I soldered a converter to solve this. Once I succeeded with the electrical connection, I failed in using avrdude &#8211; programming went fine, but I wasn&#8217;t able to set the fuse bits. Finally, I have found <a href="http://esnips.com/doc/097ac1df-278b-4f58-a6e4-740b2ace8397/AvrOspII_400">AvrOspII</a> which worked perfectly on my Windows box. Please read <a href="http://wolfpaulus.com/journal/embedded/arduino2.html">Wolf Paulus&#8217; description</a> to save yourself a lot of time (and broken ATMegas) &#8211; he has written a great article about the fuse settings.</p>
<p>If you&#8217;re interested in a pre-flashed Arduino, send me an email.</p>
<p>PS: picture CC&#8217;ed by opk on <a href="http://flickr.com/photos/opk/57802157/">flickr</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://gonium.net/md/2007/01/23/arduino-on-steroids/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Arduino DCF77 v0.2 released</title>
		<link>http://gonium.net/md/2007/01/06/arduino-dcf77-v02-released/</link>
		<comments>http://gonium.net/md/2007/01/06/arduino-dcf77-v02-released/#comments</comments>
		<pubDate>Sat, 06 Jan 2007 22:52:15 +0000</pubDate>
		<dc:creator>md</dc:creator>
				<category><![CDATA[arduino]]></category>
		<category><![CDATA[english]]></category>
		<category><![CDATA[clock]]></category>
		<category><![CDATA[dcf77]]></category>
		<category><![CDATA[microcontroller]]></category>

		<guid isPermaLink="false">http://gonium.net/md/2007/01/06/arduino-dcf77-v02-released/</guid>
		<description><![CDATA[
The sketch for decoding the time radio signal DCF77 is greatly improved: I use interrupts for handling the signal and a backup timer has been added.

Note that there is no interface at the moment, the time is simply put to the serial line. But it should be easy to add a display to show the [...]]]></description>
			<content:encoded><![CDATA[<p><img id="image35" src="http://gonium.net/md/wp-content/uploads/2007/01/457-nixie.jpg" alt="4:57 nixietube clock" /></p>
<p>The sketch for decoding the time radio signal DCF77 is greatly improved: I use interrupts for handling the signal and a backup timer has been added.</p>
<p><span id="more-34"></span></p>
<p>Note that there is no interface at the moment, the time is simply put to the serial line. But it should be easy to add a display to show the time. The sketch eats roughly 6000 bytes of memory &#8211; if you want to add a user interface, you should consider buying a 16 kb Arduino ;-)</p>
<p>Of course, you also need the DCF77 receiver module and a pullup-resistor, as described in my <a href="http://gonium.net/md/2006/11/05/arduino-dcf77-radio-clock-receiver/">old post</a>.</p>
<p>You can download the code here:</p>
<ul>
<li><a href="http://gonium.net/media/arduino-dcf77-clock-0.2.0.tar.bz">arduino-dcf77-clock-0.2.0.tar.bz</a></li>
</ul>
<p>BTW: The picture above shows a Nixie tube clock. I ripped the picture shamelessly from flickr, there&#8217;s a <a href="http://flickr.com/photos/thephoton/sets/72057594111675418/">photostream</a> showing the creation of the clock. Cool project.</p>
]]></content:encoded>
			<wfw:commentRss>http://gonium.net/md/2007/01/06/arduino-dcf77-v02-released/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>Arduino Timer Interrupt</title>
		<link>http://gonium.net/md/2006/12/23/arduino-timer-interrupt/</link>
		<comments>http://gonium.net/md/2006/12/23/arduino-timer-interrupt/#comments</comments>
		<pubDate>Sat, 23 Dec 2006 22:12:02 +0000</pubDate>
		<dc:creator>md</dc:creator>
				<category><![CDATA[arduino]]></category>
		<category><![CDATA[digital]]></category>
		<category><![CDATA[english]]></category>
		<category><![CDATA[ATMega]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[microcontroller]]></category>

		<guid isPermaLink="false">http://gonium.net/md/2006/12/23/arduino-timer-interrupt/</guid>
		<description><![CDATA[Continuing my interrupt experiments, I wrote a little sketch to print the seconds since startup to serial. But: Something is wrong&#8230;

I use the Timer2 of the ATMega8. It consists of a 8 bit counter which is automatically increased. When an overflow occurs, the interrupt routine TIMER2_OVF_vect is called.
This is the code:


#include < avr / interrupt.h [...]]]></description>
			<content:encoded><![CDATA[<p>Continuing my interrupt experiments, I wrote a little sketch to print the seconds since startup to serial. But: Something is wrong&#8230;<br />
<span id="more-32"></span><br />
I use the Timer2 of the ATMega8. It consists of a 8 bit counter which is automatically increased. When an overflow occurs, the interrupt routine TIMER2_OVF_vect is called.</p>
<p>This is the code:</p>
<pre>
<code>
#include < avr / interrupt.h >
#include < avr / io.h >

#define INIT_TIMER_COUNT 0
#define RESET_TIMER2 TCNT2 = INIT_TIMER_COUNT

int ledPin = 13;
int int_counter = 0;
volatile int second = 0;
int oldSecond = 0;

// Aruino runs at 16 Mhz, so we have 61 Overflows per second...
// 1/ ((16000000 / 1024) / 256) = 1 / 61
ISR(TIMER2_OVF_vect) {
  int_counter += 1;
  if (int_counter == 61) {
    second+=1;
    int_counter = 0;
  }
};

void setup() {
  Serial.begin(9600);
  Serial.println("Initializing timerinterrupt");
  //Timer2 Settings:  Timer Prescaler /1024
  TCCR2 |= ((1 < < CS22) | (1 << CS21) | (1 << CS20));
  //Timer2 Overflow Interrupt Enable
  TIMSK |= (1 << TOIE2);
  RESET_TIMER2;
  sei();
}

void loop() {
  if (oldSecond != second) {
    Serial.print(second);
    Serial.println(".");
    oldSecond = second;
  }
}
</code>
</code></pre>
<p>Unfortunately, the counter is not increased every second but every three seconds. I need to investigate this. Anyway, it seems to be more reasonable to use the CTC mode (clear-timer-on-compare-match). I need to read the datasheet ;-)</p>
]]></content:encoded>
			<wfw:commentRss>http://gonium.net/md/2006/12/23/arduino-timer-interrupt/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Handling external Interrupts with Arduino</title>
		<link>http://gonium.net/md/2006/12/20/handling-external-interrupts-with-arduino/</link>
		<comments>http://gonium.net/md/2006/12/20/handling-external-interrupts-with-arduino/#comments</comments>
		<pubDate>Wed, 20 Dec 2006 21:11:53 +0000</pubDate>
		<dc:creator>md</dc:creator>
				<category><![CDATA[arduino]]></category>
		<category><![CDATA[digital]]></category>
		<category><![CDATA[english]]></category>
		<category><![CDATA[nerdism]]></category>
		<category><![CDATA[interrupt]]></category>
		<category><![CDATA[microcontroller]]></category>

		<guid isPermaLink="false">http://gonium.net/md/2006/12/20/handling-external-interrupts-with-arduino/</guid>
		<description><![CDATA[
For my DCF77 clock project, I need an understanding of handling interrupts with the ATMega8 chip &#8211; here&#8217;s my sketch.

The ATMega8 provides two pins (2 and 3) which can trigger software interrupts when the attached digital signal changes. You can use this to be &#8220;notified&#8221; when the external signal changes. Therefore, you do not need [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://gonium.net/md/wp-content/uploads/2006/12//arduino-interrupt.jpg" border="0" height="300" width="400" alt="arduino-interrupt.jpg" align="" /></p>
<p>For my DCF77 clock project, I need an understanding of handling interrupts with the ATMega8 chip &#8211; here&#8217;s my sketch.<br />
<span id="more-31"></span><br />
The ATMega8 provides two pins (2 and 3) which can trigger software interrupts when the attached digital signal changes. You can use this to be &#8220;notified&#8221; when the external signal changes. Therefore, you do not need to poll the pin periodically &#8211; the interrupt routine will be invoked automatically when the specified signal change happens.</p>
<p>In my case, I want to be notified when the DCF77 signal changes, so I need a simple way to exchange the current value of the pin. Here is the sketch:</p>
<pre>
<code>
// Definition of interrupt names
#include < avr/io.h >
// ISR interrupt service routine
#include < avr/interrupt.h >
</code>
<code>
// LED connected to digital pin 13
int ledPin = 13;
// This is the INT0 Pin of the ATMega8
int sensePin = 2;
// We need to declare the data exchange
// variable to be volatile - the value is
// read from memory.
volatile int value = 0;
</code><code>
// Install the interrupt routine.
ISR(INT0_vect) {
  // check the value again - since it takes some time to
  // activate the interrupt routine, we get a clear signal.
  value = digitalRead(sensePin);
}
</code>
<code>
void setup() {
  Serial.begin(9600);
  Serial.println("Initializing ihandler");
  // sets the digital pin as output
  pinMode(ledPin, OUTPUT);
  // read from the sense pin
  pinMode(sensePin, INPUT);
  Serial.println("Processing initialization");
  // Global Enable INT0 interrupt
  GICR |= ( 1 < < INT0);
  // Signal change triggers interrupt
  MCUCR |= ( 1 << ISC00);
  MCUCR |= ( 0 << ISC01);
  Serial.println("Finished initialization");
}
</code></code><code>
void loop() {
  if (value) {
    Serial.println("Value high!");
    digitalWrite(ledPin, HIGH);
  } else {
    Serial.println("Value low!");
    digitalWrite(ledPin, LOW);
  }
  delay(100);
}
</code>
</pre>
<p>In the main loop, the value gets interpreted, but not read. This happens in the interrupt handler routine. The routine is installed with the avrgcc preprocessor macro &#8220;ISR&#8221; &#8211; this way, we do not need to fiddle with the interrupt vector directly. During the setup function, be careful to initialize the ATMega8 correctly &#8211; in this case, we need to enable the INT0 interrupt. With the MCUCR register, we can change the way the interrupt gets triggered &#8211; here, we receive an interrupt when the signal changes in both directions (HIGH -> LOW and LOW -> HIGH).</p>
<p>The wiring for the testing is rather simple: Use a breadboard and power it from the Arduino. Connect a pull-up resistor to positive and the other end to pin 2 of your Arduino. Connect an additional cable from the &#8220;other end&#8221; of the resistor to negative. If you pull the latter cable from negative, the current on pin 2 will go to HIGH, if you reconnect it to negative, it will go to LOW. You could also use a switch, of course ;-)</p>
<p>If you speak german, I highly recommend the &#8220;<a href="http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial">AVR-GCC Tutorial</a>&#8221; of mikrocontroller.net.</p>
]]></content:encoded>
			<wfw:commentRss>http://gonium.net/md/2006/12/20/handling-external-interrupts-with-arduino/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Webmontag Talk: Hardware Hacking mit Arduino</title>
		<link>http://gonium.net/md/2006/11/19/webmontag-talk-morgen/</link>
		<comments>http://gonium.net/md/2006/11/19/webmontag-talk-morgen/#comments</comments>
		<pubDate>Sun, 19 Nov 2006 21:31:17 +0000</pubDate>
		<dc:creator>md</dc:creator>
				<category><![CDATA[digital]]></category>
		<category><![CDATA[presentation]]></category>
		<category><![CDATA[arduino]]></category>
		<category><![CDATA[microcontroller]]></category>
		<category><![CDATA[slides]]></category>
		<category><![CDATA[talk]]></category>

		<guid isPermaLink="false">http://gonium.net/md/2006/11/19/webmontag-talk-morgen/</guid>
		<description><![CDATA[
Arduino wird morgen mein Thema sein. Die Slideshow gibt es schonmal vorab.


Arduino Intro (PDF)

]]></description>
			<content:encoded><![CDATA[<p><img src="http://gonium.net/md/wp-content/uploads/2006/11//ArduinoIntroPic.005.jpg" border="0" height="300" width="400" alt="ArduinoIntroPic.005.jpg" align="" /></p>
<p><a href="http://arduino.cc">Arduino</a> wird morgen mein Thema sein. Die Slideshow gibt es schonmal vorab.</p>
<p><span id="more-27"></span></p>
<ul>
<li><a href="http://gonium.net/media/ArduinoIntro.pdf">Arduino Intro (PDF)</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://gonium.net/md/2006/11/19/webmontag-talk-morgen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Arduino DCF77 radio clock receiver</title>
		<link>http://gonium.net/md/2006/11/05/arduino-dcf77-radio-clock-receiver/</link>
		<comments>http://gonium.net/md/2006/11/05/arduino-dcf77-radio-clock-receiver/#comments</comments>
		<pubDate>Sun, 05 Nov 2006 20:31:08 +0000</pubDate>
		<dc:creator>md</dc:creator>
				<category><![CDATA[arduino]]></category>
		<category><![CDATA[digital]]></category>
		<category><![CDATA[english]]></category>
		<category><![CDATA[nerdism]]></category>
		<category><![CDATA[ATMega]]></category>
		<category><![CDATA[dcf77]]></category>
		<category><![CDATA[microcontroller]]></category>

		<guid isPermaLink="false">http://gonium.net/md/2006/11/05/arduino-dcf77-radio-clock-receiver/</guid>
		<description><![CDATA[
As a first sketch, I developed a little DCF77 library for the arduino. The DCF77 sender broadcasts the exact time in Germany. It uses a binary format which needs to be decoded &#8211; which is exactly what the library does.

There are others around who wrote a DCF77 decoder: I would like to thank Captain for [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://gonium.net/md/wp-content/uploads/2006/11//DCF77-arduino.jpg" border="0" height="244" width="400" alt="DCF77-arduino.jpg" align="" /></p>
<p>As a first sketch, I developed a little DCF77 library for the arduino. The DCF77 sender broadcasts the exact time in Germany. It uses a binary format which needs to be decoded &#8211; which is exactly what the library does.</p>
<p><span id="more-24"></span></p>
<p>There are others around who wrote a DCF77 decoder: I would like to thank Captain for his <a href="http://www.captain.at/electronic-atmega-dcf77.php">DCF77 code</a>. You need to have an Arduino and a DCF77 receiver in order to use this sketch.</p>
<p>I use the &#8220;DCF-Empf&auml;nger BN 641138&#8243; of Conrad. You need a pull-up resistor as displayed here:</p>
<p><img src="http://gonium.net/md/wp-content/uploads/2006/11//arduino-dcf77-setup.jpg" border="0" height="300" width="400" alt="arduino-dcf77-setup.jpg" align="" /></p>
<p><img src="http://gonium.net/md/wp-content/uploads/2006/11//arduino-dcf77-schematic.jpg" border="0" height="300" width="400" alt="arduino-dcf77-schematic.jpg" align="" /></p>
<p>When everything is connected, the exact time is printed on the serial line. Note that this is a very early release of the software &#8211; there is a lot of functionality missing. From the README:</p>
<pre>
The current todo list is:
 * Use interrupt routines for detecting signal changes
 * Use interrupt routines to add seconds automatically
   (currently, the 59th second is shown properly)
 * Implement parity checks to prevent faulty time
   signals to be evaluated
</pre>
<p>The sketch eats up 6400 of the 7168 bytes in the Arduino. I am currently considering to upgrade my board to the ATMega 168 processor in order to have 16kb of memory&#8230;</p>
<p>You can download the code here:</p>
<ul>
<li><a href="http://gonium.net/md/wp-content/uploads/2006/11//dcf77-arduino-0.1.tar.gz">dcf77-arduino-0.1.tar.gz</a></li>
</ul>
<p><!-- Creative Commons License --><br />
The code is released under terms of the <a href="http://creativecommons.org/licenses/GPL/2.0/">CC-GNU GPL</a>.<br />
<!-- /Creative Commons License --></p>
]]></content:encoded>
			<wfw:commentRss>http://gonium.net/md/2006/11/05/arduino-dcf77-radio-clock-receiver/feed/</wfw:commentRss>
		<slash:comments>18</slash:comments>
		</item>
		<item>
		<title>Arduino in da hood</title>
		<link>http://gonium.net/md/2006/10/11/arduino-in-da-hood/</link>
		<comments>http://gonium.net/md/2006/10/11/arduino-in-da-hood/#comments</comments>
		<pubDate>Wed, 11 Oct 2006 20:49:38 +0000</pubDate>
		<dc:creator>md</dc:creator>
				<category><![CDATA[digital]]></category>
		<category><![CDATA[nerdism]]></category>
		<category><![CDATA[arduino]]></category>
		<category><![CDATA[microcontroller]]></category>

		<guid isPermaLink="false">http://gonium.net/md/2006/10/11/arduino-in-da-hood/</guid>
		<description><![CDATA[
Finally, my Arduino USB board has arrived. The Arduino is an open-source platform for physical computing which allows you to integrate your circuits with a simple microcontroller. While other boards are rather expensive, the Arduino is cheap (EUR 25,-) and comes with a very easy-to-use development software&#8230;

A quick test revealed that it is pretty easy [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://gonium.net/md/wp-content/uploads/2006/10//arduino-LEDs.jpg" border="0" height="300" width="400" alt="arduino-LEDs.jpg"/></p>
<p>Finally, my <a href="http://arduino.cc/">Arduino</a> USB board has arrived. The Arduino is an open-source platform for physical computing which allows you to integrate your circuits with a simple microcontroller. While other boards are rather expensive, the Arduino is cheap (EUR 25,-) and comes with a very easy-to-use development software&#8230;</p>
<p><span id="more-22"></span></p>
<p>A quick test revealed that it is pretty easy to control some LEDs. There are a lot of tutorials and example code on the Arduino website which should get me started rather fast. Some examples:</p>
<ul>
<li><a href="http://www.arduino.cc/en/Tutorial/DimmingLEDs">Dimming LEDs</a> shows how to use pulse-width-modulation for dimming &#8211; see picture above.</li>
<li><a href="http://www.arduino.cc/en/Tutorial/Potentiometer">Reading analog values</a> demonstrates how to read analog values of devices such as potentiometers. This could also be applied to thermo-resistants and so on&#8230;</li>
<li><a href="http://www.arduino.cc/en/Tutorial/StepperUnipolar">Stepper Motor</a> describes how to use a stepper motor.</li>
</ul>
<p>In addition, people already coupled the Arduino with VVVV, Processing, Flash, Pd, &#8230; So there&#8217;s a lot of things to play with.</p>
<p>I will do some low-budget experiments with the Arduino. But first, I need to build a cheap benchtop power supply like this one <a href="http://www.instructables.com/id/E6D9DB9RPPEP286BR9/">at inscructables.com</a>.</p>
<p>Theres also some classes online, see e.g. <a href="http://todbot.com/blog/spookyarduino/">spooky projects</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://gonium.net/md/2006/10/11/arduino-in-da-hood/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
