<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://www.mikrocontroller.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Hannes</id>
	<title>Mikrocontroller.net - Benutzerbeiträge [de]</title>
	<link rel="self" type="application/atom+xml" href="https://www.mikrocontroller.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Hannes"/>
	<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/articles/Spezial:Beitr%C3%A4ge/Hannes"/>
	<updated>2026-04-11T02:47:38Z</updated>
	<subtitle>Benutzerbeiträge</subtitle>
	<generator>MediaWiki 1.39.7</generator>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=China_SUPER_Bauteile-Schn%C3%A4ppchen_Thread-Wiki&amp;diff=79756</id>
		<title>China SUPER Bauteile-Schnäppchen Thread-Wiki</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=China_SUPER_Bauteile-Schn%C3%A4ppchen_Thread-Wiki&amp;diff=79756"/>
		<updated>2013-11-27T18:04:20Z</updated>

		<summary type="html">&lt;p&gt;Hannes: /* Einleitung */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Einleitung ==&lt;br /&gt;
&lt;br /&gt;
Viele von euch möchten gerne zu günstigen Preisen und kostenlosem Versand Elektronische Bauteilsortimente oder alles Rund um Elektronik einkaufen? Dann seid ihr genau auf dieser Seite richtig. Was Ihr hinnehmen müsst, sind die längere Versandzeiten aus China oder Hongkong. Hier werden nacheinander Schnäppchen vom bekannten &amp;quot;SUPER Bauteile-Schnäppchen Thread&amp;quot; gelistet. Allfällige Preisangaben (anzahl @ gesamtpreis) sind natürlich nur zur Orientierung.&lt;br /&gt;
&lt;br /&gt;
Nachfolgend muss ich sagen, wenn ihr Artikel seht, die nicht mehr verfügbar zu kaufen sind, bitte ich euch darum einfach den Link zu löschen über die &amp;quot;BEARBEITEN&amp;quot; Funktion rechts. So bleibt das Wiki am aktuellsten.&lt;br /&gt;
Wer &amp;quot;Lust und Zeit&amp;quot; hat, darf gerne selber hier Dinge beitragen...&lt;br /&gt;
&lt;br /&gt;
Vielen dank an an den Verfasser Simon Ruetz&lt;br /&gt;
&lt;br /&gt;
== Displays (z.B. HD44780) ==&lt;br /&gt;
&lt;br /&gt;
*http://www.ebay.at/itm/320746806372&lt;br /&gt;
*http://www.ebay.at/itm/251049844026&lt;br /&gt;
*http://www.ebay.de/itm/320533512038&lt;br /&gt;
*http://www.ebay.de/itm/220604499525&lt;br /&gt;
*http://www.ebay.de/itm/552821954125&lt;br /&gt;
*http://cgi.ebay.de/ws/eBayISAPI.dll?ViewItem&amp;amp;item=380630838372&amp;amp;clk_rvr_id=552823587951&lt;br /&gt;
*http://www.aliexpress.com/item/Whole-sale-10PCS-LOT-5V-Character-LCD-Module-Display-LCM-1602-162-16X2-blue-blacklight/817113032.html&lt;br /&gt;
&lt;br /&gt;
128x64 Grafik LCD mit integrierten Controllern ab 8 EUR inkl. Versand&lt;br /&gt;
*http://www.ebay.at/itm/220594603390 (ST7920 Vorsicht*)&lt;br /&gt;
*http://www.ebay.at/itm/170899666269 (KS0108)&lt;br /&gt;
*http://www.ebay.at/itm/261069788027 (KS0108)&lt;br /&gt;
&lt;br /&gt;
Touch Displays 4.3&amp;quot; und 5&amp;quot;&lt;br /&gt;
*http://www.ebay.de/sch/i.html?_sacat=0&amp;amp;_from=R40&amp;amp;_...&lt;br /&gt;
*http://www.ebay.de/sch/i.html?_nkw=touch+tft+modul...&lt;br /&gt;
&lt;br /&gt;
0.96&amp;quot; 128x64 OLED für 4,35€ inkl. Versand: &lt;br /&gt;
Ebay-Artikel Nr. 160879914739&lt;br /&gt;
&lt;br /&gt;
84*48 84x84 LCD Module White backlight adapter PCB for Nokia 5110 Arduino&lt;br /&gt;
*http://cgi.ebay.de/ws/eBayISAPI.dll?ViewItem&amp;amp;item=400488314619&amp;amp;clk_rvr_id=552815797700&lt;br /&gt;
&lt;br /&gt;
== Buchsen und Stecker ==&lt;br /&gt;
&lt;br /&gt;
*http://cgi.ebay.de/ws/eBayISAPI.dll?ViewItem&amp;amp;item=171038016920&amp;amp;clk_rvr_id=552821867059&lt;br /&gt;
*http://cgi.ebay.de/ws/eBayISAPI.dll?ViewItem&amp;amp;item=290928971235&amp;amp;clk_rvr_id=552825839674&lt;br /&gt;
*http://www.ebay.de/itm/180923079454&lt;br /&gt;
*http://www.ebay.de/itm/270853061937&lt;br /&gt;
*http://www.ebay.de/itm/120995663331&lt;br /&gt;
*www.aliexpress.com/store/product/20-pcs-2-Pin-Screw-Terminal-Block-Connector-5mm-Pitch-B/929745_1329137726.html&lt;br /&gt;
*http://www.aliexpress.com/snapshot/292664113.html&lt;br /&gt;
&lt;br /&gt;
== Sortimente ==&lt;br /&gt;
Kondensatoren:&lt;br /&gt;
*http://www.ebay.de/itm/181146487242&lt;br /&gt;
*http://www.banggood.com/Wholesale-0805-SMD-32-Value-Chip-Capacitor-Assortment-Kit-Pack-320pcs-p-53344.html&lt;br /&gt;
Widerstände: &lt;br /&gt;
*http://cgi.ebay.de/ws/eBayISAPI.dll?ViewItem&amp;amp;item=350855175041&amp;amp;clk_rvr_id=553088669397&lt;br /&gt;
Sortiment bunte Schrumfschläuche:&lt;br /&gt;
*http://www.aliexpress.com/snapshot/292198344.html&lt;br /&gt;
Dioden:&lt;br /&gt;
*http://www.banggood.com/300pcs-2V-39V-30-Values-1-Or-2W-0_5W-Zener-Diode-Assorted-Kit-p-87725.html&lt;br /&gt;
LM317:&lt;br /&gt;
*http://www.banggood.com/10pcs-LM317T-LM317-Adjustable-Voltage-Regulator-IC-1_2V-To-37V-1_5A-p-80867.html&lt;br /&gt;
8 PIN IC Sockel:&lt;br /&gt;
*http://www.banggood.com/60pcs-8-Pin-DIP-IC-Sockets-Adaptor-PCB-Solder-Type-Connectors-Plugs-p-908460.html&lt;br /&gt;
10x MAX 232:&lt;br /&gt;
*http://www.banggood.com/10pcs-Smd-Max232-RS-232-Interface-IC-Dual-Transceiver-Sop-16-p-74860.html&lt;br /&gt;
&lt;br /&gt;
== Kunststoff Boxen ==&lt;br /&gt;
&lt;br /&gt;
*http://cgi.ebay.de/ws/eBayISAPI.dll?ViewItem&amp;amp;item=170770334385&amp;amp;clk_rvr_id=553094538423&lt;br /&gt;
*http://www.aliexpress.com/item/smd-storage-box-SMA-SMT-component-container-storage-boxes-electronic-case-kit-IC-boxes-100pcs-lot/1306857575.html&lt;br /&gt;
*http://www.fasttech.com/products/0/10005943/1453902-bluetooth-wireless-serial-port-master-slave-module&lt;br /&gt;
*http://www.aliexpress.com/item/1-IC-original-box-SMD-chip-components-interlocking-parts-can-patch-box-Anti-static-Black-Orange/1322069794.html&lt;br /&gt;
&lt;br /&gt;
== 2,4 GHz ==&lt;br /&gt;
&lt;br /&gt;
 2 PCS NRF24L01 2.4GHz RF Wireless Transceiver Module for Arduino&lt;br /&gt;
