<?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>kevin&#039;s blog</title>
	<atom:link href="http://blog.kevin-k.com/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.kevin-k.com</link>
	<description>just another blog from just another blogger.</description>
	<lastBuildDate>Sun, 06 May 2012 14:49:56 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
		<item>
		<title>Ein neuer Receiver wird wohl fällig</title>
		<link>http://blog.kevin-k.com/2012-05-06/ein-neuer-receiver-wird-wohl-fallig.html</link>
		<comments>http://blog.kevin-k.com/2012-05-06/ein-neuer-receiver-wird-wohl-fallig.html#comments</comments>
		<pubDate>Sun, 06 May 2012 11:56:59 +0000</pubDate>
		<dc:creator>kevin</dc:creator>
				<category><![CDATA[Allgemein]]></category>

		<guid isPermaLink="false">http://blog.kevin-k.com/?p=1405</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[<p><img src="http://blog.kevin-k.com/wp-content/uploads/2012/05/analog_tv1-675x506.jpg" alt="analog tv1 675x506 Ein neuer Receiver wird wohl fällig" title="analog_tv" width="675" height="506" class="alignnone size-medium wp-image-1408" /></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.kevin-k.com/2012-05-06/ein-neuer-receiver-wird-wohl-fallig.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>LT1302 Step-Up Wandler 5V 600mA aus 2 Mignonzellen</title>
		<link>http://blog.kevin-k.com/2012-04-13/lt1302-step-up-wandler-5v-600ma-aus-2-mignonzellen.html</link>
		<comments>http://blog.kevin-k.com/2012-04-13/lt1302-step-up-wandler-5v-600ma-aus-2-mignonzellen.html#comments</comments>
		<pubDate>Fri, 13 Apr 2012 16:54:38 +0000</pubDate>
		<dc:creator>kevin</dc:creator>
				<category><![CDATA[Elektronik]]></category>

		<guid isPermaLink="false">http://blog.kevin-k.com/?p=1361</guid>
		<description><![CDATA[Da Batterien auf Dauer teuer und eine ziemliche Verschwendung sind, habe ich mit neuen Akkus und einem neuen Lader vor, meinen ganzen Batteriebestand auf Akkus umzustellen. Aktuell versorge ich meine kleinen Projekte mit einer 9V Batterie und einem Linearregler der mir 5V erzeugt. Das funktioniert zwar prima, nur ist der Wirkungsgrad mit 45-55% ziemlich schlecht. [...]]]></description>
			<content:encoded><![CDATA[<p>Da Batterien auf Dauer teuer und eine ziemliche Verschwendung sind, habe ich mit neuen Akkus und einem neuen Lader vor, meinen ganzen Batteriebestand auf Akkus umzustellen. Aktuell versorge ich meine kleinen Projekte mit einer 9V Batterie und einem Linearregler der mir 5V erzeugt. Das funktioniert zwar prima, nur ist der Wirkungsgrad mit 45-55% ziemlich schlecht. Deutlich besser sind Step-Up Regler, die aus einer kleineren Spannung eine größere erzeugen. Dabei bin ich auf den LT1302 gestoßen, der aus 2-3 Mignonzellen stabile 5V mit bis 600mA erzeugt. Im Datenblatt wird auch eine SEPIC-Schaltung gezeigt, falls man z.b. 4 Akkus benutzt.</p>
<p>Da ich den Spannungswandler in ein neues Projekt einbauen will, habe ich mir zum Test eine eigene Platine geätzt (ähnlich wie im Referenzdesign). Die Platine auf dem Foto ist noch die alte Version, bei der die Spannungsteiler noch nicht eingeplant waren. Leider gabs bei Reichelt nur einen 330K Widerstand, mit dem ich 4.95V erhalte. Optimal wäre ein 340K Widerstand (1%) oder 330K mit 10K in Reihe. Aber mein ATmega328 gibt sich damit erstmal zufrieden.</p>
<p>Wer keine Platine herstellen kann, der kann sich bei <a href="http://www.shop.robotikhardware.de/shop/catalog/product_info.php?products_id=194&#038;osCsid=081e33374cfa39b104bc439a0ecd11fe">Robotikhardware</a> eine Platine bestellen. Dort gibt es auch gleich den LT1302 zu kaufen. </p>
<p><a href="http://blog.kevin-k.com/wp-content/uploads/2012/04/lt1302.jpg"><img src="http://blog.kevin-k.com/wp-content/uploads/2012/04/lt1302-675x506.jpg" alt="lt1302 675x506 LT1302 Step Up Wandler 5V 600mA aus 2 Mignonzellen" title="lt1302" width="675" height="506" class="alignnone size-medium wp-image-1402" /></a></p>
<h2>Schaltplan und Platinenlayout</h2>
<p><a href="http://blog.kevin-k.com/wp-content/uploads/2012/04/lt1302-schaltplan.png"><img src="http://blog.kevin-k.com/wp-content/uploads/2012/04/lt1302-schaltplan-675x405.png" alt="lt1302 schaltplan 675x405 LT1302 Step Up Wandler 5V 600mA aus 2 Mignonzellen" title="lt1302-schaltplan" width="675" height="405" class="alignnone size-medium wp-image-1372" /></a><br />
<a href="http://blog.kevin-k.com/wp-content/uploads/2012/04/lt1302-platine.png"><img src="http://blog.kevin-k.com/wp-content/uploads/2012/04/lt1302-platine-675x399.png" alt="lt1302 platine 675x399 LT1302 Step Up Wandler 5V 600mA aus 2 Mignonzellen" title="lt1302-platine" width="675" height="399" class="alignnone size-medium wp-image-1371" /></a></p>
<h2>LT1302 und LT1302-5</h2>
<p>Bei der Auswahl des ICs muss man beachten, dass es zwei Versionen gibt: <strong>LT1302</strong> und <strong>LT1302-5</strong>. Der LT1302 kann eine variable Spannung über einen Spannunsgteiler erzeugen und der LT1302-5 erzeugt nur 5V. Bei Reichelt gibt es derzeit nur den LT1302, den ich hier auch genutzt habe.</p>
<h2>Download</h2>
<p><a href='http://blog.kevin-k.com/wp-content/uploads/2012/04/lt1302.zip'>Download Platine, Schaltplan (EAGLE) und Bauteilliste</a><br />
<a href='http://cds.linear.com/docs/Datasheet/lt1302.pdf'>Datenblatt LT1302</a></p>
<p>Ein ganz interessantes Projekt ist <a href="http://www.ladyada.net/make/mintyboost/">Mintyboost</a>. Das nutzt in der letzten Version auch den LT1302.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.kevin-k.com/2012-04-13/lt1302-step-up-wandler-5v-600ma-aus-2-mignonzellen.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MCP23017 / MCP23S17 GPIO Port Extender</title>
		<link>http://blog.kevin-k.com/2012-02-24/mcp23017-mcp23s17-gpio-port-extender.html</link>
		<comments>http://blog.kevin-k.com/2012-02-24/mcp23017-mcp23s17-gpio-port-extender.html#comments</comments>
		<pubDate>Fri, 24 Feb 2012 11:22:13 +0000</pubDate>
		<dc:creator>kevin</dc:creator>
				<category><![CDATA[Elektronik]]></category>

		<guid isPermaLink="false">http://blog.kevin-k.com/?p=1326</guid>
		<description><![CDATA[Nach einigem hin und her habe ich es geschafft, den MCP23017 GPIO Port Exender ans laufen zu bringen. Falls jemand ebenso Schwierigkeiten hat, ihn auf Anhieb zu betreiben, anbei ein paar Informationen. Der MCP23017 hat ingesammt 16 GPIO Ports, die in 2x 8-Bit Ports unterteilt sind. Das ist GPA und GPB. Was mich anfangs ein [...]]]></description>
			<content:encoded><![CDATA[<p>Nach einigem hin und her habe ich es geschafft, den MCP23017 GPIO Port Exender ans laufen zu bringen. Falls jemand ebenso Schwierigkeiten hat, ihn auf Anhieb zu betreiben, anbei ein paar Informationen.</p>
<p>Der MCP23017 hat ingesammt 16 GPIO Ports, die in 2x 8-Bit Ports unterteilt sind. Das ist GPA und GPB. Was mich anfangs ein wenig verwirrt hat, war die konfigurierbare Adressierung der Ports. Es gibt die Möglichkeit, die Register sequentiell oder in Blöcken (Banks) zu unterteilen. Welche Adressierung man wählt, wird im IOCON (I/O Configuration Register) hinterlegt. Standardmäßig ist IOCON 0&#215;00. Beispiel:</p>
<ul>
<li><strong>IOCON.BANK = 0</strong><br />Adressierung sequentiell, d.h. IODIRA = 0&#215;00, IODIRB, 0&#215;01, IPOLA = 0&#215;02, IPOLB = 0&#215;03
<p></li>
<li><strong>IOCON.BANK = 1</strong><br />Adressierung in zwei Blöcken, d.h. IODIRA = 0&#215;00, IPOLA = 0&#215;01 &#8211; IODIRB = 0&#215;10, IPOLB = 0&#215;11</li>
</ul>
<p>Da sich die ganze Adressierung der GPIO Register ändert, sollte man bei einer der beiden Optionen bleiben.</p>
<p>Ein nützliches Feature ist, dass man mehrere Bytes nacheinander schreiben oder lesen kann. Mit der Option IOCON.SEQOP = 0 (Default), wird der interne Pointer automatisch hochgezählt. Dadurch kann man zwei Bytes hintereinander schreiben, ohne die Adressierung zu ändern. Beispiel:</p>

<div class="wp_syntax"><div class="code"><pre class="c" style="font-family:monospace;">i2c_start<span style="color: #009900;">&#40;</span><span style="color: #208080;">0x40</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
i2c_write<span style="color: #009900;">&#40;</span><span style="color: #208080;">0x12</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// GPIOA</span>
i2c_write<span style="color: #009900;">&#40;</span><span style="color: #208080;">0xFF</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// set all ports to HIGH on PORTA</span>
i2c_write<span style="color: #009900;">&#40;</span><span style="color: #208080;">0xFF</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// set all ports to HIGH on PORTB -&gt; GPIOA (0x12) incremented to GPIOB (0x13)</span>
i2c_stop<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>Das ist ziemlich nützlich, da man sich so ein weiteres i2c_start() spart. Voraussetzung ist, das man IOCON.BANK = 0 gesetzt hat. Aufjedenfall sollte man sich das <a href="http://ww1.microchip.com/downloads/en/devicedoc/21952b.pdf" target="_blank">Datenblatt</a> ansehen, das ist in jedem Fall hilfreich.</p>
<h2>Anschluss</h2>
<p><img src="http://blog.kevin-k.com/wp-content/uploads/2012/02/mcp23017.png" alt="mcp23017 MCP23017 / MCP23S17 GPIO Port Extender" title="mcp23017" width="324" height="253" class="alignnone size-full wp-image-1329" /></p>
<p>Minimalbeschaltung:</p>
<ul>
<li>VDD = 5V</li>
<li>VCC = GND</li>
<li>SCL = I2C Clock (Arduino Pin A5)</li>
<li>SDA = I2C Data (Arduino Pin A4)</li>
<li>Reset = 5V</li>
</ul>
<h2>Addresierung</h2>
<p>Mit den Hardware Address Pins A2 bis A0 konfiguriert man die Hardware Adresse des Chips. Legt man alle drei auf GND, erhält man als Adresse 0&#215;00, legt man alle auf HIGH, erhält man 0&#215;07. Man kann daher is zu 8 MCP23017 adressieren. Die komplette Adresse des Chips ist 0100 + die HW Pins + R/W:</p>
<p><img src="http://blog.kevin-k.com/wp-content/uploads/2012/02/mcp23017_slave_address.png" alt="mcp23017 slave address MCP23017 / MCP23S17 GPIO Port Extender" title="mcp23017_slave_address" width="457" height="229" class="alignnone size-full wp-image-1331" /></p>

<div class="wp_syntax"><div class="code"><pre class="c" style="font-family:monospace;">A2 bis A0 auf GND <span style="color: #339933;">+</span> WRITE <span style="color: #339933;">=</span> <span style="color: #208080;">0x40</span>
A2 bis A0 auf GND <span style="color: #339933;">+</span> READ <span style="color: #339933;">=</span> <span style="color: #208080;">0x41</span></pre></div></div>

<h2>Beispiel-Programm</h2>
<p>Sehr nützlich ist die <a href="http://homepage.hispeed.ch/peterfleury/avr-software.html" target="_blank">i2cmaster Bibliothek</a> von Peter Fleury. Die vereinfacht den Umgang mit i2c ungemein. Für das Beispiel ist diese von nöten. Falls auf dem µC Hardware TWI vorhanden ist, einfach die &#8220;twimaster.h&#8221; in &#8220;i2cmaster.h&#8221; umbennenen.</p>
<p>Das Beispiel macht folgendes:</p>
<ul>
<li>Schreibt das ICON-Register</li>
<li>Setzt PORTA (IODIRA) und PORTB (IODIRB) auf OUTPUT</li>
<li>Schleife: Setzt GPIOA und GPIOB auf HIGH, wartet 100ms und setzt diese wieder auf LOW</li>
</ul>

<div class="wp_syntax"><div class="code"><pre class="c" style="font-family:monospace;"><span style="color: #339933;">#define F_CPU 16000000</span>
&nbsp;
<span style="color: #339933;">#include &lt;avr/io.h&gt;</span>
<span style="color: #339933;">#include &lt;util/delay.h&gt;</span>
<span style="color: #339933;">#include &quot;i2cmaster.h&quot;</span>
&nbsp;
<span style="color: #339933;">#define MCP23x17_ADDR 0x40</span>
&nbsp;
<span style="color: #666666; font-style: italic;">// control registers</span>
<span style="color: #666666; font-style: italic;">// ONLY VALID WHEN ICON.BANK = 0</span>
<span style="color: #339933;">#define MCP23x17_IODIRA   0x00</span>
<span style="color: #339933;">#define MCP23x17_IODIRB   0x01</span>
<span style="color: #339933;">#define MCP23x17_IOPOLA   0x02</span>
<span style="color: #339933;">#define MCP23x17_IOPOLB   0x03</span>
<span style="color: #339933;">#define MCP23x17_GPINTENA 0x04</span>
<span style="color: #339933;">#define MCP23x17_GPINTENB 0x05</span>
<span style="color: #339933;">#define MCP23x17_DEFVALA  0x06</span>
<span style="color: #339933;">#define MCP23x17_DEFVALB  0x07</span>
<span style="color: #339933;">#define MCP23x17_INTCONA  0x08</span>
<span style="color: #339933;">#define MCP23x17_INTCONB  0x09</span>
<span style="color: #339933;">#define MCP23x17_IOCON    0x0A</span>
<span style="color: #666666; font-style: italic;">//#define MCP23x17_IOCON    0x0B</span>
<span style="color: #339933;">#define MCP23x17_GPPUA    0x0C</span>
<span style="color: #339933;">#define MCP23x17_GPPUB    0x0D</span>
<span style="color: #339933;">#define MCP23x17_INTFA    0x0E</span>
<span style="color: #339933;">#define MCP23x17_INTFB    0x0F</span>
<span style="color: #339933;">#define MCP23x17_INTCAPA  0x10</span>
<span style="color: #339933;">#define MCP23x17_INTCAPB  0x11</span>
<span style="color: #339933;">#define MCP23x17_GPIOA    0x12</span>
<span style="color: #339933;">#define MCP23x17_GPIOB    0x13</span>
<span style="color: #339933;">#define MCP23x17_OPLATA   0x14</span>
<span style="color: #339933;">#define MCP23x17_OPLATB   0x15</span>
&nbsp;
<span style="color: #666666; font-style: italic;">// IOCON register bit positions</span>
<span style="color: #339933;">#define MCP23x17_IOCON_BANK   7</span>
<span style="color: #339933;">#define MCP23x17_IOCON_MIRROR 6</span>
<span style="color: #339933;">#define MCP23x17_IOCON_SEQOP  5</span>
<span style="color: #339933;">#define MCP23x17_IOCON_DISSLW 4</span>
<span style="color: #339933;">#define MCP23x17_IOCON_HAEN   3</span>
<span style="color: #339933;">#define MCP23x17_IOCON_ODR    2</span>
<span style="color: #339933;">#define MCP23x17_IOCON_INTPOL 1</span>
&nbsp;
<span style="color: #993333;">int</span> main<span style="color: #009900;">&#40;</span><span style="color: #993333;">void</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">// init i2c</span>
	i2c_init<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">// IOCON</span>
	<span style="color: #666666; font-style: italic;">// configuration register</span>
	i2c_start<span style="color: #009900;">&#40;</span>MCP23x17_ADDR <span style="color: #339933;">+</span> I2C_WRITE<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	i2c_write<span style="color: #009900;">&#40;</span>MCP23x17_IOCON<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	i2c_write<span style="color: #009900;">&#40;</span><span style="color: #208080;">0x00</span>
		<span style="color: #339933;">|</span> <span style="color: #009900;">&#40;</span><span style="color: #0000dd;">0</span> <span style="color: #339933;">&lt;&lt;</span> MCP23x17_IOCON_BANK<span style="color: #009900;">&#41;</span>
		<span style="color: #339933;">|</span> <span style="color: #009900;">&#40;</span><span style="color: #0000dd;">0</span> <span style="color: #339933;">&lt;&lt;</span> MCP23x17_IOCON_MIRROR<span style="color: #009900;">&#41;</span>
		<span style="color: #339933;">|</span> <span style="color: #009900;">&#40;</span><span style="color: #0000dd;">0</span> <span style="color: #339933;">&lt;&lt;</span> MCP23x17_IOCON_SEQOP<span style="color: #009900;">&#41;</span>
		<span style="color: #339933;">|</span> <span style="color: #009900;">&#40;</span><span style="color: #0000dd;">0</span> <span style="color: #339933;">&lt;&lt;</span> MCP23x17_IOCON_DISSLW<span style="color: #009900;">&#41;</span>
		<span style="color: #339933;">|</span> <span style="color: #009900;">&#40;</span><span style="color: #0000dd;">1</span> <span style="color: #339933;">&lt;&lt;</span> MCP23x17_IOCON_HAEN<span style="color: #009900;">&#41;</span>
		<span style="color: #339933;">|</span> <span style="color: #009900;">&#40;</span><span style="color: #0000dd;">0</span> <span style="color: #339933;">&lt;&lt;</span> MCP23x17_IOCON_ODR<span style="color: #009900;">&#41;</span>
		<span style="color: #339933;">|</span> <span style="color: #009900;">&#40;</span><span style="color: #0000dd;">0</span> <span style="color: #339933;">&lt;&lt;</span> MCP23x17_IOCON_INTPOL<span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	i2c_stop<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">// IODIRA</span>
	<span style="color: #666666; font-style: italic;">// set PORTA to OUTPUT</span>
	i2c_start<span style="color: #009900;">&#40;</span>MCP23x17_ADDR<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	i2c_write<span style="color: #009900;">&#40;</span>MCP23x17_IODIRA<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	i2c_write<span style="color: #009900;">&#40;</span><span style="color: #208080;">0x00</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	i2c_stop<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">// IODIRB</span>
	<span style="color: #666666; font-style: italic;">// set PORTB to OUTPUT</span>
	i2c_start<span style="color: #009900;">&#40;</span>MCP23x17_ADDR<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	i2c_write<span style="color: #009900;">&#40;</span>MCP23x17_IODIRB<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	i2c_write<span style="color: #009900;">&#40;</span><span style="color: #208080;">0x00</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	i2c_stop<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #b1b100;">while</span> <span style="color: #009900;">&#40;</span><span style="color: #0000dd;">1</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
		<span style="color: #666666; font-style: italic;">// set GPIOA (first write) and GPIOB (second write)</span>
		<span style="color: #666666; font-style: italic;">// to HIGH</span>
		i2c_start<span style="color: #009900;">&#40;</span>MCP23x17_ADDR<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		i2c_write<span style="color: #009900;">&#40;</span>MCP23x17_GPIOA<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		i2c_write<span style="color: #009900;">&#40;</span><span style="color: #208080;">0xFF</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		i2c_write<span style="color: #009900;">&#40;</span><span style="color: #208080;">0xFF</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		i2c_stop<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		_delay_ms<span style="color: #009900;">&#40;</span><span style="color: #0000dd;">100</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #666666; font-style: italic;">// set GPIOA (first write) and GPIOB (second write)</span>
		<span style="color: #666666; font-style: italic;">// to HIGH</span>
		i2c_start<span style="color: #009900;">&#40;</span>MCP23x17_ADDR<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		i2c_write<span style="color: #009900;">&#40;</span>MCP23x17_GPIOA<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		i2c_write<span style="color: #009900;">&#40;</span><span style="color: #208080;">0x00</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		i2c_write<span style="color: #009900;">&#40;</span><span style="color: #208080;">0x00</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		i2c_stop<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		_delay_ms<span style="color: #009900;">&#40;</span><span style="color: #0000dd;">100</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #b1b100;">return</span> <span style="color: #0000dd;">0</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>Was beim testen hilft: Anstelle den RST/POR Pin dauerhaft auf HIGH zu setzen, kann man diesen beim initalisieren des µC toggeln. Dadurch resettet man den MCP23017 auf seine Standardwerte.</p>
<p>Ich hoffe die kurzen Tipps helfen!</p>
<p>Nützliche Links:<br />
<a href="http://ww1.microchip.com/downloads/en/devicedoc/21952b.pdf">MCP23017 / MCP23S17 Datenblatt</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.kevin-k.com/2012-02-24/mcp23017-mcp23s17-gpio-port-extender.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ATmega328 PWM</title>
		<link>http://blog.kevin-k.com/2012-02-11/atmega328-pwm.html</link>
		<comments>http://blog.kevin-k.com/2012-02-11/atmega328-pwm.html#comments</comments>
		<pubDate>Sat, 11 Feb 2012 12:37:12 +0000</pubDate>
		<dc:creator>kevin</dc:creator>
				<category><![CDATA[Elektronik]]></category>

		<guid isPermaLink="false">http://blog.kevin-k.com/?p=1300</guid>
		<description><![CDATA[// processor speed #define F_CPU 16000000 // 16MHz &#160; #include &#60;avr/io.h&#62; &#160; int main&#40;void&#41; &#123; // timer0 register: TCCR0A, TCCR0B // timer0 compare register: 0CR0A, 0CR0B &#160; // set waveform generation mode // WGM00 - WGM02 TCCR0A &#124;= &#40;1 &#60;&#60; WGM00&#41; &#124; &#40;1 &#60;&#60; WGM01&#41;; // fast pwm &#160; // set prescaler // CS00 - [...]]]></description>
			<content:encoded><![CDATA[
<div class="wp_syntax"><div class="code"><pre class="c" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">// processor speed</span>
<span style="color: #339933;">#define F_CPU 16000000 // 16MHz</span>
&nbsp;
<span style="color: #339933;">#include &lt;avr/io.h&gt;</span>
&nbsp;
<span style="color: #993333;">int</span> main<span style="color: #009900;">&#40;</span><span style="color: #993333;">void</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
	<span style="color: #666666; font-style: italic;">// timer0 register: TCCR0A, TCCR0B</span>
	<span style="color: #666666; font-style: italic;">// timer0 compare register: 0CR0A, 0CR0B</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">// set waveform generation mode</span>
	<span style="color: #666666; font-style: italic;">// WGM00 - WGM02</span>
	TCCR0A <span style="color: #339933;">|=</span> <span style="color: #009900;">&#40;</span><span style="color: #0000dd;">1</span> <span style="color: #339933;">&lt;&lt;</span> WGM00<span style="color: #009900;">&#41;</span> <span style="color: #339933;">|</span> <span style="color: #009900;">&#40;</span><span style="color: #0000dd;">1</span> <span style="color: #339933;">&lt;&lt;</span> WGM01<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// fast pwm</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">// set prescaler</span>
	<span style="color: #666666; font-style: italic;">// CS00 - CS02</span>
	TCCR0B <span style="color: #339933;">|=</span> <span style="color: #009900;">&#40;</span><span style="color: #0000dd;">1</span> <span style="color: #339933;">&lt;&lt;</span> CS00<span style="color: #009900;">&#41;</span> <span style="color: #339933;">|</span> <span style="color: #009900;">&#40;</span><span style="color: #0000dd;">1</span> <span style="color: #339933;">&lt;&lt;</span> CS01<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// clock/64 -&gt; F_CPU / 64 = 250kHz PWM</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">// OC0A</span>
	<span style="color: #666666; font-style: italic;">// pin 7 @ arduino</span>
	DDRD <span style="color: #339933;">|=</span> <span style="color: #009900;">&#40;</span><span style="color: #0000dd;">1</span> <span style="color: #339933;">&lt;&lt;</span> DDD6<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	TCCR0A <span style="color: #339933;">|=</span> <span style="color: #009900;">&#40;</span><span style="color: #0000dd;">1</span> <span style="color: #339933;">&lt;&lt;</span> COM0A1<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// clear on compare match</span>
	OCR0A <span style="color: #339933;">=</span> <span style="color: #0000dd;">20</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// 8-bit, 0 to 255</span>
&nbsp;
	<span style="color: #b1b100;">while</span><span style="color: #009900;">&#40;</span><span style="color: #0000dd;">1</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #666666; font-style: italic;">// ...</span>
	<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>Nützliche Links:<br />
<a href="http://extremeelectronics.co.in/avr-tutorials/pwm-signal-generation-by-using-avr-timers/" target="_blank">PWM Signal Generation by Using AVR Timers</a><br />
<a href="http://www.et06.dk/atmega_timers/" target="_blank">ATmega Timer/Counter/Prescaler Calculator</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.kevin-k.com/2012-02-11/atmega328-pwm.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mein erstes AVR Programm</title>
		<link>http://blog.kevin-k.com/2012-02-07/mein-erstes-avr-programm.html</link>
		<comments>http://blog.kevin-k.com/2012-02-07/mein-erstes-avr-programm.html#comments</comments>
		<pubDate>Tue, 07 Feb 2012 06:52:02 +0000</pubDate>
		<dc:creator>kevin</dc:creator>
				<category><![CDATA[Elektronik]]></category>

		<guid isPermaLink="false">http://blog.kevin-k.com/?p=1292</guid>
		<description><![CDATA[Es wurde vollbracht! Mittels Eclipse, den CDT-Plugins, dem AVR Eclipse Plugin und WinAVR wurde vollgender Meistercode durch avrdude auf meinen Arduino ATMega328 gebrannt: #include &#60;avr/io.h&#62; #include &#60;util/delay.h&#62; &#160; int main &#40;void&#41; &#123; DDRB &#124;= &#40;1 &#60;&#60; DDB0&#41;; &#160; while&#40;1&#41; &#123; _delay_ms&#40;1000&#41;; PORTB ^= &#40;1 &#60;&#60; DDB0&#41;; &#125; &#160; return 0; &#125; Er läßt die LED [...]]]></description>
			<content:encoded><![CDATA[<p>Es wurde vollbracht! Mittels Eclipse, den CDT-Plugins, dem AVR Eclipse Plugin und WinAVR wurde vollgender Meistercode durch avrdude auf meinen Arduino ATMega328 gebrannt:</p>

<div class="wp_syntax"><div class="code"><pre class="c" style="font-family:monospace;"><span style="color: #339933;">#include &lt;avr/io.h&gt;</span>
<span style="color: #339933;">#include &lt;util/delay.h&gt;</span>
&nbsp;
<span style="color: #993333;">int</span> main <span style="color: #009900;">&#40;</span><span style="color: #993333;">void</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
   DDRB <span style="color: #339933;">|=</span> <span style="color: #009900;">&#40;</span><span style="color: #0000dd;">1</span> <span style="color: #339933;">&lt;&lt;</span> DDB0<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
   <span style="color: #b1b100;">while</span><span style="color: #009900;">&#40;</span><span style="color: #0000dd;">1</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	   _delay_ms<span style="color: #009900;">&#40;</span><span style="color: #0000dd;">1000</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	   PORTB <span style="color: #339933;">^=</span> <span style="color: #009900;">&#40;</span><span style="color: #0000dd;">1</span> <span style="color: #339933;">&lt;&lt;</span> DDB0<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
   <span style="color: #009900;">&#125;</span>
&nbsp;
   <span style="color: #b1b100;">return</span> <span style="color: #0000dd;">0</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>Er läßt die LED des Verderbens blinken! Nun ist auch endlich der lang=&#8221;c&#8221; Parameter für mein WP-Syntax gerechtfertigt.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.kevin-k.com/2012-02-07/mein-erstes-avr-programm.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Vorwiderstand für LEDs berechnen</title>
		<link>http://blog.kevin-k.com/2012-02-03/vorwiderstand-fur-leds-berechnen.html</link>
		<comments>http://blog.kevin-k.com/2012-02-03/vorwiderstand-fur-leds-berechnen.html#comments</comments>
		<pubDate>Fri, 03 Feb 2012 22:18:15 +0000</pubDate>
		<dc:creator>kevin</dc:creator>
				<category><![CDATA[Elektronik]]></category>

		<guid isPermaLink="false">http://blog.kevin-k.com/?p=1230</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[<p><a href="http://ledhacker.blogspot.com/p/led-resistor-calculator.html"><img src="http://blog.kevin-k.com/wp-content/uploads/2012/02/resistor-calculator.png" alt="resistor calculator Vorwiderstand für LEDs berechnen" title="LED Resistor Calculator" width="588" height="301" class="alignright size-full wp-image-1231" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.kevin-k.com/2012-02-03/vorwiderstand-fur-leds-berechnen.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Buffalo Linkstation: Controlling LEDs with microapl</title>
		<link>http://blog.kevin-k.com/2012-01-14/buffalo-linkstation-controlling-leds-with-microapl.html</link>
		<comments>http://blog.kevin-k.com/2012-01-14/buffalo-linkstation-controlling-leds-with-microapl.html#comments</comments>
		<pubDate>Sat, 14 Jan 2012 11:36:38 +0000</pubDate>
		<dc:creator>kevin</dc:creator>
				<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://blog.kevin-k.com/?p=1195</guid>
		<description><![CDATA[microapl is a wrapper script for micro_evtd, which passes the corresponding hexadecimal value for setting different values of your buffalo linkstation. In my case, debian squeeze was installed onto a Buffalo LS-Pro v1. There are two types of controlling the leds: With &#8220;mcon&#8221;, the leds are controlled by the linkstation. With &#8220;cpu&#8221;, you can set [...]]]></description>
			<content:encoded><![CDATA[<p>microapl is a wrapper script for micro_evtd, which passes the corresponding hexadecimal value for setting different values of your buffalo linkstation. In my case, <a href="http://buffalo.nas-central.org/wiki/Install_Debian_on_the_Linkstation_Pro/Live">debian squeeze</a> was installed onto a Buffalo LS-Pro v1.</p>
<p>There are two types of controlling the leds: With &#8220;mcon&#8221;, the leds are controlled by the linkstation. With &#8220;cpu&#8221;, you can set the leds by yourself.</p>
<p>To get all possible settings, type in:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">root<span style="color: #000000; font-weight: bold;">@</span>box:~ microapl
option: boot_start
boot_end
power_off
shutdown_wait
shutdown_cancel
skip_standby
delay_standby
standby
reboot
temp_get
fan_set_speed <span style="color: #7a0874; font-weight: bold;">&#91;</span>arg<span style="color: #7a0874; font-weight: bold;">&#93;</span>
fan_get_speed
bz_on <span style="color: #7a0874; font-weight: bold;">&#91;</span>arg<span style="color: #7a0874; font-weight: bold;">&#93;</span>
bz_set_freq <span style="color: #7a0874; font-weight: bold;">&#91;</span>arg<span style="color: #7a0874; font-weight: bold;">&#93;</span>
bz_melody tempo note ...
bz_imhere tempo note ...
int_get_switch_status <span style="color: #7a0874; font-weight: bold;">&#91;</span>arg<span style="color: #7a0874; font-weight: bold;">&#93;</span>
led_set_bright <span style="color: #7a0874; font-weight: bold;">&#91;</span>arg<span style="color: #7a0874; font-weight: bold;">&#93;</span>
led_set_cpu_mcon <span style="color: #7a0874; font-weight: bold;">&#91;</span>arg<span style="color: #7a0874; font-weight: bold;">&#93;</span>
led_set_on_off <span style="color: #7a0874; font-weight: bold;">&#91;</span>arg<span style="color: #7a0874; font-weight: bold;">&#93;</span>
led_set_blink <span style="color: #7a0874; font-weight: bold;">&#91;</span>arg<span style="color: #7a0874; font-weight: bold;">&#93;</span>
led_set_code_error <span style="color: #7a0874; font-weight: bold;">&#91;</span>arg<span style="color: #7a0874; font-weight: bold;">&#93;</span>
led_set_code_information <span style="color: #7a0874; font-weight: bold;">&#91;</span>arg<span style="color: #7a0874; font-weight: bold;">&#93;</span>
led_set_cpu_mcon <span style="color: #7a0874; font-weight: bold;">&#91;</span>arg<span style="color: #7a0874; font-weight: bold;">&#93;</span>
mcon_get_status
hdd_set_power <span style="color: #7a0874; font-weight: bold;">&#91;</span>arg<span style="color: #7a0874; font-weight: bold;">&#93;</span>
mcon_get_version</pre></div></div>

<p>As you see, you can do many cool stuff, for example play a melody with bz_melody, or set and get the fan speed. Just try out.</p>
<p>To get the current controlling type of the leds (cpu or mcon), type in:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">root<span style="color: #000000; font-weight: bold;">@</span>box:~ microapl <span style="color: #660033;">-a</span> led_set_cpu_mcon
<span style="color: #666666; font-style: italic;">#[microapl.led_set_cpu_mcon]</span>
<span style="color: #007800;">led_power</span>=mcon
<span style="color: #007800;">led_info</span>=mcon
<span style="color: #007800;">led_diag</span>=mcon
<span style="color: #007800;">led_link</span>=mcon</pre></div></div>

<p>If you want to change the diag-led (error, red) by yourself, set the the led_diag value to &#8220;cpu&#8221;:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">root<span style="color: #000000; font-weight: bold;">@</span>box:~ microapl <span style="color: #660033;">-a</span> led_set_cpu_mcon diag
root<span style="color: #000000; font-weight: bold;">@</span>box:~ microapl <span style="color: #660033;">-a</span> led_set_cpu_mcon
<span style="color: #666666; font-style: italic;">#[microapl.led_set_cpu_mcon]</span>
<span style="color: #007800;">led_power</span>=mcon
<span style="color: #007800;">led_info</span>=mcon
<span style="color: #007800;">led_diag</span>=cpu
<span style="color: #007800;">led_link</span>=mcon</pre></div></div>

<p>Now the value of led_diag is changed changed to &#8220;cpu&#8221;. To light up the diag-led, type in:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">root<span style="color: #000000; font-weight: bold;">@</span>box:~ microapl <span style="color: #660033;">-a</span> led_set_on_off diag
root<span style="color: #000000; font-weight: bold;">@</span>box:~ microapl <span style="color: #660033;">-a</span> led_set_on_off
<span style="color: #666666; font-style: italic;">#[microapl.led_set_on_off]</span>
<span style="color: #007800;">led_power</span>=off
<span style="color: #007800;">led_info</span>=off
<span style="color: #007800;">led_diag</span>=on
<span style="color: #007800;">led_link</span>=off</pre></div></div>

<p>To change the power, link, info and diag led to cpu and light them up, type in:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">root<span style="color: #000000; font-weight: bold;">@</span>box:~ microapl <span style="color: #660033;">-a</span> led_set_cpu_mcon power info diag <span style="color: #c20cb9; font-weight: bold;">link</span>
root<span style="color: #000000; font-weight: bold;">@</span>box:~ microapl <span style="color: #660033;">-a</span> led_set_on_off power info diag <span style="color: #c20cb9; font-weight: bold;">link</span></pre></div></div>

<p>To change everything back to mcon (default), just use &#8220;off&#8221; as parameter:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">root<span style="color: #000000; font-weight: bold;">@</span>box:~ microapl <span style="color: #660033;">-a</span> led_set_cpu_mcon off</pre></div></div>

<p>Have fun!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.kevin-k.com/2012-01-14/buffalo-linkstation-controlling-leds-with-microapl.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>RS232 zwischen Python and Arduino</title>
		<link>http://blog.kevin-k.com/2012-01-06/rs232-zwischen-python-and-arduino.html</link>
		<comments>http://blog.kevin-k.com/2012-01-06/rs232-zwischen-python-and-arduino.html#comments</comments>
		<pubDate>Fri, 06 Jan 2012 13:39:29 +0000</pubDate>
		<dc:creator>kevin</dc:creator>
				<category><![CDATA[Elektronik]]></category>
		<category><![CDATA[Arduino]]></category>
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://blog.kevin-k.com/?p=1176</guid>
		<description><![CDATA[Für ein kleines Projekt möchte ich unter Python Werte vom Arduino darstellen. In Python nutze ich hierbei das pyserial Modul, welches plattformunabhängig sehr einfach eine serielle Verbindung aufbaut. Unter Python wird eine Anfrage gestellt, die der Arduino mit Werten definierter Größe beantwortet. Unter Arduino werden die Werte je nach Größe mit den Funktionen serial_uint8 bis [...]]]></description>
			<content:encoded><![CDATA[<p>Für ein kleines Projekt möchte ich unter Python Werte vom Arduino darstellen. In Python nutze ich hierbei das pyserial Modul, welches plattformunabhängig sehr einfach eine serielle Verbindung aufbaut.</p>
<p>Unter Python wird eine Anfrage gestellt, die der Arduino mit Werten definierter Größe beantwortet. Unter Arduino werden die Werte je nach Größe mit den Funktionen serial_uint8 bis serial_uint32 in einzelne Bytes (little-endian) geteilt. Auf der Gegenseite unter Python wird mit dem struct-Modul das Bytearray nach einer vorgegebenem Format wieder in einzelne Bytes entteilt.</p>
<p>Die Python Struct-Formate findet man <a href="http://docs.python.org/library/struct.html#format-characters" target="_blank">hier</a>. Die PySerial Dokumentation gibt es <a href="http://pyserial.sourceforge.net/" target="_blank">hier</a>.</p>
<p>Python-Code:</p>

<div class="wp_syntax"><div class="code"><pre class="python" style="font-family:monospace;"><span style="color: #ff7700;font-weight:bold;">import</span> serial
<span style="color: #ff7700;font-weight:bold;">import</span> <span style="color: #dc143c;">time</span>
<span style="color: #ff7700;font-weight:bold;">import</span> <span style="color: #dc143c;">struct</span>
&nbsp;
<span style="color: #483d8b;">&quot;&quot;&quot; setup serial for arduino &quot;&quot;&quot;</span>
ser = serial.<span style="color: black;">Serial</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
ser.<span style="color: black;">port</span> = <span style="color: #ff4500;">2</span>
ser.<span style="color: black;">baudrate</span> = <span style="color: #ff4500;">9600</span>
&nbsp;
<span style="color: #483d8b;">&quot;&quot;&quot; open serial port &quot;&quot;&quot;</span>
ser.<span style="color: #008000;">open</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
&nbsp;
<span style="color: #ff7700;font-weight:bold;">while</span> <span style="color: #ff4500;">1</span>:
&nbsp;
    <span style="color: #483d8b;">&quot;&quot;&quot; request values from arduino &quot;&quot;&quot;</span>    
    ser.<span style="color: black;">write</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;s&quot;</span><span style="color: black;">&#41;</span>
&nbsp;
    <span style="color: #483d8b;">&quot;&quot;&quot; wait until all bytes were read &quot;&quot;&quot;</span>
    <span style="color: #ff7700;font-weight:bold;">while</span> ser.<span style="color: black;">inWaiting</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span> <span style="color: #66cc66;">!</span>= <span style="color: #ff4500;">0</span>:
&nbsp;
        <span style="color: #483d8b;">&quot;&quot;&quot; unpack format, little endian &quot;&quot;&quot;</span>
        unpack_fmt = <span style="color: #483d8b;">&quot;&lt;BLbHHHH&quot;</span>
&nbsp;
        <span style="color: #483d8b;">&quot;&quot;&quot; read bytes as described in unpack_fmt &quot;&quot;&quot;</span>
        val = ser.<span style="color: black;">read</span><span style="color: black;">&#40;</span>size=<span style="color: #dc143c;">struct</span>.<span style="color: black;">calcsize</span><span style="color: black;">&#40;</span>unpack_fmt<span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>
&nbsp;
        <span style="color: #483d8b;">&quot;&quot;&quot; display values &quot;&quot;&quot;</span>
        <span style="color: #ff7700;font-weight:bold;">print</span> <span style="color: #dc143c;">struct</span>.<span style="color: black;">unpack</span><span style="color: black;">&#40;</span>unpack_fmt, val<span style="color: black;">&#41;</span>
&nbsp;
    <span style="color: #dc143c;">time</span>.<span style="color: black;">sleep</span><span style="color: black;">&#40;</span><span style="color: #ff4500;">1</span><span style="color: black;">&#41;</span></pre></div></div>

<p>Arduino-Code:</p>

<div class="wp_syntax"><div class="code"><pre class="c" style="font-family:monospace;"><span style="color: #993333;">void</span> setup<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
  Serial.<span style="color: #202020;">begin</span><span style="color: #009900;">&#40;</span><span style="color: #0000dd;">9600</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #993333;">uint8_t</span> serial_buffer<span style="color: #009900;">&#91;</span><span style="color: #0000dd;">128</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
<span style="color: #993333;">uint8_t</span> serial_buffer_pos <span style="color: #339933;">=</span> <span style="color: #0000dd;">0</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #993333;">void</span> serial_uint8<span style="color: #009900;">&#40;</span><span style="color: #993333;">uint8_t</span> val<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
  serial_buffer<span style="color: #009900;">&#91;</span>serial_buffer_pos<span style="color: #339933;">++</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span>val <span style="color: #339933;">&amp;</span> <span style="color: #208080;">0xFF</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #993333;">void</span> serial_uint16<span style="color: #009900;">&#40;</span><span style="color: #993333;">uint16_t</span> val<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
  serial_buffer<span style="color: #009900;">&#91;</span>serial_buffer_pos<span style="color: #339933;">++</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span>val <span style="color: #339933;">&amp;</span> <span style="color: #208080;">0xFF</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  serial_buffer<span style="color: #009900;">&#91;</span>serial_buffer_pos<span style="color: #339933;">++</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span>val <span style="color: #339933;">&gt;&gt;</span> <span style="color: #0000dd;">8</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&amp;</span> <span style="color: #208080;">0xFF</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #993333;">void</span> serial_uint32<span style="color: #009900;">&#40;</span><span style="color: #993333;">uint32_t</span> val<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
  serial_buffer<span style="color: #009900;">&#91;</span>serial_buffer_pos<span style="color: #339933;">++</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span>val <span style="color: #339933;">&amp;</span> <span style="color: #208080;">0xFF</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  serial_buffer<span style="color: #009900;">&#91;</span>serial_buffer_pos<span style="color: #339933;">++</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span>val <span style="color: #339933;">&gt;&gt;</span> <span style="color: #0000dd;">8</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&amp;</span> <span style="color: #208080;">0xFF</span><span style="color: #339933;">;</span>
  serial_buffer<span style="color: #009900;">&#91;</span>serial_buffer_pos<span style="color: #339933;">++</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span>val <span style="color: #339933;">&gt;&gt;</span> <span style="color: #0000dd;">16</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&amp;</span> <span style="color: #208080;">0xFF</span><span style="color: #339933;">;</span>
  serial_buffer<span style="color: #009900;">&#91;</span>serial_buffer_pos<span style="color: #339933;">++</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span>val <span style="color: #339933;">&gt;&gt;</span> <span style="color: #0000dd;">24</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&amp;</span> <span style="color: #208080;">0xFF</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #993333;">void</span> serial_init<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
  serial_buffer_pos <span style="color: #339933;">=</span> <span style="color: #0000dd;">0</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #993333;">void</span> serial_send<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
  <span style="color: #b1b100;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #993333;">int</span> i <span style="color: #339933;">=</span> <span style="color: #0000dd;">0</span><span style="color: #339933;">;</span> i <span style="color: #339933;">&lt;</span> serial_buffer_pos<span style="color: #339933;">;</span> i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    Serial.<span style="color: #202020;">write</span><span style="color: #009900;">&#40;</span>serial_buffer<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #993333;">int</span> readByte <span style="color: #339933;">=</span> <span style="color: #0000dd;">0</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #993333;">void</span> loop<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
  <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span>Serial.<span style="color: #202020;">available</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&gt;</span> <span style="color: #0000dd;">0</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
    readByte <span style="color: #339933;">=</span> Serial.<span style="color: #202020;">read</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #b1b100;">switch</span> <span style="color: #009900;">&#40;</span>readByte<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
      <span style="color: #b1b100;">case</span> <span style="color: #ff0000;">'s'</span><span style="color: #339933;">:</span>
        serial_init<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        serial_uint8<span style="color: #009900;">&#40;</span><span style="color: #0000dd;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        serial_uint32<span style="color: #009900;">&#40;</span>millis<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        serial_uint8<span style="color: #009900;">&#40;</span><span style="color: #0000dd;">100</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        serial_uint16<span style="color: #009900;">&#40;</span>random<span style="color: #009900;">&#40;</span><span style="color: #0000dd;">8</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">2200</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        serial_uint16<span style="color: #009900;">&#40;</span>random<span style="color: #009900;">&#40;</span><span style="color: #0000dd;">8</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">2200</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        serial_uint16<span style="color: #009900;">&#40;</span>random<span style="color: #009900;">&#40;</span><span style="color: #0000dd;">8</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">2200</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        serial_uint16<span style="color: #009900;">&#40;</span>random<span style="color: #009900;">&#40;</span><span style="color: #0000dd;">8</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">2200</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        serial_send<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #000000; font-weight: bold;">break</span><span style="color: #339933;">;</span>
&nbsp;
      <span style="color: #b1b100;">case</span> <span style="color: #ff0000;">'r'</span><span style="color: #339933;">:</span>
        serial_init<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        serial_uint8<span style="color: #009900;">&#40;</span>random<span style="color: #009900;">&#40;</span><span style="color: #0000dd;">0</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">250</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        serial_send<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #000000; font-weight: bold;">break</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
  <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>Das Ergebis sieht so aus:</p>

<div class="wp_syntax"><div class="code"><pre class="c" style="font-family:monospace;"><span style="color: #009900;">&#40;</span><span style="color: #0000dd;">1</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">1375424</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">100</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">1463</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">927</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">1220</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">715</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#40;</span><span style="color: #0000dd;">1</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">1376425</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">100</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">663</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">1552</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">470</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">308</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#40;</span><span style="color: #0000dd;">1</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">1377426</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">100</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">923</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">711</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">1963</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">571</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#40;</span><span style="color: #0000dd;">1</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">1378427</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">100</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">732</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">1259</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">618</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">1629</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#40;</span><span style="color: #0000dd;">1</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">1379428</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">100</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">1493</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">378</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">396</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">80</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#40;</span><span style="color: #0000dd;">1</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">1380429</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">100</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">1115</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">753</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">409</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">1894</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#40;</span><span style="color: #0000dd;">1</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">1381431</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">100</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">1968</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">1328</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">287</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">413</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#40;</span><span style="color: #0000dd;">1</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">1382431</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">100</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">135</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">1310</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">1237</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">823</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#40;</span><span style="color: #0000dd;">1</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">1383433</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">100</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">794</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">1352</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">1923</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">439</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#40;</span><span style="color: #0000dd;">1</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">1384433</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">100</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">550</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">632</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">116</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">175</span><span style="color: #009900;">&#41;</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://blog.kevin-k.com/2012-01-06/rs232-zwischen-python-and-arduino.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Split 2-byte integer into two single bytes</title>
		<link>http://blog.kevin-k.com/2012-01-04/split-2-byte-integer-into-two-single-bytes.html</link>
		<comments>http://blog.kevin-k.com/2012-01-04/split-2-byte-integer-into-two-single-bytes.html#comments</comments>
		<pubDate>Wed, 04 Jan 2012 20:22:41 +0000</pubDate>
		<dc:creator>kevin</dc:creator>
				<category><![CDATA[Entwicklung]]></category>

		<guid isPermaLink="false">http://blog.kevin-k.com/?p=1170</guid>
		<description><![CDATA[Python: &#34;&#34;&#34; two byte integer &#34;&#34;&#34; val = 42131 # bin: 1010 0100 1001 0011 hex: 0xa493 print hex&#40;val&#41; &#160; byte1 = val &#38; 0xFF # first 8 bit byte2 = &#40;val &#62;&#62; 8&#41; &#38; 0xFF # last 8 bit &#160; print &#34;byte1: &#34; + hex&#40;byte1&#41; # result: 0x93 print &#34;byte2: &#34; + hex&#40;byte2&#41; # [...]]]></description>
			<content:encoded><![CDATA[<p>Python:</p>

<div class="wp_syntax"><div class="code"><pre class="python" style="font-family:monospace;"><span style="color: #483d8b;">&quot;&quot;&quot; two byte integer &quot;&quot;&quot;</span>
val = <span style="color: #ff4500;">42131</span> <span style="color: #808080; font-style: italic;"># bin: 1010 0100 1001 0011 hex: 0xa493</span>
<span style="color: #ff7700;font-weight:bold;">print</span> <span style="color: #008000;">hex</span><span style="color: black;">&#40;</span>val<span style="color: black;">&#41;</span>
&nbsp;
byte1 = val <span style="color: #66cc66;">&amp;</span> 0xFF <span style="color: #808080; font-style: italic;"># first 8 bit</span>
byte2 = <span style="color: black;">&#40;</span>val <span style="color: #66cc66;">&gt;&gt;</span> <span style="color: #ff4500;">8</span><span style="color: black;">&#41;</span> <span style="color: #66cc66;">&amp;</span> 0xFF <span style="color: #808080; font-style: italic;"># last 8 bit</span>
&nbsp;
<span style="color: #ff7700;font-weight:bold;">print</span> <span style="color: #483d8b;">&quot;byte1: &quot;</span> + <span style="color: #008000;">hex</span><span style="color: black;">&#40;</span>byte1<span style="color: black;">&#41;</span> <span style="color: #808080; font-style: italic;"># result: 0x93</span>
<span style="color: #ff7700;font-weight:bold;">print</span> <span style="color: #483d8b;">&quot;byte2: &quot;</span> + <span style="color: #008000;">hex</span><span style="color: black;">&#40;</span>byte2<span style="color: black;">&#41;</span> <span style="color: #808080; font-style: italic;"># result: 0xa4</span>
&nbsp;
<span style="color: #483d8b;">&quot;&quot;&quot; merge two bytes into 2-byte integer &quot;&quot;&quot;</span>
val_m  = <span style="color: black;">&#40;</span>byte1 <span style="color: #66cc66;">&amp;</span> 0xFF<span style="color: black;">&#41;</span>
val_m |= <span style="color: black;">&#40;</span>byte2 <span style="color: #66cc66;">&amp;</span> 0xFF<span style="color: black;">&#41;</span> <span style="color: #66cc66;">&lt;&lt;</span> <span style="color: #ff4500;">8</span>
<span style="color: #ff7700;font-weight:bold;">print</span> <span style="color: #008000;">hex</span><span style="color: black;">&#40;</span>val_m<span style="color: black;">&#41;</span> <span style="color: #808080; font-style: italic;"># result: 0xa493</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://blog.kevin-k.com/2012-01-04/split-2-byte-integer-into-two-single-bytes.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Vom Breadboard zur Platine</title>
		<link>http://blog.kevin-k.com/2011-12-04/vom-breadboard-zur-platine.html</link>
		<comments>http://blog.kevin-k.com/2011-12-04/vom-breadboard-zur-platine.html#comments</comments>
		<pubDate>Sun, 04 Dec 2011 22:56:37 +0000</pubDate>
		<dc:creator>kevin</dc:creator>
				<category><![CDATA[Elektronik]]></category>

		<guid isPermaLink="false">http://blog.kevin-k.com/?p=1134</guid>
		<description><![CDATA[Nach mehreren Wochen Experimentierens konnte ich nun meine erste Platine mit Hilfe des Toner-Transferverfahrens fertigstellen. Dabei nimmt man einen Laser-Drucker (günstig von eBay, z.b. HP Laserjet 1010) und druckt sein Layout auf ein geeignetes Papier (Reicheltkatalogpapier eignet sich dafür). Danach überträgt man den Toner mittels Bügeleiesen oder Laminiermaschine auf die Kupferschicht der Platine (vorher mit [...]]]></description>
			<content:encoded><![CDATA[<p>Nach mehreren Wochen Experimentierens konnte ich nun meine erste Platine mit Hilfe des Toner-Transferverfahrens fertigstellen. Dabei nimmt man einen Laser-Drucker (günstig von eBay, z.b. HP Laserjet 1010) und druckt sein Layout auf ein geeignetes Papier (Reicheltkatalogpapier eignet sich dafür). Danach überträgt man den Toner mittels Bügeleiesen oder Laminiermaschine auf die Kupferschicht der Platine (vorher mit Aceton reinigen). Spülwasser und ein wenig rubbeln erledigen den Rest, danach ist der Toner fast krazfest auf der Platine und kann geätzt werden.</p>
<p>Meine Platine für den diesjährigen Pyro-Fernzünder Empfänger hat relativ gut geklappt (nach dem dritten Anlauf):<br />
<a href="http://blog.kevin-k.com/wp-content/uploads/2011/12/DSC00050.jpg"><img src="http://blog.kevin-k.com/wp-content/uploads/2011/12/DSC00050-575x431.jpg" alt="DSC00050 575x431 Vom Breadboard zur Platine" title="DSC00050" width="575" height="431" class="alignright size-medium wp-image-1152" /></a><br />
<a href="http://blog.kevin-k.com/wp-content/uploads/2011/12/DSC00049.jpg"><img src="http://blog.kevin-k.com/wp-content/uploads/2011/12/DSC00049-575x431.jpg" alt="DSC00049 575x431 Vom Breadboard zur Platine" title="DSC00049" width="575" height="431" class="alignright size-medium wp-image-1151" /></a></p>
<p>Darauf befindet sich ein Atmega 328 mit Arduino Bootloader, ein MAX232 für die Kommunikation mit einem Handy, ein 434Mhz Funkmodul und ein ULN2803A als Relaistreiber. Auf dem Foto sehen die Leiterbahnen leicht unterbrochen aus, sind aber sehr durchgängig und mit einer breite von 36mil auch relativ groß. Zum Schutz sind die Leiterbahnen mit Plastik 70 Isolierlack besprüht. Die Bohrlöcher konnte ich mit einer großen Ständerbohrmaschine problemfrei mit 0,8mm und 1mm bohren.</p>
<p>Zwei kleine Fehler im Layout konnte ich durch ein Kabel am Boden und einer Drahtbrücke fixen. Nur hat blöder weiße die Maße des RF-Moduls von Sparkfun nicht gepasst, so dass ich den Antennen Pin verbiegen mußte. Aber immerhin klappt nun alles und Silvester kann kommen :)</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.kevin-k.com/2011-12-04/vom-breadboard-zur-platine.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