*http://www.ebay.de/itm/170838373171&lt;br /&gt;
*http://www.ebay.de/itm/181051362897&lt;br /&gt;
*http://cgi.ebay.de/ws/eBayISAPI.dll?ViewItem&amp;amp;item=121118879770&amp;amp;clk_rvr_id=552817485616&lt;br /&gt;
*http://cgi.ebay.de/ws/eBayISAPI.dll?ViewItem&amp;amp;item=400505927677&amp;amp;clk_rvr_id=552827828280&lt;br /&gt;
&lt;br /&gt;
== Funkmodule ==&lt;br /&gt;
*http://www.aliexpress.com/snapshot/294138133.html&lt;br /&gt;
*http://www.aliexpress.com/snapshot/294138134.html&lt;br /&gt;
&lt;br /&gt;
== Platinen ==&lt;br /&gt;
&lt;br /&gt;
*http://www.ebay.de/itm/10x-Double-Side-Prototype-PCB-Universal-Board-50x70mm-/130686265627?clk_rvr_id=552815576470&lt;br /&gt;
*http://www.ebay.de/itm/20x-Double-Side-Prototype-PCB-Board-5x7-4x6-3x7-2x8CM-/130531103896?clk_rvr_id=552822429042&lt;br /&gt;
*http://www.ebay.de/itm/50-PROTO-TYPE-PCB-CIRCUIT-PANEL-SOLDER-DIY-50X70-BOARD-/270499139884?clk_rvr_id=552823620700&lt;br /&gt;
&lt;br /&gt;
== Batterien und Akkus==&lt;br /&gt;
&lt;br /&gt;
500 SG13 für 3,10:&lt;br /&gt;
*http://www.ebay.de/itm/330570767968&lt;br /&gt;
AAA Batterien:&lt;br /&gt;
*http://www.aliexpress.com/item/16-pcs-lot-4-Blister-AA-Battery-Dry-Battery-Super-Heavy-Duty-Battery-1-5V-AA/796248871.html&lt;br /&gt;
Varta AA:&lt;br /&gt;
*http://cgi.ebay.de/ws/eBayISAPI.dll?ViewItem&amp;amp;item=330898341798&amp;amp;clk_rvr_id=553114059335&lt;br /&gt;
&lt;br /&gt;
LiPo 3.7V&lt;br /&gt;
*http://www.aliexpress.com/item/Free-Shipping-New-Upgraded-3-7V-380mAh-25C-Lipo-Battery-for-Hubsan-X4-H107-Ladybird-RC/1135685083.html (5 @ 11.72 EUR)&lt;br /&gt;
&lt;br /&gt;
== Kapton Tape ==&lt;br /&gt;
&lt;br /&gt;
*http://www.ebay.de/sch/i.html?_sop=15&amp;amp;_sacat=0&amp;amp;_from=R40&amp;amp;_nkw=kapton+tape&amp;amp;LH_PrefLoc=2&amp;amp;rt=nc&amp;amp;LH_BIN=1&lt;br /&gt;
&lt;br /&gt;
== LEDs ==&lt;br /&gt;
&lt;br /&gt;
=== 5 mm ===&lt;br /&gt;
Die billigsten 5mm LEDs - 100 Stk um unter 3 EUR inkl. Versand&lt;br /&gt;
*http://www.ebay.at/itm/130723150892 (Rot, matt?)&lt;br /&gt;
*http://www.ebay.at/itm/330651196119 (Rot, klar)&lt;br /&gt;
*http://www.ebay.at/itm/140789002572 (Grün, matt?)&lt;br /&gt;
*http://www.ebay.at/itm/230741038980 (Grün, klar)&lt;br /&gt;
*http://www.ebay.at/itm/190719616216 (Blau, klar)&lt;br /&gt;
*http://www.ebay.at/itm/170854883320 (Blau, matt)&lt;br /&gt;
*http://www.ebay.at/itm/330697183675 (Weiss, klar)&lt;br /&gt;
*http://www.ebay.at/itm/251117618595 (Sortiment aus jew. 20 Stk Rot, Blau, Grün, Gelb, Weiss)&lt;br /&gt;
*http://www.ebay.de/itm/290881202957 (Weiss)&lt;br /&gt;
&lt;br /&gt;
=== Hochleistungs LEDs ===&lt;br /&gt;
*http://www.aliexpress.com/item/DropShipping-New-10W-RGB-High-Power-Chip-LED-Light-10-Watt-Lamp-Bright-Light-JS0077-Free/888135721.html&lt;br /&gt;
*http://www.aliexpress.com/item/RGB-10w-diode-led-chip-for-RGB-10W-LED-Floodlight-Flood-Light-CE-RoHS-Warranty-2/957361239.html&lt;br /&gt;
&lt;br /&gt;
=== LED Matrix ===&lt;br /&gt;
*http://www.aliexpress.com/item/1x-16-16-Pixel-WS2812B-LED-Digital-Flexible-Panel-WS2811-Individually-Color-DC5V/1342768354.html&lt;br /&gt;
&lt;br /&gt;
=== RGB Stripes ===&lt;br /&gt;
*http://www.aliexpress.com/item/New-1M-Black-PCB-WS2811-Digital-RGB-LED-Strip-Light-144-Pixel-LEDs-5050-RGB-SMD/1314161448.html&lt;br /&gt;
&lt;br /&gt;
=== Taschenlampe ===&lt;br /&gt;
MEGA DEAL!!!:&lt;br /&gt;
*http://www.aliexpress.com/item/Adjustable-Focus-Zoom-In-Out-CREE-Q5-LED-200-Lumen-SLIM-Ultra-Bright-Flashlight-Torch-For/548172876.html&lt;br /&gt;
*http://www.aliexpress.com/item/Mini-LED-Torch-7W-450LM-CREE-Q5-LED-Flashlight-Adjustable-Focus-Zoom-flash-Light-Lamp-free/913244541.html&lt;br /&gt;
&lt;br /&gt;
== Laser ==&lt;br /&gt;
*http://cgi.ebay.de/ws/eBayISAPI.dll?ViewItem&amp;amp;item=370810846723&amp;amp;clk_rvr_id=553098953077&lt;br /&gt;
*http://www.aliexpress.com/item/100pcs-650nm-6mm-5V-5mW-Laser-Dot-Diode-Module-Copper-Head-Red-FreeShipping/1143027805.html&lt;br /&gt;
*http://www.ebay.com/itm/10pcs-laser-diode-module-laser-diode-circuit-Module-Head-650nm-6mm-3V-5mW-/130903728362&lt;br /&gt;
*http://www.ebay.com/itm/10pcs-laser-diode-module-red-Laser-Diode-laser-diode-circuit-5V-Module-Head-/370810846723&lt;br /&gt;
*http://www.aliexpress.com/item/2pcs-650nm-5mW-Red-Laser-Line-Module-Glass-Lens-Focusable-Industrial-Class/981044377.html&lt;br /&gt;
&lt;br /&gt;
== Taster und Schalter ==&lt;br /&gt;
*http://cgi.ebay.de/ws/eBayISAPI.dll?ViewItem&amp;amp;item=300916303479&amp;amp;clk_rvr_id=553093896309&lt;br /&gt;
*http://cgi.ebay.de/ws/eBayISAPI.dll?ViewItem&amp;amp;item=110957987526&amp;amp;clk_rvr_id=553108801354&lt;br /&gt;
*http://www.aliexpress.com/item/100PC-Lot-SMT-3X6X2-5-h-MM-Tactile-Tact-Push-Button-Micro-Switch-Momentary-Two-Pin/728175767.html&lt;br /&gt;
*http://www.aliexpress.com/item/3-6-2-5H-2pin-white-SMD-mp3-mp4-Button-switch-key-switch-Tact-Switch/1065482131.html&lt;br /&gt;
&lt;br /&gt;
== Sensoren ==&lt;br /&gt;
=== Infrared PIR Motion ===&lt;br /&gt;
*http://cgi.ebay.de/ws/eBayISAPI.dll?ViewItem&amp;amp;item=130824723088&amp;amp;clk_rvr_id=553097766279&lt;br /&gt;
*http://cgi.ebay.de/ws/eBayISAPI.dll?ViewItem&amp;amp;item=370671048122&amp;amp;clk_rvr_id=553103039249&lt;br /&gt;
&lt;br /&gt;
=== Ultraschall ===&lt;br /&gt;
*http://www.aliexpress.com/item/Free-shipping-HC-SR04-HCSR04-Ultrasonic-module-ultrasonic-ranging-modules-ranging-module-Ultrasonic-Sensors-in-stock/610440655.html (10 @ 10.39 EUR)&lt;br /&gt;
&lt;br /&gt;
=== MPU 6050 Gyro ===&lt;br /&gt;
*http://www.aliexpress.com/item/FREE-SHIPPING-MPU-6050-MPU6050-Module-3-Axis-analog-gyro-sensors-3-Axis-Accelerometer-Module-GY/1086775775.html (5 @ 11.12 EUR)&lt;br /&gt;
&lt;br /&gt;
== GSM und GPS ==&lt;br /&gt;
*http://cgi.ebay.de/ws/eBayISAPI.dll?ViewItem&amp;amp;item=270851051007&amp;amp;clk_rvr_id=553098865478&lt;br /&gt;
*http://www.aliexpress.com/item/VK16U6-ublox-GPS-Module-with-Antenna-TTL-Signal-Output-FZ0517-Free-Shipping-Dropshipping/922483051.html&lt;br /&gt;
&lt;br /&gt;
== Voltmeter ==&lt;br /&gt;
&lt;br /&gt;
*http://www.ebay.de/itm/190657429814&lt;br /&gt;
*http://www.aliexpress.com/snapshot/291462038.html&lt;br /&gt;
== Schaltregler-Module ==&lt;br /&gt;
=== Step-Down Schaltregler-Module ===&lt;br /&gt;
Die billigsten Step-Down Schaltregler-Module mit LM2596 - unter 2 EUR inkl. Versand&lt;br /&gt;
*http://www.ebay.at/itm/310430056189&lt;br /&gt;
*http://www.ebay.at/itm/221113782096&lt;br /&gt;
*http://www.ebay.at/itm/251120173500&lt;br /&gt;
*http://www.ebay.at/itm/330791790173&lt;br /&gt;
*http://www.ebay.at/itm/130729707683&lt;br /&gt;
*http://www.ebay.at/itm/330646303458&lt;br /&gt;
*http://www.aliexpress.com/item/Hot-sale-10PCS-LM2596-DC-DC-Step-Down-Adjustable-Power-Supply/955850963.html?s=p (10 St.)&lt;br /&gt;
*http://www.ebay.de/itm/270762820456 10× MP2307 3A DC to DC Step-down Power Module KIS-3R33S * 6,95€&lt;br /&gt;
*http://www.ebay.de/itm/190698451181 KIM-055L, 9-40V auf 5V, 5A  (10 @ ca. 11,50 EUR)&lt;br /&gt;
*http://www.ebay.de/itm/261016126639 KIM-3R35, 9-40V auf 3.3V, 5A (10 @ ca. 6 EUR)&lt;br /&gt;
&lt;br /&gt;
=== Step-Up Schaltregler-Module ===&lt;br /&gt;
Die billigsten Step-UP Schaltregler-Module mit LM2577 - ca 2 EUR inkl. Versand&lt;br /&gt;
*http://www.ebay.at/itm/170792120040&lt;br /&gt;
*http://www.ebay.at/itm/140773758954&lt;br /&gt;
*http://www.ebay.at/itm/260974659516&lt;br /&gt;
*http://www.ebay.at/itm/170813838776&lt;br /&gt;
*http://www.ebay.at/itm/180957599819&lt;br /&gt;
*http://www.aliexpress.com/item/Hot-Sell-10pcs-lot-1A-3V-to-5V-DC-DC-Converter-Step-Up-Boost-Module-Free/1359972360.html (10 @ 10.90 EUR)&lt;br /&gt;
&lt;br /&gt;
== Arduino ==&lt;br /&gt;
*http://www.aliexpress.com/item/Free-shipping-BTE-ROBOT-Main-Control-Board-Compatible-with-Arduino-duemilanove-2009-ATMEGA328&lt;br /&gt;
USB-cable/587638761.html&lt;br /&gt;
*http://cgi.ebay.de/ws/eBayISAPI.dll?ViewItem&amp;amp;item=200929452071&amp;amp;clk_rvr_id=552818482186&lt;br /&gt;
&lt;br /&gt;
Arduino Clones (Full-Size ATMEGA328) um ca 11 - 12 EUR inkl. Versand:&lt;br /&gt;
*http://www.ebay.at/itm/251142112072 (ATMEGA328 + M8U2, UNO, mit Logo)&lt;br /&gt;
*http://www.ebay.at/itm/261086919366 (ATMEGA328 + M8U2, UNO, ohne Logo)&lt;br /&gt;
*http://www.ebay.at/itm/170907188991 (ATMEGA328 + PL2303, Duemilanove, mit Zusatz-Power-Pins)&lt;br /&gt;
&lt;br /&gt;
Arduino Mini/Pro Clones (Breadboard, TQFP ATMEGA328) ab ca 7 EUR inkl. &lt;br /&gt;
Versand&lt;br /&gt;
*http://www.ebay.at/itm/230795578198 (ATMEGA328, Resettaster, kein USB)&lt;br /&gt;
*http://www.ebay.at/itm/280963690978 (ATMEGA328, Nano, USB)&lt;br /&gt;
*http://www.ebay.at/itm/230799921826 (ATMEGA328, Nano, USB)&lt;br /&gt;
*http://www.ebay.at/itm/221119540576 (ATMEGA328, Nano, USB)&lt;br /&gt;
*http://www.aliexpress.com/item/5pcs-lot-Pro-Mini-328-Mini-ATMEGA328-5V-16MHz-Free-Shipping-Dropshipping/1275111458.html (ATMEGA328, Resettaster, kein USB) &lt;br /&gt;
*http://www.aliexpress.com/item/CP2102-Module-Pro-Mini-Module-Atmega328-5V-16M-Compatible-With-Nano/1273504373.html (ATMEGA328, Nano, USB)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Chip-Only ATMEGA328 mit Arduino-Bootloader ab ca 3 EUR inkl. Versand:&lt;br /&gt;
*http://www.ebay.at/itm/300726927158&lt;br /&gt;
*http://www.ebay.at/itm/140810128013&lt;br /&gt;
*http://www.ebay.at/itm/320967253099&lt;br /&gt;
*http://www.ebay.at/itm/280902871387&lt;br /&gt;
&lt;br /&gt;
Breadboard Power Supply:&lt;br /&gt;
*http://www.ebay.com/itm/New-1PCS-MB-102-Breadboard-Power-Supply-Module-3-3V-5V-For-Arduino-Board-EP98-/111146951040?pt=LH_DefaultDomain_0&amp;amp;hash=item19e0dfe180&lt;br /&gt;
&lt;br /&gt;
== Kamera ==&lt;br /&gt;
&lt;br /&gt;
*http://www.ebay.de/itm/180937263580&lt;br /&gt;
*http://www.ebay.de/itm/221259368601&lt;br /&gt;
&lt;br /&gt;
== Bluetooth Modul ==&lt;br /&gt;
&lt;br /&gt;
*http://www.aliexpress.com/item/HM-06C-best-Wireless-bluetooth-to-uart-transceiver-Module-Support-Remot-control-mode-support-self-checksum/671962689.html&lt;br /&gt;
*http://www.fasttech.com/products/0/10005943/1453902-bluetooth-wireless-serial-port-master-slave-module&lt;br /&gt;
&lt;br /&gt;
== ICs ==&lt;br /&gt;
&lt;br /&gt;
10 Stk ATMEGA8A TQFP32 um unter 7 EUR (6.45 EUR) inkl. Versand:&lt;br /&gt;
*http://www.ebay.at/itm/270747777418&lt;br /&gt;
*http://www.ebay.de/itm/130724310847 (10 LM2577S für 15,73)&lt;br /&gt;
*http://www.ebay.de/itm/250846968578 (10 Stück für 14,79)&lt;br /&gt;
&lt;br /&gt;
== Logic Analyzer ==&lt;br /&gt;
&lt;br /&gt;
*http://www.aliexpress.com/item/-/605379977.html&lt;br /&gt;
 - 21,68€ Kompatible zu Saleae, Ax, USB Blaster + 8 Probes: &lt;br /&gt;
*http://www.aliexpress.com/item/-/535753410.html (Verkauft itead übrigens &lt;br /&gt;
als Mini Logic für 38€)&lt;br /&gt;
*http://www.aliexpress.com/item/1pcs-lot-Free-shipping-New-Arrival-Saleae-Logic16-saleae16-USB-Logic-Analyzer-100M-16CH-best-quality/667671473.html&lt;br /&gt;
&lt;br /&gt;
== Programmer ==&lt;br /&gt;
*http://cgi.ebay.de/ws/eBayISAPI.dll?ViewItem&amp;amp;item=301000812018&amp;amp;clk_rvr_id=553107983302&lt;br /&gt;
*http://cgi.ebay.de/ws/eBayISAPI.dll?ViewItem&amp;amp;item=400581190132&amp;amp;clk_rvr_id=553108374630&lt;br /&gt;
*http://www.aliexpress.com/store/group/Programmer-Emulator/213957_211836576.html&lt;br /&gt;
&lt;br /&gt;
== USB ==&lt;br /&gt;
Stecker und Buchsen:&lt;br /&gt;
*http://www.aliexpress.com/item//1396423329.html&lt;br /&gt;
*http://www.aliexpress.com/item//1079961170.html&lt;br /&gt;
*http://www.aliexpress.com/item//1103210893.html&lt;br /&gt;
*http://www.aliexpress.com/item//1334095911.html&lt;br /&gt;
*http://www.aliexpress.com/item//978229424.html&lt;br /&gt;
*http://www.aliexpress.com/item//1333205473.html&lt;br /&gt;
*http://www.ebay.de/itm/360711370937&lt;br /&gt;
&lt;br /&gt;
Soundkarte&lt;br /&gt;
*http://cgi.ebay.de/ws/eBayISAPI.dll?ViewItem&amp;amp;item=160840378914&lt;br /&gt;
&lt;br /&gt;
== USB-TTL-UART ==&lt;br /&gt;
*http://www.ebay.at/itm/180953299346 (PL2303)&lt;br /&gt;
*http://www.ebay.at/itm/180934694241 (PL2303HX  *)&lt;br /&gt;
*http://www.ebay.at/itm/180956763688 (CP2102)&lt;br /&gt;
*http://www.ebay.at/itm/110929272410 (CP2102)&lt;br /&gt;
*http://www.ebay.at/itm/170895253016 (CP2102)&lt;br /&gt;
*http://www.ebay.at/itm/180962172801 (FT232RL)&lt;br /&gt;
&lt;br /&gt;
*http://www.ebay.at/itm/251102217705 (blau)&lt;br /&gt;
*http://www.ebay.at/itm/261061327431 (gelb-grün)&lt;br /&gt;
*http://www.ebay.de/itm/130970909714&lt;br /&gt;
*http://cgi.ebay.de/ws/eBayISAPI.dll?ViewItem&amp;amp;item=261210033859&amp;amp;clk_rvr_id=553102953867&lt;br /&gt;
*http://cgi.ebay.de/ws/eBayISAPI.dll?ViewItem&amp;amp;item=251299940298&amp;amp;clk_rvr_id=553109809733&lt;br /&gt;
&lt;br /&gt;
== Handys ==&lt;br /&gt;
*http://www.priceangels.com/index.html&lt;br /&gt;
&lt;br /&gt;
== Hinweise ==&lt;br /&gt;
&lt;br /&gt;
* zu dem angebotenen Preis kommen z.b. noch&lt;br /&gt;
** Kreditkarten Auslandszuschläge (etwa 1 - 2% je nach Karte)&lt;br /&gt;
** Zoll und Einfuhrumsatzsteuer: http://www.zoll.de/DE/Fachthemen/Steuern/Einfuhrumsatzsteuer/einfuhrumsatzsteuer_node.html&lt;br /&gt;
&lt;br /&gt;
* Die angegeben Anzahl pro Lot genau prüfen oft werden z.B 1*USB-Kabel und 1*Arduino als 2 PCS/Lot beschrieben&lt;br /&gt;
&lt;br /&gt;
* Rücksendungen gehen zu Lasten des Kunden, das ist aufgrund der Versandkosten meist nicht wirtschaftlich&lt;br /&gt;
&lt;br /&gt;
* Ein Blick auf die Bewertung des Händlers ist dringend zu empfehlen. Vorsicht bei solchen mit wenig Punkten oder Negativbewertungen. Positiv wenn Bestellungen für den gewünschten Artikel (z.B. in Transaction History &amp;amp; Feedback) schon mehrfach gut bewertet wurden.&lt;/div&gt;</summary>
		<author><name>Hannes</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=Bebilderung&amp;diff=59940</id>
		<title>Bebilderung</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=Bebilderung&amp;diff=59940"/>
		<updated>2011-08-27T15:23:17Z</updated>

		<summary type="html">&lt;p&gt;Hannes: /* Layout */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Viele Artikel im Wiki verwenden Graphiken, Fotos oder Skizzen zur Illustration. Beim Einbinden von Bilddateien sollte einiges beachtet werden, um ein gutes Layout des Artikels zu gewährleisten und damit den Leser bestmöglich zu unterstützen.&lt;br /&gt;
&lt;br /&gt;
== Layout ==&lt;br /&gt;
&lt;br /&gt;
[[Datei:C-flow.svg|thumb|right|200px|SVG-Datei, die auch bei kleiner Skalierung gut zu erkennen ist. Die Beschrei&amp;amp;shy;bungs&amp;amp;shy;seite enthält die Quelle, so daß jeder die Graphik generieren, korrigieren oder erweitern kann.]]&lt;br /&gt;
Graphiken sollten einen Artikel illustrieren anstatt ihn zu erschlagen. Für dich als Autor stehen die Grafiken an erster Stelle, sozusagen das Tüpfelchen auf dem&amp;amp;nbsp;i; der Inhalt des Textes ist dir wohlvertraut. Ein Leser muss sich jedoch erst einlesen und durch den Text und die Fülle der neuen Informationen kämpfen. Illustrationen sind dann für das Verständis hilfreich, stehen aber nicht an erster Stelle.&lt;br /&gt;
&lt;br /&gt;
; Gut erkennbare Vorschau: Eine Wiki-Grafik sollte so erstellt werden, daß auch bei Verkleinerung wesentliche Informationen wie Bemaßung oder Graphen gut erennbar bleiben. In einer Graphik, die eine Funktion mit 1 Pixel breite darstellt und die auf 3000×2000 Pixel ausgelegt ist, wird nach einer für Wiki-Seiten vernünfigen Skalierung nicht mehr viel übrig bleiben. Daher sollt bei einer Graphik auch immer deren visueller EIndruck nach Skalierung auf zB 200 oder 300 Pixel kontrolliert werden. Im Zweifelsfalle die Grafik kleiner auslegen.&lt;br /&gt;
&lt;br /&gt;
; Keine Riesen-Graphiken: Eine Bild soll den Artikel illustrieren und ihn nicht erschlagen. Bedenke auch, daß der Artikel nach dem breitesten Element ausgelegt wird und nicht jeder Leser einen Bildschirm mit 3200 Pixeln Breite hat: Beim Lesen des Artikels muss dann ständig links-rechts gescrollt werden weil der Artikel breiter ist als der Bildschirm. Das ist beim Lesen hinderlich und sehr störend. Gleiches gilt für überbreite Quelltexte.&lt;br /&gt;
&lt;br /&gt;
; Kein Fließtext: Prinzipiell ist es nicht ratsam, Fließtext in Grafiken zu schreiben. Stattdessen sollte Fließtext als solcher geschrieben werden, d.h. auf der Bildbeschreibungsseite als Information zur Grafik bzw. in einem Artikel, der die Grafik verwendet als Thumbnail-Text.&lt;br /&gt;
&lt;br /&gt;
; Keine Siamesischen Zwillinge: Grafiken, die als Siamesische Zwillinge daherkommen, können nicht mehr an das Layout angepasst werden. Im Artikel macht sich das u.U unangenehm bemerkbar, weil die Grafiken sehr breit sind.&lt;br /&gt;
&lt;br /&gt;
== Technisches ==&lt;br /&gt;
&lt;br /&gt;
;Keine externen Bilder: Lade die Bilddateien ins Wiki hoch! So kann das Bild korrigiert/verbessert werden, es hat seine Diskussionsseite, es können Beschreibungen und Quellangeben hinterlegt werden, und das Bild kann &#039;&#039;skaliert&#039;&#039; in Artikel eingefügt und kategorisiert werden. All dies ist nicht möglich für extern verlinkte Bilddateien.&lt;br /&gt;
&lt;br /&gt;
;Bildformate: Wie in [[Bildformate]] dargelegt, gibt es nur wenige Formate, die sich für ein Internet-Basiertes Wiki eignen:&lt;br /&gt;
&lt;br /&gt;
:;JPG: Für Fotos und Scans. Wähle einen vernünftigen Komprimierungs-Faktor!&lt;br /&gt;
:;SVG: Für Skizzen, Grafiken, etc. Ist PNG darin überlegen, daß es verlustfrei skaliert werden kann (Vektorformat).&lt;br /&gt;
:;PNG: Für Screenshots, Skizzen, Grafiken, etc.&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Tipps für Autoren]]&lt;/div&gt;</summary>
		<author><name>Hannes</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=Drehgeber&amp;diff=45353</id>
		<title>Drehgeber</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=Drehgeber&amp;diff=45353"/>
		<updated>2010-03-28T13:52:19Z</updated>

		<summary type="html">&lt;p&gt;Hannes: /* Dekoder für Drehgeber mit wackeligen Rastpunkten */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Drehgeber (auch Inkrementaldrehgeber, Quadraturencoder, Drehencoder, Drehimpulsgeber genannt) erzeugen bei Drehung der Achse an den zwei Datenleitungen am Ausgang ein sogenanntes [http://de.wikipedia.org/wiki/Gray-Code Gray-Code]-Signal. Der Vorteil dieser Codierung ist, dass ein [[Entprellung|Entprellen]] in der Regel überflüssig ist. Weiterhin hat dieser Code die Eigenschaft, dass sich zwischen benachbarten Codes nur ein Bit ändert. Das ermöglicht die asynchrone Abtastung, ohne mehr als einen Schritt vom wahren Ergebnis entfernt zu sein, weil maximal ein Bit falsch erfasst wird.&lt;br /&gt;
&lt;br /&gt;
[[bild:encoder_signal.png]]&lt;br /&gt;
&lt;br /&gt;
== Differenzierung von Drehgebern ==&lt;br /&gt;
&lt;br /&gt;
Man muss unterscheiden zwischen Drehgebern, die von schnellaufenden Maschinen angetrieben werden z.&amp;amp;nbsp;B. zum Messen des Drehwinkels und solchen die von Hand bedient werden z.&amp;amp;nbsp;B. zum Einstellen der Lautstärke. Letztere haben in der Regel Rastpunkte, bei denen der Knopf leicht &amp;quot;einschnappt&amp;quot;. Hierdurch fühlt der Benutzer das Fortschreiten des zu bedienenden Vorgangs z.&amp;amp;nbsp;B. das Hochregeln der Lautstärke. Die maschinengetriebenen Drehgeber sind jedoch in der Regel frei drehbar und haben keine mechanischen Rastpunkte. &lt;br /&gt;
&lt;br /&gt;
=== Handbediente Drehgeber ===&lt;br /&gt;
&lt;br /&gt;
Aus Kosten- und Platzgründen sind handbediente Drehgeber häufig als schaltende Kontakte ausgeführt, was die Gefahr des Prellens mit sich bringt. Die erste dagegen ergriffene Maßnahme ist die oben genannte Nutzung eines Codes, bei dem sich nie zwei Bits gleichzeitig ändern. Diese Maßnahme allein ist aber nicht ausreichend.&lt;br /&gt;
&lt;br /&gt;
Das oben gezeigte Signaldiagramm zeigt mit den senkrecht gestrichelten Linien die Rastungen so an, wie sie für Handbedienung verbreitet sind, nämlich mit zwei Codewechseln zwischen den Rastungen. Die Software sollte dies berücksichtigen und pro Rastung nur um einen Schritt fortschreiten, was bedeutet, dass nur zwei vollendete aufeinanderfolgende elektrische Wechsel ausgewertet werden. Dies hat den Vorteil, dass ein kurzfristiges Prellen eines Kontaktes durch Erschütterung des Encoders z.&amp;amp;nbsp;B. durch vibrierende Maschinen oder durch Kontaktprellen beim Drehen nicht zur Ausführung kommt. Dennoch ist die Reaktionszeit hoch, da verzögernde Timerschleifen zum Entprellen überflüssig sind. Die hierbei auftretende Halbierung der Auflösung ist wegen des durch menschliche Fähigkeiten begrenzt dosierbaren Drehwinkels irrelevant. Zudem entsteht so haptische Übereinstimmung zwischen der Anzahl der gefühlten Rastungen und dem Fortschreiten des zu bedienenden Prozesses.&lt;br /&gt;
&lt;br /&gt;
Es sei hier aber angemerkt, dass es auch handbediente Drehgeber mit anderer Anordnung der Rastungen gibt, die somit auch eines anderen Algorithmus bedürfen.&lt;br /&gt;
&lt;br /&gt;
=== Maschinengetriebene Drehgeber ===&lt;br /&gt;
&lt;br /&gt;
Der maschinengetriebene Drehgeber hat in der Regel keine Rastpunkte. Zudem dreht er sich häufig so schnell, dass für entprellende Maßnahmen nach dem Verzögerungsprinzip (Kondensator, Delayschleife oder zyklischer Timerüberlaufinterrupt) die Zeit fehlt. Daher sind solche Drehgeber in aller Regel zum Zwecke der prellfreien Ausgänge aufwendiger und somit teurer konstruiert. Realisiert wird dies durch kleines mechanisches Spiel, Leichtgängigkeit und optische Maßnahmen. Diese Prellfreiheit ist aber dann nutzlos, wenn der Drehgeber von einer Mechanik getrieben wird, welche Vibrationen bisweilen mikroskopischer Größe aufweist, z.&amp;amp;nbsp;B. ausgelöst durch mechanisches Spiel. Diese Vibration ist der Drehbewegung mechanisch überlagert. Dies kann dazu führen, dass beim Überschreiten eines elektrischen Schaltpunktes mikroskopisch mehrfach zurück und wieder vorgedreht wird und somit ein dem Prellen ähnliches Ereignis auftritt. Dies kann durch Auswertung zweier vollendeter aufeinanderfolgender elektrischer Wechsel vermieden werden. Dies stellt nach heutigem Kenntnisstand (2009) die schnellste Reaktionsmöglichkeit dar. Will man hierdurch nicht die Auflösung halbieren (wie es bei den oben genannten handbedienten Drehgebern passiert), müssen jeweils parallel zwei aufeinanderfolgende Impulse um die Periodenlänge eines Schaltimpulses phasenverschoben in zwei getrennten &amp;quot;Pipelines&amp;quot; überwacht werden. Vereinfacht ist dies hier für eine Drehrichtung illustriert. Die Berücksichtigung beider Drehrichtungen ist komplexer:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;c&amp;gt;&lt;br /&gt;
__|--|--|__|__&lt;br /&gt;
__|__|--|--|__&lt;br /&gt;
  |  |  |  |&lt;br /&gt;
  1  2  3  4&amp;lt;/c&amp;gt;Pipeline1 überwacht die vollendete Schaltfolge 1-2. Pipeline2 überwacht die vollendete Schaltfolge 2-3. Pipeline1 überwacht die vollendete Schaltfolge 3-4 etc. Jede der beiden Pipelines gibt einen Zählimpuls ab, so dass trotz Abwartens von zwei aufeinander folgenden Schaltpunkten bei jedem Schaltpunkt ein Fortschreitungsimpuls (Zählimpuls) erfolgt. Letztendlich liefert das Verfahren beim Wechsel zwischen Vor- und Rückwärtsdrehen eine mechanische [[Schmitt-Trigger|Hysterese]] von der Länge eines Schaltzustandes. Dies ist aber aufgrund der Vibrationen bzw. des mechanischen Spieles unvermeidbar. Der Drehgeber kann eben nicht genauer sein, als die ihn treibende Mechanik.&lt;br /&gt;
 &lt;br /&gt;
Ingesamt gesehen müssen die ergriffenen Maßnahmen auf die mechanischen Gegebenheiten und die Anforderungen an Auflösung und Geschwindigkeit optimiert werden. Die Angabe eines sehr aufwendigen parametrierbaren Algorithmus (dessen Wahl der Parameter wiederum nicht trivial wäre), der in allen Lebenslagen funktioniert, wäre zwar möglich, ist aber mit Blick auf die hohe Prozessorlast nicht angezeigt. In Extremfällen empfehlen sich möglicherweise [[FPGA]]s zur Auswertung. &amp;quot;Einigermaßen langsame&amp;quot; Anwendungen und geringe Auflösungen können aber mit denselben Methoden erschlagen werden, die sich auch für den handbetriebenen Drehgeber eignen und finden sich im Artikel unten.&lt;br /&gt;
&lt;br /&gt;
== Signalauswertung ==&lt;br /&gt;
&lt;br /&gt;
Im folgenden ein Bild, wie ein reales Signal eines Drehgebers aussehen kann: &amp;lt;br\&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
[[Datei:Prellender_Drehgeber.svg]]&lt;br /&gt;
 &lt;br /&gt;
Die Auswertung eines Drehgebers macht man am besten in einem Timer-Interrupt, der mit einer festen Frequenz ausgeführt wird. Die Abtastfrequenz muss so hoch sein, dass bei maximaler Drehzahl zwischen zwei Codewechseln mindestens 1 Abtastung erfolgt, besser jedoch mehr.&lt;br /&gt;
&lt;br /&gt;
== Warum Sparvarianten nicht gut sind ==&lt;br /&gt;
&lt;br /&gt;
Oft sieht man im Netz &amp;quot;clevere&amp;quot; Sparvarianten, welche angeblich ebensogut zur Auswertung von Drehgebern gegeignet sind. Ein genaueres Hinschauen sowie Tests unter realen Bedingungen zeigen jedoch schnell die Schwächen dieser Ansätze.&lt;br /&gt;
&lt;br /&gt;
=== Flankenerkennung von A und Pegelauswertung von B ===&lt;br /&gt;
&lt;br /&gt;
Viele Sparvarianten verwenden einen externen Interrupt, welcher auf die steigende oder fallende Flanke von Spur A auslöst und dann den Pegel von B auswertet. Ist B=0, dann dreht der Encoder nach rechts, anderenfalls nach links. Diese Auswertung hat zwei Schwachstellen.&lt;br /&gt;
&lt;br /&gt;
# Die Auflösung wird auf ein Viertel reduziert, weil nur jede steigende Flanke von A ausgewertet wird.&lt;br /&gt;
# Pendelt der Encoder zwischen zwei Codes, bei denen A seinen Pegel wechselt,&lt;br /&gt;
## kommt es zu (sehr) vielen Interrupts, die den Mikrocontroller vollkommen auslasten können.&lt;br /&gt;
## interpretiert die Auswertung jede steigende Flanke als neuen Schritt. Der Encoder scheint sich für die Auswertung immer weiter zu drehen, obwohl er nur pendelt.&lt;br /&gt;
&lt;br /&gt;
Das Pendeln kann zwei Ursachen haben.&lt;br /&gt;
&lt;br /&gt;
# Der Encoder pendelt wirklich; das kann z.&amp;amp;nbsp;B. bei hochauflösenden Encodern ohne Rastung geschehen, welche an jeder beliebigen Stelle stehen bleiben können und durch geringe mechanische Erschütterungen dann zwischen zwei Codes pendeln; das kann z.&amp;amp;nbsp;B. bei hochauflösenden Encodern in CNC-Maschinen der Fall sein.&lt;br /&gt;
# Die Signale prellen; das kommt vor allem bei billigen elektromechanischen Drehknöpfen vor, welche einfache Schleifkontakte zur Kodierung nutzen.&lt;br /&gt;
&lt;br /&gt;
Wie man sieht ist diese Methode nicht geeignet, einen Drehgeber solide zu dekodieren.&lt;br /&gt;
&lt;br /&gt;
=== Auswertung mit Interrupt durch Pegelwechsel ===&lt;br /&gt;
&lt;br /&gt;
Es wird bisweilen die Auffassung vertreten, dass mit Hilfe von sog. Pin Change Interrupts Rechenzeit gespart werden kann. Dabei wird bei einem Pegelwechsel von Spur A oder B ein Interrupt erzeugt. Dort werden dann A und B eingelesen und vollständig ausgewertet. Diese Methode ist besser, aber nicht gut genug. Sie vermeidet Fehler 1. und 2.2 der oben genannten Auswertung, aber nicht 2.1, da auch sie durch einen pendelnden/prellenden Encoder die CPU stark belastet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
== Solide Lösung: Beispielcode in C ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;c&amp;gt;&lt;br /&gt;
/************************************************************************/&lt;br /&gt;
/*                                                                      */&lt;br /&gt;
/*                      Reading rotary encoder                      */&lt;br /&gt;
/*                      one, two and four step encoders supported   */&lt;br /&gt;
/*                                                                      */&lt;br /&gt;
/*              Author: Peter Dannegger                                 */&lt;br /&gt;
/*                                                                      */&lt;br /&gt;
/************************************************************************/&lt;br /&gt;
#include &amp;lt;avr/io.h&amp;gt;&lt;br /&gt;
#include &amp;lt;avr/interrupt.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                // target: ATmega16&lt;br /&gt;
//------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
#define XTAL        8e6         // 8MHz&lt;br /&gt;
&lt;br /&gt;
#define PHASE_A     (PINA &amp;amp; 1&amp;lt;&amp;lt;PA1)&lt;br /&gt;
#define PHASE_B     (PINA &amp;amp; 1&amp;lt;&amp;lt;PA3)&lt;br /&gt;
&lt;br /&gt;
#define LEDS_DDR    DDRC&lt;br /&gt;
#define LEDS        PORTC           // LEDs against VCC&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
volatile int8_t enc_delta;          // -128 ... 127&lt;br /&gt;
static int8_t last;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
void encode_init( void )&lt;br /&gt;
{&lt;br /&gt;
  int8_t new;&lt;br /&gt;
&lt;br /&gt;
  new = 0;&lt;br /&gt;
  if( PHASE_A )&lt;br /&gt;
    new = 3;&lt;br /&gt;
  if( PHASE_B )&lt;br /&gt;
    new ^= 1;                   // convert gray to binary&lt;br /&gt;
  last = new;                   // power on state&lt;br /&gt;
  enc_delta = 0;&lt;br /&gt;
  TCCR0 = 1&amp;lt;&amp;lt;WGM01^1&amp;lt;&amp;lt;CS01^1&amp;lt;&amp;lt;CS00;     // CTC, XTAL / 64&lt;br /&gt;
  OCR0 = (uint8_t)(XTAL / 64.0 * 1e-3 - 0.5);   // 1ms&lt;br /&gt;
  TIMSK |= 1&amp;lt;&amp;lt;OCIE0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ISR( TIMER0_COMP_vect )             // 1ms for manual movement&lt;br /&gt;
{&lt;br /&gt;
  int8_t new, diff;&lt;br /&gt;
&lt;br /&gt;
  new = 0;&lt;br /&gt;
  if( PHASE_A )&lt;br /&gt;
    new = 3;&lt;br /&gt;
  if( PHASE_B )&lt;br /&gt;
    new ^= 1;                   // convert gray to binary&lt;br /&gt;
  diff = last - new;                // difference last - new&lt;br /&gt;
  if( diff &amp;amp; 1 ){               // bit 0 = value (1)&lt;br /&gt;
    last = new;                 // store new as next last&lt;br /&gt;
    enc_delta += (diff &amp;amp; 2) - 1;        // bit 1 = direction (+/-)&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
int8_t encode_read1( void )         // read single step encoders&lt;br /&gt;
{&lt;br /&gt;
  int8_t val;&lt;br /&gt;
&lt;br /&gt;
  cli();&lt;br /&gt;
  val = enc_delta;&lt;br /&gt;
  enc_delta = 0;&lt;br /&gt;
  sei();&lt;br /&gt;
  return val;                   // counts since last call&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
int8_t encode_read2( void )         // read two step encoders&lt;br /&gt;
{&lt;br /&gt;
  int8_t val;&lt;br /&gt;
&lt;br /&gt;
  cli();&lt;br /&gt;
  val = enc_delta;&lt;br /&gt;
  enc_delta = val &amp;amp; 1;&lt;br /&gt;
  sei();&lt;br /&gt;
  return val &amp;gt;&amp;gt; 1;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
int8_t encode_read4( void )         // read four step encoders&lt;br /&gt;
{&lt;br /&gt;
  int8_t val;&lt;br /&gt;
&lt;br /&gt;
  cli();&lt;br /&gt;
  val = enc_delta;&lt;br /&gt;
  enc_delta = val &amp;amp; 3;&lt;br /&gt;
  sei();&lt;br /&gt;
  return val &amp;gt;&amp;gt; 2;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
int main( void )&lt;br /&gt;
{&lt;br /&gt;
  int32_t val = 0;&lt;br /&gt;
&lt;br /&gt;
  LEDS_DDR = 0xFF;&lt;br /&gt;
  encode_init();&lt;br /&gt;
  sei();&lt;br /&gt;
&lt;br /&gt;
  for(;;){&lt;br /&gt;
    val += encode_read1();          // read a single step encoder&lt;br /&gt;
    LEDS = val;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/c&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Je nach Encodertyp entfernt man die beiden nicht benötigten Auslesefunktionen.&lt;br /&gt;
Für manuelle Eingabe ist ein Abfrageintervall von 1ms meist ausreichend. Das Auslesen im Hauptprogramm mit den Funktionen encode_readx() muss mit mindesten 127tel der Frequenz des Timers erfolgen, hier im Beispiel mit 1kHz/127 ~ 8Hz. Ansonsten können im Extremfall Überläufe der Variable enc_delta auftreten und zu Fehlfunktionen des Programms führen. &lt;br /&gt;
&lt;br /&gt;
* http://dse-faq.elektronik-kompendium.de/dse-faq.htm#F.29&lt;br /&gt;
* http://www.mikrocontroller.net/topic/6526&lt;br /&gt;
* http://www.mikrocontroller.net/topic/38863&lt;br /&gt;
&lt;br /&gt;
Ferner ist beim Auswerten zu beachten, dass die beiden Signalleitungen des Drehgebers möglichst zeitgleich erfasst werden. Dies ist insbesondere dann wichtig, wenn der Drehgeber zusammen mit weiteren Bedienelementen an einen Multiplexer angeschlossen ist!&lt;br /&gt;
&lt;br /&gt;
=== Dekoder für Drehgeber mit wackeligen Rastpunkten ===&lt;br /&gt;
&lt;br /&gt;
Im wahren Leben gibt es immer wieder Dinge, welche der Theorie zwar widersprechen, dennoch weit verbreitet sind. Da machen Drehgeber keine Ausnahme. Gerade die heute so beliebten Drehgeber für manuelle Bedienung sind in großer Anzahl von verschiedenen Herstellern verfügbar. Umso merkwürdiger ist es, dass hier die Rastpunkte oft &#039;&#039;&#039;genau&#039;&#039;&#039; auf dem Pegelwechsel einer Spur liegen, meist Spur B. So zum Beispiel beim Drehgeber [http://www.alps.com/products/WebObjects/catalog.woa/E/PDF/Switch/Encoder/EC11/EC11.PDF EC11E15244B2] von [http://www.alps.com Alps], welcher u.a bei [http://www.pollin.de Pollin] ehältlich ist.&lt;br /&gt;
&lt;br /&gt;
Bei diesem Drehgeber kommt es bei der klassischen, eigentlich soliden Auswertung zu dem Effekt, dass der Drehgeber in Ruhelage auf einem Rastpunkt pendeln kann. Damit erhält das Programm sporadisch einen Schritt vor und zurück. Auch wenn sich die Auswertung daran nicht verschluckt, so ist dieses Pendeln doch ärgerlich, denn eine Menusteuerung würde dann komische Sachen machen.&lt;br /&gt;
&lt;br /&gt;
Die solide Lösung des Problem ist recht einfach. Man wertet in der bekannten Manier weiterhin die abgetasteten Spuren A und B aus, allerdings mit der Änderung, dass man nur die Pegelwechsel der Spur A auswertet. Damit halbiert man zwar die Auflösung, das ist hier aber paradoxerweise gut! Denn damit bekommt man automatisch genau einen Zählimpuls pro Rastpunkt.&lt;br /&gt;
&lt;br /&gt;
Praktisch heisst das, dass man lediglich die Dekodertabelle für die Auswertung ändern muss. Beachtet werden muss jedoch, dass man bei den &amp;quot;wackeligen&amp;quot; Drehgebern Spur A und B &#039;&#039;&#039;nicht&#039;&#039;&#039; beliebig vertauschen kann. Ist also die Auswertung immer noch wackelig, muss man im Quelltext die Defines für PHASE_A und PHASE_B vertauschen. Ein Blick ins Datenblatt des Drehgebers sollte auch hier helfen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;c&amp;gt;&lt;br /&gt;
/************************************************************************/&lt;br /&gt;
/*                                                                      */&lt;br /&gt;
/*            Drehgeber mit wackeligem Rastpunkt dekodieren             */&lt;br /&gt;
/*                                                                      */&lt;br /&gt;
/************************************************************************/&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;avr/io.h&amp;gt;&lt;br /&gt;
#include &amp;lt;avr/interrupt.h&amp;gt;&lt;br /&gt;
#include &amp;lt;avr/pgmspace.h&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
#define XTAL        8e6                 // 8MHz&lt;br /&gt;
 &lt;br /&gt;
#define PHASE_A     (PINA &amp;amp; 1&amp;lt;&amp;lt;PA1)     // an Pinbelegung anpassen&lt;br /&gt;
#define PHASE_B     (PINA &amp;amp; 1&amp;lt;&amp;lt;PA3)     // an Pinbelegung anpassen&lt;br /&gt;
 &lt;br /&gt;
#define LEDS_DDR    DDRC&lt;br /&gt;
#define LEDS        PORTC               // LEDs gegen Vcc geschaltet&lt;br /&gt;
  &lt;br /&gt;
volatile int8_t enc_delta;              // Drehgeberbewegung zwischen&lt;br /&gt;
                                        // zwei Auslesungen im Hauptprogramm&lt;br /&gt;
&lt;br /&gt;
// Dekodertabelle für wackeligen Rastpunkt&lt;br /&gt;
// halbe Auflösung&lt;br /&gt;
int8_t table[16] PROGMEM = {0,0,-1,0,0,0,0,1,1,0,0,0,0,-1,0,0};    &lt;br /&gt;
&lt;br /&gt;
// Dekodertabelle für normale Drehgeber&lt;br /&gt;
// volle Auflösung&lt;br /&gt;
//int8_t table[16] PROGMEM = {0,1,-1,0,-1,0,0,1,1,0,0,-1,0,-1,1,0};    &lt;br /&gt;
 &lt;br /&gt;
ISR( TIMER0_COMP_vect )             // 1ms fuer manuelle Eingabe&lt;br /&gt;
{&lt;br /&gt;
    static int8_t last=0;           // alten Wert speichern&lt;br /&gt;
&lt;br /&gt;
    last = (last &amp;lt;&amp;lt; 2)  &amp;amp; 0x0F;&lt;br /&gt;
    if (PHASE_A) last |=2;&lt;br /&gt;
    if (PHASE_B) last |=1;&lt;br /&gt;
    enc_delta += pgm_read_byte(&amp;amp;table[last]);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void encode_init( void )            // nur Timer 0 initialisieren&lt;br /&gt;
{&lt;br /&gt;
  TCCR0 = (1&amp;lt;&amp;lt;WGM01) || (1&amp;lt;&amp;lt;CS01) || (1&amp;lt;&amp;lt;CS00);     // CTC, XTAL / 64&lt;br /&gt;
  OCR0 = (uint8_t)(XTAL / 64.0 * 1e-3 - 0.5);       // 1ms&lt;br /&gt;
  TIMSK |= 1&amp;lt;&amp;lt;OCIE0;&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
int8_t encode_read( void )         // Encoder auslesen&lt;br /&gt;
{&lt;br /&gt;
  int8_t val;&lt;br /&gt;
&lt;br /&gt;
  // atomarer Variablenzugriff  &lt;br /&gt;
  cli();&lt;br /&gt;
  val = enc_delta;&lt;br /&gt;
  enc_delta = 0;&lt;br /&gt;
  sei();&lt;br /&gt;
  return val;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
int main( void )&lt;br /&gt;
{&lt;br /&gt;
  int32_t val = 0;&lt;br /&gt;
 &lt;br /&gt;
  LEDS_DDR = 0xFF;&lt;br /&gt;
  sei();&lt;br /&gt;
 &lt;br /&gt;
  while(1){&lt;br /&gt;
    val += encode_read();      &lt;br /&gt;
    LEDS = val;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/c&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Beispielcode in VHDL ==&lt;br /&gt;
&lt;br /&gt;
Besonders bei höheren Winkelgeschwindigkeiten und Auflösungen ist eine Auswertung in Software in einem Mikrocontroller irgendwann einmal technisch unsinnig. Dann muss ein Dekoder in Hardware her, heutzutage meist programmierbare Logik in Form eines [[CPLD]] oder [[FPGA]]. [[VHDL]] ist eine weit verbreitete Sprache zur Logikbeschreibung bzw. Synthese. Der folgende Code tastet die beiden Quadratursignale ab und generiert daraus ein UP/DOWN Signal sowie ein CE für einen Zähler, mit dem dann die aktuelle Position erfasst werden kann. Zusätzlich wird ein illegaler Signalübergang signalisiert, was meist auf einen defekten Drehgeber oder zu niedrige Abtastfrequenz hinweist.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;vhdl&amp;gt;&lt;br /&gt;
-----------------------------------------------------------------------------&lt;br /&gt;
--&lt;br /&gt;
-- Decoder für Drehgeber&lt;br /&gt;
--&lt;br /&gt;
-----------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
library IEEE;&lt;br /&gt;
use IEEE.STD_LOGIC_1164.ALL;&lt;br /&gt;
&lt;br /&gt;
entity incremental_encoder is&lt;br /&gt;
    Port ( clk      : in std_logic;         -- Systemtakt&lt;br /&gt;
           A        : in std_logic;         -- Spur A&lt;br /&gt;
           B        : in std_logic;         -- Spur B&lt;br /&gt;
           up_down  : out std_logic;        -- Zaehlrichtung&lt;br /&gt;
           ce       : out std_logic;        -- Clock Enable&lt;br /&gt;
           error    : out std_logic);       -- illegaler Signalübergang&lt;br /&gt;
end incremental_encoder;&lt;br /&gt;
&lt;br /&gt;
architecture Behavioral of incremental_encoder is&lt;br /&gt;
&lt;br /&gt;
signal a_in, b_in, a_old, b_old: std_logic;&lt;br /&gt;
&lt;br /&gt;
begin&lt;br /&gt;
&lt;br /&gt;
-- Abtastung und Verzoegerung der Quadratursignale&lt;br /&gt;
&lt;br /&gt;
process(clk)&lt;br /&gt;
begin&lt;br /&gt;
  if rising_edge(clk) then&lt;br /&gt;
    a_in  &amp;lt;= A;&lt;br /&gt;
    a_old &amp;lt;= a_in;&lt;br /&gt;
    b_in  &amp;lt;= B;&lt;br /&gt;
    b_old &amp;lt;= b_in;&lt;br /&gt;
  end if;&lt;br /&gt;
end process;&lt;br /&gt;
&lt;br /&gt;
-- Dekodierung der Ausgaenge&lt;br /&gt;
&lt;br /&gt;
process(a_in, b_in, a_old, b_old)&lt;br /&gt;
variable state: std_logic_vector(3 downto 0);&lt;br /&gt;
begin&lt;br /&gt;
  state := a_in &amp;amp; b_in &amp;amp; a_old &amp;amp; b_old;&lt;br /&gt;
  case state is&lt;br /&gt;
    when &amp;quot;0000&amp;quot; =&amp;gt; up_down &amp;lt;= &#039;0&#039;; ce &amp;lt;= &#039;0&#039;; error &amp;lt;= &#039;0&#039;;&lt;br /&gt;
    when &amp;quot;0001&amp;quot; =&amp;gt; up_down &amp;lt;= &#039;1&#039;; ce &amp;lt;= &#039;1&#039;; error &amp;lt;= &#039;0&#039;;&lt;br /&gt;
    when &amp;quot;0010&amp;quot; =&amp;gt; up_down &amp;lt;= &#039;0&#039;; ce &amp;lt;= &#039;1&#039;; error &amp;lt;= &#039;0&#039;;&lt;br /&gt;
    when &amp;quot;0011&amp;quot; =&amp;gt; up_down &amp;lt;= &#039;0&#039;; ce &amp;lt;= &#039;0&#039;; error &amp;lt;= &#039;1&#039;;&lt;br /&gt;
    when &amp;quot;0100&amp;quot; =&amp;gt; up_down &amp;lt;= &#039;0&#039;; ce &amp;lt;= &#039;1&#039;; error &amp;lt;= &#039;0&#039;;&lt;br /&gt;
    when &amp;quot;0101&amp;quot; =&amp;gt; up_down &amp;lt;= &#039;0&#039;; ce &amp;lt;= &#039;0&#039;; error &amp;lt;= &#039;0&#039;;&lt;br /&gt;
    when &amp;quot;0110&amp;quot; =&amp;gt; up_down &amp;lt;= &#039;1&#039;; ce &amp;lt;= &#039;0&#039;; error &amp;lt;= &#039;1&#039;;&lt;br /&gt;
    when &amp;quot;0111&amp;quot; =&amp;gt; up_down &amp;lt;= &#039;1&#039;; ce &amp;lt;= &#039;1&#039;; error &amp;lt;= &#039;0&#039;;&lt;br /&gt;
    when &amp;quot;1000&amp;quot; =&amp;gt; up_down &amp;lt;= &#039;1&#039;; ce &amp;lt;= &#039;1&#039;; error &amp;lt;= &#039;0&#039;;&lt;br /&gt;
    when &amp;quot;1001&amp;quot; =&amp;gt; up_down &amp;lt;= &#039;0&#039;; ce &amp;lt;= &#039;0&#039;; error &amp;lt;= &#039;1&#039;;&lt;br /&gt;
    when &amp;quot;1010&amp;quot; =&amp;gt; up_down &amp;lt;= &#039;0&#039;; ce &amp;lt;= &#039;0&#039;; error &amp;lt;= &#039;0&#039;;&lt;br /&gt;
    when &amp;quot;1011&amp;quot; =&amp;gt; up_down &amp;lt;= &#039;0&#039;; ce &amp;lt;= &#039;1&#039;; error &amp;lt;= &#039;0&#039;;&lt;br /&gt;
    when &amp;quot;1100&amp;quot; =&amp;gt; up_down &amp;lt;= &#039;0&#039;; ce &amp;lt;= &#039;0&#039;; error &amp;lt;= &#039;1&#039;;&lt;br /&gt;
    when &amp;quot;1101&amp;quot; =&amp;gt; up_down &amp;lt;= &#039;0&#039;; ce &amp;lt;= &#039;1&#039;; error &amp;lt;= &#039;0&#039;;&lt;br /&gt;
    when &amp;quot;1110&amp;quot; =&amp;gt; up_down &amp;lt;= &#039;1&#039;; ce &amp;lt;= &#039;1&#039;; error &amp;lt;= &#039;0&#039;;&lt;br /&gt;
    when &amp;quot;1111&amp;quot; =&amp;gt; up_down &amp;lt;= &#039;0&#039;; ce &amp;lt;= &#039;0&#039;; error &amp;lt;= &#039;0&#039;;&lt;br /&gt;
    when others =&amp;gt; null;&lt;br /&gt;
  end case;&lt;br /&gt;
end process;&lt;br /&gt;
&lt;br /&gt;
end Behavioral;&lt;br /&gt;
&amp;lt;/vhdl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Dekoder mit diskreten Logik-ICs ==&lt;br /&gt;
&lt;br /&gt;
Für einige Anwender sind Mikrocontroller und programmierbare ICs bisweilen zu komplex oder aus anderen Gründen nicht nutzbar. Dann braucht man eine Lösung mit klassischen Logikbausteinen. Aber auch das ist recht leicht gemacht. Zwei kleine ICs genügen.&lt;br /&gt;
[[Bild:Schaltplan_quad_decoder.png|thumb|left|640px|Diskret aufgebauter Dekoder]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;all&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das [[media:Quad_decoder_opt.zip|Projekt im Eagleformat]] kann auf einer kleinen einseitigen Platine aufgebaut werden, es sind nur vier Lötbrücken notwendig (Rote Leitungen im TOP-Layer).&lt;br /&gt;
&lt;br /&gt;
[[Category:Bauteile]]&lt;/div&gt;</summary>
		<author><name>Hannes</name></author>
	</entry>
</feed>