<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
		<id>https://rn-wissen.de/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Oberallgeier</id>
		<title>RN-Wissen.de - Benutzerbeiträge [de]</title>
		<link rel="self" type="application/atom+xml" href="https://rn-wissen.de/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Oberallgeier"/>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=Spezial:Beitr%C3%A4ge/Oberallgeier"/>
		<updated>2026-04-11T16:20:14Z</updated>
		<subtitle>Benutzerbeiträge</subtitle>
		<generator>MediaWiki 1.25.1</generator>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=Datei:GMot_enc4_1710.jpg&amp;diff=26384</id>
		<title>Datei:GMot enc4 1710.jpg</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=Datei:GMot_enc4_1710.jpg&amp;diff=26384"/>
				<updated>2015-05-22T12:35:19Z</updated>
		
		<summary type="html">&lt;p&gt;Oberallgeier: Umbau eines Servomotors zu einem Getriebemotor mit Encoder. Das aktuell dargestellte Teil ist der Umbau eines Miniservos (Carson 502), der in mehreren Projekten als Getriebemotor mit Drehzahlregelung läuft.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Umbau eines Servomotors zu einem Getriebemotor mit Encoder. Das aktuell dargestellte Teil ist der Umbau eines Miniservos (Carson 502), der in mehreren Projekten als Getriebemotor mit Drehzahlregelung läuft.&lt;/div&gt;</summary>
		<author><name>Oberallgeier</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=Fotodiode&amp;diff=23242</id>
		<title>Fotodiode</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=Fotodiode&amp;diff=23242"/>
				<updated>2013-11-21T10:18:23Z</updated>
		
		<summary type="html">&lt;p&gt;Oberallgeier: /* Schaltzeiten */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Bild:Fotodiode-Foto.JPG|thumb|Verschiedene Bauformen von Fotodioden]]&lt;br /&gt;
Fotodioden sind eine Art von Dioden, die auf einfallendes Licht reagieren. Der pn-Übergang ist bei Fotodioden optisch zugänglich. &lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
== Aufbau und Funktion ==&lt;br /&gt;
[[Bild:Fotodiode-Struktur.jpg|thumb|Innerer Aufbau einer Fotodiode]]&lt;br /&gt;
[[Bild:Fotodiode-Schaltbild.jpg|left]]''Schaltzeichen einer Fotodiode''&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;Meist befindet sich zwischen den beiden dotierten Halbleiterschichten (p und n) ein undotierter Bereich (PIN-Dioden). Im Bereich des Überganges werden bei einfallendem Licht durch den inneren lichtelektrischen Effekt freie Elektronen aus der atomaren Struktur gelöst, die einen Fotostrom erzeugen.&lt;br /&gt;
&lt;br /&gt;
Das Verhalten der Fotodiode kann weitgehend durch die Ersatzschaltung aus einer Diode parallel mit einer Stromquelle proportional zur Lichtintensität beschrieben werden.&lt;br /&gt;
Bei kleinen Spannungen oder mit Spannung in Sperrrichtung ist der Strom über einen sehr großen Bereich proportional zur Intensität und relativ unabhängig von der Spannung.&lt;br /&gt;
Bei Betrieb mit nur einem Lastwiderstand erzeugt die Fotodiode wie eine Solarzelle elektrische Energie. Die Leerlaufspannung ist annähernd proportional zum Logarithmus der Intensität.&lt;br /&gt;
&lt;br /&gt;
Die langwellige Grenze der spektralen Empfindlichkeit von Fotodioden hängt vom verwendeten Halbleitermaterial ab. Bei Silizium liegt die Grenze bei ca. 1050 nm, die höchste spektrale Empfindlichkeit je nach Qualität bei ca. 800-900 nm. Bei Germanium liegt die Grenze ca. bei 1900 nm, also im Infrarot-Bereich. Die kurzwellige Grenze hängt vom Fenstermaterial und der Oberfläche des Halbleiters ab, typisch bei etwa 400 nm. Für Infrarot-Anwendungen gibt es Fotodioden mit integriertem Filter, die dann nur auf Infrarotlicht zwischen ca. 800 nm und ca. 1000 nm reagieren.&lt;br /&gt;
Daneben gibt es auch Fotodioden speziell für den sichtbaren Bereich, die das IR-Licht unterdrücken (z.B. BPW21).&lt;br /&gt;
&lt;br /&gt;
Die typische Empfindlichkeit liegt bei ca. 0,5 A/W bei 800 nm. In der Regel hat man also kleine Ströme im µA-Bereich und darunter.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
== Anwendungsbeispiele ==&lt;br /&gt;
[[Bild:FotodiodenVerst.png|thumb|Einfacher Verstärker für Fotodiode]]&lt;br /&gt;
Im Gegensatz zum [[Fotowiderstand]] haben Fotodioden eine geringe Trägheit und können auf Signale im Nano- und Mikrosekunden-Bereich reagieren. Die Schaltgeschwindigkeit hängt dabei von der Sperrspannung ab; je höher diese ist, desto kürzer werden die Schaltzeiten (bei Erhöhung der Sperrspannung wird die Kapazität der Sperrschicht geringer).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das Bild rechts zeigt eine einfache Verstärkerschaltung, um eine Fotodiode an einen µC anzuschließen. Schaltzeiten bis etwa 20 µs sind so möglich.&lt;br /&gt;
&lt;br /&gt;
Wegen der sehr guten Linearität werden für genaue Messungen der Lichtintensität in der Regel Fotodioden benutzt. Der Strom wird dabei oft mit einem als Transimpedanzverstärker geschalteten [[Operationsverstärker]] in eine Spannung umgewandelt.&lt;br /&gt;
&lt;br /&gt;
Um sich das relativ starke IR-Signal z.B. einer [[RC5-Code|Fernbedienung]] anzusehen, genügt es parallel zu einer Fotodiode (bevorzugt mit IR-Filter) einen Widerstand von etwa 1 kOhm zu schalten und die Spannung auf dem Oszilloskop darzustellen.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
== Schaltzeiten ==&lt;br /&gt;
Als Daumenregel zur Grenzgeschwindigkeit von Photodioden und Phototransistoren gilt:&lt;br /&gt;
&lt;br /&gt;
Pin-Photo-Dioden kommen ca. auf 1GHz&amp;lt;br/&amp;gt;&lt;br /&gt;
Photo-Dioden erreichen Grenzfrequenzen von etwa 10MHz&amp;lt;br/&amp;gt;&lt;br /&gt;
Photo-Transistoren ca. 300kHz&amp;lt;br/&amp;gt;&lt;br /&gt;
Photo-Darlington-Transistoren ca. 30kHz.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Genaues steht wie immer im Datenblatt. (Richtwerte z.B. im Tietze/Schenk; danke Peter(TOO) für den Hinweis).&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Vergleich bekannter Typen ==&lt;br /&gt;
{| {{Blauetabelle}}&lt;br /&gt;
|-&lt;br /&gt;
| Typ || Bauform || max.Empf.bei || Bereich der Empf.10% || empf. Fläche || Halbwinkel || Fotostrom typ. || Schaltzeit&lt;br /&gt;
|-&lt;br /&gt;
| BP104 || bedrahtet, flach, liegend || 950nm || 870...1050nm || 7,5mm² || +-65° || 38µA || 100ns&lt;br /&gt;
|-&lt;br /&gt;
| BPW21 || Metallgehäuse bedrahtet, ɸ9x3mm || 550nm || 350...820nm || 7,34 mm² || +-55° || 10µA || 1,5µs&lt;br /&gt;
|-&lt;br /&gt;
| BPW24R || Metallgeh. bedr. TO-18, ɸ4,7x6,2mm || 900nm || 600..1050nm || 0,78 mm² || +-12° || 45-60µA || 7ns&lt;br /&gt;
|-&lt;br /&gt;
| BPW34 || flach 4,7x4,3x2mm, oben empfindl. ||  900nm || 600...1050nm || 7,5 mm² || +-65° || 40-70µA || 100ns&lt;br /&gt;
|-&lt;br /&gt;
| BPW82 || Ähnlich TO-92, seitlich empf. || 950nm || 790...1050nm || 7,5mm² || +-65° || 38µA || 100ns&lt;br /&gt;
|-&lt;br /&gt;
| BPX48 || Ähnlich Optokopplergehäuse || 900nm || 400...1150nm || 1,54 mm² || +-60° || 24µA || 500ns&lt;br /&gt;
|-&lt;br /&gt;
| BPX48F || Ähnlich Optokopplergehäuse || 920nm || 750...1150nm || 1,54 mm² || +-60° || 7µA || 500ns&lt;br /&gt;
|-&lt;br /&gt;
| BPX61 || Metallgehäuse bedrahtet, ɸ9x3mm || 850nm || 400...1100nm || 7 mm² || +-55° || 70 µA || 20ns&lt;br /&gt;
|-&lt;br /&gt;
| BPX65 || Metallgehäuse bedrahtet, ɸ4,6x5mm || 850nm || 350...1100nm || 1 mm² || +-40° || 10µA || 12ns&lt;br /&gt;
|-&lt;br /&gt;
| PD333 || 5mm || 980nm || 400...1200nm (50%) || ? || ? || 40µA || 45ns&lt;br /&gt;
|-&lt;br /&gt;
| SFH203 || 5mm || 850nm || 400...1100nm || 1mm² || +-20° || 80µA || 5ns&lt;br /&gt;
|-&lt;br /&gt;
| SFH203FA || 5mm || 900nm || 800...1100nm || 1mm² || +-20° || 50µA || 5ns&lt;br /&gt;
|-&lt;br /&gt;
| SFH205F || 5mm || 950nm || 800...1100nm || 7mm² || +-60° || 60µA || 20ns&lt;br /&gt;
|-&lt;br /&gt;
| SFH206K || 5mm, seitlich empf.|| 850nm || 400...1100nm || 7mm² || +-60° || 80µA || 20ns&lt;br /&gt;
|-&lt;br /&gt;
| SFH213 || 5mm || 850nm || 400...1100nm || 1mm² || +-10° || 135µA || 5ns&lt;br /&gt;
|-&lt;br /&gt;
| SFH213FA || 5mm || 900nm || 750...1100nm || 1mm² || +-10° || 90µA || 5ns&lt;br /&gt;
|-&lt;br /&gt;
| SFH225FA || flach, seitlich empf. || 900nm || 74...1120nm || 4.84mm² || +-60° || 17µA || 20ns&lt;br /&gt;
|-&lt;br /&gt;
| SFH229 || 3mm || 860nm || 380...1100nm || 0,3mm² || +-17° || 9-27µA || 10ns&lt;br /&gt;
|-&lt;br /&gt;
| SFH229FA || 3mm || 900nm || 730...1100nm || 0,3mm² || +-17° || 9-27µA || 10ns&lt;br /&gt;
|-&lt;br /&gt;
| SFH2400 || „SMT-Bauform“ (SMD, flach, 3Pins) || 850nm || 400...1100nm || 1mm² || +-60° || 10µA || 5ns&lt;br /&gt;
|-&lt;br /&gt;
| SFH2400FA || „SMT-Bauform“ (SMD, flach, 3Pins) || 900nm || 750...1100nm || 1mm² || +-60° || 6µA || 5ns&lt;br /&gt;
|-&lt;br /&gt;
| SFH2500,&amp;lt;br/&amp;gt;SFH2505 || ähnlich 5mm LED || 850nm || 400...1100nm || 1mm² || +-15° || 70-100µA || 5ns&lt;br /&gt;
|-&lt;br /&gt;
| SFH2500FA,&amp;lt;br/&amp;gt;SFH2505FA || ähnlich 5mm LED || 900nm || 750...1100nm || 1mm² || +-15° || 70µA || 5ns&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Anmerkung: Fotodioden eines Typs können bei unterschiedlichen Herstellern geringfügig unterschiedliche Spezifikationen haben (vergleiche z.B. Datenblätter für BPW34).&lt;br /&gt;
&lt;br /&gt;
== Anmerkungen ==&lt;br /&gt;
''Der Autor möchte hier weder die an anderen Stellen zu findenden Formelsammlungen wiedergeben, noch mit diesem Artikel ein Fachbuch ersetzen. Einzig die Grundlagen, die (aus eigener Erfahrung) für einen Hobby-Bastler von Interesse sind, sollen hier dargestellt werden.'' &lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
*[[Fototransistor]]&lt;br /&gt;
*[[Fotowiderstand]]&lt;br /&gt;
*[[Sensorarten]]&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* [http://de.wikipedia.org Wikipedia]&amp;lt;br/&amp;gt;&lt;br /&gt;
* [http://www.elektronik-kompendium.de/sites/bau/0111021.htm ELektronik-KOmpendium - Fotodiode]&amp;lt;br/&amp;gt;&lt;br /&gt;
* [http://www.mikrocontroller.net/articles/Lichtsensor_/_Helligkeitssensor#Konstantstromquelle_mit_Transimpedanzverst.C3.A4rker Mikrokontroller.net:Lichtsensoren]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Autor ==&lt;br /&gt;
*[[Benutzer:Williwilli|Williwilli]] 17:26, 17. Okt 2008 (CEST)&amp;lt;br\&amp;gt;&lt;br /&gt;
*[[Benutzer:Besserwessi|Besserwessi]]&lt;br /&gt;
*[[Benutzer:BMS|BMS]] (Tabelle)&lt;br /&gt;
[[Kategorie:Grundlagen]]&lt;br /&gt;
[[Kategorie:Elektronik]]&lt;br /&gt;
[[Kategorie:Sensoren]]&lt;/div&gt;</summary>
		<author><name>Oberallgeier</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=Fotodiode&amp;diff=23241</id>
		<title>Fotodiode</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=Fotodiode&amp;diff=23241"/>
				<updated>2013-11-21T10:17:13Z</updated>
		
		<summary type="html">&lt;p&gt;Oberallgeier: /* Schaltzeiten */ Zitathinweis&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Bild:Fotodiode-Foto.JPG|thumb|Verschiedene Bauformen von Fotodioden]]&lt;br /&gt;
Fotodioden sind eine Art von Dioden, die auf einfallendes Licht reagieren. Der pn-Übergang ist bei Fotodioden optisch zugänglich. &lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
== Aufbau und Funktion ==&lt;br /&gt;
[[Bild:Fotodiode-Struktur.jpg|thumb|Innerer Aufbau einer Fotodiode]]&lt;br /&gt;
[[Bild:Fotodiode-Schaltbild.jpg|left]]''Schaltzeichen einer Fotodiode''&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;Meist befindet sich zwischen den beiden dotierten Halbleiterschichten (p und n) ein undotierter Bereich (PIN-Dioden). Im Bereich des Überganges werden bei einfallendem Licht durch den inneren lichtelektrischen Effekt freie Elektronen aus der atomaren Struktur gelöst, die einen Fotostrom erzeugen.&lt;br /&gt;
&lt;br /&gt;
Das Verhalten der Fotodiode kann weitgehend durch die Ersatzschaltung aus einer Diode parallel mit einer Stromquelle proportional zur Lichtintensität beschrieben werden.&lt;br /&gt;
Bei kleinen Spannungen oder mit Spannung in Sperrrichtung ist der Strom über einen sehr großen Bereich proportional zur Intensität und relativ unabhängig von der Spannung.&lt;br /&gt;
Bei Betrieb mit nur einem Lastwiderstand erzeugt die Fotodiode wie eine Solarzelle elektrische Energie. Die Leerlaufspannung ist annähernd proportional zum Logarithmus der Intensität.&lt;br /&gt;
&lt;br /&gt;
Die langwellige Grenze der spektralen Empfindlichkeit von Fotodioden hängt vom verwendeten Halbleitermaterial ab. Bei Silizium liegt die Grenze bei ca. 1050 nm, die höchste spektrale Empfindlichkeit je nach Qualität bei ca. 800-900 nm. Bei Germanium liegt die Grenze ca. bei 1900 nm, also im Infrarot-Bereich. Die kurzwellige Grenze hängt vom Fenstermaterial und der Oberfläche des Halbleiters ab, typisch bei etwa 400 nm. Für Infrarot-Anwendungen gibt es Fotodioden mit integriertem Filter, die dann nur auf Infrarotlicht zwischen ca. 800 nm und ca. 1000 nm reagieren.&lt;br /&gt;
Daneben gibt es auch Fotodioden speziell für den sichtbaren Bereich, die das IR-Licht unterdrücken (z.B. BPW21).&lt;br /&gt;
&lt;br /&gt;
Die typische Empfindlichkeit liegt bei ca. 0,5 A/W bei 800 nm. In der Regel hat man also kleine Ströme im µA-Bereich und darunter.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
== Anwendungsbeispiele ==&lt;br /&gt;
[[Bild:FotodiodenVerst.png|thumb|Einfacher Verstärker für Fotodiode]]&lt;br /&gt;
Im Gegensatz zum [[Fotowiderstand]] haben Fotodioden eine geringe Trägheit und können auf Signale im Nano- und Mikrosekunden-Bereich reagieren. Die Schaltgeschwindigkeit hängt dabei von der Sperrspannung ab; je höher diese ist, desto kürzer werden die Schaltzeiten (bei Erhöhung der Sperrspannung wird die Kapazität der Sperrschicht geringer).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das Bild rechts zeigt eine einfache Verstärkerschaltung, um eine Fotodiode an einen µC anzuschließen. Schaltzeiten bis etwa 20 µs sind so möglich.&lt;br /&gt;
&lt;br /&gt;
Wegen der sehr guten Linearität werden für genaue Messungen der Lichtintensität in der Regel Fotodioden benutzt. Der Strom wird dabei oft mit einem als Transimpedanzverstärker geschalteten [[Operationsverstärker]] in eine Spannung umgewandelt.&lt;br /&gt;
&lt;br /&gt;
Um sich das relativ starke IR-Signal z.B. einer [[RC5-Code|Fernbedienung]] anzusehen, genügt es parallel zu einer Fotodiode (bevorzugt mit IR-Filter) einen Widerstand von etwa 1 kOhm zu schalten und die Spannung auf dem Oszilloskop darzustellen.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
== Schaltzeiten ==&lt;br /&gt;
Als Daumenregel zur Grenzgeschwindigkeit von Photodioden und Phototransistoren gilt:&lt;br /&gt;
&lt;br /&gt;
Pin-Photo-Dioden kommen ca. auf 1GHz&amp;lt;br/&amp;gt;&lt;br /&gt;
Photo-Dioden erreichen Grenzfrequenzen von etwa 10MHz&amp;lt;br/&amp;gt;&lt;br /&gt;
Photo-Transistoren ca. 300kHz&amp;lt;br/&amp;gt;&lt;br /&gt;
Photo-Darlington-Transistoren ca. 30kHz.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Genaues steht wie immer im Datenblatt. (Daten z.B. im Tietze/Schenk; Danke Peter(TOO) für den Hinweis).&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Vergleich bekannter Typen ==&lt;br /&gt;
{| {{Blauetabelle}}&lt;br /&gt;
|-&lt;br /&gt;
| Typ || Bauform || max.Empf.bei || Bereich der Empf.10% || empf. Fläche || Halbwinkel || Fotostrom typ. || Schaltzeit&lt;br /&gt;
|-&lt;br /&gt;
| BP104 || bedrahtet, flach, liegend || 950nm || 870...1050nm || 7,5mm² || +-65° || 38µA || 100ns&lt;br /&gt;
|-&lt;br /&gt;
| BPW21 || Metallgehäuse bedrahtet, ɸ9x3mm || 550nm || 350...820nm || 7,34 mm² || +-55° || 10µA || 1,5µs&lt;br /&gt;
|-&lt;br /&gt;
| BPW24R || Metallgeh. bedr. TO-18, ɸ4,7x6,2mm || 900nm || 600..1050nm || 0,78 mm² || +-12° || 45-60µA || 7ns&lt;br /&gt;
|-&lt;br /&gt;
| BPW34 || flach 4,7x4,3x2mm, oben empfindl. ||  900nm || 600...1050nm || 7,5 mm² || +-65° || 40-70µA || 100ns&lt;br /&gt;
|-&lt;br /&gt;
| BPW82 || Ähnlich TO-92, seitlich empf. || 950nm || 790...1050nm || 7,5mm² || +-65° || 38µA || 100ns&lt;br /&gt;
|-&lt;br /&gt;
| BPX48 || Ähnlich Optokopplergehäuse || 900nm || 400...1150nm || 1,54 mm² || +-60° || 24µA || 500ns&lt;br /&gt;
|-&lt;br /&gt;
| BPX48F || Ähnlich Optokopplergehäuse || 920nm || 750...1150nm || 1,54 mm² || +-60° || 7µA || 500ns&lt;br /&gt;
|-&lt;br /&gt;
| BPX61 || Metallgehäuse bedrahtet, ɸ9x3mm || 850nm || 400...1100nm || 7 mm² || +-55° || 70 µA || 20ns&lt;br /&gt;
|-&lt;br /&gt;
| BPX65 || Metallgehäuse bedrahtet, ɸ4,6x5mm || 850nm || 350...1100nm || 1 mm² || +-40° || 10µA || 12ns&lt;br /&gt;
|-&lt;br /&gt;
| PD333 || 5mm || 980nm || 400...1200nm (50%) || ? || ? || 40µA || 45ns&lt;br /&gt;
|-&lt;br /&gt;
| SFH203 || 5mm || 850nm || 400...1100nm || 1mm² || +-20° || 80µA || 5ns&lt;br /&gt;
|-&lt;br /&gt;
| SFH203FA || 5mm || 900nm || 800...1100nm || 1mm² || +-20° || 50µA || 5ns&lt;br /&gt;
|-&lt;br /&gt;
| SFH205F || 5mm || 950nm || 800...1100nm || 7mm² || +-60° || 60µA || 20ns&lt;br /&gt;
|-&lt;br /&gt;
| SFH206K || 5mm, seitlich empf.|| 850nm || 400...1100nm || 7mm² || +-60° || 80µA || 20ns&lt;br /&gt;
|-&lt;br /&gt;
| SFH213 || 5mm || 850nm || 400...1100nm || 1mm² || +-10° || 135µA || 5ns&lt;br /&gt;
|-&lt;br /&gt;
| SFH213FA || 5mm || 900nm || 750...1100nm || 1mm² || +-10° || 90µA || 5ns&lt;br /&gt;
|-&lt;br /&gt;
| SFH225FA || flach, seitlich empf. || 900nm || 74...1120nm || 4.84mm² || +-60° || 17µA || 20ns&lt;br /&gt;
|-&lt;br /&gt;
| SFH229 || 3mm || 860nm || 380...1100nm || 0,3mm² || +-17° || 9-27µA || 10ns&lt;br /&gt;
|-&lt;br /&gt;
| SFH229FA || 3mm || 900nm || 730...1100nm || 0,3mm² || +-17° || 9-27µA || 10ns&lt;br /&gt;
|-&lt;br /&gt;
| SFH2400 || „SMT-Bauform“ (SMD, flach, 3Pins) || 850nm || 400...1100nm || 1mm² || +-60° || 10µA || 5ns&lt;br /&gt;
|-&lt;br /&gt;
| SFH2400FA || „SMT-Bauform“ (SMD, flach, 3Pins) || 900nm || 750...1100nm || 1mm² || +-60° || 6µA || 5ns&lt;br /&gt;
|-&lt;br /&gt;
| SFH2500,&amp;lt;br/&amp;gt;SFH2505 || ähnlich 5mm LED || 850nm || 400...1100nm || 1mm² || +-15° || 70-100µA || 5ns&lt;br /&gt;
|-&lt;br /&gt;
| SFH2500FA,&amp;lt;br/&amp;gt;SFH2505FA || ähnlich 5mm LED || 900nm || 750...1100nm || 1mm² || +-15° || 70µA || 5ns&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Anmerkung: Fotodioden eines Typs können bei unterschiedlichen Herstellern geringfügig unterschiedliche Spezifikationen haben (vergleiche z.B. Datenblätter für BPW34).&lt;br /&gt;
&lt;br /&gt;
== Anmerkungen ==&lt;br /&gt;
''Der Autor möchte hier weder die an anderen Stellen zu findenden Formelsammlungen wiedergeben, noch mit diesem Artikel ein Fachbuch ersetzen. Einzig die Grundlagen, die (aus eigener Erfahrung) für einen Hobby-Bastler von Interesse sind, sollen hier dargestellt werden.'' &lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
*[[Fototransistor]]&lt;br /&gt;
*[[Fotowiderstand]]&lt;br /&gt;
*[[Sensorarten]]&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* [http://de.wikipedia.org Wikipedia]&amp;lt;br/&amp;gt;&lt;br /&gt;
* [http://www.elektronik-kompendium.de/sites/bau/0111021.htm ELektronik-KOmpendium - Fotodiode]&amp;lt;br/&amp;gt;&lt;br /&gt;
* [http://www.mikrocontroller.net/articles/Lichtsensor_/_Helligkeitssensor#Konstantstromquelle_mit_Transimpedanzverst.C3.A4rker Mikrokontroller.net:Lichtsensoren]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Autor ==&lt;br /&gt;
*[[Benutzer:Williwilli|Williwilli]] 17:26, 17. Okt 2008 (CEST)&amp;lt;br\&amp;gt;&lt;br /&gt;
*[[Benutzer:Besserwessi|Besserwessi]]&lt;br /&gt;
*[[Benutzer:BMS|BMS]] (Tabelle)&lt;br /&gt;
[[Kategorie:Grundlagen]]&lt;br /&gt;
[[Kategorie:Elektronik]]&lt;br /&gt;
[[Kategorie:Sensoren]]&lt;/div&gt;</summary>
		<author><name>Oberallgeier</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=Fotodiode&amp;diff=23240</id>
		<title>Fotodiode</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=Fotodiode&amp;diff=23240"/>
				<updated>2013-11-21T09:56:19Z</updated>
		
		<summary type="html">&lt;p&gt;Oberallgeier: /* Schaltzeiten */ Daumenregel eingetragen&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Bild:Fotodiode-Foto.JPG|thumb|Verschiedene Bauformen von Fotodioden]]&lt;br /&gt;
Fotodioden sind eine Art von Dioden, die auf einfallendes Licht reagieren. Der pn-Übergang ist bei Fotodioden optisch zugänglich. &lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
== Aufbau und Funktion ==&lt;br /&gt;
[[Bild:Fotodiode-Struktur.jpg|thumb|Innerer Aufbau einer Fotodiode]]&lt;br /&gt;
[[Bild:Fotodiode-Schaltbild.jpg|left]]''Schaltzeichen einer Fotodiode''&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;Meist befindet sich zwischen den beiden dotierten Halbleiterschichten (p und n) ein undotierter Bereich (PIN-Dioden). Im Bereich des Überganges werden bei einfallendem Licht durch den inneren lichtelektrischen Effekt freie Elektronen aus der atomaren Struktur gelöst, die einen Fotostrom erzeugen.&lt;br /&gt;
&lt;br /&gt;
Das Verhalten der Fotodiode kann weitgehend durch die Ersatzschaltung aus einer Diode parallel mit einer Stromquelle proportional zur Lichtintensität beschrieben werden.&lt;br /&gt;
Bei kleinen Spannungen oder mit Spannung in Sperrrichtung ist der Strom über einen sehr großen Bereich proportional zur Intensität und relativ unabhängig von der Spannung.&lt;br /&gt;
Bei Betrieb mit nur einem Lastwiderstand erzeugt die Fotodiode wie eine Solarzelle elektrische Energie. Die Leerlaufspannung ist annähernd proportional zum Logarithmus der Intensität.&lt;br /&gt;
&lt;br /&gt;
Die langwellige Grenze der spektralen Empfindlichkeit von Fotodioden hängt vom verwendeten Halbleitermaterial ab. Bei Silizium liegt die Grenze bei ca. 1050 nm, die höchste spektrale Empfindlichkeit je nach Qualität bei ca. 800-900 nm. Bei Germanium liegt die Grenze ca. bei 1900 nm, also im Infrarot-Bereich. Die kurzwellige Grenze hängt vom Fenstermaterial und der Oberfläche des Halbleiters ab, typisch bei etwa 400 nm. Für Infrarot-Anwendungen gibt es Fotodioden mit integriertem Filter, die dann nur auf Infrarotlicht zwischen ca. 800 nm und ca. 1000 nm reagieren.&lt;br /&gt;
Daneben gibt es auch Fotodioden speziell für den sichtbaren Bereich, die das IR-Licht unterdrücken (z.B. BPW21).&lt;br /&gt;
&lt;br /&gt;
Die typische Empfindlichkeit liegt bei ca. 0,5 A/W bei 800 nm. In der Regel hat man also kleine Ströme im µA-Bereich und darunter.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
== Anwendungsbeispiele ==&lt;br /&gt;
[[Bild:FotodiodenVerst.png|thumb|Einfacher Verstärker für Fotodiode]]&lt;br /&gt;
Im Gegensatz zum [[Fotowiderstand]] haben Fotodioden eine geringe Trägheit und können auf Signale im Nano- und Mikrosekunden-Bereich reagieren. Die Schaltgeschwindigkeit hängt dabei von der Sperrspannung ab; je höher diese ist, desto kürzer werden die Schaltzeiten (bei Erhöhung der Sperrspannung wird die Kapazität der Sperrschicht geringer).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das Bild rechts zeigt eine einfache Verstärkerschaltung, um eine Fotodiode an einen µC anzuschließen. Schaltzeiten bis etwa 20 µs sind so möglich.&lt;br /&gt;
&lt;br /&gt;
Wegen der sehr guten Linearität werden für genaue Messungen der Lichtintensität in der Regel Fotodioden benutzt. Der Strom wird dabei oft mit einem als Transimpedanzverstärker geschalteten [[Operationsverstärker]] in eine Spannung umgewandelt.&lt;br /&gt;
&lt;br /&gt;
Um sich das relativ starke IR-Signal z.B. einer [[RC5-Code|Fernbedienung]] anzusehen, genügt es parallel zu einer Fotodiode (bevorzugt mit IR-Filter) einen Widerstand von etwa 1 kOhm zu schalten und die Spannung auf dem Oszilloskop darzustellen.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
== Schaltzeiten ==&lt;br /&gt;
Als Daumenregel zur Grenzgeschwindigkeit von Photodioden und Phototransistoren gilt:&lt;br /&gt;
&lt;br /&gt;
Pin-Photo-Dioden kommen ca. auf 1GHz&amp;lt;br/&amp;gt;&lt;br /&gt;
Photo-Dioden erreichen Grenzfrequenzen von etwa 10MHz&amp;lt;br/&amp;gt;&lt;br /&gt;
Photo-Transistoren ca. 300kHz&amp;lt;br/&amp;gt;&lt;br /&gt;
Photo-Darlington-Transistoren ca. 30kHz.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Genaues steht wie immer im Datenblatt. (Danke Peter(TOO) für den Hinweis).&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Vergleich bekannter Typen ==&lt;br /&gt;
{| {{Blauetabelle}}&lt;br /&gt;
|-&lt;br /&gt;
| Typ || Bauform || max.Empf.bei || Bereich der Empf.10% || empf. Fläche || Halbwinkel || Fotostrom typ. || Schaltzeit&lt;br /&gt;
|-&lt;br /&gt;
| BP104 || bedrahtet, flach, liegend || 950nm || 870...1050nm || 7,5mm² || +-65° || 38µA || 100ns&lt;br /&gt;
|-&lt;br /&gt;
| BPW21 || Metallgehäuse bedrahtet, ɸ9x3mm || 550nm || 350...820nm || 7,34 mm² || +-55° || 10µA || 1,5µs&lt;br /&gt;
|-&lt;br /&gt;
| BPW24R || Metallgeh. bedr. TO-18, ɸ4,7x6,2mm || 900nm || 600..1050nm || 0,78 mm² || +-12° || 45-60µA || 7ns&lt;br /&gt;
|-&lt;br /&gt;
| BPW34 || flach 4,7x4,3x2mm, oben empfindl. ||  900nm || 600...1050nm || 7,5 mm² || +-65° || 40-70µA || 100ns&lt;br /&gt;
|-&lt;br /&gt;
| BPW82 || Ähnlich TO-92, seitlich empf. || 950nm || 790...1050nm || 7,5mm² || +-65° || 38µA || 100ns&lt;br /&gt;
|-&lt;br /&gt;
| BPX48 || Ähnlich Optokopplergehäuse || 900nm || 400...1150nm || 1,54 mm² || +-60° || 24µA || 500ns&lt;br /&gt;
|-&lt;br /&gt;
| BPX48F || Ähnlich Optokopplergehäuse || 920nm || 750...1150nm || 1,54 mm² || +-60° || 7µA || 500ns&lt;br /&gt;
|-&lt;br /&gt;
| BPX61 || Metallgehäuse bedrahtet, ɸ9x3mm || 850nm || 400...1100nm || 7 mm² || +-55° || 70 µA || 20ns&lt;br /&gt;
|-&lt;br /&gt;
| BPX65 || Metallgehäuse bedrahtet, ɸ4,6x5mm || 850nm || 350...1100nm || 1 mm² || +-40° || 10µA || 12ns&lt;br /&gt;
|-&lt;br /&gt;
| PD333 || 5mm || 980nm || 400...1200nm (50%) || ? || ? || 40µA || 45ns&lt;br /&gt;
|-&lt;br /&gt;
| SFH203 || 5mm || 850nm || 400...1100nm || 1mm² || +-20° || 80µA || 5ns&lt;br /&gt;
|-&lt;br /&gt;
| SFH203FA || 5mm || 900nm || 800...1100nm || 1mm² || +-20° || 50µA || 5ns&lt;br /&gt;
|-&lt;br /&gt;
| SFH205F || 5mm || 950nm || 800...1100nm || 7mm² || +-60° || 60µA || 20ns&lt;br /&gt;
|-&lt;br /&gt;
| SFH206K || 5mm, seitlich empf.|| 850nm || 400...1100nm || 7mm² || +-60° || 80µA || 20ns&lt;br /&gt;
|-&lt;br /&gt;
| SFH213 || 5mm || 850nm || 400...1100nm || 1mm² || +-10° || 135µA || 5ns&lt;br /&gt;
|-&lt;br /&gt;
| SFH213FA || 5mm || 900nm || 750...1100nm || 1mm² || +-10° || 90µA || 5ns&lt;br /&gt;
|-&lt;br /&gt;
| SFH225FA || flach, seitlich empf. || 900nm || 74...1120nm || 4.84mm² || +-60° || 17µA || 20ns&lt;br /&gt;
|-&lt;br /&gt;
| SFH229 || 3mm || 860nm || 380...1100nm || 0,3mm² || +-17° || 9-27µA || 10ns&lt;br /&gt;
|-&lt;br /&gt;
| SFH229FA || 3mm || 900nm || 730...1100nm || 0,3mm² || +-17° || 9-27µA || 10ns&lt;br /&gt;
|-&lt;br /&gt;
| SFH2400 || „SMT-Bauform“ (SMD, flach, 3Pins) || 850nm || 400...1100nm || 1mm² || +-60° || 10µA || 5ns&lt;br /&gt;
|-&lt;br /&gt;
| SFH2400FA || „SMT-Bauform“ (SMD, flach, 3Pins) || 900nm || 750...1100nm || 1mm² || +-60° || 6µA || 5ns&lt;br /&gt;
|-&lt;br /&gt;
| SFH2500,&amp;lt;br/&amp;gt;SFH2505 || ähnlich 5mm LED || 850nm || 400...1100nm || 1mm² || +-15° || 70-100µA || 5ns&lt;br /&gt;
|-&lt;br /&gt;
| SFH2500FA,&amp;lt;br/&amp;gt;SFH2505FA || ähnlich 5mm LED || 900nm || 750...1100nm || 1mm² || +-15° || 70µA || 5ns&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Anmerkung: Fotodioden eines Typs können bei unterschiedlichen Herstellern geringfügig unterschiedliche Spezifikationen haben (vergleiche z.B. Datenblätter für BPW34).&lt;br /&gt;
&lt;br /&gt;
== Anmerkungen ==&lt;br /&gt;
''Der Autor möchte hier weder die an anderen Stellen zu findenden Formelsammlungen wiedergeben, noch mit diesem Artikel ein Fachbuch ersetzen. Einzig die Grundlagen, die (aus eigener Erfahrung) für einen Hobby-Bastler von Interesse sind, sollen hier dargestellt werden.'' &lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
*[[Fototransistor]]&lt;br /&gt;
*[[Fotowiderstand]]&lt;br /&gt;
*[[Sensorarten]]&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* [http://de.wikipedia.org Wikipedia]&amp;lt;br/&amp;gt;&lt;br /&gt;
* [http://www.elektronik-kompendium.de/sites/bau/0111021.htm ELektronik-KOmpendium - Fotodiode]&amp;lt;br/&amp;gt;&lt;br /&gt;
* [http://www.mikrocontroller.net/articles/Lichtsensor_/_Helligkeitssensor#Konstantstromquelle_mit_Transimpedanzverst.C3.A4rker Mikrokontroller.net:Lichtsensoren]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Autor ==&lt;br /&gt;
*[[Benutzer:Williwilli|Williwilli]] 17:26, 17. Okt 2008 (CEST)&amp;lt;br\&amp;gt;&lt;br /&gt;
*[[Benutzer:Besserwessi|Besserwessi]]&lt;br /&gt;
*[[Benutzer:BMS|BMS]] (Tabelle)&lt;br /&gt;
[[Kategorie:Grundlagen]]&lt;br /&gt;
[[Kategorie:Elektronik]]&lt;br /&gt;
[[Kategorie:Sensoren]]&lt;/div&gt;</summary>
		<author><name>Oberallgeier</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=Fotodiode&amp;diff=23239</id>
		<title>Fotodiode</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=Fotodiode&amp;diff=23239"/>
				<updated>2013-11-21T09:55:16Z</updated>
		
		<summary type="html">&lt;p&gt;Oberallgeier: /* Anwendungsbeispiele */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Bild:Fotodiode-Foto.JPG|thumb|Verschiedene Bauformen von Fotodioden]]&lt;br /&gt;
Fotodioden sind eine Art von Dioden, die auf einfallendes Licht reagieren. Der pn-Übergang ist bei Fotodioden optisch zugänglich. &lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
== Aufbau und Funktion ==&lt;br /&gt;
[[Bild:Fotodiode-Struktur.jpg|thumb|Innerer Aufbau einer Fotodiode]]&lt;br /&gt;
[[Bild:Fotodiode-Schaltbild.jpg|left]]''Schaltzeichen einer Fotodiode''&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;Meist befindet sich zwischen den beiden dotierten Halbleiterschichten (p und n) ein undotierter Bereich (PIN-Dioden). Im Bereich des Überganges werden bei einfallendem Licht durch den inneren lichtelektrischen Effekt freie Elektronen aus der atomaren Struktur gelöst, die einen Fotostrom erzeugen.&lt;br /&gt;
&lt;br /&gt;
Das Verhalten der Fotodiode kann weitgehend durch die Ersatzschaltung aus einer Diode parallel mit einer Stromquelle proportional zur Lichtintensität beschrieben werden.&lt;br /&gt;
Bei kleinen Spannungen oder mit Spannung in Sperrrichtung ist der Strom über einen sehr großen Bereich proportional zur Intensität und relativ unabhängig von der Spannung.&lt;br /&gt;
Bei Betrieb mit nur einem Lastwiderstand erzeugt die Fotodiode wie eine Solarzelle elektrische Energie. Die Leerlaufspannung ist annähernd proportional zum Logarithmus der Intensität.&lt;br /&gt;
&lt;br /&gt;
Die langwellige Grenze der spektralen Empfindlichkeit von Fotodioden hängt vom verwendeten Halbleitermaterial ab. Bei Silizium liegt die Grenze bei ca. 1050 nm, die höchste spektrale Empfindlichkeit je nach Qualität bei ca. 800-900 nm. Bei Germanium liegt die Grenze ca. bei 1900 nm, also im Infrarot-Bereich. Die kurzwellige Grenze hängt vom Fenstermaterial und der Oberfläche des Halbleiters ab, typisch bei etwa 400 nm. Für Infrarot-Anwendungen gibt es Fotodioden mit integriertem Filter, die dann nur auf Infrarotlicht zwischen ca. 800 nm und ca. 1000 nm reagieren.&lt;br /&gt;
Daneben gibt es auch Fotodioden speziell für den sichtbaren Bereich, die das IR-Licht unterdrücken (z.B. BPW21).&lt;br /&gt;
&lt;br /&gt;
Die typische Empfindlichkeit liegt bei ca. 0,5 A/W bei 800 nm. In der Regel hat man also kleine Ströme im µA-Bereich und darunter.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
== Anwendungsbeispiele ==&lt;br /&gt;
[[Bild:FotodiodenVerst.png|thumb|Einfacher Verstärker für Fotodiode]]&lt;br /&gt;
Im Gegensatz zum [[Fotowiderstand]] haben Fotodioden eine geringe Trägheit und können auf Signale im Nano- und Mikrosekunden-Bereich reagieren. Die Schaltgeschwindigkeit hängt dabei von der Sperrspannung ab; je höher diese ist, desto kürzer werden die Schaltzeiten (bei Erhöhung der Sperrspannung wird die Kapazität der Sperrschicht geringer).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das Bild rechts zeigt eine einfache Verstärkerschaltung, um eine Fotodiode an einen µC anzuschließen. Schaltzeiten bis etwa 20 µs sind so möglich.&lt;br /&gt;
&lt;br /&gt;
Wegen der sehr guten Linearität werden für genaue Messungen der Lichtintensität in der Regel Fotodioden benutzt. Der Strom wird dabei oft mit einem als Transimpedanzverstärker geschalteten [[Operationsverstärker]] in eine Spannung umgewandelt.&lt;br /&gt;
&lt;br /&gt;
Um sich das relativ starke IR-Signal z.B. einer [[RC5-Code|Fernbedienung]] anzusehen, genügt es parallel zu einer Fotodiode (bevorzugt mit IR-Filter) einen Widerstand von etwa 1 kOhm zu schalten und die Spannung auf dem Oszilloskop darzustellen.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Schaltzeiten ==&lt;br /&gt;
Als Daumenregel zur Grenzgeschwindigkeit von Photodioden und Phototransistoren gilt:&lt;br /&gt;
&lt;br /&gt;
Pin-Photo-Dioden kommen ca. auf 1GHz&amp;lt;br/&amp;gt;&lt;br /&gt;
Photo-Dioden erreichen Grenzfrequenzen von etwa 10MHz&amp;lt;br/&amp;gt;&lt;br /&gt;
Photo-Transistoren ca. 300kHz&amp;lt;br/&amp;gt;&lt;br /&gt;
Photo-Darlington-Transistoren ca. 30kHz.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Genaues steht wie immer im Datenblatt. (Danke Peter(TOO) für den Hinweis).&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Vergleich bekannter Typen ==&lt;br /&gt;
{| {{Blauetabelle}}&lt;br /&gt;
|-&lt;br /&gt;
| Typ || Bauform || max.Empf.bei || Bereich der Empf.10% || empf. Fläche || Halbwinkel || Fotostrom typ. || Schaltzeit&lt;br /&gt;
|-&lt;br /&gt;
| BP104 || bedrahtet, flach, liegend || 950nm || 870...1050nm || 7,5mm² || +-65° || 38µA || 100ns&lt;br /&gt;
|-&lt;br /&gt;
| BPW21 || Metallgehäuse bedrahtet, ɸ9x3mm || 550nm || 350...820nm || 7,34 mm² || +-55° || 10µA || 1,5µs&lt;br /&gt;
|-&lt;br /&gt;
| BPW24R || Metallgeh. bedr. TO-18, ɸ4,7x6,2mm || 900nm || 600..1050nm || 0,78 mm² || +-12° || 45-60µA || 7ns&lt;br /&gt;
|-&lt;br /&gt;
| BPW34 || flach 4,7x4,3x2mm, oben empfindl. ||  900nm || 600...1050nm || 7,5 mm² || +-65° || 40-70µA || 100ns&lt;br /&gt;
|-&lt;br /&gt;
| BPW82 || Ähnlich TO-92, seitlich empf. || 950nm || 790...1050nm || 7,5mm² || +-65° || 38µA || 100ns&lt;br /&gt;
|-&lt;br /&gt;
| BPX48 || Ähnlich Optokopplergehäuse || 900nm || 400...1150nm || 1,54 mm² || +-60° || 24µA || 500ns&lt;br /&gt;
|-&lt;br /&gt;
| BPX48F || Ähnlich Optokopplergehäuse || 920nm || 750...1150nm || 1,54 mm² || +-60° || 7µA || 500ns&lt;br /&gt;
|-&lt;br /&gt;
| BPX61 || Metallgehäuse bedrahtet, ɸ9x3mm || 850nm || 400...1100nm || 7 mm² || +-55° || 70 µA || 20ns&lt;br /&gt;
|-&lt;br /&gt;
| BPX65 || Metallgehäuse bedrahtet, ɸ4,6x5mm || 850nm || 350...1100nm || 1 mm² || +-40° || 10µA || 12ns&lt;br /&gt;
|-&lt;br /&gt;
| PD333 || 5mm || 980nm || 400...1200nm (50%) || ? || ? || 40µA || 45ns&lt;br /&gt;
|-&lt;br /&gt;
| SFH203 || 5mm || 850nm || 400...1100nm || 1mm² || +-20° || 80µA || 5ns&lt;br /&gt;
|-&lt;br /&gt;
| SFH203FA || 5mm || 900nm || 800...1100nm || 1mm² || +-20° || 50µA || 5ns&lt;br /&gt;
|-&lt;br /&gt;
| SFH205F || 5mm || 950nm || 800...1100nm || 7mm² || +-60° || 60µA || 20ns&lt;br /&gt;
|-&lt;br /&gt;
| SFH206K || 5mm, seitlich empf.|| 850nm || 400...1100nm || 7mm² || +-60° || 80µA || 20ns&lt;br /&gt;
|-&lt;br /&gt;
| SFH213 || 5mm || 850nm || 400...1100nm || 1mm² || +-10° || 135µA || 5ns&lt;br /&gt;
|-&lt;br /&gt;
| SFH213FA || 5mm || 900nm || 750...1100nm || 1mm² || +-10° || 90µA || 5ns&lt;br /&gt;
|-&lt;br /&gt;
| SFH225FA || flach, seitlich empf. || 900nm || 74...1120nm || 4.84mm² || +-60° || 17µA || 20ns&lt;br /&gt;
|-&lt;br /&gt;
| SFH229 || 3mm || 860nm || 380...1100nm || 0,3mm² || +-17° || 9-27µA || 10ns&lt;br /&gt;
|-&lt;br /&gt;
| SFH229FA || 3mm || 900nm || 730...1100nm || 0,3mm² || +-17° || 9-27µA || 10ns&lt;br /&gt;
|-&lt;br /&gt;
| SFH2400 || „SMT-Bauform“ (SMD, flach, 3Pins) || 850nm || 400...1100nm || 1mm² || +-60° || 10µA || 5ns&lt;br /&gt;
|-&lt;br /&gt;
| SFH2400FA || „SMT-Bauform“ (SMD, flach, 3Pins) || 900nm || 750...1100nm || 1mm² || +-60° || 6µA || 5ns&lt;br /&gt;
|-&lt;br /&gt;
| SFH2500,&amp;lt;br/&amp;gt;SFH2505 || ähnlich 5mm LED || 850nm || 400...1100nm || 1mm² || +-15° || 70-100µA || 5ns&lt;br /&gt;
|-&lt;br /&gt;
| SFH2500FA,&amp;lt;br/&amp;gt;SFH2505FA || ähnlich 5mm LED || 900nm || 750...1100nm || 1mm² || +-15° || 70µA || 5ns&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Anmerkung: Fotodioden eines Typs können bei unterschiedlichen Herstellern geringfügig unterschiedliche Spezifikationen haben (vergleiche z.B. Datenblätter für BPW34).&lt;br /&gt;
&lt;br /&gt;
== Anmerkungen ==&lt;br /&gt;
''Der Autor möchte hier weder die an anderen Stellen zu findenden Formelsammlungen wiedergeben, noch mit diesem Artikel ein Fachbuch ersetzen. Einzig die Grundlagen, die (aus eigener Erfahrung) für einen Hobby-Bastler von Interesse sind, sollen hier dargestellt werden.'' &lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
*[[Fototransistor]]&lt;br /&gt;
*[[Fotowiderstand]]&lt;br /&gt;
*[[Sensorarten]]&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* [http://de.wikipedia.org Wikipedia]&amp;lt;br/&amp;gt;&lt;br /&gt;
* [http://www.elektronik-kompendium.de/sites/bau/0111021.htm ELektronik-KOmpendium - Fotodiode]&amp;lt;br/&amp;gt;&lt;br /&gt;
* [http://www.mikrocontroller.net/articles/Lichtsensor_/_Helligkeitssensor#Konstantstromquelle_mit_Transimpedanzverst.C3.A4rker Mikrokontroller.net:Lichtsensoren]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Autor ==&lt;br /&gt;
*[[Benutzer:Williwilli|Williwilli]] 17:26, 17. Okt 2008 (CEST)&amp;lt;br\&amp;gt;&lt;br /&gt;
*[[Benutzer:Besserwessi|Besserwessi]]&lt;br /&gt;
*[[Benutzer:BMS|BMS]] (Tabelle)&lt;br /&gt;
[[Kategorie:Grundlagen]]&lt;br /&gt;
[[Kategorie:Elektronik]]&lt;br /&gt;
[[Kategorie:Sensoren]]&lt;/div&gt;</summary>
		<author><name>Oberallgeier</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=Fotodiode&amp;diff=23238</id>
		<title>Fotodiode</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=Fotodiode&amp;diff=23238"/>
				<updated>2013-11-21T09:54:12Z</updated>
		
		<summary type="html">&lt;p&gt;Oberallgeier: /* Anwendungsbeispiele */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Bild:Fotodiode-Foto.JPG|thumb|Verschiedene Bauformen von Fotodioden]]&lt;br /&gt;
Fotodioden sind eine Art von Dioden, die auf einfallendes Licht reagieren. Der pn-Übergang ist bei Fotodioden optisch zugänglich. &lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
== Aufbau und Funktion ==&lt;br /&gt;
[[Bild:Fotodiode-Struktur.jpg|thumb|Innerer Aufbau einer Fotodiode]]&lt;br /&gt;
[[Bild:Fotodiode-Schaltbild.jpg|left]]''Schaltzeichen einer Fotodiode''&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;Meist befindet sich zwischen den beiden dotierten Halbleiterschichten (p und n) ein undotierter Bereich (PIN-Dioden). Im Bereich des Überganges werden bei einfallendem Licht durch den inneren lichtelektrischen Effekt freie Elektronen aus der atomaren Struktur gelöst, die einen Fotostrom erzeugen.&lt;br /&gt;
&lt;br /&gt;
Das Verhalten der Fotodiode kann weitgehend durch die Ersatzschaltung aus einer Diode parallel mit einer Stromquelle proportional zur Lichtintensität beschrieben werden.&lt;br /&gt;
Bei kleinen Spannungen oder mit Spannung in Sperrrichtung ist der Strom über einen sehr großen Bereich proportional zur Intensität und relativ unabhängig von der Spannung.&lt;br /&gt;
Bei Betrieb mit nur einem Lastwiderstand erzeugt die Fotodiode wie eine Solarzelle elektrische Energie. Die Leerlaufspannung ist annähernd proportional zum Logarithmus der Intensität.&lt;br /&gt;
&lt;br /&gt;
Die langwellige Grenze der spektralen Empfindlichkeit von Fotodioden hängt vom verwendeten Halbleitermaterial ab. Bei Silizium liegt die Grenze bei ca. 1050 nm, die höchste spektrale Empfindlichkeit je nach Qualität bei ca. 800-900 nm. Bei Germanium liegt die Grenze ca. bei 1900 nm, also im Infrarot-Bereich. Die kurzwellige Grenze hängt vom Fenstermaterial und der Oberfläche des Halbleiters ab, typisch bei etwa 400 nm. Für Infrarot-Anwendungen gibt es Fotodioden mit integriertem Filter, die dann nur auf Infrarotlicht zwischen ca. 800 nm und ca. 1000 nm reagieren.&lt;br /&gt;
Daneben gibt es auch Fotodioden speziell für den sichtbaren Bereich, die das IR-Licht unterdrücken (z.B. BPW21).&lt;br /&gt;
&lt;br /&gt;
Die typische Empfindlichkeit liegt bei ca. 0,5 A/W bei 800 nm. In der Regel hat man also kleine Ströme im µA-Bereich und darunter.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
== Anwendungsbeispiele ==&lt;br /&gt;
[[Bild:FotodiodenVerst.png|thumb|Einfacher Verstärker für Fotodiode]]&lt;br /&gt;
Im Gegensatz zum [[Fotowiderstand]] haben Fotodioden eine geringe Trägheit und können auf Signale im Nano- und Mikrosekunden-Bereich reagieren. Die Schaltgeschwindigkeit hängt dabei von der Sperrspannung ab; je höher diese ist, desto kürzer werden die Schaltzeiten (bei Erhöhung der Sperrspannung wird die Kapazität der Sperrschicht geringer).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das Bild rechts zeigt eine einfache Verstärkerschaltung, um eine Fotodiode an einen µC anzuschließen. Schaltzeiten bis etwa 20 µs sind so möglich.&lt;br /&gt;
&lt;br /&gt;
Wegen der sehr guten Linearität werden für genaue Messungen der Lichtintensität in der Regel Fotodioden benutzt. Der Strom wird dabei oft mit einem als Transimpedanzverstärker geschalteten [[Operationsverstärker]] in eine Spannung umgewandelt.&lt;br /&gt;
&lt;br /&gt;
Um sich das relativ starke IR-Signal z.B. einer [[RC5-Code|Fernbedienung]] anzusehen, genügt es parallel zu einer Fotodiode (bevorzugt mit IR-Filter) einen Widerstand von etwa 1 kOhm zu schalten und die Spannung auf dem Oszilloskop darzustellen.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Schaltzeiten ==&lt;br /&gt;
Als Daumenregel zur Grenzgeschwindigkeit von Photodioden und Phototransistoren gilt:&lt;br /&gt;
&lt;br /&gt;
Pin-Photo-Dioden kommen ca. auf 1GHz&amp;lt;br/&amp;gt;&lt;br /&gt;
Photo-Dioden erreichen Grenzfrequenzen von etwa 10MHz&amp;lt;br/&amp;gt;&lt;br /&gt;
Photo-Transistoren ca. 300kHz&amp;lt;br/&amp;gt;&lt;br /&gt;
Photo-Darlington-Transistoren ca. 30kHz.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Genaues steht wie immer im Datenblatt. (Danke Peter(TOO) für den Hinweis).&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Vergleich bekannter Typen ==&lt;br /&gt;
{| {{Blauetabelle}}&lt;br /&gt;
|-&lt;br /&gt;
| Typ || Bauform || max.Empf.bei || Bereich der Empf.10% || empf. Fläche || Halbwinkel || Fotostrom typ. || Schaltzeit&lt;br /&gt;
|-&lt;br /&gt;
| BP104 || bedrahtet, flach, liegend || 950nm || 870...1050nm || 7,5mm² || +-65° || 38µA || 100ns&lt;br /&gt;
|-&lt;br /&gt;
| BPW21 || Metallgehäuse bedrahtet, ɸ9x3mm || 550nm || 350...820nm || 7,34 mm² || +-55° || 10µA || 1,5µs&lt;br /&gt;
|-&lt;br /&gt;
| BPW24R || Metallgeh. bedr. TO-18, ɸ4,7x6,2mm || 900nm || 600..1050nm || 0,78 mm² || +-12° || 45-60µA || 7ns&lt;br /&gt;
|-&lt;br /&gt;
| BPW34 || flach 4,7x4,3x2mm, oben empfindl. ||  900nm || 600...1050nm || 7,5 mm² || +-65° || 40-70µA || 100ns&lt;br /&gt;
|-&lt;br /&gt;
| BPW82 || Ähnlich TO-92, seitlich empf. || 950nm || 790...1050nm || 7,5mm² || +-65° || 38µA || 100ns&lt;br /&gt;
|-&lt;br /&gt;
| BPX48 || Ähnlich Optokopplergehäuse || 900nm || 400...1150nm || 1,54 mm² || +-60° || 24µA || 500ns&lt;br /&gt;
|-&lt;br /&gt;
| BPX48F || Ähnlich Optokopplergehäuse || 920nm || 750...1150nm || 1,54 mm² || +-60° || 7µA || 500ns&lt;br /&gt;
|-&lt;br /&gt;
| BPX61 || Metallgehäuse bedrahtet, ɸ9x3mm || 850nm || 400...1100nm || 7 mm² || +-55° || 70 µA || 20ns&lt;br /&gt;
|-&lt;br /&gt;
| BPX65 || Metallgehäuse bedrahtet, ɸ4,6x5mm || 850nm || 350...1100nm || 1 mm² || +-40° || 10µA || 12ns&lt;br /&gt;
|-&lt;br /&gt;
| PD333 || 5mm || 980nm || 400...1200nm (50%) || ? || ? || 40µA || 45ns&lt;br /&gt;
|-&lt;br /&gt;
| SFH203 || 5mm || 850nm || 400...1100nm || 1mm² || +-20° || 80µA || 5ns&lt;br /&gt;
|-&lt;br /&gt;
| SFH203FA || 5mm || 900nm || 800...1100nm || 1mm² || +-20° || 50µA || 5ns&lt;br /&gt;
|-&lt;br /&gt;
| SFH205F || 5mm || 950nm || 800...1100nm || 7mm² || +-60° || 60µA || 20ns&lt;br /&gt;
|-&lt;br /&gt;
| SFH206K || 5mm, seitlich empf.|| 850nm || 400...1100nm || 7mm² || +-60° || 80µA || 20ns&lt;br /&gt;
|-&lt;br /&gt;
| SFH213 || 5mm || 850nm || 400...1100nm || 1mm² || +-10° || 135µA || 5ns&lt;br /&gt;
|-&lt;br /&gt;
| SFH213FA || 5mm || 900nm || 750...1100nm || 1mm² || +-10° || 90µA || 5ns&lt;br /&gt;
|-&lt;br /&gt;
| SFH225FA || flach, seitlich empf. || 900nm || 74...1120nm || 4.84mm² || +-60° || 17µA || 20ns&lt;br /&gt;
|-&lt;br /&gt;
| SFH229 || 3mm || 860nm || 380...1100nm || 0,3mm² || +-17° || 9-27µA || 10ns&lt;br /&gt;
|-&lt;br /&gt;
| SFH229FA || 3mm || 900nm || 730...1100nm || 0,3mm² || +-17° || 9-27µA || 10ns&lt;br /&gt;
|-&lt;br /&gt;
| SFH2400 || „SMT-Bauform“ (SMD, flach, 3Pins) || 850nm || 400...1100nm || 1mm² || +-60° || 10µA || 5ns&lt;br /&gt;
|-&lt;br /&gt;
| SFH2400FA || „SMT-Bauform“ (SMD, flach, 3Pins) || 900nm || 750...1100nm || 1mm² || +-60° || 6µA || 5ns&lt;br /&gt;
|-&lt;br /&gt;
| SFH2500,&amp;lt;br/&amp;gt;SFH2505 || ähnlich 5mm LED || 850nm || 400...1100nm || 1mm² || +-15° || 70-100µA || 5ns&lt;br /&gt;
|-&lt;br /&gt;
| SFH2500FA,&amp;lt;br/&amp;gt;SFH2505FA || ähnlich 5mm LED || 900nm || 750...1100nm || 1mm² || +-15° || 70µA || 5ns&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Anmerkung: Fotodioden eines Typs können bei unterschiedlichen Herstellern geringfügig unterschiedliche Spezifikationen haben (vergleiche z.B. Datenblätter für BPW34).&lt;br /&gt;
&lt;br /&gt;
== Anmerkungen ==&lt;br /&gt;
''Der Autor möchte hier weder die an anderen Stellen zu findenden Formelsammlungen wiedergeben, noch mit diesem Artikel ein Fachbuch ersetzen. Einzig die Grundlagen, die (aus eigener Erfahrung) für einen Hobby-Bastler von Interesse sind, sollen hier dargestellt werden.'' &lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
*[[Fototransistor]]&lt;br /&gt;
*[[Fotowiderstand]]&lt;br /&gt;
*[[Sensorarten]]&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* [http://de.wikipedia.org Wikipedia]&amp;lt;br/&amp;gt;&lt;br /&gt;
* [http://www.elektronik-kompendium.de/sites/bau/0111021.htm ELektronik-KOmpendium - Fotodiode]&amp;lt;br/&amp;gt;&lt;br /&gt;
* [http://www.mikrocontroller.net/articles/Lichtsensor_/_Helligkeitssensor#Konstantstromquelle_mit_Transimpedanzverst.C3.A4rker Mikrokontroller.net:Lichtsensoren]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Autor ==&lt;br /&gt;
*[[Benutzer:Williwilli|Williwilli]] 17:26, 17. Okt 2008 (CEST)&amp;lt;br\&amp;gt;&lt;br /&gt;
*[[Benutzer:Besserwessi|Besserwessi]]&lt;br /&gt;
*[[Benutzer:BMS|BMS]] (Tabelle)&lt;br /&gt;
[[Kategorie:Grundlagen]]&lt;br /&gt;
[[Kategorie:Elektronik]]&lt;br /&gt;
[[Kategorie:Sensoren]]&lt;/div&gt;</summary>
		<author><name>Oberallgeier</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=Servos&amp;diff=22947</id>
		<title>Servos</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=Servos&amp;diff=22947"/>
				<updated>2013-08-22T07:11:57Z</updated>
		
		<summary type="html">&lt;p&gt;Oberallgeier: /* Siehe auch */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Servos (Servomotoren) sind kleine [[Getriebemotoren]], die häufig im Modellbau eingesetzt werden. Mithilfe eines Potentiometers, das an der Drehachse befestigt ist, wird intern die aktuelle Position bestimmt. Wegen ihrer einfachen Ansteuerung und Präzision eigenen sie sich hervorragend für mehr oder weniger kraftaufwändige Aufgaben in der Robotik.  Servomotoren in der Industrie sind Motoren mit einer Rückmeldung der Position, meist über [[Sensorarten#Incremental-Geber|Incrementalgeber]].&lt;br /&gt;
&lt;br /&gt;
==Anschlussbelegung==&lt;br /&gt;
Handelsübliche Servomotoren besitzen 3 Anschlüsse:&lt;br /&gt;
# GND&lt;br /&gt;
# [[PWM]] bzw. Signal&lt;br /&gt;
# +5V&lt;br /&gt;
&lt;br /&gt;
Wobei sich die Steckerbelegung von Hersteller zu Hersteller unterscheidet.&lt;br /&gt;
&lt;br /&gt;
[[Bild:servosteckerbelegung.gif|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Eine ausführliche Darstellung veschiedener [http://wiki.rc-network.de/index.php/Datei:Steckerbelegung.jpg Steckerbelegungen] und auch verschiedener [http://wiki.rc-network.de/index.php/Datei:Servostecker.jpg Servostecker] ist in den eben vorgelegten Links zu finden.&lt;br /&gt;
&lt;br /&gt;
==Ansteuerung: Signalform und Schaltung==&lt;br /&gt;
An die Signalleitung (siehe Steckerbelegung oben) wird ein pulsweitenmoduliertes Signal ([[PWM]]) angeschlossen. Die Repetition-Period (Periode) entspricht bei den meisten Modellen 20ms. Innerhalb/zu Beginn dieser 20ms wird ein Puls erwartet, der sich zwischen 1ms und 2ms bewegt, wobei diese Werte jeweils den Endlagen des Servos entsprechen. D.h. 1ms ist ganz links und 2ms ist ganz rechts (Einige Servos haben in diesem Wertebereich jedoch nicht die volle Bewegungsfreiheit ausgenutzt, die Werte, bei denen der Servo ganz links/rechts ist können auch unter 1ms/über 2ms liegen). 1,5ms würde demnach die Mittelstellung bedeuten. Aufgrund der Pulslänge lässt sich also eine direkte Aussage über die Position des Servos treffen. Der Motor sorgt dann intern mithilfe des Potis dafür, dass die Position gehalten wird.&lt;br /&gt;
&lt;br /&gt;
Von der Standard-Pulsdauer 20 ms kann je nach Servomodell erheblich abgewichen werden. Besonders zu erwähnen ist, dass mit Periodenzeiten von 10 ms bereits erfolgreich gearbeitet wurde,  [http://www.roboternetz.de/community/showthread.php?52460-Servo-Geschwindigkeitsregelung&amp;amp;p=506821&amp;amp;viewfull=1#post506821 klick hier  für Posting und ganzen Thread.] Dabei muss aber die Pulsdauer entsprechend angepasst werden, bei 10 ms beispielsweise beträgt dann die Pulsdauer maximal 10 % der Periodenzeit, schwankt also für die Endstellungen zwischen 0,5 ms (500 µs) und 1 ms.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die Drehrichtung der Servos entspricht bei einigen Fabrikaten den hier dargestellten Abbildungen, bei manchen Fabrikaten ist die Drehrichtung bei gleicher Signalform jedoch entgegengesetzt. Das heißt:&lt;br /&gt;
&lt;br /&gt;
manche Fabrikate schwenken bei kürzeren Pulszeiten wie hier gezeigt nach links und bei längeren Pulszeiten nach rechts,&lt;br /&gt;
&lt;br /&gt;
andere Fabrikate schwenken bei kürzeren Pulszeiten nach rechts und bei längeren Pulszeiten nach links.&lt;br /&gt;
&lt;br /&gt;
Welche Fabrikate zur einen oder andern Gruppe gehören wird hier nicht aufgelistet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die folgende Darstellung zeigt drei beispielhafte Zeit-Pegeldiagramme der PWM für Standardservos und als Beispiel die zugehörigen Stellungen des Servohorns (beachte Anmerkung oben zur Drehrichtung). Die vorgestellten Zahlenwerte sind Cirka-Angaben, die Schwenkwinkel und die maximale Auslenkung &amp;quot;links&amp;quot; bzw. &amp;quot;rechts&amp;quot; können je nach Servotyp variieren. In der Darstellung von Periodendauer und Pulslänge ist auch die für die Ausschläge '''nutzbare''' Pulsbreite - etwa zwischen 1ms und 2ms - gezeigt. Die minimale Pulsbreite für &amp;quot;kleinsten&amp;quot; Ausschlag, d.h. für eine Endlage, beträgt etwa 1 ms.&lt;br /&gt;
&lt;br /&gt;
[[Bild:Servo_pwm_2.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Empfohlene Ansteuerung (Schaltungsvorschlag)&lt;br /&gt;
&lt;br /&gt;
Es wird dringend empfohlen zur Versorgung des Servos eine vom Mikrocontroller gesonderte Versorgungsspannung zu wählen. Dabei muss die GND-Leitung (i.A. die (-)-Leitung) von Controller, Servo und den Versorgungen leitend verbunden sein. Im untenstehenden Beispiel ist die Verschaltung eines Controllers ATMega168 mit einem Servo gezeigt. Der Servo kann natürlich auch an anderen Ausgängen des Controllers angeschlossen werden.&lt;br /&gt;
&lt;br /&gt;
Achtung, Fehlermöglichkeiten!&lt;br /&gt;
&lt;br /&gt;
Werden die GND-Pegel nicht verbunden, sind Störungen mit Sicherheit zu erwarten. &lt;br /&gt;
&lt;br /&gt;
Wird der Controller von der gleichen Spannungsquelle versorgt wie der Servo, so sind Störungen mit Sicherheit zu erwarten.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:Servoansteuerg_02.gif|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Entstören von Servos innerhalb einer Schaltung wie oben grob schematisch dargestellt wird z.B. hier ausführlich diskutiert [http://www.roboternetz.de/community/threads/39549-Servos-Entstören?p=377441&amp;amp;viewfull=1#post377441 klick hier  für Posting und ganzen Thread.]&lt;br /&gt;
&lt;br /&gt;
==Unterschied zwischen Digital- und Analogservos==&lt;br /&gt;
Der hauptsächliche Unterschied besteht darin, dass digitale Servos schneller und genauer sind und ihre Position besser halten können. Analoge Servos geben ihrem Motor alle 20ms ein Signal. Wirkt eine Kraft auf das Servo, braucht die Steuerelektronik bis zu 20ms, um dem Motor einen neuen Spannungsimpuls zu senden. Bei Digitalservos sendet die Steuerelektronik alle 400us einen Impuls an den Motor. Der Motor bekommt die Spannungsimpulse viel schneller. Um so öfter ein Motor Spannung bekommt, um so mehr Leistung kann er verrichten. Man sollte aber auch bedenken, dass dies unweigerlich einen höheren Stromverbrauch zur Folge hat, der besonders bei Modellfliegern nicht tolerierbar ist, da die Betriebszeit stark verkürzt wird.&lt;br /&gt;
&lt;br /&gt;
Die einfachste Art, einen Servo mit [[Bascom]] anzusteuern, ist folgender Befehl:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Config Servos = 2 , Servo1 = Portb.0 , Servo2 = Portb.1 , Reload = 10&lt;br /&gt;
&lt;br /&gt;
Config Portb = Output&lt;br /&gt;
&lt;br /&gt;
Enable Interrupts&lt;br /&gt;
&lt;br /&gt;
Servo(1) = 100&lt;br /&gt;
Servo(2) = 100&lt;br /&gt;
waitms 1000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'Wobei 100 die Mitte ist. 50 ist der linke bzw. rechte Anschlag und 150 der entsprechend andere. Es gibt aber auch elegantere Möglichkeiten die sich besonders empfehlen wenn z.B. eine höhere Auflösung gewünscht ist: [[Servoansteuerung]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Und in C sieht das ganze so aus:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#define SERVOPIN 7&lt;br /&gt;
#define SERVOPORT PORTD&lt;br /&gt;
#define DDRSERVO DDRD&lt;br /&gt;
&lt;br /&gt;
volatile unsigned char servopos;&lt;br /&gt;
&lt;br /&gt;
void servo_init()&lt;br /&gt;
{&lt;br /&gt;
	TIMSK|=(1&amp;lt;&amp;lt;OCIE2);&lt;br /&gt;
	TCCR2 |= (1&amp;lt;&amp;lt;WGM21) | (1&amp;lt;&amp;lt;CS20);	//Prescale=1, CTC mode&lt;br /&gt;
	OCR2 = F_CPU/100000;			//alle 10µS ein IRQ&lt;br /&gt;
	DDRSERVO|=(1&amp;lt;&amp;lt;SERVOPIN);&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
ISR(TIMER2_COMP_vect)&lt;br /&gt;
{&lt;br /&gt;
	static int count;&lt;br /&gt;
	if(count&amp;gt;servopos)SERVOPORT&amp;amp;=~(1&amp;lt;&amp;lt;SERVOPIN);&lt;br /&gt;
	  else SERVOPORT|=(1&amp;lt;&amp;lt;SERVOPIN);&lt;br /&gt;
	if(count&amp;lt;2000)count++; // Die Impulse sollten alle 20ms gesendet werden! 6.2.11 mic&lt;br /&gt;
	  else count=0;&lt;br /&gt;
};&lt;br /&gt;
	&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Man muss zuvor DDRSERVO, SERVOPIN und SERVOPORT entsprechend definieren. Mit der Funktion &amp;quot;servo_init()&amp;quot; wird Timer2 initialisiert und der Servo-Pin als Ausgang gesetzt. &amp;quot;servopos&amp;quot; beinhaltet die aktuelle Dauer des Signals in 1/100ms. Vergessen Sie nicht, globale Interrupts vor dem Betrieb zu aktivieren!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Letzter Beitrag von &amp;quot;stochri&amp;quot; ist eine super Lösung in avr-gcc mit bis zu 10 Servos&lt;br /&gt;
&lt;br /&gt;
[[http://www.roboternetz.de/phpBB2/zeigebeitrag.php?t=14220&amp;amp;highlight=servo &amp;quot;Servo / avr-gcc&amp;quot; ]]&lt;br /&gt;
&lt;br /&gt;
==Servos hacken==&lt;br /&gt;
;Methode 1:Abtriebswelle von Poti abkuppeln, Endanschläge entfernen und Spannungsteiler statt Poti&lt;br /&gt;
Häufig entledigt man sich auch des Potis und der Endlagenanschläge, um so einen Motor mit hohem Drehmoment und ohne Begrenzung des Drehwinkels zu erlangen. Das Poti wird dann durch einen 1:1-Spannungsteiler ersetzt oder die Potiwelle auf Mittelstellung fixiert ('''und''' von der Abtriebswelle abgekuppelt). Dieser Vorgang wird auch als Servo-Hacking bezeichnet. Durch die Pulslänge kann jetzt die Winkelgeschwindigkeit des Servos beeinflusst werden. Dabei simuliert der Spannungsteiler die Mittelstellung und eine kürzere Pulslänge als für Mittelstellung steuert den Motor in die eine, eine längere in die andere Richtung. Pulslänge &amp;quot;Mittelstellung&amp;quot; lässt den Servo stillstehen.&lt;br /&gt;
&lt;br /&gt;
Diese erste Methode des Servohackings nutzt die im Servo eingebaute Elektronik zur Motoransteuerung. Sie ist am Weitesten verbreitet. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:servo.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;Methode 2: Motorelektronik und Endanschläge der Abtriebswelle entfernen&lt;br /&gt;
Bei der zweiten Methode wird die vorhandene Elektronik komplett entfernt und der Motor z.B. direkt mit Gleichstrom versorgt oder durch eine externe Elektronik angesteuert. Die beiden Varianten des Servohackings sowie ihre Vor- und Nachteile sind im folgenden Link beschrieben. [[http://www.roboternetz.de/phpBB2/viewtopic.php?p=516553#516553 &amp;quot;Servohacking. Technik, Vor- und Nachteile&amp;quot;]] Bei fast allen Servos muss zum Hacken nach beiden Methoden ein mechanischer Anschlag entfernt werden. Er besteht aus einem Nocken an der Abtriebswelle und dem Gegenstück im Getriebegehäuse. Der Anschlag verhindert das Drehen der Abtriebswelle über mehr als etwa 270° und die damit verbundenen Fehlern bei der Stellungsmessung mit dem Potentiometer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die wesentlichen elektrischen und elektronischen Teile und Baugruppen eines einfachen Servos:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Servo-hack2_mini.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
Bei Methode &amp;quot;zwei&amp;quot; wird die Elektronik komplett entfernt. Ebenso wird dabei das Poti entfernt oder von der Abtriebsachse abgekoppelt. Der Motor wird dann direkt an die Versorgung angeschlossen und evtl. über einen Motortreiber und PWM drehzahlgeregelt.  [[Getriebemotoren_Ansteuerung#Und_nie_vergessen_Motoren_zu_entst.C3.B6ren|Bitte Entstörung nicht vergessen!]] Gleichwertig wie das Entfernen der kompletten Elektronik ist es, sie einfach zu umgehen und die Motorzuleitung direkt anzulöten. &lt;br /&gt;
&lt;br /&gt;
Der nach Methode 2 gehackte Servo wird dadurch zu einem Getriebemotor mit einem sehr kleinen, sehr schnell drehenden Motor und einem hoch übersetzten Getriebe. Typisch sind Untersetzungen von mehreren 100:1.&lt;br /&gt;
&lt;br /&gt;
==Siehe auch==&lt;br /&gt;
*[[Getriebemotoren]]&lt;br /&gt;
*[[RC-Empfänger_auswerten]]&lt;br /&gt;
*[[Servoansteuerung]]&lt;br /&gt;
*[[Servomotore und deren Ansteuerung (1)]]&lt;br /&gt;
*[http://wiki.rc-network.de/index.php/Kategorie:Servos Kategorie Servos in RC-Network]&lt;br /&gt;
*[http://wiki.rc-network.de/index.php/Servos_%C3%9Cbersicht Servos Übersicht in RC-Network, sehr ausführliche Liste]&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
[[Category:Robotikeinstieg]]&lt;br /&gt;
[[Category:Praxis]]&lt;br /&gt;
[[Category:Grundlagen]]&lt;br /&gt;
[[Category:Motoren]]&lt;/div&gt;</summary>
		<author><name>Oberallgeier</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=Servos&amp;diff=22946</id>
		<title>Servos</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=Servos&amp;diff=22946"/>
				<updated>2013-08-22T07:10:47Z</updated>
		
		<summary type="html">&lt;p&gt;Oberallgeier: 2 Links zum Thema Servos in RC-Network&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Servos (Servomotoren) sind kleine [[Getriebemotoren]], die häufig im Modellbau eingesetzt werden. Mithilfe eines Potentiometers, das an der Drehachse befestigt ist, wird intern die aktuelle Position bestimmt. Wegen ihrer einfachen Ansteuerung und Präzision eigenen sie sich hervorragend für mehr oder weniger kraftaufwändige Aufgaben in der Robotik.  Servomotoren in der Industrie sind Motoren mit einer Rückmeldung der Position, meist über [[Sensorarten#Incremental-Geber|Incrementalgeber]].&lt;br /&gt;
&lt;br /&gt;
==Anschlussbelegung==&lt;br /&gt;
Handelsübliche Servomotoren besitzen 3 Anschlüsse:&lt;br /&gt;
# GND&lt;br /&gt;
# [[PWM]] bzw. Signal&lt;br /&gt;
# +5V&lt;br /&gt;
&lt;br /&gt;
Wobei sich die Steckerbelegung von Hersteller zu Hersteller unterscheidet.&lt;br /&gt;
&lt;br /&gt;
[[Bild:servosteckerbelegung.gif|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Eine ausführliche Darstellung veschiedener [http://wiki.rc-network.de/index.php/Datei:Steckerbelegung.jpg Steckerbelegungen] und auch verschiedener [http://wiki.rc-network.de/index.php/Datei:Servostecker.jpg Servostecker] ist in den eben vorgelegten Links zu finden.&lt;br /&gt;
&lt;br /&gt;
==Ansteuerung: Signalform und Schaltung==&lt;br /&gt;
An die Signalleitung (siehe Steckerbelegung oben) wird ein pulsweitenmoduliertes Signal ([[PWM]]) angeschlossen. Die Repetition-Period (Periode) entspricht bei den meisten Modellen 20ms. Innerhalb/zu Beginn dieser 20ms wird ein Puls erwartet, der sich zwischen 1ms und 2ms bewegt, wobei diese Werte jeweils den Endlagen des Servos entsprechen. D.h. 1ms ist ganz links und 2ms ist ganz rechts (Einige Servos haben in diesem Wertebereich jedoch nicht die volle Bewegungsfreiheit ausgenutzt, die Werte, bei denen der Servo ganz links/rechts ist können auch unter 1ms/über 2ms liegen). 1,5ms würde demnach die Mittelstellung bedeuten. Aufgrund der Pulslänge lässt sich also eine direkte Aussage über die Position des Servos treffen. Der Motor sorgt dann intern mithilfe des Potis dafür, dass die Position gehalten wird.&lt;br /&gt;
&lt;br /&gt;
Von der Standard-Pulsdauer 20 ms kann je nach Servomodell erheblich abgewichen werden. Besonders zu erwähnen ist, dass mit Periodenzeiten von 10 ms bereits erfolgreich gearbeitet wurde,  [http://www.roboternetz.de/community/showthread.php?52460-Servo-Geschwindigkeitsregelung&amp;amp;p=506821&amp;amp;viewfull=1#post506821 klick hier  für Posting und ganzen Thread.] Dabei muss aber die Pulsdauer entsprechend angepasst werden, bei 10 ms beispielsweise beträgt dann die Pulsdauer maximal 10 % der Periodenzeit, schwankt also für die Endstellungen zwischen 0,5 ms (500 µs) und 1 ms.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die Drehrichtung der Servos entspricht bei einigen Fabrikaten den hier dargestellten Abbildungen, bei manchen Fabrikaten ist die Drehrichtung bei gleicher Signalform jedoch entgegengesetzt. Das heißt:&lt;br /&gt;
&lt;br /&gt;
manche Fabrikate schwenken bei kürzeren Pulszeiten wie hier gezeigt nach links und bei längeren Pulszeiten nach rechts,&lt;br /&gt;
&lt;br /&gt;
andere Fabrikate schwenken bei kürzeren Pulszeiten nach rechts und bei längeren Pulszeiten nach links.&lt;br /&gt;
&lt;br /&gt;
Welche Fabrikate zur einen oder andern Gruppe gehören wird hier nicht aufgelistet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die folgende Darstellung zeigt drei beispielhafte Zeit-Pegeldiagramme der PWM für Standardservos und als Beispiel die zugehörigen Stellungen des Servohorns (beachte Anmerkung oben zur Drehrichtung). Die vorgestellten Zahlenwerte sind Cirka-Angaben, die Schwenkwinkel und die maximale Auslenkung &amp;quot;links&amp;quot; bzw. &amp;quot;rechts&amp;quot; können je nach Servotyp variieren. In der Darstellung von Periodendauer und Pulslänge ist auch die für die Ausschläge '''nutzbare''' Pulsbreite - etwa zwischen 1ms und 2ms - gezeigt. Die minimale Pulsbreite für &amp;quot;kleinsten&amp;quot; Ausschlag, d.h. für eine Endlage, beträgt etwa 1 ms.&lt;br /&gt;
&lt;br /&gt;
[[Bild:Servo_pwm_2.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Empfohlene Ansteuerung (Schaltungsvorschlag)&lt;br /&gt;
&lt;br /&gt;
Es wird dringend empfohlen zur Versorgung des Servos eine vom Mikrocontroller gesonderte Versorgungsspannung zu wählen. Dabei muss die GND-Leitung (i.A. die (-)-Leitung) von Controller, Servo und den Versorgungen leitend verbunden sein. Im untenstehenden Beispiel ist die Verschaltung eines Controllers ATMega168 mit einem Servo gezeigt. Der Servo kann natürlich auch an anderen Ausgängen des Controllers angeschlossen werden.&lt;br /&gt;
&lt;br /&gt;
Achtung, Fehlermöglichkeiten!&lt;br /&gt;
&lt;br /&gt;
Werden die GND-Pegel nicht verbunden, sind Störungen mit Sicherheit zu erwarten. &lt;br /&gt;
&lt;br /&gt;
Wird der Controller von der gleichen Spannungsquelle versorgt wie der Servo, so sind Störungen mit Sicherheit zu erwarten.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:Servoansteuerg_02.gif|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Entstören von Servos innerhalb einer Schaltung wie oben grob schematisch dargestellt wird z.B. hier ausführlich diskutiert [http://www.roboternetz.de/community/threads/39549-Servos-Entstören?p=377441&amp;amp;viewfull=1#post377441 klick hier  für Posting und ganzen Thread.]&lt;br /&gt;
&lt;br /&gt;
==Unterschied zwischen Digital- und Analogservos==&lt;br /&gt;
Der hauptsächliche Unterschied besteht darin, dass digitale Servos schneller und genauer sind und ihre Position besser halten können. Analoge Servos geben ihrem Motor alle 20ms ein Signal. Wirkt eine Kraft auf das Servo, braucht die Steuerelektronik bis zu 20ms, um dem Motor einen neuen Spannungsimpuls zu senden. Bei Digitalservos sendet die Steuerelektronik alle 400us einen Impuls an den Motor. Der Motor bekommt die Spannungsimpulse viel schneller. Um so öfter ein Motor Spannung bekommt, um so mehr Leistung kann er verrichten. Man sollte aber auch bedenken, dass dies unweigerlich einen höheren Stromverbrauch zur Folge hat, der besonders bei Modellfliegern nicht tolerierbar ist, da die Betriebszeit stark verkürzt wird.&lt;br /&gt;
&lt;br /&gt;
Die einfachste Art, einen Servo mit [[Bascom]] anzusteuern, ist folgender Befehl:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Config Servos = 2 , Servo1 = Portb.0 , Servo2 = Portb.1 , Reload = 10&lt;br /&gt;
&lt;br /&gt;
Config Portb = Output&lt;br /&gt;
&lt;br /&gt;
Enable Interrupts&lt;br /&gt;
&lt;br /&gt;
Servo(1) = 100&lt;br /&gt;
Servo(2) = 100&lt;br /&gt;
waitms 1000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'Wobei 100 die Mitte ist. 50 ist der linke bzw. rechte Anschlag und 150 der entsprechend andere. Es gibt aber auch elegantere Möglichkeiten die sich besonders empfehlen wenn z.B. eine höhere Auflösung gewünscht ist: [[Servoansteuerung]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Und in C sieht das ganze so aus:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#define SERVOPIN 7&lt;br /&gt;
#define SERVOPORT PORTD&lt;br /&gt;
#define DDRSERVO DDRD&lt;br /&gt;
&lt;br /&gt;
volatile unsigned char servopos;&lt;br /&gt;
&lt;br /&gt;
void servo_init()&lt;br /&gt;
{&lt;br /&gt;
	TIMSK|=(1&amp;lt;&amp;lt;OCIE2);&lt;br /&gt;
	TCCR2 |= (1&amp;lt;&amp;lt;WGM21) | (1&amp;lt;&amp;lt;CS20);	//Prescale=1, CTC mode&lt;br /&gt;
	OCR2 = F_CPU/100000;			//alle 10µS ein IRQ&lt;br /&gt;
	DDRSERVO|=(1&amp;lt;&amp;lt;SERVOPIN);&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
ISR(TIMER2_COMP_vect)&lt;br /&gt;
{&lt;br /&gt;
	static int count;&lt;br /&gt;
	if(count&amp;gt;servopos)SERVOPORT&amp;amp;=~(1&amp;lt;&amp;lt;SERVOPIN);&lt;br /&gt;
	  else SERVOPORT|=(1&amp;lt;&amp;lt;SERVOPIN);&lt;br /&gt;
	if(count&amp;lt;2000)count++; // Die Impulse sollten alle 20ms gesendet werden! 6.2.11 mic&lt;br /&gt;
	  else count=0;&lt;br /&gt;
};&lt;br /&gt;
	&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Man muss zuvor DDRSERVO, SERVOPIN und SERVOPORT entsprechend definieren. Mit der Funktion &amp;quot;servo_init()&amp;quot; wird Timer2 initialisiert und der Servo-Pin als Ausgang gesetzt. &amp;quot;servopos&amp;quot; beinhaltet die aktuelle Dauer des Signals in 1/100ms. Vergessen Sie nicht, globale Interrupts vor dem Betrieb zu aktivieren!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Letzter Beitrag von &amp;quot;stochri&amp;quot; ist eine super Lösung in avr-gcc mit bis zu 10 Servos&lt;br /&gt;
&lt;br /&gt;
[[http://www.roboternetz.de/phpBB2/zeigebeitrag.php?t=14220&amp;amp;highlight=servo &amp;quot;Servo / avr-gcc&amp;quot; ]]&lt;br /&gt;
&lt;br /&gt;
==Servos hacken==&lt;br /&gt;
;Methode 1:Abtriebswelle von Poti abkuppeln, Endanschläge entfernen und Spannungsteiler statt Poti&lt;br /&gt;
Häufig entledigt man sich auch des Potis und der Endlagenanschläge, um so einen Motor mit hohem Drehmoment und ohne Begrenzung des Drehwinkels zu erlangen. Das Poti wird dann durch einen 1:1-Spannungsteiler ersetzt oder die Potiwelle auf Mittelstellung fixiert ('''und''' von der Abtriebswelle abgekuppelt). Dieser Vorgang wird auch als Servo-Hacking bezeichnet. Durch die Pulslänge kann jetzt die Winkelgeschwindigkeit des Servos beeinflusst werden. Dabei simuliert der Spannungsteiler die Mittelstellung und eine kürzere Pulslänge als für Mittelstellung steuert den Motor in die eine, eine längere in die andere Richtung. Pulslänge &amp;quot;Mittelstellung&amp;quot; lässt den Servo stillstehen.&lt;br /&gt;
&lt;br /&gt;
Diese erste Methode des Servohackings nutzt die im Servo eingebaute Elektronik zur Motoransteuerung. Sie ist am Weitesten verbreitet. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:servo.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;Methode 2: Motorelektronik und Endanschläge der Abtriebswelle entfernen&lt;br /&gt;
Bei der zweiten Methode wird die vorhandene Elektronik komplett entfernt und der Motor z.B. direkt mit Gleichstrom versorgt oder durch eine externe Elektronik angesteuert. Die beiden Varianten des Servohackings sowie ihre Vor- und Nachteile sind im folgenden Link beschrieben. [[http://www.roboternetz.de/phpBB2/viewtopic.php?p=516553#516553 &amp;quot;Servohacking. Technik, Vor- und Nachteile&amp;quot;]] Bei fast allen Servos muss zum Hacken nach beiden Methoden ein mechanischer Anschlag entfernt werden. Er besteht aus einem Nocken an der Abtriebswelle und dem Gegenstück im Getriebegehäuse. Der Anschlag verhindert das Drehen der Abtriebswelle über mehr als etwa 270° und die damit verbundenen Fehlern bei der Stellungsmessung mit dem Potentiometer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die wesentlichen elektrischen und elektronischen Teile und Baugruppen eines einfachen Servos:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Servo-hack2_mini.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
Bei Methode &amp;quot;zwei&amp;quot; wird die Elektronik komplett entfernt. Ebenso wird dabei das Poti entfernt oder von der Abtriebsachse abgekoppelt. Der Motor wird dann direkt an die Versorgung angeschlossen und evtl. über einen Motortreiber und PWM drehzahlgeregelt.  [[Getriebemotoren_Ansteuerung#Und_nie_vergessen_Motoren_zu_entst.C3.B6ren|Bitte Entstörung nicht vergessen!]] Gleichwertig wie das Entfernen der kompletten Elektronik ist es, sie einfach zu umgehen und die Motorzuleitung direkt anzulöten. &lt;br /&gt;
&lt;br /&gt;
Der nach Methode 2 gehackte Servo wird dadurch zu einem Getriebemotor mit einem sehr kleinen, sehr schnell drehenden Motor und einem hoch übersetzten Getriebe. Typisch sind Untersetzungen von mehreren 100:1.&lt;br /&gt;
&lt;br /&gt;
==Siehe auch==&lt;br /&gt;
*[[Getriebemotoren]]&lt;br /&gt;
*[[RC-Empfänger_auswerten]]&lt;br /&gt;
*[[Servoansteuerung]]&lt;br /&gt;
*[[Servomotore und deren Ansteuerung (1)]]&lt;br /&gt;
*[http://wiki.rc-network.de/index.php/Kategorie:Servos Kategorie Servos in RC-Network]&lt;br /&gt;
*[http://wiki.rc-network.de/index.php/Servos_%C3%9Cbersicht Servos Übersicht in RC-Network]&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
[[Category:Robotikeinstieg]]&lt;br /&gt;
[[Category:Praxis]]&lt;br /&gt;
[[Category:Grundlagen]]&lt;br /&gt;
[[Category:Motoren]]&lt;/div&gt;</summary>
		<author><name>Oberallgeier</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=Servos&amp;diff=21950</id>
		<title>Servos</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=Servos&amp;diff=21950"/>
				<updated>2013-02-26T16:09:38Z</updated>
		
		<summary type="html">&lt;p&gt;Oberallgeier: /* Ansteuerung: Signalform und Schaltung */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Servos (Servomotoren) sind kleine [[Getriebemotoren]], die häufig im Modellbau eingesetzt werden. Mithilfe eines Potentiometers, das an der Drehachse befestigt ist, wird intern die aktuelle Position bestimmt. Wegen ihrer einfachen Ansteuerung und Präzision eigenen sie sich hervorragend für mehr oder weniger kraftaufwändige Aufgaben in der Robotik.  Servomotoren in der Industrie sind Motoren mit einer Rückmeldung der Position, meist über [[Sensorarten#Incremental-Geber|Incrementalgeber]].&lt;br /&gt;
&lt;br /&gt;
==Anschlussbelegung==&lt;br /&gt;
Handelsübliche Servomotoren besitzen 3 Anschlüsse:&lt;br /&gt;
# GND&lt;br /&gt;
# [[PWM]] bzw. Signal&lt;br /&gt;
# +5V&lt;br /&gt;
&lt;br /&gt;
Wobei sich die Steckerbelegung von Hersteller zu Hersteller unterscheidet.&lt;br /&gt;
&lt;br /&gt;
[[Bild:servosteckerbelegung.gif|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Eine ausführliche Darstellung veschiedener [http://wiki.rc-network.de/index.php/Datei:Steckerbelegung.jpg Steckerbelegungen] und auch verschiedener [http://wiki.rc-network.de/index.php/Datei:Servostecker.jpg Servostecker] ist in den eben vorgelegten Links zu finden.&lt;br /&gt;
&lt;br /&gt;
==Ansteuerung: Signalform und Schaltung==&lt;br /&gt;
An die Signalleitung (siehe Steckerbelegung oben) wird ein pulsweitenmoduliertes Signal ([[PWM]]) angeschlossen. Die Repetition-Period (Periode) entspricht bei den meisten Modellen 20ms. Innerhalb/zu Beginn dieser 20ms wird ein Puls erwartet, der sich zwischen 1ms und 2ms bewegt, wobei diese Werte jeweils den Endlagen des Servos entsprechen. D.h. 1ms ist ganz links und 2ms ist ganz rechts (Einige Servos haben in diesem Wertebereich jedoch nicht die volle Bewegungsfreiheit ausgenutzt, die Werte, bei denen der Servo ganz links/rechts ist können auch unter 1ms/über 2ms liegen). 1,5ms würde demnach die Mittelstellung bedeuten. Aufgrund der Pulslänge lässt sich also eine direkte Aussage über die Position des Servos treffen. Der Motor sorgt dann intern mithilfe des Potis dafür, dass die Position gehalten wird.&lt;br /&gt;
&lt;br /&gt;
Von der Standard-Pulsdauer 20 ms kann je nach Servomodell erheblich abgewichen werden. Besonders zu erwähnen ist, dass mit Periodenzeiten von 10 ms bereits erfolgreich gearbeitet wurde,  [http://www.roboternetz.de/community/showthread.php?52460-Servo-Geschwindigkeitsregelung&amp;amp;p=506821&amp;amp;viewfull=1#post506821 klick hier  für Posting und ganzen Thread.] Dabei muss aber die Pulsdauer entsprechend angepasst werden, bei 10 ms beispielsweise beträgt dann die Pulsdauer maximal 10 % der Periodenzeit, schwankt also für die Endstellungen zwischen 0,5 ms (500 µs) und 1 ms.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die Drehrichtung der Servos entspricht bei einigen Fabrikaten den hier dargestellten Abbildungen, bei manchen Fabrikaten ist die Drehrichtung bei gleicher Signalform jedoch entgegengesetzt. Das heißt:&lt;br /&gt;
&lt;br /&gt;
manche Fabrikate schwenken bei kürzeren Pulszeiten wie hier gezeigt nach links und bei längeren Pulszeiten nach rechts,&lt;br /&gt;
&lt;br /&gt;
andere Fabrikate schwenken bei kürzeren Pulszeiten nach rechts und bei längeren Pulszeiten nach links.&lt;br /&gt;
&lt;br /&gt;
Welche Fabrikate zur einen oder andern Gruppe gehören wird hier nicht aufgelistet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die folgende Darstellung zeigt drei beispielhafte Zeit-Pegeldiagramme der PWM für Standardservos und als Beispiel die zugehörigen Stellungen des Servohorns (beachte Anmerkung oben zur Drehrichtung). Die vorgestellten Zahlenwerte sind Cirka-Angaben, die Schwenkwinkel und die maximale Auslenkung &amp;quot;links&amp;quot; bzw. &amp;quot;rechts&amp;quot; können je nach Servotyp variieren. In der Darstellung von Periodendauer und Pulslänge ist auch die für die Ausschläge '''nutzbare''' Pulsbreite - etwa zwischen 1ms und 2ms - gezeigt. Die minimale Pulsbreite für &amp;quot;kleinsten&amp;quot; Ausschlag, d.h. für eine Endlage, beträgt etwa 1 ms.&lt;br /&gt;
&lt;br /&gt;
[[Bild:Servo_pwm_2.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Empfohlene Ansteuerung (Schaltungsvorschlag)&lt;br /&gt;
&lt;br /&gt;
Es wird dringend empfohlen zur Versorgung des Servos eine vom Mikrocontroller gesonderte Versorgungsspannung zu wählen. Dabei muss die GND-Leitung (i.A. die (-)-Leitung) von Controller, Servo und den Versorgungen leitend verbunden sein. Im untenstehenden Beispiel ist die Verschaltung eines Controllers ATMega168 mit einem Servo gezeigt. Der Servo kann natürlich auch an anderen Ausgängen des Controllers angeschlossen werden.&lt;br /&gt;
&lt;br /&gt;
Achtung, Fehlermöglichkeiten!&lt;br /&gt;
&lt;br /&gt;
Werden die GND-Pegel nicht verbunden, sind Störungen mit Sicherheit zu erwarten. &lt;br /&gt;
&lt;br /&gt;
Wird der Controller von der gleichen Spannungsquelle versorgt wie der Servo, so sind Störungen mit Sicherheit zu erwarten.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:Servoansteuerg_02.gif|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Entstören von Servos innerhalb einer Schaltung wie oben grob schematisch dargestellt wird z.B. hier ausführlich diskutiert [http://www.roboternetz.de/community/threads/39549-Servos-Entstören?p=377441&amp;amp;viewfull=1#post377441 klick hier  für Posting und ganzen Thread.]&lt;br /&gt;
&lt;br /&gt;
==Unterschied zwischen Digital- und Analogservos==&lt;br /&gt;
Der hauptsächliche Unterschied besteht darin, dass digitale Servos schneller und genauer sind und ihre Position besser halten können. Analoge Servos geben ihrem Motor alle 20ms ein Signal. Wirkt eine Kraft auf das Servo, braucht die Steuerelektronik bis zu 20ms, um dem Motor einen neuen Spannungsimpuls zu senden. Bei Digitalservos sendet die Steuerelektronik alle 400us einen Impuls an den Motor. Der Motor bekommt die Spannungsimpulse viel schneller. Um so öfter ein Motor Spannung bekommt, um so mehr Leistung kann er verrichten. Man sollte aber auch bedenken, dass dies unweigerlich einen höheren Stromverbrauch zur Folge hat, der besonders bei Modellfliegern nicht tolerierbar ist, da die Betriebszeit stark verkürzt wird.&lt;br /&gt;
&lt;br /&gt;
Die einfachste Art, einen Servo mit [[Bascom]] anzusteuern, ist folgender Befehl:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Config Servos = 2 , Servo1 = Portb.0 , Servo2 = Portb.1 , Reload = 10&lt;br /&gt;
&lt;br /&gt;
Config Portb = Output&lt;br /&gt;
&lt;br /&gt;
Enable Interrupts&lt;br /&gt;
&lt;br /&gt;
Servo(1) = 100&lt;br /&gt;
Servo(2) = 100&lt;br /&gt;
waitms 1000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'Wobei 100 die Mitte ist. 50 ist der linke bzw. rechte Anschlag und 150 der entsprechend andere. Es gibt aber auch elegantere Möglichkeiten die sich besonders empfehlen wenn z.B. eine höhere Auflösung gewünscht ist: [[Servoansteuerung]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Und in C sieht das ganze so aus:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#define SERVOPIN 7&lt;br /&gt;
#define SERVOPORT PORTD&lt;br /&gt;
#define DDRSERVO DDRD&lt;br /&gt;
&lt;br /&gt;
volatile unsigned char servopos;&lt;br /&gt;
&lt;br /&gt;
void servo_init()&lt;br /&gt;
{&lt;br /&gt;
	TIMSK|=(1&amp;lt;&amp;lt;OCIE2);&lt;br /&gt;
	TCCR2 |= (1&amp;lt;&amp;lt;WGM21) | (1&amp;lt;&amp;lt;CS20);	//Prescale=1, CTC mode&lt;br /&gt;
	OCR2 = F_CPU/100000;			//alle 10µS ein IRQ&lt;br /&gt;
	DDRSERVO|=(1&amp;lt;&amp;lt;SERVOPIN);&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
ISR(TIMER2_COMP_vect)&lt;br /&gt;
{&lt;br /&gt;
	static int count;&lt;br /&gt;
	if(count&amp;gt;servopos)SERVOPORT&amp;amp;=~(1&amp;lt;&amp;lt;SERVOPIN);&lt;br /&gt;
	  else SERVOPORT|=(1&amp;lt;&amp;lt;SERVOPIN);&lt;br /&gt;
	if(count&amp;lt;2000)count++; // Die Impulse sollten alle 20ms gesendet werden! 6.2.11 mic&lt;br /&gt;
	  else count=0;&lt;br /&gt;
};&lt;br /&gt;
	&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Man muss zuvor DDRSERVO, SERVOPIN und SERVOPORT entsprechend definieren. Mit der Funktion &amp;quot;servo_init()&amp;quot; wird Timer2 initialisiert und der Servo-Pin als Ausgang gesetzt. &amp;quot;servopos&amp;quot; beinhaltet die aktuelle Dauer des Signals in 1/100ms. Vergessen Sie nicht, globale Interrupts vor dem Betrieb zu aktivieren!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Letzter Beitrag von &amp;quot;stochri&amp;quot; ist eine super Lösung in avr-gcc mit bis zu 10 Servos&lt;br /&gt;
&lt;br /&gt;
[[http://www.roboternetz.de/phpBB2/zeigebeitrag.php?t=14220&amp;amp;highlight=servo &amp;quot;Servo / avr-gcc&amp;quot; ]]&lt;br /&gt;
&lt;br /&gt;
==Servos hacken==&lt;br /&gt;
;Methode 1:Abtriebswelle von Poti abkuppeln, Endanschläge entfernen und Spannungsteiler statt Poti&lt;br /&gt;
Häufig entledigt man sich auch des Potis und der Endlagenanschläge, um so einen Motor mit hohem Drehmoment und ohne Begrenzung des Drehwinkels zu erlangen. Das Poti wird dann durch einen 1:1-Spannungsteiler ersetzt oder die Potiwelle auf Mittelstellung fixiert ('''und''' von der Abtriebswelle abgekuppelt). Dieser Vorgang wird auch als Servo-Hacking bezeichnet. Durch die Pulslänge kann jetzt die Winkelgeschwindigkeit des Servos beeinflusst werden. Dabei simuliert der Spannungsteiler die Mittelstellung und eine kürzere Pulslänge als für Mittelstellung steuert den Motor in die eine, eine längere in die andere Richtung. Pulslänge &amp;quot;Mittelstellung&amp;quot; lässt den Servo stillstehen.&lt;br /&gt;
&lt;br /&gt;
Diese erste Methode des Servohackings nutzt die im Servo eingebaute Elektronik zur Motoransteuerung. Sie ist am Weitesten verbreitet. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:servo.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;Methode 2: Motorelektronik und Endanschläge der Abtriebswelle entfernen&lt;br /&gt;
Bei der zweiten Methode wird die vorhandene Elektronik komplett entfernt und der Motor z.B. direkt mit Gleichstrom versorgt oder durch eine externe Elektronik angesteuert. Die beiden Varianten des Servohackings sowie ihre Vor- und Nachteile sind im folgenden Link beschrieben. [[http://www.roboternetz.de/phpBB2/viewtopic.php?p=516553#516553 &amp;quot;Servohacking. Technik, Vor- und Nachteile&amp;quot;]] Bei fast allen Servos muss zum Hacken nach beiden Methoden ein mechanischer Anschlag entfernt werden. Er besteht aus einem Nocken an der Abtriebswelle und dem Gegenstück im Getriebegehäuse. Der Anschlag verhindert das Drehen der Abtriebswelle über mehr als etwa 270° und die damit verbundenen Fehlern bei der Stellungsmessung mit dem Potentiometer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die wesentlichen elektrischen und elektronischen Teile und Baugruppen eines einfachen Servos:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Servo-hack2_mini.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
Bei Methode &amp;quot;zwei&amp;quot; wird die Elektronik komplett entfernt. Ebenso wird dabei das Poti entfernt oder von der Abtriebsachse abgekoppelt. Der Motor wird dann direkt an die Versorgung angeschlossen und evtl. über einen Motortreiber und PWM drehzahlgeregelt.  [[Getriebemotoren_Ansteuerung#Und_nie_vergessen_Motoren_zu_entst.C3.B6ren|Bitte Entstörung nicht vergessen!]] Gleichwertig wie das Entfernen der kompletten Elektronik ist es, sie einfach zu umgehen und die Motorzuleitung direkt anzulöten. &lt;br /&gt;
&lt;br /&gt;
Der nach Methode 2 gehackte Servo wird dadurch zu einem Getriebemotor mit einem sehr kleinen, sehr schnell drehenden Motor und einem hoch übersetzten Getriebe. Typisch sind Untersetzungen von mehreren 100:1.&lt;br /&gt;
&lt;br /&gt;
==Siehe auch==&lt;br /&gt;
*[[Getriebemotoren]]&lt;br /&gt;
*[[RC-Empfänger_auswerten]]&lt;br /&gt;
*[[Servoansteuerung]]&lt;br /&gt;
*[[Servomotore und deren Ansteuerung (1)]]&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
[[Category:Robotikeinstieg]]&lt;br /&gt;
[[Category:Praxis]]&lt;br /&gt;
[[Category:Grundlagen]]&lt;br /&gt;
[[Category:Motoren]]&lt;/div&gt;</summary>
		<author><name>Oberallgeier</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=Servos&amp;diff=21949</id>
		<title>Servos</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=Servos&amp;diff=21949"/>
				<updated>2013-02-26T16:02:26Z</updated>
		
		<summary type="html">&lt;p&gt;Oberallgeier: /* Ansteuerung: Signalform und Schaltung */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Servos (Servomotoren) sind kleine [[Getriebemotoren]], die häufig im Modellbau eingesetzt werden. Mithilfe eines Potentiometers, das an der Drehachse befestigt ist, wird intern die aktuelle Position bestimmt. Wegen ihrer einfachen Ansteuerung und Präzision eigenen sie sich hervorragend für mehr oder weniger kraftaufwändige Aufgaben in der Robotik.  Servomotoren in der Industrie sind Motoren mit einer Rückmeldung der Position, meist über [[Sensorarten#Incremental-Geber|Incrementalgeber]].&lt;br /&gt;
&lt;br /&gt;
==Anschlussbelegung==&lt;br /&gt;
Handelsübliche Servomotoren besitzen 3 Anschlüsse:&lt;br /&gt;
# GND&lt;br /&gt;
# [[PWM]] bzw. Signal&lt;br /&gt;
# +5V&lt;br /&gt;
&lt;br /&gt;
Wobei sich die Steckerbelegung von Hersteller zu Hersteller unterscheidet.&lt;br /&gt;
&lt;br /&gt;
[[Bild:servosteckerbelegung.gif|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Eine ausführliche Darstellung veschiedener [http://wiki.rc-network.de/index.php/Datei:Steckerbelegung.jpg Steckerbelegungen] und auch verschiedener [http://wiki.rc-network.de/index.php/Datei:Servostecker.jpg Servostecker] ist in den eben vorgelegten Links zu finden.&lt;br /&gt;
&lt;br /&gt;
==Ansteuerung: Signalform und Schaltung==&lt;br /&gt;
An die Signalleitung (siehe Steckerbelegung oben) wird ein pulsweitenmoduliertes Signal ([[PWM]]) angeschlossen. Die Repetition-Period (Periode) entspricht bei den meisten Modellen 20ms. Innerhalb/zu Beginn dieser 20ms wird ein Puls erwartet, der sich zwischen 1ms und 2ms bewegt, wobei diese Werte jeweils den Endlagen des Servos entsprechen. D.h. 1ms ist ganz links und 2ms ist ganz rechts (Einige Servos haben in diesem Wertebereich jedoch nicht die volle Bewegungsfreiheit ausgenutzt, die Werte, bei denen der Servo ganz links/rechts ist können auch unter 1ms/über 2ms liegen). 1,5ms würde demnach die Mittelstellung bedeuten. Aufgrund der Pulslänge lässt sich also eine direkte Aussage über die Position des Servos treffen.&lt;br /&gt;
Der Motor sorgt dann intern mithilfe des Potis dafür, dass die Position gehalten wird.&lt;br /&gt;
&lt;br /&gt;
Von der Standard-Pulsdauer 20 ms kann je nach Servomodell erheblich abgewichen werden. Besonders zu erwähnen ist, dass mit Periodenzeiten von 10 ms bereits erfolgreich gearbeitet wurde,  [http://www.roboternetz.de/community/showthread.php?52460-Servo-Geschwindigkeitsregelung&amp;amp;p=506821&amp;amp;viewfull=1#post506821 klick hier  für Posting und ganzen Thread.] Dabei muss aber die Pulsdauer entsprechend angepasst werden, bei 10 ms beispielsweise beträgt dann die Pulsdauer maximal 10 % der Periodenzeit, schwankt also für die Endstellungen zwischen 0,5 ms (500 µs) und 1 ms.&lt;br /&gt;
&lt;br /&gt;
Die Drehrichtung der Servos ist bei manchen Fabrikaten mit den hier dargestellten Richtungen gleich, bei manchen jedoch entgegengesetzt. Das heißt: &lt;br /&gt;
manche Fabrikate schwenken bei niedrigen Pulszeiten wie hier gezeigt nach links und bei längeren Pulszeiten nach rechts,&lt;br /&gt;
andere Fabrikate schwenken bei niedrigen Pulszeiten nach rechts und bei längeren Pulszeiten nach links.&lt;br /&gt;
Welche Fabrikate wie arbeiten wird hier nicht aufgelistet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die folgende Darstellung zeigt drei beispielhafte Zeit-Pegeldiagramme der PWM für Standardservos und als Beispiel die zugehörigen Stellungen des Servohorns. Die vorgestellten Zahlenwerte sind Cirka-Angaben, die Schwenkwinkel und die maximale Auslenkung &amp;quot;links&amp;quot; bzw. &amp;quot;rechts&amp;quot; können je nach Servotyp variieren. In der Darstellung von Periodendauer und Pulslänge ist auch die für die Ausschläge '''nutzbare''' Pulsbreite - etwa zwischen 1ms und 2ms - gezeigt. Die minimale Pulsbreite für &amp;quot;kleinsten&amp;quot; Ausschlag, d.h. für eine Endlage, beträgt etwa 1 ms.&lt;br /&gt;
&lt;br /&gt;
[[Bild:Servo_pwm_2.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Empfohlene Ansteuerung (Schaltungsvorschlag)&lt;br /&gt;
&lt;br /&gt;
Es wird dringend empfohlen zur Versorgung des Servos eine vom Mikrocontroller gesonderte Versorgungsspannung zu wählen. Dabei muss die GND-Leitung (i.A. die (-)-Leitung) von Controller, Servo und den Versorgungen leitend verbunden sein. Im untenstehenden Beispiel ist die Verschaltung eines Controllers ATMega168 mit einem Servo gezeigt. Der Servo kann natürlich auch an anderen Ausgängen des Controllers angeschlossen werden.&lt;br /&gt;
&lt;br /&gt;
Achtung, Fehlermöglichkeiten!&lt;br /&gt;
&lt;br /&gt;
Werden die GND-Pegel nicht verbunden, sind Störungen mit Sicherheit zu erwarten. &lt;br /&gt;
&lt;br /&gt;
Wird der Controller von der gleichen Spannungsquelle versorgt wie der Servo, so sind Störungen mit Sicherheit zu erwarten.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:Servoansteuerg_02.gif|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Entstören von Servos innerhalb einer Schaltung wie oben grob schematisch dargestellt wird z.B. hier ausführlich diskutiert [http://www.roboternetz.de/community/threads/39549-Servos-Entstören?p=377441&amp;amp;viewfull=1#post377441 klick hier  für Posting und ganzen Thread.]&lt;br /&gt;
&lt;br /&gt;
==Unterschied zwischen Digital- und Analogservos==&lt;br /&gt;
Der hauptsächliche Unterschied besteht darin, dass digitale Servos schneller und genauer sind und ihre Position besser halten können. Analoge Servos geben ihrem Motor alle 20ms ein Signal. Wirkt eine Kraft auf das Servo, braucht die Steuerelektronik bis zu 20ms, um dem Motor einen neuen Spannungsimpuls zu senden. Bei Digitalservos sendet die Steuerelektronik alle 400us einen Impuls an den Motor. Der Motor bekommt die Spannungsimpulse viel schneller. Um so öfter ein Motor Spannung bekommt, um so mehr Leistung kann er verrichten. Man sollte aber auch bedenken, dass dies unweigerlich einen höheren Stromverbrauch zur Folge hat, der besonders bei Modellfliegern nicht tolerierbar ist, da die Betriebszeit stark verkürzt wird.&lt;br /&gt;
&lt;br /&gt;
Die einfachste Art, einen Servo mit [[Bascom]] anzusteuern, ist folgender Befehl:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Config Servos = 2 , Servo1 = Portb.0 , Servo2 = Portb.1 , Reload = 10&lt;br /&gt;
&lt;br /&gt;
Config Portb = Output&lt;br /&gt;
&lt;br /&gt;
Enable Interrupts&lt;br /&gt;
&lt;br /&gt;
Servo(1) = 100&lt;br /&gt;
Servo(2) = 100&lt;br /&gt;
waitms 1000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'Wobei 100 die Mitte ist. 50 ist der linke bzw. rechte Anschlag und 150 der entsprechend andere. Es gibt aber auch elegantere Möglichkeiten die sich besonders empfehlen wenn z.B. eine höhere Auflösung gewünscht ist: [[Servoansteuerung]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Und in C sieht das ganze so aus:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#define SERVOPIN 7&lt;br /&gt;
#define SERVOPORT PORTD&lt;br /&gt;
#define DDRSERVO DDRD&lt;br /&gt;
&lt;br /&gt;
volatile unsigned char servopos;&lt;br /&gt;
&lt;br /&gt;
void servo_init()&lt;br /&gt;
{&lt;br /&gt;
	TIMSK|=(1&amp;lt;&amp;lt;OCIE2);&lt;br /&gt;
	TCCR2 |= (1&amp;lt;&amp;lt;WGM21) | (1&amp;lt;&amp;lt;CS20);	//Prescale=1, CTC mode&lt;br /&gt;
	OCR2 = F_CPU/100000;			//alle 10µS ein IRQ&lt;br /&gt;
	DDRSERVO|=(1&amp;lt;&amp;lt;SERVOPIN);&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
ISR(TIMER2_COMP_vect)&lt;br /&gt;
{&lt;br /&gt;
	static int count;&lt;br /&gt;
	if(count&amp;gt;servopos)SERVOPORT&amp;amp;=~(1&amp;lt;&amp;lt;SERVOPIN);&lt;br /&gt;
	  else SERVOPORT|=(1&amp;lt;&amp;lt;SERVOPIN);&lt;br /&gt;
	if(count&amp;lt;2000)count++; // Die Impulse sollten alle 20ms gesendet werden! 6.2.11 mic&lt;br /&gt;
	  else count=0;&lt;br /&gt;
};&lt;br /&gt;
	&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Man muss zuvor DDRSERVO, SERVOPIN und SERVOPORT entsprechend definieren. Mit der Funktion &amp;quot;servo_init()&amp;quot; wird Timer2 initialisiert und der Servo-Pin als Ausgang gesetzt. &amp;quot;servopos&amp;quot; beinhaltet die aktuelle Dauer des Signals in 1/100ms. Vergessen Sie nicht, globale Interrupts vor dem Betrieb zu aktivieren!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Letzter Beitrag von &amp;quot;stochri&amp;quot; ist eine super Lösung in avr-gcc mit bis zu 10 Servos&lt;br /&gt;
&lt;br /&gt;
[[http://www.roboternetz.de/phpBB2/zeigebeitrag.php?t=14220&amp;amp;highlight=servo &amp;quot;Servo / avr-gcc&amp;quot; ]]&lt;br /&gt;
&lt;br /&gt;
==Servos hacken==&lt;br /&gt;
;Methode 1:Abtriebswelle von Poti abkuppeln, Endanschläge entfernen und Spannungsteiler statt Poti&lt;br /&gt;
Häufig entledigt man sich auch des Potis und der Endlagenanschläge, um so einen Motor mit hohem Drehmoment und ohne Begrenzung des Drehwinkels zu erlangen. Das Poti wird dann durch einen 1:1-Spannungsteiler ersetzt oder die Potiwelle auf Mittelstellung fixiert ('''und''' von der Abtriebswelle abgekuppelt). Dieser Vorgang wird auch als Servo-Hacking bezeichnet. Durch die Pulslänge kann jetzt die Winkelgeschwindigkeit des Servos beeinflusst werden. Dabei simuliert der Spannungsteiler die Mittelstellung und eine kürzere Pulslänge als für Mittelstellung steuert den Motor in die eine, eine längere in die andere Richtung. Pulslänge &amp;quot;Mittelstellung&amp;quot; lässt den Servo stillstehen.&lt;br /&gt;
&lt;br /&gt;
Diese erste Methode des Servohackings nutzt die im Servo eingebaute Elektronik zur Motoransteuerung. Sie ist am Weitesten verbreitet. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:servo.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;Methode 2: Motorelektronik und Endanschläge der Abtriebswelle entfernen&lt;br /&gt;
Bei der zweiten Methode wird die vorhandene Elektronik komplett entfernt und der Motor z.B. direkt mit Gleichstrom versorgt oder durch eine externe Elektronik angesteuert. Die beiden Varianten des Servohackings sowie ihre Vor- und Nachteile sind im folgenden Link beschrieben. [[http://www.roboternetz.de/phpBB2/viewtopic.php?p=516553#516553 &amp;quot;Servohacking. Technik, Vor- und Nachteile&amp;quot;]] Bei fast allen Servos muss zum Hacken nach beiden Methoden ein mechanischer Anschlag entfernt werden. Er besteht aus einem Nocken an der Abtriebswelle und dem Gegenstück im Getriebegehäuse. Der Anschlag verhindert das Drehen der Abtriebswelle über mehr als etwa 270° und die damit verbundenen Fehlern bei der Stellungsmessung mit dem Potentiometer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die wesentlichen elektrischen und elektronischen Teile und Baugruppen eines einfachen Servos:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Servo-hack2_mini.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
Bei Methode &amp;quot;zwei&amp;quot; wird die Elektronik komplett entfernt. Ebenso wird dabei das Poti entfernt oder von der Abtriebsachse abgekoppelt. Der Motor wird dann direkt an die Versorgung angeschlossen und evtl. über einen Motortreiber und PWM drehzahlgeregelt.  [[Getriebemotoren_Ansteuerung#Und_nie_vergessen_Motoren_zu_entst.C3.B6ren|Bitte Entstörung nicht vergessen!]] Gleichwertig wie das Entfernen der kompletten Elektronik ist es, sie einfach zu umgehen und die Motorzuleitung direkt anzulöten. &lt;br /&gt;
&lt;br /&gt;
Der nach Methode 2 gehackte Servo wird dadurch zu einem Getriebemotor mit einem sehr kleinen, sehr schnell drehenden Motor und einem hoch übersetzten Getriebe. Typisch sind Untersetzungen von mehreren 100:1.&lt;br /&gt;
&lt;br /&gt;
==Siehe auch==&lt;br /&gt;
*[[Getriebemotoren]]&lt;br /&gt;
*[[RC-Empfänger_auswerten]]&lt;br /&gt;
*[[Servoansteuerung]]&lt;br /&gt;
*[[Servomotore und deren Ansteuerung (1)]]&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
[[Category:Robotikeinstieg]]&lt;br /&gt;
[[Category:Praxis]]&lt;br /&gt;
[[Category:Grundlagen]]&lt;br /&gt;
[[Category:Motoren]]&lt;/div&gt;</summary>
		<author><name>Oberallgeier</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=Servos&amp;diff=21948</id>
		<title>Servos</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=Servos&amp;diff=21948"/>
				<updated>2013-02-26T16:01:41Z</updated>
		
		<summary type="html">&lt;p&gt;Oberallgeier: /* Ansteuerung: Signalform und Schaltung */  Unterschiedliche Drehrichtung eingeführt.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Servos (Servomotoren) sind kleine [[Getriebemotoren]], die häufig im Modellbau eingesetzt werden. Mithilfe eines Potentiometers, das an der Drehachse befestigt ist, wird intern die aktuelle Position bestimmt. Wegen ihrer einfachen Ansteuerung und Präzision eigenen sie sich hervorragend für mehr oder weniger kraftaufwändige Aufgaben in der Robotik.  Servomotoren in der Industrie sind Motoren mit einer Rückmeldung der Position, meist über [[Sensorarten#Incremental-Geber|Incrementalgeber]].&lt;br /&gt;
&lt;br /&gt;
==Anschlussbelegung==&lt;br /&gt;
Handelsübliche Servomotoren besitzen 3 Anschlüsse:&lt;br /&gt;
# GND&lt;br /&gt;
# [[PWM]] bzw. Signal&lt;br /&gt;
# +5V&lt;br /&gt;
&lt;br /&gt;
Wobei sich die Steckerbelegung von Hersteller zu Hersteller unterscheidet.&lt;br /&gt;
&lt;br /&gt;
[[Bild:servosteckerbelegung.gif|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Eine ausführliche Darstellung veschiedener [http://wiki.rc-network.de/index.php/Datei:Steckerbelegung.jpg Steckerbelegungen] und auch verschiedener [http://wiki.rc-network.de/index.php/Datei:Servostecker.jpg Servostecker] ist in den eben vorgelegten Links zu finden.&lt;br /&gt;
&lt;br /&gt;
==Ansteuerung: Signalform und Schaltung==&lt;br /&gt;
An die Signalleitung (siehe Steckerbelegung oben) wird ein pulsweitenmoduliertes Signal ([[PWM]]) angeschlossen. Die Repetition-Period (Periode) entspricht bei den meisten Modellen 20ms. Innerhalb/zu Beginn dieser 20ms wird ein Puls erwartet, der sich zwischen 1ms und 2ms bewegt, wobei diese Werte jeweils den Endlagen des Servos entsprechen. D.h. 1ms ist ganz links und 2ms ist ganz rechts (Einige Servos haben in diesem Wertebereich jedoch nicht die volle Bewegungsfreiheit ausgenutzt, die Werte, bei denen der Servo ganz links/rechts ist können auch unter 1ms/über 2ms liegen). 1,5ms würde demnach die Mittelstellung bedeuten. Aufgrund der Pulslänge lässt sich also eine direkte Aussage über die Position des Servos treffen.&lt;br /&gt;
Der Motor sorgt dann intern mithilfe des Potis dafür, dass die Position gehalten wird.&lt;br /&gt;
&lt;br /&gt;
Von der Standard-Pulsdauer 20 ms kann je nach Servomodell erheblich abgewichen werden. Besonders zu erwähnen ist, dass mit Periodenzeiten von 10 ms bereits erfolgreich gearbeitet wurde,  [http://www.roboternetz.de/community/showthread.php?52460-Servo-Geschwindigkeitsregelung&amp;amp;p=506821&amp;amp;viewfull=1#post506821 klick hier  für Posting und ganzen Thread.] Dabei muss aber die Pulsdauer entsprechend angepasst werden, bei 10 ms beispielsweise beträgt dann die Pulsdauer maximal 10 % der Periodenzeit, schwankt also für die Endstellungen zwischen 0,5 ms (500 µs) und 1 ms.&lt;br /&gt;
&lt;br /&gt;
Die Drehrichtung der Servos ist bei manchen Fabrikaten mit den hier dargestellten Richtungen gleich, bei manchen jedoch entgegengesetzt. Das heißt: &lt;br /&gt;
manche Fabrikate schwenken bei niedrigen Pulszeiten wie hier gezeigt nach links und bei längeren Pulszeiten nach rechts,&lt;br /&gt;
andere Fabrikate schwenken bei niedrigen Pulszeiten nach rechts und bei längeren Pulszeiten nach links.&lt;br /&gt;
Welche Fabrikate wie arbeiten wird hier nicht aufgelistet.&lt;br /&gt;
&lt;br /&gt;
Die folgende Darstellung zeigt drei beispielhafte Zeit-Pegeldiagramme der PWM für Standardservos und als Beispiel die zugehörigen Stellungen des Servohorns. Die vorgestellten Zahlenwerte sind Cirka-Angaben, die Schwenkwinkel und die maximale Auslenkung &amp;quot;links&amp;quot; bzw. &amp;quot;rechts&amp;quot; können je nach Servotyp variieren. In der Darstellung von Periodendauer und Pulslänge ist auch die für die Ausschläge '''nutzbare''' Pulsbreite - etwa zwischen 1ms und 2ms - gezeigt. Die minimale Pulsbreite für &amp;quot;kleinsten&amp;quot; Ausschlag, d.h. für eine Endlage, beträgt etwa 1 ms.&lt;br /&gt;
&lt;br /&gt;
[[Bild:Servo_pwm_2.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Empfohlene Ansteuerung (Schaltungsvorschlag)&lt;br /&gt;
&lt;br /&gt;
Es wird dringend empfohlen zur Versorgung des Servos eine vom Mikrocontroller gesonderte Versorgungsspannung zu wählen. Dabei muss die GND-Leitung (i.A. die (-)-Leitung) von Controller, Servo und den Versorgungen leitend verbunden sein. Im untenstehenden Beispiel ist die Verschaltung eines Controllers ATMega168 mit einem Servo gezeigt. Der Servo kann natürlich auch an anderen Ausgängen des Controllers angeschlossen werden.&lt;br /&gt;
&lt;br /&gt;
Achtung, Fehlermöglichkeiten!&lt;br /&gt;
&lt;br /&gt;
Werden die GND-Pegel nicht verbunden, sind Störungen mit Sicherheit zu erwarten. &lt;br /&gt;
&lt;br /&gt;
Wird der Controller von der gleichen Spannungsquelle versorgt wie der Servo, so sind Störungen mit Sicherheit zu erwarten.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:Servoansteuerg_02.gif|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Entstören von Servos innerhalb einer Schaltung wie oben grob schematisch dargestellt wird z.B. hier ausführlich diskutiert [http://www.roboternetz.de/community/threads/39549-Servos-Entstören?p=377441&amp;amp;viewfull=1#post377441 klick hier  für Posting und ganzen Thread.]&lt;br /&gt;
&lt;br /&gt;
==Unterschied zwischen Digital- und Analogservos==&lt;br /&gt;
Der hauptsächliche Unterschied besteht darin, dass digitale Servos schneller und genauer sind und ihre Position besser halten können. Analoge Servos geben ihrem Motor alle 20ms ein Signal. Wirkt eine Kraft auf das Servo, braucht die Steuerelektronik bis zu 20ms, um dem Motor einen neuen Spannungsimpuls zu senden. Bei Digitalservos sendet die Steuerelektronik alle 400us einen Impuls an den Motor. Der Motor bekommt die Spannungsimpulse viel schneller. Um so öfter ein Motor Spannung bekommt, um so mehr Leistung kann er verrichten. Man sollte aber auch bedenken, dass dies unweigerlich einen höheren Stromverbrauch zur Folge hat, der besonders bei Modellfliegern nicht tolerierbar ist, da die Betriebszeit stark verkürzt wird.&lt;br /&gt;
&lt;br /&gt;
Die einfachste Art, einen Servo mit [[Bascom]] anzusteuern, ist folgender Befehl:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Config Servos = 2 , Servo1 = Portb.0 , Servo2 = Portb.1 , Reload = 10&lt;br /&gt;
&lt;br /&gt;
Config Portb = Output&lt;br /&gt;
&lt;br /&gt;
Enable Interrupts&lt;br /&gt;
&lt;br /&gt;
Servo(1) = 100&lt;br /&gt;
Servo(2) = 100&lt;br /&gt;
waitms 1000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'Wobei 100 die Mitte ist. 50 ist der linke bzw. rechte Anschlag und 150 der entsprechend andere. Es gibt aber auch elegantere Möglichkeiten die sich besonders empfehlen wenn z.B. eine höhere Auflösung gewünscht ist: [[Servoansteuerung]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Und in C sieht das ganze so aus:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#define SERVOPIN 7&lt;br /&gt;
#define SERVOPORT PORTD&lt;br /&gt;
#define DDRSERVO DDRD&lt;br /&gt;
&lt;br /&gt;
volatile unsigned char servopos;&lt;br /&gt;
&lt;br /&gt;
void servo_init()&lt;br /&gt;
{&lt;br /&gt;
	TIMSK|=(1&amp;lt;&amp;lt;OCIE2);&lt;br /&gt;
	TCCR2 |= (1&amp;lt;&amp;lt;WGM21) | (1&amp;lt;&amp;lt;CS20);	//Prescale=1, CTC mode&lt;br /&gt;
	OCR2 = F_CPU/100000;			//alle 10µS ein IRQ&lt;br /&gt;
	DDRSERVO|=(1&amp;lt;&amp;lt;SERVOPIN);&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
ISR(TIMER2_COMP_vect)&lt;br /&gt;
{&lt;br /&gt;
	static int count;&lt;br /&gt;
	if(count&amp;gt;servopos)SERVOPORT&amp;amp;=~(1&amp;lt;&amp;lt;SERVOPIN);&lt;br /&gt;
	  else SERVOPORT|=(1&amp;lt;&amp;lt;SERVOPIN);&lt;br /&gt;
	if(count&amp;lt;2000)count++; // Die Impulse sollten alle 20ms gesendet werden! 6.2.11 mic&lt;br /&gt;
	  else count=0;&lt;br /&gt;
};&lt;br /&gt;
	&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Man muss zuvor DDRSERVO, SERVOPIN und SERVOPORT entsprechend definieren. Mit der Funktion &amp;quot;servo_init()&amp;quot; wird Timer2 initialisiert und der Servo-Pin als Ausgang gesetzt. &amp;quot;servopos&amp;quot; beinhaltet die aktuelle Dauer des Signals in 1/100ms. Vergessen Sie nicht, globale Interrupts vor dem Betrieb zu aktivieren!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Letzter Beitrag von &amp;quot;stochri&amp;quot; ist eine super Lösung in avr-gcc mit bis zu 10 Servos&lt;br /&gt;
&lt;br /&gt;
[[http://www.roboternetz.de/phpBB2/zeigebeitrag.php?t=14220&amp;amp;highlight=servo &amp;quot;Servo / avr-gcc&amp;quot; ]]&lt;br /&gt;
&lt;br /&gt;
==Servos hacken==&lt;br /&gt;
;Methode 1:Abtriebswelle von Poti abkuppeln, Endanschläge entfernen und Spannungsteiler statt Poti&lt;br /&gt;
Häufig entledigt man sich auch des Potis und der Endlagenanschläge, um so einen Motor mit hohem Drehmoment und ohne Begrenzung des Drehwinkels zu erlangen. Das Poti wird dann durch einen 1:1-Spannungsteiler ersetzt oder die Potiwelle auf Mittelstellung fixiert ('''und''' von der Abtriebswelle abgekuppelt). Dieser Vorgang wird auch als Servo-Hacking bezeichnet. Durch die Pulslänge kann jetzt die Winkelgeschwindigkeit des Servos beeinflusst werden. Dabei simuliert der Spannungsteiler die Mittelstellung und eine kürzere Pulslänge als für Mittelstellung steuert den Motor in die eine, eine längere in die andere Richtung. Pulslänge &amp;quot;Mittelstellung&amp;quot; lässt den Servo stillstehen.&lt;br /&gt;
&lt;br /&gt;
Diese erste Methode des Servohackings nutzt die im Servo eingebaute Elektronik zur Motoransteuerung. Sie ist am Weitesten verbreitet. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:servo.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;Methode 2: Motorelektronik und Endanschläge der Abtriebswelle entfernen&lt;br /&gt;
Bei der zweiten Methode wird die vorhandene Elektronik komplett entfernt und der Motor z.B. direkt mit Gleichstrom versorgt oder durch eine externe Elektronik angesteuert. Die beiden Varianten des Servohackings sowie ihre Vor- und Nachteile sind im folgenden Link beschrieben. [[http://www.roboternetz.de/phpBB2/viewtopic.php?p=516553#516553 &amp;quot;Servohacking. Technik, Vor- und Nachteile&amp;quot;]] Bei fast allen Servos muss zum Hacken nach beiden Methoden ein mechanischer Anschlag entfernt werden. Er besteht aus einem Nocken an der Abtriebswelle und dem Gegenstück im Getriebegehäuse. Der Anschlag verhindert das Drehen der Abtriebswelle über mehr als etwa 270° und die damit verbundenen Fehlern bei der Stellungsmessung mit dem Potentiometer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die wesentlichen elektrischen und elektronischen Teile und Baugruppen eines einfachen Servos:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Servo-hack2_mini.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
Bei Methode &amp;quot;zwei&amp;quot; wird die Elektronik komplett entfernt. Ebenso wird dabei das Poti entfernt oder von der Abtriebsachse abgekoppelt. Der Motor wird dann direkt an die Versorgung angeschlossen und evtl. über einen Motortreiber und PWM drehzahlgeregelt.  [[Getriebemotoren_Ansteuerung#Und_nie_vergessen_Motoren_zu_entst.C3.B6ren|Bitte Entstörung nicht vergessen!]] Gleichwertig wie das Entfernen der kompletten Elektronik ist es, sie einfach zu umgehen und die Motorzuleitung direkt anzulöten. &lt;br /&gt;
&lt;br /&gt;
Der nach Methode 2 gehackte Servo wird dadurch zu einem Getriebemotor mit einem sehr kleinen, sehr schnell drehenden Motor und einem hoch übersetzten Getriebe. Typisch sind Untersetzungen von mehreren 100:1.&lt;br /&gt;
&lt;br /&gt;
==Siehe auch==&lt;br /&gt;
*[[Getriebemotoren]]&lt;br /&gt;
*[[RC-Empfänger_auswerten]]&lt;br /&gt;
*[[Servoansteuerung]]&lt;br /&gt;
*[[Servomotore und deren Ansteuerung (1)]]&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
[[Category:Robotikeinstieg]]&lt;br /&gt;
[[Category:Praxis]]&lt;br /&gt;
[[Category:Grundlagen]]&lt;br /&gt;
[[Category:Motoren]]&lt;/div&gt;</summary>
		<author><name>Oberallgeier</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=Servos&amp;diff=21568</id>
		<title>Servos</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=Servos&amp;diff=21568"/>
				<updated>2013-01-24T13:58:28Z</updated>
		
		<summary type="html">&lt;p&gt;Oberallgeier: /* Ansteuerung: Signalform und Schaltung */  Bild und Bildbeschreibung etwas erweitert.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Servos (Servomotoren) sind kleine [[Getriebemotoren]], die häufig im Modellbau eingesetzt werden. Mithilfe eines Potentiometers, das an der Drehachse befestigt ist, wird intern die aktuelle Position bestimmt. Wegen ihrer einfachen Ansteuerung und Präzision eigenen sie sich hervorragend für mehr oder weniger kraftaufwändige Aufgaben in der Robotik.  Servomotoren in der Industrie sind Motoren mit einer Rückmeldung der Position, meist über [[Sensorarten#Incremental-Geber|Incrementalgeber]].&lt;br /&gt;
&lt;br /&gt;
==Anschlussbelegung==&lt;br /&gt;
Handelsübliche Servomotoren besitzen 3 Anschlüsse:&lt;br /&gt;
# GND&lt;br /&gt;
# [[PWM]] bzw. Signal&lt;br /&gt;
# +5V&lt;br /&gt;
&lt;br /&gt;
Wobei sich die Steckerbelegung von Hersteller zu Hersteller unterscheidet.&lt;br /&gt;
&lt;br /&gt;
[[Bild:servosteckerbelegung.gif|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Eine ausführliche Darstellung veschiedener [http://wiki.rc-network.de/index.php/Datei:Steckerbelegung.jpg Steckerbelegungen] und auch verschiedener [http://wiki.rc-network.de/index.php/Datei:Servostecker.jpg Servostecker] ist in den eben vorgelegten Links zu finden.&lt;br /&gt;
&lt;br /&gt;
==Ansteuerung: Signalform und Schaltung==&lt;br /&gt;
An die Signalleitung (siehe Steckerbelegung oben) wird ein pulsweitenmoduliertes Signal ([[PWM]]) angeschlossen. Die Repetition-Period (Periode) entspricht bei den meisten Modellen 20ms. Innerhalb/zu Beginn dieser 20ms wird ein Puls erwartet, der sich zwischen 1ms und 2ms bewegt, wobei diese Werte jeweils den Endlagen des Servos entsprechen. D.h. 1ms ist ganz links und 2ms ist ganz rechts (Einige Servos haben in diesem Wertebereich jedoch nicht die volle Bewegungsfreiheit ausgenutzt, die Werte, bei denen der Servo ganz links/rechts ist können auch unter 1ms/über 2ms liegen). 1,5ms würde demnach die Mittelstellung bedeuten. Aufgrund der Pulslänge lässt sich also eine direkte Aussage über die Position des Servos treffen.&lt;br /&gt;
Der Motor sorgt dann intern mithilfe des Potis dafür, dass die Position gehalten wird.&lt;br /&gt;
&lt;br /&gt;
Von der Standard-Pulsdauer 20 ms kann je nach Servomodell erheblich abgewichen werden. Besonders zu erwähnen ist, dass mit Periodenzeiten von 10 ms bereits erfolgreich gearbeitet wurde,  [http://www.roboternetz.de/community/showthread.php?52460-Servo-Geschwindigkeitsregelung&amp;amp;p=506821&amp;amp;viewfull=1#post506821 klick hier  für Posting und ganzen Thread.] Dabei muss aber die Pulsdauer entsprechend angepasst werden, bei 10 ms beispielsweise beträgt dann die Pulsdauer maximal 10 % der Periodenzeit, schwankt also für die Endstellungen zwischen 0,5 ms (500 µs) und 1 ms.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die folgende Darstellung zeigt drei beispielhafte Zeit-Pegeldiagramme der PWM für Standardservos und als Beispiel die zugehörigen Stellungen des Servohorns. Die vorgestellten Zahlenwerte sind Cirka-Angaben, die Schwenkwinkel und die maximale Auslenkung &amp;quot;links&amp;quot; bzw. &amp;quot;rechts&amp;quot; können je nach Servotyp variieren. In der Darstellung von Periodendauer und Pulslänge ist auch die für die Ausschläge '''nutzbare''' Pulsbreite - etwa zwischen 1ms und 2ms - gezeigt. Die minimale Pulsbreite für &amp;quot;kleinsten&amp;quot; Ausschlag, d.h. für eine Endlage, beträgt etwa 1 ms.&lt;br /&gt;
&lt;br /&gt;
[[Bild:Servo_pwm_2.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Empfohlene Ansteuerung (Schaltungsvorschlag)&lt;br /&gt;
&lt;br /&gt;
Es wird dringend empfohlen zur Versorgung des Servos eine vom Mikrocontroller gesonderte Versorgungsspannung zu wählen. Dabei muss die GND-Leitung (i.A. die (-)-Leitung) von Controller, Servo und den Versorgungen leitend verbunden sein. Im untenstehenden Beispiel ist die Verschaltung eines Controllers ATMega168 mit einem Servo gezeigt. Der Servo kann natürlich auch an anderen Ausgängen des Controllers angeschlossen werden.&lt;br /&gt;
&lt;br /&gt;
Achtung, Fehlermöglichkeiten!&lt;br /&gt;
&lt;br /&gt;
Werden die GND-Pegel nicht verbunden, sind Störungen mit Sicherheit zu erwarten. &lt;br /&gt;
&lt;br /&gt;
Wird der Controller von der gleichen Spannungsquelle versorgt wie der Servo, so sind Störungen mit Sicherheit zu erwarten.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:Servoansteuerg_02.gif|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Entstören von Servos innerhalb einer Schaltung wie oben grob schematisch dargestellt wird z.B. hier ausführlich diskutiert [http://www.roboternetz.de/community/threads/39549-Servos-Entstören?p=377441&amp;amp;viewfull=1#post377441 klick hier  für Posting und ganzen Thread.]&lt;br /&gt;
&lt;br /&gt;
==Unterschied zwischen Digital- und Analogservos==&lt;br /&gt;
Der hauptsächliche Unterschied besteht darin, dass digitale Servos schneller und genauer sind und ihre Position besser halten können. Analoge Servos geben ihrem Motor alle 20ms ein Signal. Wirkt eine Kraft auf das Servo, braucht die Steuerelektronik bis zu 20ms, um dem Motor einen neuen Spannungsimpuls zu senden. Bei Digitalservos sendet die Steuerelektronik alle 400us einen Impuls an den Motor. Der Motor bekommt die Spannungsimpulse viel schneller. Um so öfter ein Motor Spannung bekommt, um so mehr Leistung kann er verrichten. Man sollte aber auch bedenken, dass dies unweigerlich einen höheren Stromverbrauch zur Folge hat, der besonders bei Modellfliegern nicht tolerierbar ist, da die Betriebszeit stark verkürzt wird.&lt;br /&gt;
&lt;br /&gt;
Die einfachste Art, einen Servo mit [[Bascom]] anzusteuern, ist folgender Befehl:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Config Servos = 2 , Servo1 = Portb.0 , Servo2 = Portb.1 , Reload = 10&lt;br /&gt;
&lt;br /&gt;
Config Portb = Output&lt;br /&gt;
&lt;br /&gt;
Enable Interrupts&lt;br /&gt;
&lt;br /&gt;
Servo(1) = 100&lt;br /&gt;
Servo(2) = 100&lt;br /&gt;
waitms 1000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'Wobei 100 die Mitte ist. 50 ist der linke bzw. rechte Anschlag und 150 der entsprechend andere. Es gibt aber auch elegantere Möglichkeiten die sich besonders empfehlen wenn z.B. eine höhere Auflösung gewünscht ist: [[Servoansteuerung]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Und in C sieht das ganze so aus:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#define SERVOPIN 7&lt;br /&gt;
#define SERVOPORT PORTD&lt;br /&gt;
#define DDRSERVO DDRD&lt;br /&gt;
&lt;br /&gt;
volatile unsigned char servopos;&lt;br /&gt;
&lt;br /&gt;
void servo_init()&lt;br /&gt;
{&lt;br /&gt;
	TIMSK|=(1&amp;lt;&amp;lt;OCIE2);&lt;br /&gt;
	TCCR2 |= (1&amp;lt;&amp;lt;WGM21) | (1&amp;lt;&amp;lt;CS20);	//Prescale=1, CTC mode&lt;br /&gt;
	OCR2 = F_CPU/100000;			//alle 10µS ein IRQ&lt;br /&gt;
	DDRSERVO|=(1&amp;lt;&amp;lt;SERVOPIN);&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
ISR(TIMER2_COMP_vect)&lt;br /&gt;
{&lt;br /&gt;
	static int count;&lt;br /&gt;
	if(count&amp;gt;servopos)SERVOPORT&amp;amp;=~(1&amp;lt;&amp;lt;SERVOPIN);&lt;br /&gt;
	  else SERVOPORT|=(1&amp;lt;&amp;lt;SERVOPIN);&lt;br /&gt;
	if(count&amp;lt;2000)count++; // Die Impulse sollten alle 20ms gesendet werden! 6.2.11 mic&lt;br /&gt;
	  else count=0;&lt;br /&gt;
};&lt;br /&gt;
	&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Man muss zuvor DDRSERVO, SERVOPIN und SERVOPORT entsprechend definieren. Mit der Funktion &amp;quot;servo_init()&amp;quot; wird Timer2 initialisiert und der Servo-Pin als Ausgang gesetzt. &amp;quot;servopos&amp;quot; beinhaltet die aktuelle Dauer des Signals in 1/100ms. Vergessen Sie nicht, globale Interrupts vor dem Betrieb zu aktivieren!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Letzter Beitrag von &amp;quot;stochri&amp;quot; ist eine super Lösung in avr-gcc mit bis zu 10 Servos&lt;br /&gt;
&lt;br /&gt;
[[http://www.roboternetz.de/phpBB2/zeigebeitrag.php?t=14220&amp;amp;highlight=servo &amp;quot;Servo / avr-gcc&amp;quot; ]]&lt;br /&gt;
&lt;br /&gt;
==Servos hacken==&lt;br /&gt;
;Methode 1:Abtriebswelle von Poti abkuppeln, Endanschläge entfernen und Spannungsteiler statt Poti&lt;br /&gt;
Häufig entledigt man sich auch des Potis und der Endlagenanschläge, um so einen Motor mit hohem Drehmoment und ohne Begrenzung des Drehwinkels zu erlangen. Das Poti wird dann durch einen 1:1-Spannungsteiler ersetzt oder die Potiwelle auf Mittelstellung fixiert ('''und''' von der Abtriebswelle abgekuppelt). Dieser Vorgang wird auch als Servo-Hacking bezeichnet. Durch die Pulslänge kann jetzt die Winkelgeschwindigkeit des Servos beeinflusst werden. Dabei simuliert der Spannungsteiler die Mittelstellung und eine kürzere Pulslänge als für Mittelstellung steuert den Motor in die eine, eine längere in die andere Richtung. Pulslänge &amp;quot;Mittelstellung&amp;quot; lässt den Servo stillstehen.&lt;br /&gt;
&lt;br /&gt;
Diese erste Methode des Servohackings nutzt die im Servo eingebaute Elektronik zur Motoransteuerung. Sie ist am Weitesten verbreitet. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:servo.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;Methode 2: Motorelektronik und Endanschläge der Abtriebswelle entfernen&lt;br /&gt;
Bei der zweiten Methode wird die vorhandene Elektronik komplett entfernt und der Motor z.B. direkt mit Gleichstrom versorgt oder durch eine externe Elektronik angesteuert. Die beiden Varianten des Servohackings sowie ihre Vor- und Nachteile sind im folgenden Link beschrieben. [[http://www.roboternetz.de/phpBB2/viewtopic.php?p=516553#516553 &amp;quot;Servohacking. Technik, Vor- und Nachteile&amp;quot;]] Bei fast allen Servos muss zum Hacken nach beiden Methoden ein mechanischer Anschlag entfernt werden. Er besteht aus einem Nocken an der Abtriebswelle und dem Gegenstück im Getriebegehäuse. Der Anschlag verhindert das Drehen der Abtriebswelle über mehr als etwa 270° und die damit verbundenen Fehlern bei der Stellungsmessung mit dem Potentiometer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die wesentlichen elektrischen und elektronischen Teile und Baugruppen eines einfachen Servos:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Servo-hack2_mini.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
Bei Methode &amp;quot;zwei&amp;quot; wird die Elektronik komplett entfernt. Ebenso wird dabei das Poti entfernt oder von der Abtriebsachse abgekoppelt. Der Motor wird dann direkt an die Versorgung angeschlossen und evtl. über einen Motortreiber und PWM drehzahlgeregelt.  [[Getriebemotoren_Ansteuerung#Und_nie_vergessen_Motoren_zu_entst.C3.B6ren|Bitte Entstörung nicht vergessen!]] Gleichwertig wie das Entfernen der kompletten Elektronik ist es, sie einfach zu umgehen und die Motorzuleitung direkt anzulöten. &lt;br /&gt;
&lt;br /&gt;
Der nach Methode 2 gehackte Servo wird dadurch zu einem Getriebemotor mit einem sehr kleinen, sehr schnell drehenden Motor und einem hoch übersetzten Getriebe. Typisch sind Untersetzungen von mehreren 100:1.&lt;br /&gt;
&lt;br /&gt;
==Siehe auch==&lt;br /&gt;
*[[Getriebemotoren]]&lt;br /&gt;
*[[RC-Empfänger_auswerten]]&lt;br /&gt;
*[[Servoansteuerung]]&lt;br /&gt;
*[[Servomotore und deren Ansteuerung (1)]]&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
[[Category:Robotikeinstieg]]&lt;br /&gt;
[[Category:Praxis]]&lt;br /&gt;
[[Category:Grundlagen]]&lt;br /&gt;
[[Category:Motoren]]&lt;/div&gt;</summary>
		<author><name>Oberallgeier</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=Servos&amp;diff=21567</id>
		<title>Servos</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=Servos&amp;diff=21567"/>
				<updated>2013-01-24T13:56:03Z</updated>
		
		<summary type="html">&lt;p&gt;Oberallgeier: /* Ansteuerung: Signalform und Schaltung */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Servos (Servomotoren) sind kleine [[Getriebemotoren]], die häufig im Modellbau eingesetzt werden. Mithilfe eines Potentiometers, das an der Drehachse befestigt ist, wird intern die aktuelle Position bestimmt. Wegen ihrer einfachen Ansteuerung und Präzision eigenen sie sich hervorragend für mehr oder weniger kraftaufwändige Aufgaben in der Robotik.  Servomotoren in der Industrie sind Motoren mit einer Rückmeldung der Position, meist über [[Sensorarten#Incremental-Geber|Incrementalgeber]].&lt;br /&gt;
&lt;br /&gt;
==Anschlussbelegung==&lt;br /&gt;
Handelsübliche Servomotoren besitzen 3 Anschlüsse:&lt;br /&gt;
# GND&lt;br /&gt;
# [[PWM]] bzw. Signal&lt;br /&gt;
# +5V&lt;br /&gt;
&lt;br /&gt;
Wobei sich die Steckerbelegung von Hersteller zu Hersteller unterscheidet.&lt;br /&gt;
&lt;br /&gt;
[[Bild:servosteckerbelegung.gif|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Eine ausführliche Darstellung veschiedener [http://wiki.rc-network.de/index.php/Datei:Steckerbelegung.jpg Steckerbelegungen] und auch verschiedener [http://wiki.rc-network.de/index.php/Datei:Servostecker.jpg Servostecker] ist in den eben vorgelegten Links zu finden.&lt;br /&gt;
&lt;br /&gt;
==Ansteuerung: Signalform und Schaltung==&lt;br /&gt;
An die Signalleitung (siehe Steckerbelegung oben) wird ein pulsweitenmoduliertes Signal ([[PWM]]) angeschlossen. Die Repetition-Period (Periode) entspricht bei den meisten Modellen 20ms. Innerhalb/zu Beginn dieser 20ms wird ein Puls erwartet, der sich zwischen 1ms und 2ms bewegt, wobei diese Werte jeweils den Endlagen des Servos entsprechen. D.h. 1ms ist ganz links und 2ms ist ganz rechts (Einige Servos haben in diesem Wertebereich jedoch nicht die volle Bewegungsfreiheit ausgenutzt, die Werte, bei denen der Servo ganz links/rechts ist können auch unter 1ms/über 2ms liegen). 1,5ms würde demnach die Mittelstellung bedeuten. Aufgrund der Pulslänge lässt sich also eine direkte Aussage über die Position des Servos treffen.&lt;br /&gt;
Der Motor sorgt dann intern mithilfe des Potis dafür, dass die Position gehalten wird.&lt;br /&gt;
&lt;br /&gt;
Von der Standard-Pulsdauer 20 ms kann je nach Servomodell erheblich abgewichen werden. Besonders zu erwähnen ist, dass mit Periodenzeiten von 10 ms bereits erfolgreich gearbeitet wurde,  [http://www.roboternetz.de/community/showthread.php?52460-Servo-Geschwindigkeitsregelung&amp;amp;p=506821&amp;amp;viewfull=1#post506821 klick hier  für Posting und ganzen Thread.] Dabei muss aber die Pulsdauer entsprechend angepasst werden, bei 10 ms beispielsweise beträgt dann die Pulsdauer maximal 10 % der Periodenzeit, schwankt also für die Endstellungen zwischen 0,5 ms (500 µs) und 1 ms.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die folgende Darstellung zeigt drei beispielhafte Zeit-Pegeldiagramme der PWM für Standardservos und als Beispiel die zugehörigen Stellungen des Servohorns. Die vorgestellten Zahlenwerte sind Cirka-Angaben, die Schwenkwinkel und die maximale Auslenkung &amp;quot;links&amp;quot; bzw. &amp;quot;rechts&amp;quot; können je nach Servotyp variieren. In der Darstellung von Periodendauer und Pulslänge ist auch die für die Ausschläge '''nutzbare''' Pulsbreite - etwa zwischen 1ms und 2ms - gezeigt. Die minimale Pulsbreite für &amp;quot;kleinsten&amp;quot; Ausschlag beträgt etwa 1 ms.&lt;br /&gt;
&lt;br /&gt;
[[Bild:Servo_pwm_2.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Empfohlene Ansteuerung (Schaltungsvorschlag)&lt;br /&gt;
&lt;br /&gt;
Es wird dringend empfohlen zur Versorgung des Servos eine vom Mikrocontroller gesonderte Versorgungsspannung zu wählen. Dabei muss die GND-Leitung (i.A. die (-)-Leitung) von Controller, Servo und den Versorgungen leitend verbunden sein. Im untenstehenden Beispiel ist die Verschaltung eines Controllers ATMega168 mit einem Servo gezeigt. Der Servo kann natürlich auch an anderen Ausgängen des Controllers angeschlossen werden.&lt;br /&gt;
&lt;br /&gt;
Achtung, Fehlermöglichkeiten!&lt;br /&gt;
&lt;br /&gt;
Werden die GND-Pegel nicht verbunden, sind Störungen mit Sicherheit zu erwarten. &lt;br /&gt;
&lt;br /&gt;
Wird der Controller von der gleichen Spannungsquelle versorgt wie der Servo, so sind Störungen mit Sicherheit zu erwarten.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:Servoansteuerg_02.gif|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Entstören von Servos innerhalb einer Schaltung wie oben grob schematisch dargestellt wird z.B. hier ausführlich diskutiert [http://www.roboternetz.de/community/threads/39549-Servos-Entstören?p=377441&amp;amp;viewfull=1#post377441 klick hier  für Posting und ganzen Thread.]&lt;br /&gt;
&lt;br /&gt;
==Unterschied zwischen Digital- und Analogservos==&lt;br /&gt;
Der hauptsächliche Unterschied besteht darin, dass digitale Servos schneller und genauer sind und ihre Position besser halten können. Analoge Servos geben ihrem Motor alle 20ms ein Signal. Wirkt eine Kraft auf das Servo, braucht die Steuerelektronik bis zu 20ms, um dem Motor einen neuen Spannungsimpuls zu senden. Bei Digitalservos sendet die Steuerelektronik alle 400us einen Impuls an den Motor. Der Motor bekommt die Spannungsimpulse viel schneller. Um so öfter ein Motor Spannung bekommt, um so mehr Leistung kann er verrichten. Man sollte aber auch bedenken, dass dies unweigerlich einen höheren Stromverbrauch zur Folge hat, der besonders bei Modellfliegern nicht tolerierbar ist, da die Betriebszeit stark verkürzt wird.&lt;br /&gt;
&lt;br /&gt;
Die einfachste Art, einen Servo mit [[Bascom]] anzusteuern, ist folgender Befehl:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Config Servos = 2 , Servo1 = Portb.0 , Servo2 = Portb.1 , Reload = 10&lt;br /&gt;
&lt;br /&gt;
Config Portb = Output&lt;br /&gt;
&lt;br /&gt;
Enable Interrupts&lt;br /&gt;
&lt;br /&gt;
Servo(1) = 100&lt;br /&gt;
Servo(2) = 100&lt;br /&gt;
waitms 1000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'Wobei 100 die Mitte ist. 50 ist der linke bzw. rechte Anschlag und 150 der entsprechend andere. Es gibt aber auch elegantere Möglichkeiten die sich besonders empfehlen wenn z.B. eine höhere Auflösung gewünscht ist: [[Servoansteuerung]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Und in C sieht das ganze so aus:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#define SERVOPIN 7&lt;br /&gt;
#define SERVOPORT PORTD&lt;br /&gt;
#define DDRSERVO DDRD&lt;br /&gt;
&lt;br /&gt;
volatile unsigned char servopos;&lt;br /&gt;
&lt;br /&gt;
void servo_init()&lt;br /&gt;
{&lt;br /&gt;
	TIMSK|=(1&amp;lt;&amp;lt;OCIE2);&lt;br /&gt;
	TCCR2 |= (1&amp;lt;&amp;lt;WGM21) | (1&amp;lt;&amp;lt;CS20);	//Prescale=1, CTC mode&lt;br /&gt;
	OCR2 = F_CPU/100000;			//alle 10µS ein IRQ&lt;br /&gt;
	DDRSERVO|=(1&amp;lt;&amp;lt;SERVOPIN);&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
ISR(TIMER2_COMP_vect)&lt;br /&gt;
{&lt;br /&gt;
	static int count;&lt;br /&gt;
	if(count&amp;gt;servopos)SERVOPORT&amp;amp;=~(1&amp;lt;&amp;lt;SERVOPIN);&lt;br /&gt;
	  else SERVOPORT|=(1&amp;lt;&amp;lt;SERVOPIN);&lt;br /&gt;
	if(count&amp;lt;2000)count++; // Die Impulse sollten alle 20ms gesendet werden! 6.2.11 mic&lt;br /&gt;
	  else count=0;&lt;br /&gt;
};&lt;br /&gt;
	&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Man muss zuvor DDRSERVO, SERVOPIN und SERVOPORT entsprechend definieren. Mit der Funktion &amp;quot;servo_init()&amp;quot; wird Timer2 initialisiert und der Servo-Pin als Ausgang gesetzt. &amp;quot;servopos&amp;quot; beinhaltet die aktuelle Dauer des Signals in 1/100ms. Vergessen Sie nicht, globale Interrupts vor dem Betrieb zu aktivieren!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Letzter Beitrag von &amp;quot;stochri&amp;quot; ist eine super Lösung in avr-gcc mit bis zu 10 Servos&lt;br /&gt;
&lt;br /&gt;
[[http://www.roboternetz.de/phpBB2/zeigebeitrag.php?t=14220&amp;amp;highlight=servo &amp;quot;Servo / avr-gcc&amp;quot; ]]&lt;br /&gt;
&lt;br /&gt;
==Servos hacken==&lt;br /&gt;
;Methode 1:Abtriebswelle von Poti abkuppeln, Endanschläge entfernen und Spannungsteiler statt Poti&lt;br /&gt;
Häufig entledigt man sich auch des Potis und der Endlagenanschläge, um so einen Motor mit hohem Drehmoment und ohne Begrenzung des Drehwinkels zu erlangen. Das Poti wird dann durch einen 1:1-Spannungsteiler ersetzt oder die Potiwelle auf Mittelstellung fixiert ('''und''' von der Abtriebswelle abgekuppelt). Dieser Vorgang wird auch als Servo-Hacking bezeichnet. Durch die Pulslänge kann jetzt die Winkelgeschwindigkeit des Servos beeinflusst werden. Dabei simuliert der Spannungsteiler die Mittelstellung und eine kürzere Pulslänge als für Mittelstellung steuert den Motor in die eine, eine längere in die andere Richtung. Pulslänge &amp;quot;Mittelstellung&amp;quot; lässt den Servo stillstehen.&lt;br /&gt;
&lt;br /&gt;
Diese erste Methode des Servohackings nutzt die im Servo eingebaute Elektronik zur Motoransteuerung. Sie ist am Weitesten verbreitet. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:servo.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;Methode 2: Motorelektronik und Endanschläge der Abtriebswelle entfernen&lt;br /&gt;
Bei der zweiten Methode wird die vorhandene Elektronik komplett entfernt und der Motor z.B. direkt mit Gleichstrom versorgt oder durch eine externe Elektronik angesteuert. Die beiden Varianten des Servohackings sowie ihre Vor- und Nachteile sind im folgenden Link beschrieben. [[http://www.roboternetz.de/phpBB2/viewtopic.php?p=516553#516553 &amp;quot;Servohacking. Technik, Vor- und Nachteile&amp;quot;]] Bei fast allen Servos muss zum Hacken nach beiden Methoden ein mechanischer Anschlag entfernt werden. Er besteht aus einem Nocken an der Abtriebswelle und dem Gegenstück im Getriebegehäuse. Der Anschlag verhindert das Drehen der Abtriebswelle über mehr als etwa 270° und die damit verbundenen Fehlern bei der Stellungsmessung mit dem Potentiometer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die wesentlichen elektrischen und elektronischen Teile und Baugruppen eines einfachen Servos:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Servo-hack2_mini.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
Bei Methode &amp;quot;zwei&amp;quot; wird die Elektronik komplett entfernt. Ebenso wird dabei das Poti entfernt oder von der Abtriebsachse abgekoppelt. Der Motor wird dann direkt an die Versorgung angeschlossen und evtl. über einen Motortreiber und PWM drehzahlgeregelt.  [[Getriebemotoren_Ansteuerung#Und_nie_vergessen_Motoren_zu_entst.C3.B6ren|Bitte Entstörung nicht vergessen!]] Gleichwertig wie das Entfernen der kompletten Elektronik ist es, sie einfach zu umgehen und die Motorzuleitung direkt anzulöten. &lt;br /&gt;
&lt;br /&gt;
Der nach Methode 2 gehackte Servo wird dadurch zu einem Getriebemotor mit einem sehr kleinen, sehr schnell drehenden Motor und einem hoch übersetzten Getriebe. Typisch sind Untersetzungen von mehreren 100:1.&lt;br /&gt;
&lt;br /&gt;
==Siehe auch==&lt;br /&gt;
*[[Getriebemotoren]]&lt;br /&gt;
*[[RC-Empfänger_auswerten]]&lt;br /&gt;
*[[Servoansteuerung]]&lt;br /&gt;
*[[Servomotore und deren Ansteuerung (1)]]&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
[[Category:Robotikeinstieg]]&lt;br /&gt;
[[Category:Praxis]]&lt;br /&gt;
[[Category:Grundlagen]]&lt;br /&gt;
[[Category:Motoren]]&lt;/div&gt;</summary>
		<author><name>Oberallgeier</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=Datei:Servo_pwm_2.jpg&amp;diff=21566</id>
		<title>Datei:Servo pwm 2.jpg</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=Datei:Servo_pwm_2.jpg&amp;diff=21566"/>
				<updated>2013-01-24T13:27:12Z</updated>
		
		<summary type="html">&lt;p&gt;Oberallgeier: Signalform und Pulslängen für Standardansteuerung eines Servos&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Signalform und Pulslängen für Standardansteuerung eines Servos&lt;/div&gt;</summary>
		<author><name>Oberallgeier</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=Servos&amp;diff=18916</id>
		<title>Servos</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=Servos&amp;diff=18916"/>
				<updated>2012-02-14T16:34:00Z</updated>
		
		<summary type="html">&lt;p&gt;Oberallgeier: Link auf Servoentstörung im Abschnitt &amp;quot;Ansteuerung ...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Servos (Servomotoren) sind kleine [[Getriebemotoren]], die häufig im Modellbau eingesetzt werden. Mithilfe eines Potentiometers, das an der Drehachse befestigt ist, wird intern die aktuelle Position bestimmt. Wegen ihrer einfachen Ansteuerung und Präzision eigenen sie sich hervorragend für mehr oder weniger kraftaufwändige Aufgaben in der Robotik.  Servomotoren in der Industrie sind Motoren mit einer Rückmeldung der Position, meist über [[Sensorarten#Incremental-Geber|Incrementalgeber]].&lt;br /&gt;
&lt;br /&gt;
==Anschlussbelegung==&lt;br /&gt;
Handelsübliche Servomotoren besitzen 3 Anschlüsse:&lt;br /&gt;
# GND&lt;br /&gt;
# [[PWM]] bzw. Signal&lt;br /&gt;
# +5V&lt;br /&gt;
&lt;br /&gt;
Wobei sich die Steckerbelegung von Hersteller zu Hersteller unterscheidet.&lt;br /&gt;
&lt;br /&gt;
[[Bild:servosteckerbelegung.gif|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Eine ausführliche Darstellung veschiedener [http://wiki.rc-network.de/index.php/Datei:Steckerbelegung.jpg Steckerbelegungen] und auch verschiedener [http://wiki.rc-network.de/index.php/Datei:Servostecker.jpg Servostecker] ist in den eben vorgelegten Links zu finden.&lt;br /&gt;
&lt;br /&gt;
==Ansteuerung: Signalform und Schaltung==&lt;br /&gt;
An die Signalleitung (siehe Steckerbelegung oben) wird ein pulsweitenmoduliertes Signal ([[PWM]]) angeschlossen. Die Repetition-Period (Periode) entspricht bei den meisten Modellen 20ms. Innerhalb/zu Beginn dieser 20ms wird ein Puls erwartet, der sich zwischen 1ms und 2ms bewegt, wobei diese Werte jeweils den Endlagen des Servos entsprechen. D.h. 1ms ist ganz links und 2ms ist ganz rechts (Einige Servos haben in diesem Wertebereich jedoch nicht die volle Bewegungsfreiheit ausgenutzt, die Werte, bei denen der Servo ganz links/rechts ist können auch unter 1ms/über 2ms liegen). 1,5ms würde demnach die Mittelstellung bedeuten. Aufgrund der Pulslänge lässt sich also eine direkte Aussage über die Position des Servos treffen.&lt;br /&gt;
Der Motor sorgt dann intern mithilfe des Potis dafür, dass die Position gehalten wird.&lt;br /&gt;
&lt;br /&gt;
Von der Standard-Pulsdauer 20 ms kann je nach Servomodell erheblich abgewichen werden. Besonders zu erwähnen ist, dass mit Periodenzeiten von 10 ms bereits erfolgreich gearbeitet wurde,  [http://www.roboternetz.de/community/showthread.php?52460-Servo-Geschwindigkeitsregelung&amp;amp;p=506821&amp;amp;viewfull=1#post506821 klick hier  für Posting und ganzen Thread.] Dabei muss aber die Pulsdauer entsprechend angepasst werden, bei 10 ms beispielsweise beträgt dann die Pulsdauer maximal 10 % der Periodenzeit, schwankt also für die Endstellungen zwischen 0,5 ms (500 µs) und 1 ms.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die folgende Darstellung zeigt beispielhafte Zeit-Pegeldiagramme der PWM für Standardservos und als Beispiel die zugehörigen Stellungen des Servohorns. Die Schwenkwinkel und die maximale Auslenkung &amp;quot;links&amp;quot; bzw. &amp;quot;rechts&amp;quot; können je nach Servotyp variieren.&lt;br /&gt;
&lt;br /&gt;
[[Bild:Servo_pwm.gif|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Empfohlene Ansteuerung (Schaltungsvorschlag)&lt;br /&gt;
&lt;br /&gt;
Es wird dringend empfohlen zur Versorgung des Servos eine vom Mikrocontroller gesonderte Versorgungsspannung zu wählen. Dabei muss die GND-Leitung (i.A. die (-)-Leitung) von Controller, Servo und den Versorgungen leitend verbunden sein. Im untenstehenden Beispiel ist die Verschaltung eines Controllers ATMega168 mit einem Servo gezeigt. Der Servo kann natürlich auch an anderen Ausgängen des Controllers angeschlossen werden.&lt;br /&gt;
&lt;br /&gt;
Achtung, Fehlermöglichkeiten!&lt;br /&gt;
&lt;br /&gt;
Werden die GND-Pegel nicht verbunden, sind Störungen mit Sicherheit zu erwarten. &lt;br /&gt;
&lt;br /&gt;
Wird der Controller von der gleichen Spannungsquelle versorgt wie der Servo, so sind Störungen mit Sicherheit zu erwarten.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:Servoansteuerg_02.gif|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Entstören von Servos innerhalb einer Schaltung wie oben grob schematisch dargestellt wird z.B. hier ausführlich diskutiert [http://www.roboternetz.de/community/threads/39549-Servos-Entstören?p=377441&amp;amp;viewfull=1#post377441 klick hier  für Posting und ganzen Thread.] &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Unterschied zwischen Digital- und Analogservos==&lt;br /&gt;
Der hauptsächliche Unterschied besteht darin, dass digitale Servos schneller und genauer sind und ihre Position besser halten können. Analoge Servos geben ihrem Motor alle 20ms ein Signal. Wirkt eine Kraft auf das Servo, braucht die Steuerelektronik bis zu 20ms, um dem Motor einen neuen Spannungsimpuls zu senden. Bei Digitalservos sendet die Steuerelektronik alle 400us einen Impuls an den Motor. Der Motor bekommt die Spannungsimpulse viel schneller. Um so öfter ein Motor Spannung bekommt, um so mehr Leistung kann er verrichten. Man sollte aber auch bedenken, dass dies unweigerlich einen höheren Stromverbrauch zur Folge hat, der besonders bei Modellfliegern nicht tolerierbar ist, da die Betriebszeit stark verkürzt wird.&lt;br /&gt;
&lt;br /&gt;
Die einfachste Art, einen Servo mit [[Bascom]] anzusteuern, ist folgender Befehl:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Config Servos = 2 , Servo1 = Portb.0 , Servo2 = Portb.1 , Reload = 10&lt;br /&gt;
&lt;br /&gt;
Config Portb = Output&lt;br /&gt;
&lt;br /&gt;
Enable Interrupts&lt;br /&gt;
&lt;br /&gt;
Servo(1) = 100&lt;br /&gt;
Servo(2) = 100&lt;br /&gt;
waitms 1000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'Wobei 100 die Mitte ist. 50 ist der linke bzw. rechte Anschlag und 150 der entsprechend andere. Es gibt aber auch elegantere Möglichkeiten die sich besonders empfehlen wenn z.B. eine höhere Auflösung gewünscht ist: [[Servoansteuerung]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Und in C sieht das ganze so aus:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#define SERVOPIN 7&lt;br /&gt;
#define SERVOPORT PORTD&lt;br /&gt;
#define DDRSERVO DDRD&lt;br /&gt;
&lt;br /&gt;
volatile unsigned char servopos;&lt;br /&gt;
&lt;br /&gt;
void servo_init()&lt;br /&gt;
{&lt;br /&gt;
	TIMSK|=(1&amp;lt;&amp;lt;OCIE2);&lt;br /&gt;
	TCCR2 |= (1&amp;lt;&amp;lt;WGM21) | (1&amp;lt;&amp;lt;CS20);	//Prescale=1, CTC mode&lt;br /&gt;
	OCR2 = F_CPU/100000;			//alle 10µS ein IRQ&lt;br /&gt;
	DDRSERVO|=(1&amp;lt;&amp;lt;SERVOPIN);&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
ISR(TIMER2_COMP_vect)&lt;br /&gt;
{&lt;br /&gt;
	static int count;&lt;br /&gt;
	if(count&amp;gt;servopos)SERVOPORT&amp;amp;=~(1&amp;lt;&amp;lt;SERVOPIN);&lt;br /&gt;
	  else SERVOPORT|=(1&amp;lt;&amp;lt;SERVOPIN);&lt;br /&gt;
	if(count&amp;lt;2000)count++; // Die Impulse sollten alle 20ms gesendet werden! 6.2.11 mic&lt;br /&gt;
	  else count=0;&lt;br /&gt;
};&lt;br /&gt;
	&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Man muss zuvor DDRSERVO, SERVOPIN und SERVOPORT entsprechend definieren. Mit der Funktion &amp;quot;servo_init()&amp;quot; wird Timer2 initialisiert und der Servo-Pin als Ausgang gesetzt. &amp;quot;servopos&amp;quot; beinhaltet die aktuelle Dauer des Signals in 1/100ms. Vergessen Sie nicht, globale Interrupts vor dem Betrieb zu aktivieren!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Letzter Beitrag von &amp;quot;stochri&amp;quot; ist eine super Lösung in avr-gcc mit bis zu 10 Servos&lt;br /&gt;
&lt;br /&gt;
[[http://www.roboternetz.de/phpBB2/zeigebeitrag.php?t=14220&amp;amp;highlight=servo &amp;quot;Servo / avr-gcc&amp;quot; ]]&lt;br /&gt;
&lt;br /&gt;
==Servos hacken==&lt;br /&gt;
;Methode 1:Abtriebswelle von Poti abkuppeln, Endanschläge entfernen und Spannungsteiler statt Poti&lt;br /&gt;
Häufig entledigt man sich auch des Potis und der Endlagenanschläge, um so einen Motor mit hohem Drehmoment und ohne Begrenzung des Drehwinkels zu erlangen. Das Poti wird dann durch einen 1:1-Spannungsteiler ersetzt oder die Potiwelle auf Mittelstellung fixiert ('''und''' von der Abtriebswelle abgekuppelt). Dieser Vorgang wird auch als Servo-Hacking bezeichnet. Durch die Pulslänge kann jetzt die Winkelgeschwindigkeit des Servos beeinflusst werden. Dabei simuliert der Spannungsteiler die Mittelstellung und eine kürzere Pulslänge als für Mittelstellung steuert den Motor in die eine, eine längere in die andere Richtung. Pulslänge &amp;quot;Mittelstellung&amp;quot; lässt den Servo stillstehen.&lt;br /&gt;
&lt;br /&gt;
Diese erste Methode des Servohackings nutzt die im Servo eingebaute Elektronik zur Motoransteuerung. Sie ist am Weitesten verbreitet. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:servo.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;Methode 2: Motorelektronik und Endanschläge der Abtriebswelle entfernen&lt;br /&gt;
Bei der zweiten Methode wird die vorhandene Elektronik komplett entfernt und der Motor z.B. direkt mit Gleichstrom versorgt oder durch eine externe Elektronik angesteuert. Die beiden Varianten des Servohackings sowie ihre Vor- und Nachteile sind im folgenden Link beschrieben. [[http://www.roboternetz.de/phpBB2/viewtopic.php?p=516553#516553 &amp;quot;Servohacking. Technik, Vor- und Nachteile&amp;quot;]] Bei fast allen Servos muss zum Hacken nach beiden Methoden ein mechanischer Anschlag entfernt werden. Er besteht aus einem Nocken an der Abtriebswelle und dem Gegenstück im Getriebegehäuse. Der Anschlag verhindert das Drehen der Abtriebswelle über mehr als etwa 270° und die damit verbundenen Fehlern bei der Stellungsmessung mit dem Potentiometer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die wesentlichen elektrischen und elektronischen Teile und Baugruppen eines einfachen Servos:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Servo-hack2_mini.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
Bei Methode &amp;quot;zwei&amp;quot; wird die Elektronik komplett entfernt. Ebenso wird dabei das Poti entfernt oder von der Abtriebsachse abgekoppelt. Der Motor wird dann direkt an die Versorgung angeschlossen und evtl. über einen Motortreiber und PWM drehzahlgeregelt.  [[Getriebemotoren_Ansteuerung#Und_nie_vergessen_Motoren_zu_entst.C3.B6ren|Bitte Entstörung nicht vergessen!]] Gleichwertig wie das Entfernen der kompletten Elektronik ist es, sie einfach zu umgehen und die Motorzuleitung direkt anzulöten. &lt;br /&gt;
&lt;br /&gt;
Der nach Methode 2 gehackte Servo wird dadurch zu einem Getriebemotor mit einem sehr kleinen, sehr schnell drehenden Motor und einem hoch übersetzten Getriebe. Typisch sind Untersetzungen von mehreren 100:1.&lt;br /&gt;
&lt;br /&gt;
==Siehe auch==&lt;br /&gt;
*[[Getriebemotoren]]&lt;br /&gt;
*[[RC-Empfänger_auswerten]]&lt;br /&gt;
*[[Servoansteuerung]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Robotikeinstieg]]&lt;br /&gt;
[[Category:Praxis]]&lt;br /&gt;
[[Category:Grundlagen]]&lt;br /&gt;
[[Category:Motoren]]&lt;/div&gt;</summary>
		<author><name>Oberallgeier</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=Servos&amp;diff=17894</id>
		<title>Servos</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=Servos&amp;diff=17894"/>
				<updated>2011-07-30T09:38:57Z</updated>
		
		<summary type="html">&lt;p&gt;Oberallgeier: Links in &amp;quot;Anschlussbelegung&amp;quot; zu Steckerbelegung und Servosteckern&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Servos (Servomotoren) sind kleine [[Getriebemotoren]], die häufig im Modellbau eingesetzt werden, doch auch in der Industrie sind sie anzutreffen. &lt;br /&gt;
Mithilfe eines Potentiometers, das an der Drehachse befestigt ist, wird intern die aktuelle Position bestimmt. Wegen ihrer einfachen Ansteuerung und Präzision eigenen sie sich hervorragend für mehr oder weniger kraftaufwändige Aufgaben in der Robotik. &lt;br /&gt;
&lt;br /&gt;
==Anschlussbelegung==&lt;br /&gt;
Handelsübliche Servomotoren besitzen 3 Anschlüsse:&lt;br /&gt;
# GND&lt;br /&gt;
# [[PWM]] bzw. Signal&lt;br /&gt;
# +5V&lt;br /&gt;
&lt;br /&gt;
Wobei sich die Steckerbelegung von Hersteller zu Hersteller unterscheidet.&lt;br /&gt;
&lt;br /&gt;
[[Bild:servosteckerbelegung.gif|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Eine ausführliche Darstellung veschiedener [http://wiki.rc-network.de/index.php/Datei:Steckerbelegung.jpg Steckerbelegungen] und auch verschiedener [http://wiki.rc-network.de/index.php/Datei:Servostecker.jpg Servostecker] ist in den eben vorgelegten Links zu finden.&lt;br /&gt;
&lt;br /&gt;
==Ansteuerung: Signalform und Schaltung==&lt;br /&gt;
An die Signalleitung (siehe Steckerbelegung oben) wird ein pulsweitenmoduliertes Signal ([[PWM]]) angeschlossen. Die Repetition-Period (Periode) entspricht bei den meisten Modellen 20ms. Innerhalb/zu Beginn dieser 20ms wird ein Puls erwartet, der sich zwischen 1ms und 2ms bewegt, wobei diese Werte jeweils den Endlagen des Servos entsprechen. D.h. 1ms ist ganz links und 2ms ist ganz rechts (Einige Servos haben in diesem Wertebereich jedoch nicht die volle Bewegungsfreiheit ausgenutzt, die Werte, bei denen der Servo ganz links/rechts ist können auch unter 1ms/über 2ms liegen). 1,5ms würde demnach die Mittelstellung bedeuten. Aufgrund der Pulslänge lässt sich also eine direkte Aussage über die Position des Servos treffen.&lt;br /&gt;
Der Motor sorgt dann intern mithilfe des Potis dafür, dass die Position gehalten wird.&lt;br /&gt;
&lt;br /&gt;
Von der Standard-Pulsdauer 20 ms kann je nach Servomodell erheblich abgewichen werden. Besonders zu erwähnen ist, dass mit Periodenzeiten von 10 ms bereits erfolgreich gearbeitet wurde,  [http://www.roboternetz.de/community/showthread.php?52460-Servo-Geschwindigkeitsregelung&amp;amp;p=506821&amp;amp;viewfull=1#post506821 klick hier  für Posting und ganzen Thread.] Dabei muss aber die Pulsdauer entsprechend angepasst werden, bei 10 ms beispielsweise beträgt dann die Pulsdauer maximal 10 % der Periodenzeit, schwankt also für die Endstellungen zwischen 0,5 ms (500 µs) und 1 ms.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die folgende Darstellung zeigt beispielhafte Zeit-Pegeldiagramme der PWM für Standardservos und als Beispiel die zugehörigen Stellungen des Servohorns. Die Schwenkwinkel und die maximale Auslenkung &amp;quot;links&amp;quot; bzw. &amp;quot;rechts&amp;quot; können je nach Servotyp variieren.&lt;br /&gt;
&lt;br /&gt;
[[Bild:Servo_pwm.gif|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Empfohlene Ansteuerung (Schaltungsvorschlag)&lt;br /&gt;
&lt;br /&gt;
Es wird dringend empfohlen zur Versorgung des Servos eine vom Mikrocontroller gesonderte Versorgungsspannung zu wählen. Dabei muss die GND-Leitung (i.A. die (-)-Leitung) von Controller, Servo und den Versorgungen leitend verbunden sein. Im untenstehenden Beispiel ist die Verschaltung eines Controllers ATMega168 mit einem Servo gezeigt. Der Servo kann natürlich auch an anderen Ausgängen des Controllers angeschlossen werden.&lt;br /&gt;
&lt;br /&gt;
Achtung, Fehlermöglichkeiten!&lt;br /&gt;
&lt;br /&gt;
Werden die GND-Pegel nicht verbunden, sind Störungen mit Sicherheit zu erwarten. &lt;br /&gt;
&lt;br /&gt;
Wird der Controller von der gleichen Spannungsquelle versorgt wie der Servo, so sind Störungen mit Sicherheit zu erwarten.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:Servoansteuerg_02.gif|center]]&lt;br /&gt;
&lt;br /&gt;
==Unterschied zwischen Digital- und Analogservos==&lt;br /&gt;
Der hauptsächliche Unterschied besteht darin, dass digitale Servos schneller und genauer sind und ihre Position besser halten können. Analoge Servos geben ihrem Motor alle 20ms ein Signal. Wirkt eine Kraft auf das Servo, braucht die Steuerelektronik bis zu 20ms, um dem Motor einen neuen Spannungsimpuls zu senden. Bei Digitalservos sendet die Steuerelektronik alle 400us einen Impuls an den Motor. Der Motor bekommt die Spannungsimpulse viel schneller. Um so öfter ein Motor Spannung bekommt, um so mehr Leistung kann er verrichten. Man sollte aber auch bedenken, dass dies unweigerlich einen höheren Stromverbrauch zur Folge hat, der besonders bei Modellfliegern nicht tolerierbar ist, da die Betriebszeit stark verkürzt wird.&lt;br /&gt;
&lt;br /&gt;
Die einfachste Art, einen Servo mit [[Bascom]] anzusteuern, ist folgender Befehl:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Config Servos = 2 , Servo1 = Portb.0 , Servo2 = Portb.1 , Reload = 10&lt;br /&gt;
&lt;br /&gt;
Config Portb = Output&lt;br /&gt;
&lt;br /&gt;
Enable Interrupts&lt;br /&gt;
&lt;br /&gt;
Servo(1) = 100&lt;br /&gt;
Servo(2) = 100&lt;br /&gt;
waitms 1000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'Wobei 100 die Mitte ist. 50 ist der linke bzw. rechte Anschlag und 150 der entsprechend andere. Es gibt aber auch elegantere Möglichkeiten die sich besonders empfehlen wenn z.B. eine höhere Auflösung gewünscht ist: [[Servoansteuerung]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Und in C sieht das ganze so aus:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#define SERVOPIN 7&lt;br /&gt;
#define SERVOPORT PORTD&lt;br /&gt;
#define DDRSERVO DDRD&lt;br /&gt;
&lt;br /&gt;
volatile unsigned char servopos;&lt;br /&gt;
&lt;br /&gt;
void servo_init()&lt;br /&gt;
{&lt;br /&gt;
	TIMSK|=(1&amp;lt;&amp;lt;OCIE2);&lt;br /&gt;
	TCCR2 |= (1&amp;lt;&amp;lt;WGM21) | (1&amp;lt;&amp;lt;CS20);	//Prescale=1, CTC mode&lt;br /&gt;
	OCR2 = F_CPU/100000;			//alle 10µS ein IRQ&lt;br /&gt;
	DDRSERVO|=(1&amp;lt;&amp;lt;SERVOPIN);&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
ISR(TIMER2_COMP_vect)&lt;br /&gt;
{&lt;br /&gt;
	static int count;&lt;br /&gt;
	if(count&amp;gt;servopos)SERVOPORT&amp;amp;=~(1&amp;lt;&amp;lt;SERVOPIN);&lt;br /&gt;
	  else SERVOPORT|=(1&amp;lt;&amp;lt;SERVOPIN);&lt;br /&gt;
	if(count&amp;lt;2000)count++; // Die Impulse sollten alle 20ms gesendet werden! 6.2.11 mic&lt;br /&gt;
	  else count=0;&lt;br /&gt;
};&lt;br /&gt;
	&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Man muss zuvor DDRSERVO, SERVOPIN und SERVOPORT entsprechend definieren. Mit der Funktion &amp;quot;servo_init()&amp;quot; wird Timer2 initialisiert und der Servo-Pin als Ausgang gesetzt. &amp;quot;servopos&amp;quot; beinhaltet die aktuelle Dauer des Signals in 1/100ms. Vergessen Sie nicht, globale Interrupts vor dem Betrieb zu aktivieren!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Letzter Beitrag von &amp;quot;stochri&amp;quot; ist eine super Lösung in avr-gcc mit bis zu 10 Servos&lt;br /&gt;
&lt;br /&gt;
[[http://www.roboternetz.de/phpBB2/zeigebeitrag.php?t=14220&amp;amp;highlight=servo &amp;quot;Servo / avr-gcc&amp;quot; ]]&lt;br /&gt;
&lt;br /&gt;
==Servos hacken==&lt;br /&gt;
;Methode 1:Abtriebswelle von Poti abkuppeln, Endanschläge entfernen und Spannungsteiler statt Poti&lt;br /&gt;
Häufig entledigt man sich auch des Potis und der Endlagenanschläge, um so einen Motor mit hohem Drehmoment und ohne Begrenzung des Drehwinkels zu erlangen. Das Poti wird dann durch einen 1:1-Spannungsteiler ersetzt oder die Potiwelle auf Mittelstellung fixiert ('''und''' von der Abtriebswelle abgekuppelt). Dieser Vorgang wird auch als Servo-Hacking bezeichnet. Durch die Pulslänge kann jetzt die Winkelgeschwindigkeit des Servos beeinflusst werden. Dabei simuliert der Spannungsteiler die Mittelstellung und eine kürzere Pulslänge als für Mittelstellung steuert den Motor in die eine, eine längere in die andere Richtung. Pulslänge &amp;quot;Mittelstellung&amp;quot; lässt den Servo stillstehen.&lt;br /&gt;
&lt;br /&gt;
Diese erste Methode des Servohackings nutzt die im Servo eingebaute Elektronik zur Motoransteuerung. Sie ist am Weitesten verbreitet. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:servo.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;Methode 2: Motorelektronik und Endanschläge der Abtriebswelle entfernen&lt;br /&gt;
Bei der zweiten Methode wird die vorhandene Elektronik komplett entfernt und der Motor z.B. direkt mit Gleichstrom versorgt oder durch eine externe Elektronik angesteuert. Die beiden Varianten des Servohackings sowie ihre Vor- und Nachteile sind im folgenden Link beschrieben. [[http://www.roboternetz.de/phpBB2/viewtopic.php?p=516553#516553 &amp;quot;Servohacking. Technik, Vor- und Nachteile&amp;quot;]] Bei fast allen Servos muss zum Hacken nach beiden Methoden ein mechanischer Anschlag entfernt werden. Er besteht aus einem Nocken an der Abtriebswelle und dem Gegenstück im Getriebegehäuse. Der Anschlag verhindert das Drehen der Abtriebswelle über mehr als etwa 270° und die damit verbundenen Fehlern bei der Stellungsmessung mit dem Potentiometer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die wesentlichen elektrischen und elektronischen Teile und Baugruppen eines einfachen Servos:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Servo-hack2_mini.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
Bei Methode &amp;quot;zwei&amp;quot; wird die Elektronik komplett entfernt. Ebenso wird dabei das Poti entfernt oder von der Abtriebsachse abgekoppelt. Der Motor wird dann direkt an die Versorgung angeschlossen und evtl. über einen Motortreiber und PWM drehzahlgeregelt.  [[Getriebemotoren_Ansteuerung#Und_nie_vergessen_Motoren_zu_entst.C3.B6ren|Bitte Entstörung nicht vergessen!]] Gleichwertig wie das Entfernen der kompletten Elektronik ist es, sie einfach zu umgehen und die Motorzuleitung direkt anzulöten. &lt;br /&gt;
&lt;br /&gt;
Der nach Methode 2 gehackte Servo wird dadurch zu einem Getriebemotor mit einem sehr kleinen, sehr schnell drehenden Motor und einem hoch übersetzten Getriebe. Typisch sind Untersetzungen von mehreren 100:1.&lt;br /&gt;
&lt;br /&gt;
==Siehe auch==&lt;br /&gt;
*[[Getriebemotoren]]&lt;br /&gt;
*[[RC-Empfänger_auswerten]]&lt;br /&gt;
*[[Servoansteuerung]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Robotikeinstieg]]&lt;br /&gt;
[[Category:Praxis]]&lt;br /&gt;
[[Category:Grundlagen]]&lt;br /&gt;
[[Category:Motoren]]&lt;/div&gt;</summary>
		<author><name>Oberallgeier</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=Servos&amp;diff=17344</id>
		<title>Servos</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=Servos&amp;diff=17344"/>
				<updated>2011-03-30T16:44:25Z</updated>
		
		<summary type="html">&lt;p&gt;Oberallgeier: /* Ansteuerung: Signalform und Schaltung */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Servos (Servomotoren) sind kleine [[Getriebemotoren]], die häufig im Modellbau eingesetzt werden, doch auch in der Industrie sind sie anzutreffen. &lt;br /&gt;
Mithilfe eines Potentiometers, das an der Drehachse befestigt ist, wird intern die aktuelle Position bestimmt. Wegen ihrer einfachen Ansteuerung und Präzision eigenen sie sich hervorragend für mehr oder weniger kraftaufwändige Aufgaben in der Robotik. &lt;br /&gt;
&lt;br /&gt;
==Anschlussbelegung==&lt;br /&gt;
Handelsübliche Servomotoren besitzen 3 Anschlüsse:&lt;br /&gt;
# GND&lt;br /&gt;
# [[PWM]] bzw. Signal&lt;br /&gt;
# +5V&lt;br /&gt;
&lt;br /&gt;
Wobei sich die Steckerbelegung von Hersteller zu Hersteller unterscheidet.&lt;br /&gt;
&lt;br /&gt;
[[Bild:servosteckerbelegung.gif|center]]&lt;br /&gt;
&lt;br /&gt;
==Ansteuerung: Signalform und Schaltung==&lt;br /&gt;
An die Signalleitung (siehe Steckerbelegung oben) wird ein pulsweitenmoduliertes Signal ([[PWM]]) angeschlossen. Die Repetition-Period (Periode) entspricht bei den meisten Modellen 20ms. Innerhalb/zu Beginn dieser 20ms wird ein Puls erwartet, der sich zwischen 1ms und 2ms bewegt, wobei diese Werte jeweils den Endlagen des Servos entsprechen. D.h. 1ms ist ganz links und 2ms ist ganz rechts (Einige Servos haben in diesem Wertebereich jedoch nicht die volle Bewegungsfreiheit ausgenutzt, die Werte, bei denen der Servo ganz links/rechts ist können auch unter 1ms/über 2ms liegen). 1,5ms würde demnach die Mittelstellung bedeuten. Aufgrund der Pulslänge lässt sich also eine direkte Aussage über die Position des Servos treffen.&lt;br /&gt;
Der Motor sorgt dann intern mithilfe des Potis dafür, dass die Position gehalten wird.&lt;br /&gt;
&lt;br /&gt;
Von der Standard-Pulsdauer 20 ms kann je nach Servomodell erheblich abgewichen werden. Besonders zu erwähnen ist, dass mit Periodenzeiten von 10 ms bereits erfolgreich gearbeitet wurde,  [http://www.roboternetz.de/community/showthread.php?52460-Servo-Geschwindigkeitsregelung&amp;amp;p=506821&amp;amp;viewfull=1#post506821 klick hier  für Posting und ganzen Thread.] Dabei muss aber die Pulsdauer entsprechend angepasst werden, bei 10 ms beispielsweise beträgt dann die Pulsdauer maximal 10 % der Periodenzeit, schwankt also für die Endstellungen zwischen 0,5 ms (500 µs) und 1 ms.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die folgende Darstellung zeigt beispielhafte Zeit-Pegeldiagramme der PWM für Standardservos und als Beispiel die zugehörigen Stellungen des Servohorns. Die Schwenkwinkel und die maximale Auslenkung &amp;quot;links&amp;quot; bzw. &amp;quot;rechts&amp;quot; können je nach Servotyp variieren.&lt;br /&gt;
&lt;br /&gt;
[[Bild:Servo_pwm.gif|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Empfohlene Ansteuerung (Schaltungsvorschlag)&lt;br /&gt;
&lt;br /&gt;
Es wird dringend empfohlen zur Versorgung des Servos eine vom Mikrocontroller gesonderte Versorgungsspannung zu wählen. Dabei muss die GND-Leitung (i.A. die (-)-Leitung) von Controller, Servo und den Versorgungen leitend verbunden sein. Im untenstehenden Beispiel ist die Verschaltung eines Controllers ATMega168 mit einem Servo gezeigt. Der Servo kann natürlich auch an anderen Ausgängen des Controllers angeschlossen werden.&lt;br /&gt;
&lt;br /&gt;
Achtung, Fehlermöglichkeiten!&lt;br /&gt;
&lt;br /&gt;
Werden die GND-Pegel nicht verbunden, sind Störungen mit Sicherheit zu erwarten. &lt;br /&gt;
&lt;br /&gt;
Wird der Controller von der gleichen Spannungsquelle versorgt wie der Servo, so sind Störungen mit Sicherheit zu erwarten.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:Servoansteuerg_02.gif|center]]&lt;br /&gt;
&lt;br /&gt;
==Unterschied zwischen Digital- und Analogservos==&lt;br /&gt;
Der hauptsächliche Unterschied besteht darin, dass digitale Servos schneller und genauer sind und ihre Position besser halten können. Analoge Servos geben ihrem Motor alle 20ms ein Signal. Wirkt eine Kraft auf das Servo, braucht die Steuerelektronik bis zu 20ms, um dem Motor einen neuen Spannungsimpuls zu senden. Bei Digitalservos sendet die Steuerelektronik alle 400us einen Impuls an den Motor. Der Motor bekommt die Spannungsimpulse viel schneller. Um so öfter ein Motor Spannung bekommt, um so mehr Leistung kann er verrichten. Man sollte aber auch bedenken, dass dies unweigerlich einen höheren Stromverbrauch zur Folge hat, der besonders bei Modellfliegern nicht tolerierbar ist, da die Betriebszeit stark verkürzt wird.&lt;br /&gt;
&lt;br /&gt;
Die einfachste Art, einen Servo mit [[Bascom]] anzusteuern, ist folgender Befehl:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Config Servos = 2 , Servo1 = Portb.0 , Servo2 = Portb.1 , Reload = 10&lt;br /&gt;
&lt;br /&gt;
Config Portb = Output&lt;br /&gt;
&lt;br /&gt;
Enable Interrupts&lt;br /&gt;
&lt;br /&gt;
Servo(1) = 100&lt;br /&gt;
Servo(2) = 100&lt;br /&gt;
waitms 1000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'Wobei 100 die Mitte ist. 50 ist der linke bzw. rechte Anschlag und 150 der entsprechend andere. Es gibt aber auch elegantere Möglichkeiten die sich besonders empfehlen wenn z.B. eine höhere Auflösung gewünscht ist: [[Servoansteuerung]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Und in C sieht das ganze so aus:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#define SERVOPIN 7&lt;br /&gt;
#define SERVOPORT PORTD&lt;br /&gt;
#define DDRSERVO DDRD&lt;br /&gt;
&lt;br /&gt;
volatile unsigned char servopos;&lt;br /&gt;
&lt;br /&gt;
void servo_init()&lt;br /&gt;
{&lt;br /&gt;
	TIMSK|=(1&amp;lt;&amp;lt;OCIE2);&lt;br /&gt;
	TCCR2 |= (1&amp;lt;&amp;lt;WGM21) | (1&amp;lt;&amp;lt;CS20);	//Prescale=1, CTC mode&lt;br /&gt;
	OCR2 = F_CPU/100000;			//alle 10µS ein IRQ&lt;br /&gt;
	DDRSERVO|=(1&amp;lt;&amp;lt;SERVOPIN);&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
ISR(TIMER2_COMP_vect)&lt;br /&gt;
{&lt;br /&gt;
	static int count;&lt;br /&gt;
	if(count&amp;gt;servopos)SERVOPORT&amp;amp;=~(1&amp;lt;&amp;lt;SERVOPIN);&lt;br /&gt;
	  else SERVOPORT|=(1&amp;lt;&amp;lt;SERVOPIN);&lt;br /&gt;
	if(count&amp;lt;2000)count++; // Die Impulse sollten alle 20ms gesendet werden! 6.2.11 mic&lt;br /&gt;
	  else count=0;&lt;br /&gt;
};&lt;br /&gt;
	&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Man muss zuvor DDRSERVO, SERVOPIN und SERVOPORT entsprechend definieren. Mit der Funktion &amp;quot;servo_init()&amp;quot; wird Timer2 initialisiert und der Servo-Pin als Ausgang gesetzt. &amp;quot;servopos&amp;quot; beinhaltet die aktuelle Dauer des Signals in 1/100ms. Vergessen Sie nicht, globale Interrupts vor dem Betrieb zu aktivieren!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Letzter Beitrag von &amp;quot;stochri&amp;quot; ist eine super Lösung in avr-gcc mit bis zu 10 Servos&lt;br /&gt;
&lt;br /&gt;
[[http://www.roboternetz.de/phpBB2/zeigebeitrag.php?t=14220&amp;amp;highlight=servo &amp;quot;Servo / avr-gcc&amp;quot; ]]&lt;br /&gt;
&lt;br /&gt;
==Servos hacken==&lt;br /&gt;
;Methode 1:Abtriebswelle von Poti abkuppeln, Endanschläge entfernen und Spannungsteiler statt Poti&lt;br /&gt;
Häufig entledigt man sich auch des Potis und der Endlagenanschläge, um so einen Motor mit hohem Drehmoment und ohne Begrenzung des Drehwinkels zu erlangen. Das Poti wird dann durch einen 1:1-Spannungsteiler ersetzt oder die Potiwelle auf Mittelstellung fixiert ('''und''' von der Abtriebswelle abgekuppelt). Dieser Vorgang wird auch als Servo-Hacking bezeichnet. Durch die Pulslänge kann jetzt die Winkelgeschwindigkeit des Servos beeinflusst werden. Dabei simuliert der Spannungsteiler die Mittelstellung und eine kürzere Pulslänge als für Mittelstellung steuert den Motor in die eine, eine längere in die andere Richtung. Pulslänge &amp;quot;Mittelstellung&amp;quot; lässt den Servo stillstehen.&lt;br /&gt;
&lt;br /&gt;
Diese erste Methode des Servohackings nutzt die im Servo eingebaute Elektronik zur Motoransteuerung. Sie ist am Weitesten verbreitet. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:servo.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;Methode 2: Motorelektronik und Endanschläge der Abtriebswelle entfernen&lt;br /&gt;
Bei der zweiten Methode wird die vorhandene Elektronik komplett entfernt und der Motor z.B. direkt mit Gleichstrom versorgt oder durch eine externe Elektronik angesteuert. Die beiden Varianten des Servohackings sowie ihre Vor- und Nachteile sind im folgenden Link beschrieben. [[http://www.roboternetz.de/phpBB2/viewtopic.php?p=516553#516553 &amp;quot;Servohacking. Technik, Vor- und Nachteile&amp;quot;]] Bei fast allen Servos muss zum Hacken nach beiden Methoden ein mechanischer Anschlag entfernt werden. Er besteht aus einem Nocken an der Abtriebswelle und dem Gegenstück im Getriebegehäuse. Der Anschlag verhindert das Drehen der Abtriebswelle über mehr als etwa 270° und die damit verbundenen Fehlern bei der Stellungsmessung mit dem Potentiometer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die wesentlichen elektrischen und elektronischen Teile und Baugruppen eines einfachen Servos:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Servo-hack2_mini.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
Bei Methode &amp;quot;zwei&amp;quot; wird die Elektronik komplett entfernt. Ebenso wird dabei das Poti entfernt oder von der Abtriebsachse abgekoppelt. Der Motor wird dann direkt an die Versorgung angeschlossen und evtl. über einen Motortreiber und PWM drehzahlgeregelt.  [[Getriebemotoren_Ansteuerung#Und_nie_vergessen_Motoren_zu_entst.C3.B6ren|Bitte Entstörung nicht vergessen!]] Gleichwertig wie das Entfernen der kompletten Elektronik ist es, sie einfach zu umgehen und die Motorzuleitung direkt anzulöten. &lt;br /&gt;
&lt;br /&gt;
Der nach Methode 2 gehackte Servo wird dadurch zu einem Getriebemotor mit einem sehr kleinen, sehr schnell drehenden Motor und einem hoch übersetzten Getriebe. Typisch sind Untersetzungen von mehreren 100:1.&lt;br /&gt;
&lt;br /&gt;
==Siehe auch==&lt;br /&gt;
*[[Getriebemotoren]]&lt;br /&gt;
*[[RC-Empfänger_auswerten]]&lt;br /&gt;
*[[Servoansteuerung]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Robotikeinstieg]]&lt;br /&gt;
[[Category:Praxis]]&lt;br /&gt;
[[Category:Grundlagen]]&lt;br /&gt;
[[Category:Motoren]]&lt;/div&gt;</summary>
		<author><name>Oberallgeier</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=Servos&amp;diff=17343</id>
		<title>Servos</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=Servos&amp;diff=17343"/>
				<updated>2011-03-30T16:44:00Z</updated>
		
		<summary type="html">&lt;p&gt;Oberallgeier: /* Ansteuerung: Signalform und Schaltung */  Periodenzeiten SEHR variabel&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Servos (Servomotoren) sind kleine [[Getriebemotoren]], die häufig im Modellbau eingesetzt werden, doch auch in der Industrie sind sie anzutreffen. &lt;br /&gt;
Mithilfe eines Potentiometers, das an der Drehachse befestigt ist, wird intern die aktuelle Position bestimmt. Wegen ihrer einfachen Ansteuerung und Präzision eigenen sie sich hervorragend für mehr oder weniger kraftaufwändige Aufgaben in der Robotik. &lt;br /&gt;
&lt;br /&gt;
==Anschlussbelegung==&lt;br /&gt;
Handelsübliche Servomotoren besitzen 3 Anschlüsse:&lt;br /&gt;
# GND&lt;br /&gt;
# [[PWM]] bzw. Signal&lt;br /&gt;
# +5V&lt;br /&gt;
&lt;br /&gt;
Wobei sich die Steckerbelegung von Hersteller zu Hersteller unterscheidet.&lt;br /&gt;
&lt;br /&gt;
[[Bild:servosteckerbelegung.gif|center]]&lt;br /&gt;
&lt;br /&gt;
==Ansteuerung: Signalform und Schaltung==&lt;br /&gt;
An die Signalleitung (siehe Steckerbelegung oben) wird ein pulsweitenmoduliertes Signal ([[PWM]]) angeschlossen. Die Repetition-Period (Periode) entspricht bei den meisten Modellen 20ms. Innerhalb/zu Beginn dieser 20ms wird ein Puls erwartet, der sich zwischen 1ms und 2ms bewegt, wobei diese Werte jeweils den Endlagen des Servos entsprechen. D.h. 1ms ist ganz links und 2ms ist ganz rechts (Einige Servos haben in diesem Wertebereich jedoch nicht die volle Bewegungsfreiheit ausgenutzt, die Werte, bei denen der Servo ganz links/rechts ist können auch unter 1ms/über 2ms liegen). 1,5ms würde demnach die Mittelstellung bedeuten. Aufgrund der Pulslänge lässt sich also eine direkte Aussage über die Position des Servos treffen.&lt;br /&gt;
Der Motor sorgt dann intern mithilfe des Potis dafür, dass die Position gehalten wird.&lt;br /&gt;
&lt;br /&gt;
Von der Standard-Pulsdauer 20 ms kann je nach Modell erheblich abgewichen werden. Besonders zu erwähnen ist, dass mit Periodenzeiten von 10 ms bereits erfolgreich gearbeitet wurde,  [http://www.roboternetz.de/community/showthread.php?52460-Servo-Geschwindigkeitsregelung&amp;amp;p=506821&amp;amp;viewfull=1#post506821 klick hier  für Posting und ganzen Thread.] Dabei muss aber die Pulsdauer entsprechend angepasst werden, bei 10 ms beispielsweise beträgt dann die Pulsdauer maximal 10 % der Periodenzeit, schwankt also für die Endstellungen zwischen 0,5 ms (500 µs) und 1 ms.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die folgende Darstellung zeigt beispielhafte Zeit-Pegeldiagramme der PWM für Standardservos und als Beispiel die zugehörigen Stellungen des Servohorns. Die Schwenkwinkel und die maximale Auslenkung &amp;quot;links&amp;quot; bzw. &amp;quot;rechts&amp;quot; können je nach Servotyp variieren.&lt;br /&gt;
&lt;br /&gt;
[[Bild:Servo_pwm.gif|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Empfohlene Ansteuerung (Schaltungsvorschlag)&lt;br /&gt;
&lt;br /&gt;
Es wird dringend empfohlen zur Versorgung des Servos eine vom Mikrocontroller gesonderte Versorgungsspannung zu wählen. Dabei muss die GND-Leitung (i.A. die (-)-Leitung) von Controller, Servo und den Versorgungen leitend verbunden sein. Im untenstehenden Beispiel ist die Verschaltung eines Controllers ATMega168 mit einem Servo gezeigt. Der Servo kann natürlich auch an anderen Ausgängen des Controllers angeschlossen werden.&lt;br /&gt;
&lt;br /&gt;
Achtung, Fehlermöglichkeiten!&lt;br /&gt;
&lt;br /&gt;
Werden die GND-Pegel nicht verbunden, sind Störungen mit Sicherheit zu erwarten. &lt;br /&gt;
&lt;br /&gt;
Wird der Controller von der gleichen Spannungsquelle versorgt wie der Servo, so sind Störungen mit Sicherheit zu erwarten.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:Servoansteuerg_02.gif|center]]&lt;br /&gt;
&lt;br /&gt;
==Unterschied zwischen Digital- und Analogservos==&lt;br /&gt;
Der hauptsächliche Unterschied besteht darin, dass digitale Servos schneller und genauer sind und ihre Position besser halten können. Analoge Servos geben ihrem Motor alle 20ms ein Signal. Wirkt eine Kraft auf das Servo, braucht die Steuerelektronik bis zu 20ms, um dem Motor einen neuen Spannungsimpuls zu senden. Bei Digitalservos sendet die Steuerelektronik alle 400us einen Impuls an den Motor. Der Motor bekommt die Spannungsimpulse viel schneller. Um so öfter ein Motor Spannung bekommt, um so mehr Leistung kann er verrichten. Man sollte aber auch bedenken, dass dies unweigerlich einen höheren Stromverbrauch zur Folge hat, der besonders bei Modellfliegern nicht tolerierbar ist, da die Betriebszeit stark verkürzt wird.&lt;br /&gt;
&lt;br /&gt;
Die einfachste Art, einen Servo mit [[Bascom]] anzusteuern, ist folgender Befehl:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Config Servos = 2 , Servo1 = Portb.0 , Servo2 = Portb.1 , Reload = 10&lt;br /&gt;
&lt;br /&gt;
Config Portb = Output&lt;br /&gt;
&lt;br /&gt;
Enable Interrupts&lt;br /&gt;
&lt;br /&gt;
Servo(1) = 100&lt;br /&gt;
Servo(2) = 100&lt;br /&gt;
waitms 1000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'Wobei 100 die Mitte ist. 50 ist der linke bzw. rechte Anschlag und 150 der entsprechend andere. Es gibt aber auch elegantere Möglichkeiten die sich besonders empfehlen wenn z.B. eine höhere Auflösung gewünscht ist: [[Servoansteuerung]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Und in C sieht das ganze so aus:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#define SERVOPIN 7&lt;br /&gt;
#define SERVOPORT PORTD&lt;br /&gt;
#define DDRSERVO DDRD&lt;br /&gt;
&lt;br /&gt;
volatile unsigned char servopos;&lt;br /&gt;
&lt;br /&gt;
void servo_init()&lt;br /&gt;
{&lt;br /&gt;
	TIMSK|=(1&amp;lt;&amp;lt;OCIE2);&lt;br /&gt;
	TCCR2 |= (1&amp;lt;&amp;lt;WGM21) | (1&amp;lt;&amp;lt;CS20);	//Prescale=1, CTC mode&lt;br /&gt;
	OCR2 = F_CPU/100000;			//alle 10µS ein IRQ&lt;br /&gt;
	DDRSERVO|=(1&amp;lt;&amp;lt;SERVOPIN);&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
ISR(TIMER2_COMP_vect)&lt;br /&gt;
{&lt;br /&gt;
	static int count;&lt;br /&gt;
	if(count&amp;gt;servopos)SERVOPORT&amp;amp;=~(1&amp;lt;&amp;lt;SERVOPIN);&lt;br /&gt;
	  else SERVOPORT|=(1&amp;lt;&amp;lt;SERVOPIN);&lt;br /&gt;
	if(count&amp;lt;2000)count++; // Die Impulse sollten alle 20ms gesendet werden! 6.2.11 mic&lt;br /&gt;
	  else count=0;&lt;br /&gt;
};&lt;br /&gt;
	&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Man muss zuvor DDRSERVO, SERVOPIN und SERVOPORT entsprechend definieren. Mit der Funktion &amp;quot;servo_init()&amp;quot; wird Timer2 initialisiert und der Servo-Pin als Ausgang gesetzt. &amp;quot;servopos&amp;quot; beinhaltet die aktuelle Dauer des Signals in 1/100ms. Vergessen Sie nicht, globale Interrupts vor dem Betrieb zu aktivieren!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Letzter Beitrag von &amp;quot;stochri&amp;quot; ist eine super Lösung in avr-gcc mit bis zu 10 Servos&lt;br /&gt;
&lt;br /&gt;
[[http://www.roboternetz.de/phpBB2/zeigebeitrag.php?t=14220&amp;amp;highlight=servo &amp;quot;Servo / avr-gcc&amp;quot; ]]&lt;br /&gt;
&lt;br /&gt;
==Servos hacken==&lt;br /&gt;
;Methode 1:Abtriebswelle von Poti abkuppeln, Endanschläge entfernen und Spannungsteiler statt Poti&lt;br /&gt;
Häufig entledigt man sich auch des Potis und der Endlagenanschläge, um so einen Motor mit hohem Drehmoment und ohne Begrenzung des Drehwinkels zu erlangen. Das Poti wird dann durch einen 1:1-Spannungsteiler ersetzt oder die Potiwelle auf Mittelstellung fixiert ('''und''' von der Abtriebswelle abgekuppelt). Dieser Vorgang wird auch als Servo-Hacking bezeichnet. Durch die Pulslänge kann jetzt die Winkelgeschwindigkeit des Servos beeinflusst werden. Dabei simuliert der Spannungsteiler die Mittelstellung und eine kürzere Pulslänge als für Mittelstellung steuert den Motor in die eine, eine längere in die andere Richtung. Pulslänge &amp;quot;Mittelstellung&amp;quot; lässt den Servo stillstehen.&lt;br /&gt;
&lt;br /&gt;
Diese erste Methode des Servohackings nutzt die im Servo eingebaute Elektronik zur Motoransteuerung. Sie ist am Weitesten verbreitet. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:servo.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;Methode 2: Motorelektronik und Endanschläge der Abtriebswelle entfernen&lt;br /&gt;
Bei der zweiten Methode wird die vorhandene Elektronik komplett entfernt und der Motor z.B. direkt mit Gleichstrom versorgt oder durch eine externe Elektronik angesteuert. Die beiden Varianten des Servohackings sowie ihre Vor- und Nachteile sind im folgenden Link beschrieben. [[http://www.roboternetz.de/phpBB2/viewtopic.php?p=516553#516553 &amp;quot;Servohacking. Technik, Vor- und Nachteile&amp;quot;]] Bei fast allen Servos muss zum Hacken nach beiden Methoden ein mechanischer Anschlag entfernt werden. Er besteht aus einem Nocken an der Abtriebswelle und dem Gegenstück im Getriebegehäuse. Der Anschlag verhindert das Drehen der Abtriebswelle über mehr als etwa 270° und die damit verbundenen Fehlern bei der Stellungsmessung mit dem Potentiometer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die wesentlichen elektrischen und elektronischen Teile und Baugruppen eines einfachen Servos:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Servo-hack2_mini.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
Bei Methode &amp;quot;zwei&amp;quot; wird die Elektronik komplett entfernt. Ebenso wird dabei das Poti entfernt oder von der Abtriebsachse abgekoppelt. Der Motor wird dann direkt an die Versorgung angeschlossen und evtl. über einen Motortreiber und PWM drehzahlgeregelt.  [[Getriebemotoren_Ansteuerung#Und_nie_vergessen_Motoren_zu_entst.C3.B6ren|Bitte Entstörung nicht vergessen!]] Gleichwertig wie das Entfernen der kompletten Elektronik ist es, sie einfach zu umgehen und die Motorzuleitung direkt anzulöten. &lt;br /&gt;
&lt;br /&gt;
Der nach Methode 2 gehackte Servo wird dadurch zu einem Getriebemotor mit einem sehr kleinen, sehr schnell drehenden Motor und einem hoch übersetzten Getriebe. Typisch sind Untersetzungen von mehreren 100:1.&lt;br /&gt;
&lt;br /&gt;
==Siehe auch==&lt;br /&gt;
*[[Getriebemotoren]]&lt;br /&gt;
*[[RC-Empfänger_auswerten]]&lt;br /&gt;
*[[Servoansteuerung]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Robotikeinstieg]]&lt;br /&gt;
[[Category:Praxis]]&lt;br /&gt;
[[Category:Grundlagen]]&lt;br /&gt;
[[Category:Motoren]]&lt;/div&gt;</summary>
		<author><name>Oberallgeier</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=Servos&amp;diff=17289</id>
		<title>Servos</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=Servos&amp;diff=17289"/>
				<updated>2011-03-05T10:48:20Z</updated>
		
		<summary type="html">&lt;p&gt;Oberallgeier: Untertitel Methode 1 ergänzt&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Servos (Servomotoren) sind kleine [[Getriebemotoren]], die häufig im Modellbau eingesetzt werden, doch auch in der Industrie sind sie anzutreffen. &lt;br /&gt;
Mithilfe eines Potentiometers, das an der Drehachse befestigt ist, wird intern die aktuelle Position bestimmt. Wegen ihrer einfachen Ansteuerung und Präzision eigenen sie sich hervorragend für mehr oder weniger kraftaufwändige Aufgaben in der Robotik. &lt;br /&gt;
&lt;br /&gt;
==Anschlussbelegung==&lt;br /&gt;
Handelsübliche Servomotoren besitzen 3 Anschlüsse:&lt;br /&gt;
# GND&lt;br /&gt;
# [[PWM]] bzw. Signal&lt;br /&gt;
# +5V&lt;br /&gt;
&lt;br /&gt;
Wobei sich die Steckerbelegung von Hersteller zu Hersteller unterscheidet.&lt;br /&gt;
&lt;br /&gt;
[[Bild:servosteckerbelegung.gif|center]]&lt;br /&gt;
&lt;br /&gt;
==Ansteuerung: Signalform und Schaltung==&lt;br /&gt;
An die Signalleitung (siehe Steckerbelegung oben) wird ein pulsweitenmoduliertes Signal ([[PWM]]) angeschlossen. Die Repetition-Period (Periode) entspricht bei den meisten Modellen 20ms. Innerhalb/zu Beginn dieser 20ms wird ein Puls erwartet, der sich zwischen 1ms und 2ms bewegt, wobei diese Werte jeweils den Endlagen des Servos entsprechen. D.h. 1ms ist ganz links und 2ms ist ganz rechts (Einige Servos haben in diesem Wertebereich jedoch nicht die volle Bewegungsfreiheit ausgenutzt, die Werte, bei denen der Servo ganz links/rechts ist können auch unter 1ms/über 2ms liegen). 1,5ms würde demnach die Mittelstellung bedeuten. &lt;br /&gt;
Aufgrund der Pulslänge lässt sich also eine direkte Aussage über die Position des Servos treffen.&lt;br /&gt;
Der Motor sorgt dann intern mithilfe des Potis dafür, dass die Position gehalten wird.&lt;br /&gt;
&lt;br /&gt;
Die folgende Darstellung zeigt beispielhafte Zeit-Pegeldiagramme der PWM für Standardservos und als Beispiel die zugehörigen Stellungen des Servohorns. Die Schwenkwinkel und die maximale Auslenkung &amp;quot;links&amp;quot; bzw. &amp;quot;rechts&amp;quot; können je nach Servotyp variieren.&lt;br /&gt;
&lt;br /&gt;
[[Bild:Servo_pwm.gif|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Empfohlene Ansteuerung (Schaltungsvorschlag)&lt;br /&gt;
&lt;br /&gt;
Es wird dringend empfohlen zur Versorgung des Servos eine vom Mikrocontroller gesonderte Versorgungsspannung zu wählen. Dabei muss die GND-Leitung (i.A. die (-)-Leitung) von Controller, Servo und den Versorgungen leitend verbunden sein. Im untenstehenden Beispiel ist die Verschaltung eines Controllers ATMega168 mit einem Servo gezeigt. Der Servo kann natürlich auch an anderen Ausgängen des Controllers angeschlossen werden.&lt;br /&gt;
&lt;br /&gt;
Achtung, Fehlermöglichkeiten!&lt;br /&gt;
&lt;br /&gt;
Werden die GND-Pegel nicht verbunden, sind Störungen mit Sicherheit zu erwarten. &lt;br /&gt;
&lt;br /&gt;
Wird der Controller von der gleichen Spannungsquelle versorgt wie der Servo, so sind Störungen mit Sicherheit zu erwarten.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:Servoansteuerg_02.gif|center]]&lt;br /&gt;
&lt;br /&gt;
==Unterschied zwischen Digital- und Analogservos==&lt;br /&gt;
Der hauptsächliche Unterschied besteht darin, dass digitale Servos schneller und genauer sind und ihre Position besser halten können. Analoge Servos geben ihrem Motor alle 20ms ein Signal. Wirkt eine Kraft auf das Servo, braucht die Steuerelektronik bis zu 20ms, um dem Motor einen neuen Spannungsimpuls zu senden. Bei Digitalservos sendet die Steuerelektronik alle 400us einen Impuls an den Motor. Der Motor bekommt die Spannungsimpulse viel schneller. Um so öfter ein Motor Spannung bekommt, um so mehr Leistung kann er verrichten. Man sollte aber auch bedenken, dass dies unweigerlich einen höheren Stromverbrauch zur Folge hat, der besonders bei Modellfliegern nicht tolerierbar ist, da die Betriebszeit stark verkürzt wird.&lt;br /&gt;
&lt;br /&gt;
Die einfachste Art, einen Servo mit [[Bascom]] anzusteuern, ist folgender Befehl:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Config Servos = 2 , Servo1 = Portb.0 , Servo2 = Portb.1 , Reload = 10&lt;br /&gt;
&lt;br /&gt;
Config Portb = Output&lt;br /&gt;
&lt;br /&gt;
Enable Interrupts&lt;br /&gt;
&lt;br /&gt;
Servo(1) = 100&lt;br /&gt;
Servo(2) = 100&lt;br /&gt;
waitms 1000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'Wobei 100 die Mitte ist. 50 ist der linke bzw. rechte Anschlag und 150 der entsprechend andere. Es gibt aber auch elegantere Möglichkeiten die sich besonders empfehlen wenn z.B. eine höhere Auflösung gewünscht ist: [[Servoansteuerung]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Und in C sieht das ganze so aus:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#define SERVOPIN 7&lt;br /&gt;
#define SERVOPORT PORTD&lt;br /&gt;
#define DDRSERVO DDRD&lt;br /&gt;
&lt;br /&gt;
volatile unsigned char servopos;&lt;br /&gt;
&lt;br /&gt;
void servo_init()&lt;br /&gt;
{&lt;br /&gt;
	TIMSK|=(1&amp;lt;&amp;lt;OCIE2);&lt;br /&gt;
	TCCR2 |= (1&amp;lt;&amp;lt;WGM21) | (1&amp;lt;&amp;lt;CS20);	//Prescale=1, CTC mode&lt;br /&gt;
	OCR2 = F_CPU/100000;			//alle 10µS ein IRQ&lt;br /&gt;
	DDRSERVO|=(1&amp;lt;&amp;lt;SERVOPIN);&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
ISR(TIMER2_COMP_vect)&lt;br /&gt;
{&lt;br /&gt;
	static int count;&lt;br /&gt;
	if(count&amp;gt;servopos)SERVOPORT&amp;amp;=~(1&amp;lt;&amp;lt;SERVOPIN);&lt;br /&gt;
	  else SERVOPORT|=(1&amp;lt;&amp;lt;SERVOPIN);&lt;br /&gt;
	if(count&amp;lt;2000)count++; // Die Impulse sollten alle 20ms gesendet werden! 6.2.11 mic&lt;br /&gt;
	  else count=0;&lt;br /&gt;
};&lt;br /&gt;
	&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Man muss zuvor DDRSERVO, SERVOPIN und SERVOPORT entsprechend definieren. Mit der Funktion &amp;quot;servo_init()&amp;quot; wird Timer2 initialisiert und der Servo-Pin als Ausgang gesetzt. &amp;quot;servopos&amp;quot; beinhaltet die aktuelle Dauer des Signals in 1/100ms. Vergessen Sie nicht, globale Interrupts vor dem Betrieb zu aktivieren!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Letzter Beitrag von &amp;quot;stochri&amp;quot; ist eine super Lösung in avr-gcc mit bis zu 10 Servos&lt;br /&gt;
&lt;br /&gt;
[[http://www.roboternetz.de/phpBB2/zeigebeitrag.php?t=14220&amp;amp;highlight=servo &amp;quot;Servo / avr-gcc&amp;quot; ]]&lt;br /&gt;
&lt;br /&gt;
==Servos hacken==&lt;br /&gt;
;Methode 1:Abtriebswelle von Poti abkuppeln, Endanschläge entfernen und Spannungsteiler statt Poti&lt;br /&gt;
Häufig entledigt man sich auch des Potis und der Endlagenanschläge, um so einen Motor mit hohem Drehmoment und ohne Begrenzung des Drehwinkels zu erlangen. Das Poti wird dann durch einen 1:1-Spannungsteiler ersetzt oder die Potiwelle auf Mittelstellung fixiert ('''und''' von der Abtriebswelle abgekuppelt). Dieser Vorgang wird auch als Servo-Hacking bezeichnet. Durch die Pulslänge kann jetzt die Winkelgeschwindigkeit des Servos beeinflusst werden. Dabei simuliert der Spannungsteiler die Mittelstellung und eine kürzere Pulslänge als für Mittelstellung steuert den Motor in die eine, eine längere in die andere Richtung. Pulslänge &amp;quot;Mittelstellung&amp;quot; lässt den Servo stillstehen.&lt;br /&gt;
&lt;br /&gt;
Diese erste Methode des Servohackings nutzt die im Servo eingebaute Elektronik zur Motoransteuerung. Sie ist am Weitesten verbreitet. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:servo.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;Methode 2: Motorelektronik und Endanschläge der Abtriebswelle entfernen&lt;br /&gt;
Bei der zweiten Methode wird die vorhandene Elektronik komplett entfernt und der Motor z.B. direkt mit Gleichstrom versorgt oder durch eine externe Elektronik angesteuert. Die beiden Varianten des Servohackings sowie ihre Vor- und Nachteile sind im folgenden Link beschrieben. [[http://www.roboternetz.de/phpBB2/viewtopic.php?p=516553#516553 &amp;quot;Servohacking. Technik, Vor- und Nachteile&amp;quot;]] Bei fast allen Servos muss zum Hacken nach beiden Methoden ein mechanischer Anschlag entfernt werden. Er besteht aus einem Nocken an der Abtriebswelle und dem Gegenstück im Getriebegehäuse. Der Anschlag verhindert das Drehen der Abtriebswelle über mehr als etwa 270° und die damit verbundenen Fehlern bei der Stellungsmessung mit dem Potentiometer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die wesentlichen elektrischen und elektronischen Teile und Baugruppen eines einfachen Servos:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Servo-hack2_mini.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
Bei Methode &amp;quot;zwei&amp;quot; wird die Elektronik komplett entfernt. Ebenso wird dabei das Poti entfernt oder von der Abtriebsachse abgekoppelt. Der Motor wird dann direkt an die Versorgung angeschlossen und evtl. über einen Motortreiber und PWM drehzahlgeregelt.  [[Getriebemotoren_Ansteuerung#Und_nie_vergessen_Motoren_zu_entst.C3.B6ren|Bitte Entstörung nicht vergessen!]] Gleichwertig wie das Entfernen der kompletten Elektronik ist es, sie einfach zu umgehen und die Motorzuleitung direkt anzulöten. &lt;br /&gt;
&lt;br /&gt;
Der nach Methode 2 gehackte Servo wird dadurch zu einem Getriebemotor mit einem sehr kleinen, sehr schnell drehenden Motor und einem hoch übersetzten Getriebe. Typisch sind Untersetzungen von mehreren 100:1.&lt;br /&gt;
&lt;br /&gt;
==Siehe auch==&lt;br /&gt;
*[[Getriebemotoren]]&lt;br /&gt;
*[[RC-Empfänger_auswerten]]&lt;br /&gt;
*[[Servoansteuerung]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Robotikeinstieg]]&lt;br /&gt;
[[Category:Praxis]]&lt;br /&gt;
[[Category:Grundlagen]]&lt;br /&gt;
[[Category:Motoren]]&lt;/div&gt;</summary>
		<author><name>Oberallgeier</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=Servos&amp;diff=17288</id>
		<title>Servos</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=Servos&amp;diff=17288"/>
				<updated>2011-03-05T09:27:25Z</updated>
		
		<summary type="html">&lt;p&gt;Oberallgeier: Geringe Erweiterung der Beschreibung &amp;quot;Hacken&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Servos (Servomotoren) sind kleine [[Getriebemotoren]], die häufig im Modellbau eingesetzt werden, doch auch in der Industrie sind sie anzutreffen. &lt;br /&gt;
Mithilfe eines Potentiometers, das an der Drehachse befestigt ist, wird intern die aktuelle Position bestimmt. Wegen ihrer einfachen Ansteuerung und Präzision eigenen sie sich hervorragend für mehr oder weniger kraftaufwändige Aufgaben in der Robotik. &lt;br /&gt;
&lt;br /&gt;
==Anschlussbelegung==&lt;br /&gt;
Handelsübliche Servomotoren besitzen 3 Anschlüsse:&lt;br /&gt;
# GND&lt;br /&gt;
# [[PWM]] bzw. Signal&lt;br /&gt;
# +5V&lt;br /&gt;
&lt;br /&gt;
Wobei sich die Steckerbelegung von Hersteller zu Hersteller unterscheidet.&lt;br /&gt;
&lt;br /&gt;
[[Bild:servosteckerbelegung.gif|center]]&lt;br /&gt;
&lt;br /&gt;
==Ansteuerung: Signalform und Schaltung==&lt;br /&gt;
An die Signalleitung (siehe Steckerbelegung oben) wird ein pulsweitenmoduliertes Signal ([[PWM]]) angeschlossen. Die Repetition-Period (Periode) entspricht bei den meisten Modellen 20ms. Innerhalb/zu Beginn dieser 20ms wird ein Puls erwartet, der sich zwischen 1ms und 2ms bewegt, wobei diese Werte jeweils den Endlagen des Servos entsprechen. D.h. 1ms ist ganz links und 2ms ist ganz rechts (Einige Servos haben in diesem Wertebereich jedoch nicht die volle Bewegungsfreiheit ausgenutzt, die Werte, bei denen der Servo ganz links/rechts ist können auch unter 1ms/über 2ms liegen). 1,5ms würde demnach die Mittelstellung bedeuten. &lt;br /&gt;
Aufgrund der Pulslänge lässt sich also eine direkte Aussage über die Position des Servos treffen.&lt;br /&gt;
Der Motor sorgt dann intern mithilfe des Potis dafür, dass die Position gehalten wird.&lt;br /&gt;
&lt;br /&gt;
Die folgende Darstellung zeigt beispielhafte Zeit-Pegeldiagramme der PWM für Standardservos und als Beispiel die zugehörigen Stellungen des Servohorns. Die Schwenkwinkel und die maximale Auslenkung &amp;quot;links&amp;quot; bzw. &amp;quot;rechts&amp;quot; können je nach Servotyp variieren.&lt;br /&gt;
&lt;br /&gt;
[[Bild:Servo_pwm.gif|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Empfohlene Ansteuerung (Schaltungsvorschlag)&lt;br /&gt;
&lt;br /&gt;
Es wird dringend empfohlen zur Versorgung des Servos eine vom Mikrocontroller gesonderte Versorgungsspannung zu wählen. Dabei muss die GND-Leitung (i.A. die (-)-Leitung) von Controller, Servo und den Versorgungen leitend verbunden sein. Im untenstehenden Beispiel ist die Verschaltung eines Controllers ATMega168 mit einem Servo gezeigt. Der Servo kann natürlich auch an anderen Ausgängen des Controllers angeschlossen werden.&lt;br /&gt;
&lt;br /&gt;
Achtung, Fehlermöglichkeiten!&lt;br /&gt;
&lt;br /&gt;
Werden die GND-Pegel nicht verbunden, sind Störungen mit Sicherheit zu erwarten. &lt;br /&gt;
&lt;br /&gt;
Wird der Controller von der gleichen Spannungsquelle versorgt wie der Servo, so sind Störungen mit Sicherheit zu erwarten.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:Servoansteuerg_02.gif|center]]&lt;br /&gt;
&lt;br /&gt;
==Unterschied zwischen Digital- und Analogservos==&lt;br /&gt;
Der hauptsächliche Unterschied besteht darin, dass digitale Servos schneller und genauer sind und ihre Position besser halten können. Analoge Servos geben ihrem Motor alle 20ms ein Signal. Wirkt eine Kraft auf das Servo, braucht die Steuerelektronik bis zu 20ms, um dem Motor einen neuen Spannungsimpuls zu senden. Bei Digitalservos sendet die Steuerelektronik alle 400us einen Impuls an den Motor. Der Motor bekommt die Spannungsimpulse viel schneller. Um so öfter ein Motor Spannung bekommt, um so mehr Leistung kann er verrichten. Man sollte aber auch bedenken, dass dies unweigerlich einen höheren Stromverbrauch zur Folge hat, der besonders bei Modellfliegern nicht tolerierbar ist, da die Betriebszeit stark verkürzt wird.&lt;br /&gt;
&lt;br /&gt;
Die einfachste Art, einen Servo mit [[Bascom]] anzusteuern, ist folgender Befehl:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Config Servos = 2 , Servo1 = Portb.0 , Servo2 = Portb.1 , Reload = 10&lt;br /&gt;
&lt;br /&gt;
Config Portb = Output&lt;br /&gt;
&lt;br /&gt;
Enable Interrupts&lt;br /&gt;
&lt;br /&gt;
Servo(1) = 100&lt;br /&gt;
Servo(2) = 100&lt;br /&gt;
waitms 1000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'Wobei 100 die Mitte ist. 50 ist der linke bzw. rechte Anschlag und 150 der entsprechend andere. Es gibt aber auch elegantere Möglichkeiten die sich besonders empfehlen wenn z.B. eine höhere Auflösung gewünscht ist: [[Servoansteuerung]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Und in C sieht das ganze so aus:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#define SERVOPIN 7&lt;br /&gt;
#define SERVOPORT PORTD&lt;br /&gt;
#define DDRSERVO DDRD&lt;br /&gt;
&lt;br /&gt;
volatile unsigned char servopos;&lt;br /&gt;
&lt;br /&gt;
void servo_init()&lt;br /&gt;
{&lt;br /&gt;
	TIMSK|=(1&amp;lt;&amp;lt;OCIE2);&lt;br /&gt;
	TCCR2 |= (1&amp;lt;&amp;lt;WGM21) | (1&amp;lt;&amp;lt;CS20);	//Prescale=1, CTC mode&lt;br /&gt;
	OCR2 = F_CPU/100000;			//alle 10µS ein IRQ&lt;br /&gt;
	DDRSERVO|=(1&amp;lt;&amp;lt;SERVOPIN);&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
ISR(TIMER2_COMP_vect)&lt;br /&gt;
{&lt;br /&gt;
	static int count;&lt;br /&gt;
	if(count&amp;gt;servopos)SERVOPORT&amp;amp;=~(1&amp;lt;&amp;lt;SERVOPIN);&lt;br /&gt;
	  else SERVOPORT|=(1&amp;lt;&amp;lt;SERVOPIN);&lt;br /&gt;
	if(count&amp;lt;2000)count++; // Die Impulse sollten alle 20ms gesendet werden! 6.2.11 mic&lt;br /&gt;
	  else count=0;&lt;br /&gt;
};&lt;br /&gt;
	&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Man muss zuvor DDRSERVO, SERVOPIN und SERVOPORT entsprechend definieren. Mit der Funktion &amp;quot;servo_init()&amp;quot; wird Timer2 initialisiert und der Servo-Pin als Ausgang gesetzt. &amp;quot;servopos&amp;quot; beinhaltet die aktuelle Dauer des Signals in 1/100ms. Vergessen Sie nicht, globale Interrupts vor dem Betrieb zu aktivieren!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Letzter Beitrag von &amp;quot;stochri&amp;quot; ist eine super Lösung in avr-gcc mit bis zu 10 Servos&lt;br /&gt;
&lt;br /&gt;
[[http://www.roboternetz.de/phpBB2/zeigebeitrag.php?t=14220&amp;amp;highlight=servo &amp;quot;Servo / avr-gcc&amp;quot; ]]&lt;br /&gt;
&lt;br /&gt;
==Servos hacken==&lt;br /&gt;
;Methode 1:Abtriebswelle von Poti abkuppeln und Endanschläge entfernen&lt;br /&gt;
Häufig entledigt man sich auch des Potis und der Endlagenanschläge, um so einen Motor mit hohem Drehmoment und ohne Begrenzung des Drehwinkels zu erlangen. Das Poti wird dann durch einen 1:1-Spannungsteiler ersetzt oder die Potiwelle auf Mittelstellung fixiert ('''und''' von der Abtriebswelle abgekuppelt). Dieser Vorgang wird auch als Servo-Hacking bezeichnet. Durch die Pulslänge kann jetzt die Winkelgeschwindigkeit des Servos beeinflusst werden. Dabei simuliert der Spannungsteiler die Mittelstellung und eine kürzere Pulslänge als für Mittelstellung steuert den Motor in die eine, eine längere in die andere Richtung. Pulslänge &amp;quot;Mittelstellung&amp;quot; lässt den Servo stillstehen.&lt;br /&gt;
&lt;br /&gt;
Diese erste Methode des Servohackings nutzt die im Servo eingebaute Elektronik zur Motoransteuerung. Sie ist am Weitesten verbreitet. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:servo.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;Methode 2: Motorelektronik und Endanschläge der Abtriebswelle entfernen&lt;br /&gt;
Bei der zweiten Methode wird die vorhandene Elektronik komplett entfernt und der Motor z.B. direkt mit Gleichstrom versorgt oder durch eine externe Elektronik angesteuert. Die beiden Varianten des Servohackings sowie ihre Vor- und Nachteile sind im folgenden Link beschrieben. [[http://www.roboternetz.de/phpBB2/viewtopic.php?p=516553#516553 &amp;quot;Servohacking. Technik, Vor- und Nachteile&amp;quot;]] Bei fast allen Servos muss zum Hacken nach beiden Methoden ein mechanischer Anschlag entfernt werden. Er besteht aus einem Nocken an der Abtriebswelle und dem Gegenstück im Getriebegehäuse. Der Anschlag verhindert das Drehen der Abtriebswelle über mehr als etwa 270° und die damit verbundenen Fehlern bei der Stellungsmessung mit dem Potentiometer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die wesentlichen elektrischen und elektronischen Teile und Baugruppen eines einfachen Servos:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Servo-hack2_mini.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
Bei Methode &amp;quot;zwei&amp;quot; wird die Elektronik komplett entfernt. Ebenso wird dabei das Poti entfernt oder von der Abtriebsachse abgekoppelt. Der Motor wird dann direkt an die Versorgung angeschlossen und evtl. über einen Motortreiber und PWM drehzahlgeregelt.  [[Getriebemotoren_Ansteuerung#Und_nie_vergessen_Motoren_zu_entst.C3.B6ren|Bitte Entstörung nicht vergessen!]] Gleichwertig wie das Entfernen der kompletten Elektronik ist es, sie einfach zu umgehen und die Motorzuleitung direkt anzulöten. &lt;br /&gt;
&lt;br /&gt;
Der nach Methode 2 gehackte Servo wird dadurch zu einem Getriebemotor mit einem sehr kleinen, sehr schnell drehenden Motor und einem hoch übersetzten Getriebe. Typisch sind Untersetzungen von mehreren 100:1.&lt;br /&gt;
&lt;br /&gt;
==Siehe auch==&lt;br /&gt;
*[[Getriebemotoren]]&lt;br /&gt;
*[[RC-Empfänger_auswerten]]&lt;br /&gt;
*[[Servoansteuerung]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Robotikeinstieg]]&lt;br /&gt;
[[Category:Praxis]]&lt;br /&gt;
[[Category:Grundlagen]]&lt;br /&gt;
[[Category:Motoren]]&lt;/div&gt;</summary>
		<author><name>Oberallgeier</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=Servos&amp;diff=17249</id>
		<title>Servos</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=Servos&amp;diff=17249"/>
				<updated>2011-02-09T10:51:30Z</updated>
		
		<summary type="html">&lt;p&gt;Oberallgeier: /* Anschlussbelegung */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Servos (Servomotoren) sind kleine [[Getriebemotoren]], die häufig im Modellbau eingesetzt werden, doch auch in der Industrie sind sie anzutreffen. &lt;br /&gt;
Mithilfe eines Potentiometers, das an der Drehachse befestigt ist, wird intern die aktuelle Position bestimmt. Wegen ihrer einfachen Ansteuerung und Präzision eigenen sie sich hervorragend für mehr oder weniger kraftaufwändige Aufgaben in der Robotik. &lt;br /&gt;
&lt;br /&gt;
==Anschlussbelegung==&lt;br /&gt;
Handelsübliche Servomotoren besitzen 3 Anschlüsse:&lt;br /&gt;
# GND&lt;br /&gt;
# [[PWM]] bzw. Signal&lt;br /&gt;
# +5V&lt;br /&gt;
&lt;br /&gt;
Wobei sich die Steckerbelegung von Hersteller zu Hersteller unterscheidet.&lt;br /&gt;
&lt;br /&gt;
[[Bild:servosteckerbelegung.gif|center]]&lt;br /&gt;
&lt;br /&gt;
==Ansteuerung: Signalform und Schaltung==&lt;br /&gt;
An die Signalleitung (siehe Steckerbelegung oben) wird ein pulsweitenmoduliertes Signal ([[PWM]]) angeschlossen. Die Repetition-Period (Periode) entspricht bei den meisten Modellen 20ms. Innerhalb/zu Beginn dieser 20ms wird ein Puls erwartet, der sich zwischen 1ms und 2ms bewegt, wobei diese Werte jeweils den Endlagen des Servos entsprechen. D.h. 1ms ist ganz links und 2ms ist ganz rechts (Einige Servos haben in diesem Wertebereich jedoch nicht die volle Bewegungsfreiheit ausgenutzt, die Werte, bei denen der Servo ganz links/rechts ist können auch unter 1ms/über 2ms liegen). 1,5ms würde demnach die Mittelstellung bedeuten. &lt;br /&gt;
Aufgrund der Pulslänge lässt sich also eine direkte Aussage über die Position des Servos treffen.&lt;br /&gt;
Der Motor sorgt dann intern mithilfe des Potis dafür, dass die Position gehalten wird.&lt;br /&gt;
&lt;br /&gt;
Die folgende Darstellung zeigt beispielhafte Zeit-Pegeldiagramme der PWM für Standardservos und als Beispiel die zugehörigen Stellungen des Servohorns. Die Schwenkwinkel und die maximale Auslenkung &amp;quot;links&amp;quot; bzw. &amp;quot;rechts&amp;quot; können je nach Servotyp variieren.&lt;br /&gt;
&lt;br /&gt;
[[Bild:Servo_pwm.gif|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Empfohlene Ansteuerung (Schaltungsvorschlag)&lt;br /&gt;
&lt;br /&gt;
Es wird dringend empfohlen zur Versorgung des Servos eine vom Mikrocontroller gesonderte Versorgungsspannung zu wählen. Dabei muss die GND-Leitung (i.A. die (-)-Leitung) von Controller, Servo und den Versorgungen leitend verbunden sein. Im untenstehenden Beispiel ist die Verschaltung eines Controllers ATMega168 mit einem Servo gezeigt. Der Servo kann natürlich auch an anderen Ausgängen des Controllers angeschlossen werden.&lt;br /&gt;
&lt;br /&gt;
Achtung, Fehlermöglichkeiten!&lt;br /&gt;
&lt;br /&gt;
Werden die GND-Pegel nicht verbunden, sind Störungen mit Sicherheit zu erwarten. &lt;br /&gt;
&lt;br /&gt;
Wird der Controller von der gleichen Spannungsquelle versorgt wie der Servo, so sind Störungen mit Sicherheit zu erwarten.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:Servoansteuerg_02.gif|center]]&lt;br /&gt;
&lt;br /&gt;
==Unterschied zwischen Digital- und Analogservos==&lt;br /&gt;
Der hauptsächliche Unterschied besteht darin, dass digitale Servos schneller und genauer sind und ihre Position besser halten können. Analoge Servos geben ihrem Motor alle 20ms ein Signal. Wirkt eine Kraft auf das Servo, braucht die Steuerelektronik bis zu 20ms, um dem Motor einen neuen Spannungsimpuls zu senden. Bei Digitalservos sendet die Steuerelektronik alle 400us einen Impuls an den Motor. Der Motor bekommt die Spannungsimpulse viel schneller. Um so öfter ein Motor Spannung bekommt, um so mehr Leistung kann er verrichten. Man sollte aber auch bedenken, dass dies unweigerlich einen höheren Stromverbrauch zur Folge hat, der besonders bei Modellfliegern nicht tolerierbar ist, da die Betriebszeit stark verkürzt wird.&lt;br /&gt;
&lt;br /&gt;
Die einfachste Art, einen Servo mit [[Bascom]] anzusteuern, ist folgender Befehl:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Config Servos = 2 , Servo1 = Portb.0 , Servo2 = Portb.1 , Reload = 10&lt;br /&gt;
&lt;br /&gt;
Config Portb = Output&lt;br /&gt;
&lt;br /&gt;
Enable Interrupts&lt;br /&gt;
&lt;br /&gt;
Servo(1) = 100&lt;br /&gt;
Servo(2) = 100&lt;br /&gt;
waitms 1000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'Wobei 100 die Mitte ist. 50 ist der linke bzw. rechte Anschlag und 150 der entsprechend andere. Es gibt aber auch elegantere Möglichkeiten die sich besonders empfehlen wenn z.B. eine höhere Auflösung gewünscht ist: [[Servoansteuerung]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Und in C sieht das ganze so aus:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#define SERVOPIN 7&lt;br /&gt;
#define SERVOPORT PORTD&lt;br /&gt;
#define DDRSERVO DDRD&lt;br /&gt;
&lt;br /&gt;
volatile unsigned char servopos;&lt;br /&gt;
&lt;br /&gt;
void servo_init()&lt;br /&gt;
{&lt;br /&gt;
	TIMSK|=(1&amp;lt;&amp;lt;OCIE2);&lt;br /&gt;
	TCCR2 |= (1&amp;lt;&amp;lt;WGM21) | (1&amp;lt;&amp;lt;CS20);	//Prescale=1, CTC mode&lt;br /&gt;
	OCR2 = F_CPU/100000;			//alle 10µS ein IRQ&lt;br /&gt;
	DDRSERVO|=(1&amp;lt;&amp;lt;SERVOPIN);&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
ISR(TIMER2_COMP_vect)&lt;br /&gt;
{&lt;br /&gt;
	static int count;&lt;br /&gt;
	if(count&amp;gt;servopos)SERVOPORT&amp;amp;=~(1&amp;lt;&amp;lt;SERVOPIN);&lt;br /&gt;
	  else SERVOPORT|=(1&amp;lt;&amp;lt;SERVOPIN);&lt;br /&gt;
	if(count&amp;lt;2000)count++; // Die Impulse sollten alle 20ms gesendet werden! 6.2.11 mic&lt;br /&gt;
	  else count=0;&lt;br /&gt;
};&lt;br /&gt;
	&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Man muss zuvor DDRSERVO, SERVOPIN und SERVOPORT entsprechend definieren. Mit der Funktion &amp;quot;servo_init()&amp;quot; wird Timer2 initialisiert und der Servo-Pin als Ausgang gesetzt. &amp;quot;servopos&amp;quot; beinhaltet die aktuelle Dauer des Signals in 1/100ms. Vergessen Sie nicht, globale Interrupts vor dem Betrieb zu aktivieren!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Letzter Beitrag von &amp;quot;stochri&amp;quot; ist eine super Lösung in avr-gcc mit bis zu 10 Servos&lt;br /&gt;
&lt;br /&gt;
[[http://www.roboternetz.de/phpBB2/zeigebeitrag.php?t=14220&amp;amp;highlight=servo &amp;quot;Servo / avr-gcc&amp;quot; ]]&lt;br /&gt;
&lt;br /&gt;
==Servos hacken==&lt;br /&gt;
Häufig entledigt man sich auch des Potis und der Endlagenanschläge, um so einen Motor mit hohem Drehmoment und ohne Begrenzung des Drehwinkels zu erlangen. Das Poti wird dann durch einen 1:1-Spannungsteiler ersetzt. Dieser Vorgang wird auch als Servo-Hacking bezeichnet. Durch die Pulslänge kann die Winkelgeschwindigkeit des Servos beeinflusst werden.&lt;br /&gt;
&lt;br /&gt;
[[Bild:servo.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
Diese erste Methode des Servohackings nutzt die im Servo eingebaute Elektronik zur Motoransteuerung. Sie ist am Weitesten verbreitet. &lt;br /&gt;
&lt;br /&gt;
Bei der zweiten Methode wird die vorhandene Elektronik komplett entfernt und der Motor z.B. direkt mit Gleichstrom versorgt oder durch eine externe Elektronik angesteuert. Die beiden Varianten des Servohackings sowie ihre Vor- und Nachteile sind im folgenden Link beschrieben. [[http://www.roboternetz.de/phpBB2/viewtopic.php?p=516553#516553 &amp;quot;Servohacking. Technik, Vor- und Nachteile&amp;quot;]] Bei fast allen Servos muss zum Hacken ein mechanischer Anschlag entfernt werden. Er besteht aus einem Nocken an der Abtriebswelle und dem Gegenstück im Getriebegehäuse.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die wesentlichen elektrischen und elektronischen Teile und Baugruppen eines einfachen Servos:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Servo-hack2_mini.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
Beim Servohacking nach der Methode &amp;quot;zwei&amp;quot; wird die Elektronik komplett entfernt. Üblicherweise wird dabei das Poti ebenfalls entfernt oder von der Abtriebsachse abgekoppelt. Der Motor wird dann direkt an die Versorgung angeschlossen. [[Getriebemotoren_Ansteuerung#Und_nie_vergessen_Motoren_zu_entst.C3.B6ren|Bitte Entstörung nicht vergessen!]] Gleichwertig wie das Entfernen der kompletten Elektronik ist es, sie einfach zu umgehen und die Motorzuleitung direkt anzulöten. &lt;br /&gt;
&lt;br /&gt;
Der nach Methode 2 gehackte Servo wird dadurch zu einem Getriebemotor mit einem sehr kleinen, sehr schnell drehenden Motor und einem hoch übersetzten Getriebe.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Siehe auch==&lt;br /&gt;
*[[Getriebemotoren]]&lt;br /&gt;
*[[RC-Empfänger_auswerten]]&lt;br /&gt;
*[[Servoansteuerung]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Robotikeinstieg]]&lt;br /&gt;
[[Category:Praxis]]&lt;br /&gt;
[[Category:Grundlagen]]&lt;br /&gt;
[[Category:Motoren]]&lt;/div&gt;</summary>
		<author><name>Oberallgeier</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=Servos&amp;diff=17248</id>
		<title>Servos</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=Servos&amp;diff=17248"/>
				<updated>2011-02-09T10:50:37Z</updated>
		
		<summary type="html">&lt;p&gt;Oberallgeier: /* Ansteuerung: Signalform und Schaltung */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Servos (Servomotoren) sind kleine [[Getriebemotoren]], die häufig im Modellbau eingesetzt werden, doch auch in der Industrie sind sie anzutreffen. &lt;br /&gt;
Mithilfe eines Potentiometers, das an der Drehachse befestigt ist, wird intern die aktuelle Position bestimmt. Wegen ihrer einfachen Ansteuerung und Präzision eigenen sie sich hervorragend für mehr oder weniger kraftaufwändige Aufgaben in der Robotik. &lt;br /&gt;
&lt;br /&gt;
==Anschlussbelegung==&lt;br /&gt;
Handelsübliche Servomotoren besitzen 3 Anschlüsse:&lt;br /&gt;
# GND&lt;br /&gt;
# [[PWM]]&lt;br /&gt;
# +5V&lt;br /&gt;
&lt;br /&gt;
Wobei sich die Steckerbelegung von Hersteller zu Hersteller unterscheidet.&lt;br /&gt;
&lt;br /&gt;
[[Bild:servosteckerbelegung.gif|center]]&lt;br /&gt;
&lt;br /&gt;
==Ansteuerung: Signalform und Schaltung==&lt;br /&gt;
An die Signalleitung (siehe Steckerbelegung oben) wird ein pulsweitenmoduliertes Signal ([[PWM]]) angeschlossen. Die Repetition-Period (Periode) entspricht bei den meisten Modellen 20ms. Innerhalb/zu Beginn dieser 20ms wird ein Puls erwartet, der sich zwischen 1ms und 2ms bewegt, wobei diese Werte jeweils den Endlagen des Servos entsprechen. D.h. 1ms ist ganz links und 2ms ist ganz rechts (Einige Servos haben in diesem Wertebereich jedoch nicht die volle Bewegungsfreiheit ausgenutzt, die Werte, bei denen der Servo ganz links/rechts ist können auch unter 1ms/über 2ms liegen). 1,5ms würde demnach die Mittelstellung bedeuten. &lt;br /&gt;
Aufgrund der Pulslänge lässt sich also eine direkte Aussage über die Position des Servos treffen.&lt;br /&gt;
Der Motor sorgt dann intern mithilfe des Potis dafür, dass die Position gehalten wird.&lt;br /&gt;
&lt;br /&gt;
Die folgende Darstellung zeigt beispielhafte Zeit-Pegeldiagramme der PWM für Standardservos und als Beispiel die zugehörigen Stellungen des Servohorns. Die Schwenkwinkel und die maximale Auslenkung &amp;quot;links&amp;quot; bzw. &amp;quot;rechts&amp;quot; können je nach Servotyp variieren.&lt;br /&gt;
&lt;br /&gt;
[[Bild:Servo_pwm.gif|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Empfohlene Ansteuerung (Schaltungsvorschlag)&lt;br /&gt;
&lt;br /&gt;
Es wird dringend empfohlen zur Versorgung des Servos eine vom Mikrocontroller gesonderte Versorgungsspannung zu wählen. Dabei muss die GND-Leitung (i.A. die (-)-Leitung) von Controller, Servo und den Versorgungen leitend verbunden sein. Im untenstehenden Beispiel ist die Verschaltung eines Controllers ATMega168 mit einem Servo gezeigt. Der Servo kann natürlich auch an anderen Ausgängen des Controllers angeschlossen werden.&lt;br /&gt;
&lt;br /&gt;
Achtung, Fehlermöglichkeiten!&lt;br /&gt;
&lt;br /&gt;
Werden die GND-Pegel nicht verbunden, sind Störungen mit Sicherheit zu erwarten. &lt;br /&gt;
&lt;br /&gt;
Wird der Controller von der gleichen Spannungsquelle versorgt wie der Servo, so sind Störungen mit Sicherheit zu erwarten.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:Servoansteuerg_02.gif|center]]&lt;br /&gt;
&lt;br /&gt;
==Unterschied zwischen Digital- und Analogservos==&lt;br /&gt;
Der hauptsächliche Unterschied besteht darin, dass digitale Servos schneller und genauer sind und ihre Position besser halten können. Analoge Servos geben ihrem Motor alle 20ms ein Signal. Wirkt eine Kraft auf das Servo, braucht die Steuerelektronik bis zu 20ms, um dem Motor einen neuen Spannungsimpuls zu senden. Bei Digitalservos sendet die Steuerelektronik alle 400us einen Impuls an den Motor. Der Motor bekommt die Spannungsimpulse viel schneller. Um so öfter ein Motor Spannung bekommt, um so mehr Leistung kann er verrichten. Man sollte aber auch bedenken, dass dies unweigerlich einen höheren Stromverbrauch zur Folge hat, der besonders bei Modellfliegern nicht tolerierbar ist, da die Betriebszeit stark verkürzt wird.&lt;br /&gt;
&lt;br /&gt;
Die einfachste Art, einen Servo mit [[Bascom]] anzusteuern, ist folgender Befehl:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Config Servos = 2 , Servo1 = Portb.0 , Servo2 = Portb.1 , Reload = 10&lt;br /&gt;
&lt;br /&gt;
Config Portb = Output&lt;br /&gt;
&lt;br /&gt;
Enable Interrupts&lt;br /&gt;
&lt;br /&gt;
Servo(1) = 100&lt;br /&gt;
Servo(2) = 100&lt;br /&gt;
waitms 1000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'Wobei 100 die Mitte ist. 50 ist der linke bzw. rechte Anschlag und 150 der entsprechend andere. Es gibt aber auch elegantere Möglichkeiten die sich besonders empfehlen wenn z.B. eine höhere Auflösung gewünscht ist: [[Servoansteuerung]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Und in C sieht das ganze so aus:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#define SERVOPIN 7&lt;br /&gt;
#define SERVOPORT PORTD&lt;br /&gt;
#define DDRSERVO DDRD&lt;br /&gt;
&lt;br /&gt;
volatile unsigned char servopos;&lt;br /&gt;
&lt;br /&gt;
void servo_init()&lt;br /&gt;
{&lt;br /&gt;
	TIMSK|=(1&amp;lt;&amp;lt;OCIE2);&lt;br /&gt;
	TCCR2 |= (1&amp;lt;&amp;lt;WGM21) | (1&amp;lt;&amp;lt;CS20);	//Prescale=1, CTC mode&lt;br /&gt;
	OCR2 = F_CPU/100000;			//alle 10µS ein IRQ&lt;br /&gt;
	DDRSERVO|=(1&amp;lt;&amp;lt;SERVOPIN);&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
ISR(TIMER2_COMP_vect)&lt;br /&gt;
{&lt;br /&gt;
	static int count;&lt;br /&gt;
	if(count&amp;gt;servopos)SERVOPORT&amp;amp;=~(1&amp;lt;&amp;lt;SERVOPIN);&lt;br /&gt;
	  else SERVOPORT|=(1&amp;lt;&amp;lt;SERVOPIN);&lt;br /&gt;
	if(count&amp;lt;2000)count++; // Die Impulse sollten alle 20ms gesendet werden! 6.2.11 mic&lt;br /&gt;
	  else count=0;&lt;br /&gt;
};&lt;br /&gt;
	&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Man muss zuvor DDRSERVO, SERVOPIN und SERVOPORT entsprechend definieren. Mit der Funktion &amp;quot;servo_init()&amp;quot; wird Timer2 initialisiert und der Servo-Pin als Ausgang gesetzt. &amp;quot;servopos&amp;quot; beinhaltet die aktuelle Dauer des Signals in 1/100ms. Vergessen Sie nicht, globale Interrupts vor dem Betrieb zu aktivieren!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Letzter Beitrag von &amp;quot;stochri&amp;quot; ist eine super Lösung in avr-gcc mit bis zu 10 Servos&lt;br /&gt;
&lt;br /&gt;
[[http://www.roboternetz.de/phpBB2/zeigebeitrag.php?t=14220&amp;amp;highlight=servo &amp;quot;Servo / avr-gcc&amp;quot; ]]&lt;br /&gt;
&lt;br /&gt;
==Servos hacken==&lt;br /&gt;
Häufig entledigt man sich auch des Potis und der Endlagenanschläge, um so einen Motor mit hohem Drehmoment und ohne Begrenzung des Drehwinkels zu erlangen. Das Poti wird dann durch einen 1:1-Spannungsteiler ersetzt. Dieser Vorgang wird auch als Servo-Hacking bezeichnet. Durch die Pulslänge kann die Winkelgeschwindigkeit des Servos beeinflusst werden.&lt;br /&gt;
&lt;br /&gt;
[[Bild:servo.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
Diese erste Methode des Servohackings nutzt die im Servo eingebaute Elektronik zur Motoransteuerung. Sie ist am Weitesten verbreitet. &lt;br /&gt;
&lt;br /&gt;
Bei der zweiten Methode wird die vorhandene Elektronik komplett entfernt und der Motor z.B. direkt mit Gleichstrom versorgt oder durch eine externe Elektronik angesteuert. Die beiden Varianten des Servohackings sowie ihre Vor- und Nachteile sind im folgenden Link beschrieben. [[http://www.roboternetz.de/phpBB2/viewtopic.php?p=516553#516553 &amp;quot;Servohacking. Technik, Vor- und Nachteile&amp;quot;]] Bei fast allen Servos muss zum Hacken ein mechanischer Anschlag entfernt werden. Er besteht aus einem Nocken an der Abtriebswelle und dem Gegenstück im Getriebegehäuse.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die wesentlichen elektrischen und elektronischen Teile und Baugruppen eines einfachen Servos:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Servo-hack2_mini.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
Beim Servohacking nach der Methode &amp;quot;zwei&amp;quot; wird die Elektronik komplett entfernt. Üblicherweise wird dabei das Poti ebenfalls entfernt oder von der Abtriebsachse abgekoppelt. Der Motor wird dann direkt an die Versorgung angeschlossen. [[Getriebemotoren_Ansteuerung#Und_nie_vergessen_Motoren_zu_entst.C3.B6ren|Bitte Entstörung nicht vergessen!]] Gleichwertig wie das Entfernen der kompletten Elektronik ist es, sie einfach zu umgehen und die Motorzuleitung direkt anzulöten. &lt;br /&gt;
&lt;br /&gt;
Der nach Methode 2 gehackte Servo wird dadurch zu einem Getriebemotor mit einem sehr kleinen, sehr schnell drehenden Motor und einem hoch übersetzten Getriebe.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Siehe auch==&lt;br /&gt;
*[[Getriebemotoren]]&lt;br /&gt;
*[[RC-Empfänger_auswerten]]&lt;br /&gt;
*[[Servoansteuerung]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Robotikeinstieg]]&lt;br /&gt;
[[Category:Praxis]]&lt;br /&gt;
[[Category:Grundlagen]]&lt;br /&gt;
[[Category:Motoren]]&lt;/div&gt;</summary>
		<author><name>Oberallgeier</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=Servos&amp;diff=17247</id>
		<title>Servos</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=Servos&amp;diff=17247"/>
				<updated>2011-02-09T10:50:21Z</updated>
		
		<summary type="html">&lt;p&gt;Oberallgeier: /* Anschlussbelegung */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Servos (Servomotoren) sind kleine [[Getriebemotoren]], die häufig im Modellbau eingesetzt werden, doch auch in der Industrie sind sie anzutreffen. &lt;br /&gt;
Mithilfe eines Potentiometers, das an der Drehachse befestigt ist, wird intern die aktuelle Position bestimmt. Wegen ihrer einfachen Ansteuerung und Präzision eigenen sie sich hervorragend für mehr oder weniger kraftaufwändige Aufgaben in der Robotik. &lt;br /&gt;
&lt;br /&gt;
==Anschlussbelegung==&lt;br /&gt;
Handelsübliche Servomotoren besitzen 3 Anschlüsse:&lt;br /&gt;
# GND&lt;br /&gt;
# [[PWM]] bzw. Signal&lt;br /&gt;
# +5V&lt;br /&gt;
&lt;br /&gt;
Wobei sich die Steckerbelegung von Hersteller zu Hersteller unterscheidet.&lt;br /&gt;
&lt;br /&gt;
[[Bild:servosteckerbelegung.gif|center]]&lt;br /&gt;
&lt;br /&gt;
==Ansteuerung: Signalform und Schaltung==&lt;br /&gt;
An die PWM-Leitung wird ein pulsweitenmoduliertes Signal angeschlossen. Die Repetition-Period (Periode) entspricht bei den meisten Modellen 20ms. Innerhalb/zu Beginn dieser 20ms wird ein Puls erwartet, der sich zwischen 1ms und 2ms bewegt, wobei diese Werte jeweils den Endlagen des Servos entsprechen. D.h. 1ms ist ganz links und 2ms ist ganz rechts (Einige Servos haben in diesem Wertebereich jedoch nicht die volle Bewegungsfreiheit ausgenutzt, die Werte, bei denen der Servo ganz links/rechts ist können auch unter 1ms/über 2ms liegen). 1,5ms würde demnach die Mittelstellung bedeuten. &lt;br /&gt;
Aufgrund der Pulslänge lässt sich also eine direkte Aussage über die Position des Servos treffen.&lt;br /&gt;
Der Motor sorgt dann intern mithilfe des Potis dafür, dass die Position gehalten wird.&lt;br /&gt;
&lt;br /&gt;
Die folgende Darstellung zeigt beispielhafte Zeit-Pegeldiagramme der PWM für Standardservos und als Beispiel die zugehörigen Stellungen des Servohorns. Die Schwenkwinkel und die maximale Auslenkung &amp;quot;links&amp;quot; bzw. &amp;quot;rechts&amp;quot; können je nach Servotyp variieren.&lt;br /&gt;
&lt;br /&gt;
[[Bild:Servo_pwm.gif|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Empfohlene Ansteuerung (Schaltungsvorschlag)&lt;br /&gt;
&lt;br /&gt;
Es wird dringend empfohlen zur Versorgung des Servos eine vom Mikrocontroller gesonderte Versorgungsspannung zu wählen. Dabei muss die GND-Leitung (i.A. die (-)-Leitung) von Controller, Servo und den Versorgungen leitend verbunden sein. Im untenstehenden Beispiel ist die Verschaltung eines Controllers ATMega168 mit einem Servo gezeigt. Der Servo kann natürlich auch an anderen Ausgängen des Controllers angeschlossen werden.&lt;br /&gt;
&lt;br /&gt;
Achtung, Fehlermöglichkeiten!&lt;br /&gt;
&lt;br /&gt;
Werden die GND-Pegel nicht verbunden, sind Störungen mit Sicherheit zu erwarten. &lt;br /&gt;
&lt;br /&gt;
Wird der Controller von der gleichen Spannungsquelle versorgt wie der Servo, so sind Störungen mit Sicherheit zu erwarten.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:Servoansteuerg_02.gif|center]]&lt;br /&gt;
&lt;br /&gt;
==Unterschied zwischen Digital- und Analogservos==&lt;br /&gt;
Der hauptsächliche Unterschied besteht darin, dass digitale Servos schneller und genauer sind und ihre Position besser halten können. Analoge Servos geben ihrem Motor alle 20ms ein Signal. Wirkt eine Kraft auf das Servo, braucht die Steuerelektronik bis zu 20ms, um dem Motor einen neuen Spannungsimpuls zu senden. Bei Digitalservos sendet die Steuerelektronik alle 400us einen Impuls an den Motor. Der Motor bekommt die Spannungsimpulse viel schneller. Um so öfter ein Motor Spannung bekommt, um so mehr Leistung kann er verrichten. Man sollte aber auch bedenken, dass dies unweigerlich einen höheren Stromverbrauch zur Folge hat, der besonders bei Modellfliegern nicht tolerierbar ist, da die Betriebszeit stark verkürzt wird.&lt;br /&gt;
&lt;br /&gt;
Die einfachste Art, einen Servo mit [[Bascom]] anzusteuern, ist folgender Befehl:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Config Servos = 2 , Servo1 = Portb.0 , Servo2 = Portb.1 , Reload = 10&lt;br /&gt;
&lt;br /&gt;
Config Portb = Output&lt;br /&gt;
&lt;br /&gt;
Enable Interrupts&lt;br /&gt;
&lt;br /&gt;
Servo(1) = 100&lt;br /&gt;
Servo(2) = 100&lt;br /&gt;
waitms 1000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'Wobei 100 die Mitte ist. 50 ist der linke bzw. rechte Anschlag und 150 der entsprechend andere. Es gibt aber auch elegantere Möglichkeiten die sich besonders empfehlen wenn z.B. eine höhere Auflösung gewünscht ist: [[Servoansteuerung]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Und in C sieht das ganze so aus:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#define SERVOPIN 7&lt;br /&gt;
#define SERVOPORT PORTD&lt;br /&gt;
#define DDRSERVO DDRD&lt;br /&gt;
&lt;br /&gt;
volatile unsigned char servopos;&lt;br /&gt;
&lt;br /&gt;
void servo_init()&lt;br /&gt;
{&lt;br /&gt;
	TIMSK|=(1&amp;lt;&amp;lt;OCIE2);&lt;br /&gt;
	TCCR2 |= (1&amp;lt;&amp;lt;WGM21) | (1&amp;lt;&amp;lt;CS20);	//Prescale=1, CTC mode&lt;br /&gt;
	OCR2 = F_CPU/100000;			//alle 10µS ein IRQ&lt;br /&gt;
	DDRSERVO|=(1&amp;lt;&amp;lt;SERVOPIN);&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
ISR(TIMER2_COMP_vect)&lt;br /&gt;
{&lt;br /&gt;
	static int count;&lt;br /&gt;
	if(count&amp;gt;servopos)SERVOPORT&amp;amp;=~(1&amp;lt;&amp;lt;SERVOPIN);&lt;br /&gt;
	  else SERVOPORT|=(1&amp;lt;&amp;lt;SERVOPIN);&lt;br /&gt;
	if(count&amp;lt;2000)count++; // Die Impulse sollten alle 20ms gesendet werden! 6.2.11 mic&lt;br /&gt;
	  else count=0;&lt;br /&gt;
};&lt;br /&gt;
	&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Man muss zuvor DDRSERVO, SERVOPIN und SERVOPORT entsprechend definieren. Mit der Funktion &amp;quot;servo_init()&amp;quot; wird Timer2 initialisiert und der Servo-Pin als Ausgang gesetzt. &amp;quot;servopos&amp;quot; beinhaltet die aktuelle Dauer des Signals in 1/100ms. Vergessen Sie nicht, globale Interrupts vor dem Betrieb zu aktivieren!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Letzter Beitrag von &amp;quot;stochri&amp;quot; ist eine super Lösung in avr-gcc mit bis zu 10 Servos&lt;br /&gt;
&lt;br /&gt;
[[http://www.roboternetz.de/phpBB2/zeigebeitrag.php?t=14220&amp;amp;highlight=servo &amp;quot;Servo / avr-gcc&amp;quot; ]]&lt;br /&gt;
&lt;br /&gt;
==Servos hacken==&lt;br /&gt;
Häufig entledigt man sich auch des Potis und der Endlagenanschläge, um so einen Motor mit hohem Drehmoment und ohne Begrenzung des Drehwinkels zu erlangen. Das Poti wird dann durch einen 1:1-Spannungsteiler ersetzt. Dieser Vorgang wird auch als Servo-Hacking bezeichnet. Durch die Pulslänge kann die Winkelgeschwindigkeit des Servos beeinflusst werden.&lt;br /&gt;
&lt;br /&gt;
[[Bild:servo.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
Diese erste Methode des Servohackings nutzt die im Servo eingebaute Elektronik zur Motoransteuerung. Sie ist am Weitesten verbreitet. &lt;br /&gt;
&lt;br /&gt;
Bei der zweiten Methode wird die vorhandene Elektronik komplett entfernt und der Motor z.B. direkt mit Gleichstrom versorgt oder durch eine externe Elektronik angesteuert. Die beiden Varianten des Servohackings sowie ihre Vor- und Nachteile sind im folgenden Link beschrieben. [[http://www.roboternetz.de/phpBB2/viewtopic.php?p=516553#516553 &amp;quot;Servohacking. Technik, Vor- und Nachteile&amp;quot;]] Bei fast allen Servos muss zum Hacken ein mechanischer Anschlag entfernt werden. Er besteht aus einem Nocken an der Abtriebswelle und dem Gegenstück im Getriebegehäuse.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die wesentlichen elektrischen und elektronischen Teile und Baugruppen eines einfachen Servos:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Servo-hack2_mini.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
Beim Servohacking nach der Methode &amp;quot;zwei&amp;quot; wird die Elektronik komplett entfernt. Üblicherweise wird dabei das Poti ebenfalls entfernt oder von der Abtriebsachse abgekoppelt. Der Motor wird dann direkt an die Versorgung angeschlossen. [[Getriebemotoren_Ansteuerung#Und_nie_vergessen_Motoren_zu_entst.C3.B6ren|Bitte Entstörung nicht vergessen!]] Gleichwertig wie das Entfernen der kompletten Elektronik ist es, sie einfach zu umgehen und die Motorzuleitung direkt anzulöten. &lt;br /&gt;
&lt;br /&gt;
Der nach Methode 2 gehackte Servo wird dadurch zu einem Getriebemotor mit einem sehr kleinen, sehr schnell drehenden Motor und einem hoch übersetzten Getriebe.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Siehe auch==&lt;br /&gt;
*[[Getriebemotoren]]&lt;br /&gt;
*[[RC-Empfänger_auswerten]]&lt;br /&gt;
*[[Servoansteuerung]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Robotikeinstieg]]&lt;br /&gt;
[[Category:Praxis]]&lt;br /&gt;
[[Category:Grundlagen]]&lt;br /&gt;
[[Category:Motoren]]&lt;/div&gt;</summary>
		<author><name>Oberallgeier</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=Servos&amp;diff=17246</id>
		<title>Servos</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=Servos&amp;diff=17246"/>
				<updated>2011-02-09T10:20:31Z</updated>
		
		<summary type="html">&lt;p&gt;Oberallgeier: /* Ansteuerung: Signalform und Schaltung */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Servos (Servomotoren) sind kleine [[Getriebemotoren]], die häufig im Modellbau eingesetzt werden, doch auch in der Industrie sind sie anzutreffen. &lt;br /&gt;
Mithilfe eines Potentiometers, das an der Drehachse befestigt ist, wird intern die aktuelle Position bestimmt. Wegen ihrer einfachen Ansteuerung und Präzision eigenen sie sich hervorragend für mehr oder weniger kraftaufwändige Aufgaben in der Robotik. &lt;br /&gt;
&lt;br /&gt;
==Anschlussbelegung==&lt;br /&gt;
Handelsübliche Servomotoren besitzen 3 Anschlüsse:&lt;br /&gt;
# GND&lt;br /&gt;
# [[PWM]]&lt;br /&gt;
# +5V&lt;br /&gt;
&lt;br /&gt;
Wobei sich die Steckerbelegung von Hersteller zu Hersteller unterscheidet.&lt;br /&gt;
&lt;br /&gt;
[[Bild:servosteckerbelegung.gif|center]]&lt;br /&gt;
&lt;br /&gt;
==Ansteuerung: Signalform und Schaltung==&lt;br /&gt;
An die PWM-Leitung wird ein pulsweitenmoduliertes Signal angeschlossen. Die Repetition-Period (Periode) entspricht bei den meisten Modellen 20ms. Innerhalb/zu Beginn dieser 20ms wird ein Puls erwartet, der sich zwischen 1ms und 2ms bewegt, wobei diese Werte jeweils den Endlagen des Servos entsprechen. D.h. 1ms ist ganz links und 2ms ist ganz rechts (Einige Servos haben in diesem Wertebereich jedoch nicht die volle Bewegungsfreiheit ausgenutzt, die Werte, bei denen der Servo ganz links/rechts ist können auch unter 1ms/über 2ms liegen). 1,5ms würde demnach die Mittelstellung bedeuten. &lt;br /&gt;
Aufgrund der Pulslänge lässt sich also eine direkte Aussage über die Position des Servos treffen.&lt;br /&gt;
Der Motor sorgt dann intern mithilfe des Potis dafür, dass die Position gehalten wird.&lt;br /&gt;
&lt;br /&gt;
Die folgende Darstellung zeigt beispielhafte Zeit-Pegeldiagramme der PWM für Standardservos und als Beispiel die zugehörigen Stellungen des Servohorns. Die Schwenkwinkel und die maximale Auslenkung &amp;quot;links&amp;quot; bzw. &amp;quot;rechts&amp;quot; können je nach Servotyp variieren.&lt;br /&gt;
&lt;br /&gt;
[[Bild:Servo_pwm.gif|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Empfohlene Ansteuerung (Schaltungsvorschlag)&lt;br /&gt;
&lt;br /&gt;
Es wird dringend empfohlen zur Versorgung des Servos eine vom Mikrocontroller gesonderte Versorgungsspannung zu wählen. Dabei muss die GND-Leitung (i.A. die (-)-Leitung) von Controller, Servo und den Versorgungen leitend verbunden sein. Im untenstehenden Beispiel ist die Verschaltung eines Controllers ATMega168 mit einem Servo gezeigt. Der Servo kann natürlich auch an anderen Ausgängen des Controllers angeschlossen werden.&lt;br /&gt;
&lt;br /&gt;
Achtung, Fehlermöglichkeiten!&lt;br /&gt;
&lt;br /&gt;
Werden die GND-Pegel nicht verbunden, sind Störungen mit Sicherheit zu erwarten. &lt;br /&gt;
&lt;br /&gt;
Wird der Controller von der gleichen Spannungsquelle versorgt wie der Servo, so sind Störungen mit Sicherheit zu erwarten.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:Servoansteuerg_02.gif|center]]&lt;br /&gt;
&lt;br /&gt;
==Unterschied zwischen Digital- und Analogservos==&lt;br /&gt;
Der hauptsächliche Unterschied besteht darin, dass digitale Servos schneller und genauer sind und ihre Position besser halten können. Analoge Servos geben ihrem Motor alle 20ms ein Signal. Wirkt eine Kraft auf das Servo, braucht die Steuerelektronik bis zu 20ms, um dem Motor einen neuen Spannungsimpuls zu senden. Bei Digitalservos sendet die Steuerelektronik alle 400us einen Impuls an den Motor. Der Motor bekommt die Spannungsimpulse viel schneller. Um so öfter ein Motor Spannung bekommt, um so mehr Leistung kann er verrichten. Man sollte aber auch bedenken, dass dies unweigerlich einen höheren Stromverbrauch zur Folge hat, der besonders bei Modellfliegern nicht tolerierbar ist, da die Betriebszeit stark verkürzt wird.&lt;br /&gt;
&lt;br /&gt;
Die einfachste Art, einen Servo mit [[Bascom]] anzusteuern, ist folgender Befehl:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Config Servos = 2 , Servo1 = Portb.0 , Servo2 = Portb.1 , Reload = 10&lt;br /&gt;
&lt;br /&gt;
Config Portb = Output&lt;br /&gt;
&lt;br /&gt;
Enable Interrupts&lt;br /&gt;
&lt;br /&gt;
Servo(1) = 100&lt;br /&gt;
Servo(2) = 100&lt;br /&gt;
waitms 1000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'Wobei 100 die Mitte ist. 50 ist der linke bzw. rechte Anschlag und 150 der entsprechend andere. Es gibt aber auch elegantere Möglichkeiten die sich besonders empfehlen wenn z.B. eine höhere Auflösung gewünscht ist: [[Servoansteuerung]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Und in C sieht das ganze so aus:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#define SERVOPIN 7&lt;br /&gt;
#define SERVOPORT PORTD&lt;br /&gt;
#define DDRSERVO DDRD&lt;br /&gt;
&lt;br /&gt;
volatile unsigned char servopos;&lt;br /&gt;
&lt;br /&gt;
void servo_init()&lt;br /&gt;
{&lt;br /&gt;
	TIMSK|=(1&amp;lt;&amp;lt;OCIE2);&lt;br /&gt;
	TCCR2 |= (1&amp;lt;&amp;lt;WGM21) | (1&amp;lt;&amp;lt;CS20);	//Prescale=1, CTC mode&lt;br /&gt;
	OCR2 = F_CPU/100000;			//alle 10µS ein IRQ&lt;br /&gt;
	DDRSERVO|=(1&amp;lt;&amp;lt;SERVOPIN);&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
ISR(TIMER2_COMP_vect)&lt;br /&gt;
{&lt;br /&gt;
	static int count;&lt;br /&gt;
	if(count&amp;gt;servopos)SERVOPORT&amp;amp;=~(1&amp;lt;&amp;lt;SERVOPIN);&lt;br /&gt;
	  else SERVOPORT|=(1&amp;lt;&amp;lt;SERVOPIN);&lt;br /&gt;
	if(count&amp;lt;2000)count++; // Die Impulse sollten alle 20ms gesendet werden! 6.2.11 mic&lt;br /&gt;
	  else count=0;&lt;br /&gt;
};&lt;br /&gt;
	&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Man muss zuvor DDRSERVO, SERVOPIN und SERVOPORT entsprechend definieren. Mit der Funktion &amp;quot;servo_init()&amp;quot; wird Timer2 initialisiert und der Servo-Pin als Ausgang gesetzt. &amp;quot;servopos&amp;quot; beinhaltet die aktuelle Dauer des Signals in 1/100ms. Vergessen Sie nicht, globale Interrupts vor dem Betrieb zu aktivieren!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Letzter Beitrag von &amp;quot;stochri&amp;quot; ist eine super Lösung in avr-gcc mit bis zu 10 Servos&lt;br /&gt;
&lt;br /&gt;
[[http://www.roboternetz.de/phpBB2/zeigebeitrag.php?t=14220&amp;amp;highlight=servo &amp;quot;Servo / avr-gcc&amp;quot; ]]&lt;br /&gt;
&lt;br /&gt;
==Servos hacken==&lt;br /&gt;
Häufig entledigt man sich auch des Potis und der Endlagenanschläge, um so einen Motor mit hohem Drehmoment und ohne Begrenzung des Drehwinkels zu erlangen. Das Poti wird dann durch einen 1:1-Spannungsteiler ersetzt. Dieser Vorgang wird auch als Servo-Hacking bezeichnet. Durch die Pulslänge kann die Winkelgeschwindigkeit des Servos beeinflusst werden.&lt;br /&gt;
&lt;br /&gt;
[[Bild:servo.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
Diese erste Methode des Servohackings nutzt die im Servo eingebaute Elektronik zur Motoransteuerung. Sie ist am Weitesten verbreitet. &lt;br /&gt;
&lt;br /&gt;
Bei der zweiten Methode wird die vorhandene Elektronik komplett entfernt und der Motor z.B. direkt mit Gleichstrom versorgt oder durch eine externe Elektronik angesteuert. Die beiden Varianten des Servohackings sowie ihre Vor- und Nachteile sind im folgenden Link beschrieben. [[http://www.roboternetz.de/phpBB2/viewtopic.php?p=516553#516553 &amp;quot;Servohacking. Technik, Vor- und Nachteile&amp;quot;]] Bei fast allen Servos muss zum Hacken ein mechanischer Anschlag entfernt werden. Er besteht aus einem Nocken an der Abtriebswelle und dem Gegenstück im Getriebegehäuse.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die wesentlichen elektrischen und elektronischen Teile und Baugruppen eines einfachen Servos:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Servo-hack2_mini.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
Beim Servohacking nach der Methode &amp;quot;zwei&amp;quot; wird die Elektronik komplett entfernt. Üblicherweise wird dabei das Poti ebenfalls entfernt oder von der Abtriebsachse abgekoppelt. Der Motor wird dann direkt an die Versorgung angeschlossen. [[Getriebemotoren_Ansteuerung#Und_nie_vergessen_Motoren_zu_entst.C3.B6ren|Bitte Entstörung nicht vergessen!]] Gleichwertig wie das Entfernen der kompletten Elektronik ist es, sie einfach zu umgehen und die Motorzuleitung direkt anzulöten. &lt;br /&gt;
&lt;br /&gt;
Der nach Methode 2 gehackte Servo wird dadurch zu einem Getriebemotor mit einem sehr kleinen, sehr schnell drehenden Motor und einem hoch übersetzten Getriebe.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Siehe auch==&lt;br /&gt;
*[[Getriebemotoren]]&lt;br /&gt;
*[[RC-Empfänger_auswerten]]&lt;br /&gt;
*[[Servoansteuerung]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Robotikeinstieg]]&lt;br /&gt;
[[Category:Praxis]]&lt;br /&gt;
[[Category:Grundlagen]]&lt;br /&gt;
[[Category:Motoren]]&lt;/div&gt;</summary>
		<author><name>Oberallgeier</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=Servos&amp;diff=17245</id>
		<title>Servos</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=Servos&amp;diff=17245"/>
				<updated>2011-02-09T10:19:49Z</updated>
		
		<summary type="html">&lt;p&gt;Oberallgeier: /* Ansteuerung: Signalform und Schaltung */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Servos (Servomotoren) sind kleine [[Getriebemotoren]], die häufig im Modellbau eingesetzt werden, doch auch in der Industrie sind sie anzutreffen. &lt;br /&gt;
Mithilfe eines Potentiometers, das an der Drehachse befestigt ist, wird intern die aktuelle Position bestimmt. Wegen ihrer einfachen Ansteuerung und Präzision eigenen sie sich hervorragend für mehr oder weniger kraftaufwändige Aufgaben in der Robotik. &lt;br /&gt;
&lt;br /&gt;
==Anschlussbelegung==&lt;br /&gt;
Handelsübliche Servomotoren besitzen 3 Anschlüsse:&lt;br /&gt;
# GND&lt;br /&gt;
# [[PWM]]&lt;br /&gt;
# +5V&lt;br /&gt;
&lt;br /&gt;
Wobei sich die Steckerbelegung von Hersteller zu Hersteller unterscheidet.&lt;br /&gt;
&lt;br /&gt;
[[Bild:servosteckerbelegung.gif|center]]&lt;br /&gt;
&lt;br /&gt;
==Ansteuerung: Signalform und Schaltung==&lt;br /&gt;
An die PWM-Leitung wird ein pulsweitenmoduliertes Signal angeschlossen. Die Repetition-Period (Periode) entspricht bei den meisten Modellen 20ms. Innerhalb/zu Beginn dieser 20ms wird ein Puls erwartet, der sich zwischen 1ms und 2ms bewegt, wobei diese Werte jeweils den Endlagen des Servos entsprechen. D.h. 1ms ist ganz links und 2ms ist ganz rechts (Einige Servos haben in diesem Wertebereich jedoch nicht die volle Bewegungsfreiheit ausgenutzt, die Werte, bei denen der Servo ganz links/rechts ist können auch unter 1ms/über 2ms liegen). 1,5ms würde demnach die Mittelstellung bedeuten. &lt;br /&gt;
Aufgrund der Pulslänge lässt sich also eine direkte Aussage über die Position des Servos treffen.&lt;br /&gt;
Der Motor sorgt dann intern mithilfe des Potis dafür, dass die Position gehalten wird.&lt;br /&gt;
&lt;br /&gt;
Die folgende Darstellung zeigt beispielhafte Zeit-Pegeldiagramme der PWM für Standardservos und als Beispiel die zugehörigen Stellungen des Servohorns. Die Schwenkwinkel und die maximale Auslenkung &amp;quot;links&amp;quot; bzw. &amp;quot;rechts&amp;quot; können je nach Servotyp variieren.&lt;br /&gt;
&lt;br /&gt;
[[Bild:Servo_pwm.gif|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Empfohlene Ansteuerung (Schaltungsvorschlag)&lt;br /&gt;
&lt;br /&gt;
Es wird dringend empfohlen zur Versorgung des Servos eine vom Mikrocontroller gesonderte Versorgungsspannung zu wählen. Dabei muss die GND-Leitung (i.A. die (-)-Leitung) von Controller, Servo und den Versorgungen leitend verbunden sein. Im untenstehenden Beispiel ist die Verschaltung eines Controllers ATMega168 mit einem Servo gezeigt. Der Servo kann natürlich auch an anderen Ausgängen des Controllers angeschlossen werden.&lt;br /&gt;
&lt;br /&gt;
Achtung, Fehlermöglichkeiten!&lt;br /&gt;
&lt;br /&gt;
Werden die GND-Pegel nicht verbunden, sind Störungen mit Sicherheit zu erwarten. &lt;br /&gt;
&lt;br /&gt;
Wird der Controller von der gleichen Spannungsquelle versorgt wie der Servo, so sind Störungen mit Sicherheit zu erwarten.&lt;br /&gt;
&lt;br /&gt;
[[Bild:Servoansteuerg_02.gif|center]]&lt;br /&gt;
&lt;br /&gt;
==Unterschied zwischen Digital- und Analogservos==&lt;br /&gt;
Der hauptsächliche Unterschied besteht darin, dass digitale Servos schneller und genauer sind und ihre Position besser halten können. Analoge Servos geben ihrem Motor alle 20ms ein Signal. Wirkt eine Kraft auf das Servo, braucht die Steuerelektronik bis zu 20ms, um dem Motor einen neuen Spannungsimpuls zu senden. Bei Digitalservos sendet die Steuerelektronik alle 400us einen Impuls an den Motor. Der Motor bekommt die Spannungsimpulse viel schneller. Um so öfter ein Motor Spannung bekommt, um so mehr Leistung kann er verrichten. Man sollte aber auch bedenken, dass dies unweigerlich einen höheren Stromverbrauch zur Folge hat, der besonders bei Modellfliegern nicht tolerierbar ist, da die Betriebszeit stark verkürzt wird.&lt;br /&gt;
&lt;br /&gt;
Die einfachste Art, einen Servo mit [[Bascom]] anzusteuern, ist folgender Befehl:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Config Servos = 2 , Servo1 = Portb.0 , Servo2 = Portb.1 , Reload = 10&lt;br /&gt;
&lt;br /&gt;
Config Portb = Output&lt;br /&gt;
&lt;br /&gt;
Enable Interrupts&lt;br /&gt;
&lt;br /&gt;
Servo(1) = 100&lt;br /&gt;
Servo(2) = 100&lt;br /&gt;
waitms 1000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'Wobei 100 die Mitte ist. 50 ist der linke bzw. rechte Anschlag und 150 der entsprechend andere. Es gibt aber auch elegantere Möglichkeiten die sich besonders empfehlen wenn z.B. eine höhere Auflösung gewünscht ist: [[Servoansteuerung]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Und in C sieht das ganze so aus:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#define SERVOPIN 7&lt;br /&gt;
#define SERVOPORT PORTD&lt;br /&gt;
#define DDRSERVO DDRD&lt;br /&gt;
&lt;br /&gt;
volatile unsigned char servopos;&lt;br /&gt;
&lt;br /&gt;
void servo_init()&lt;br /&gt;
{&lt;br /&gt;
	TIMSK|=(1&amp;lt;&amp;lt;OCIE2);&lt;br /&gt;
	TCCR2 |= (1&amp;lt;&amp;lt;WGM21) | (1&amp;lt;&amp;lt;CS20);	//Prescale=1, CTC mode&lt;br /&gt;
	OCR2 = F_CPU/100000;			//alle 10µS ein IRQ&lt;br /&gt;
	DDRSERVO|=(1&amp;lt;&amp;lt;SERVOPIN);&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
ISR(TIMER2_COMP_vect)&lt;br /&gt;
{&lt;br /&gt;
	static int count;&lt;br /&gt;
	if(count&amp;gt;servopos)SERVOPORT&amp;amp;=~(1&amp;lt;&amp;lt;SERVOPIN);&lt;br /&gt;
	  else SERVOPORT|=(1&amp;lt;&amp;lt;SERVOPIN);&lt;br /&gt;
	if(count&amp;lt;2000)count++; // Die Impulse sollten alle 20ms gesendet werden! 6.2.11 mic&lt;br /&gt;
	  else count=0;&lt;br /&gt;
};&lt;br /&gt;
	&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Man muss zuvor DDRSERVO, SERVOPIN und SERVOPORT entsprechend definieren. Mit der Funktion &amp;quot;servo_init()&amp;quot; wird Timer2 initialisiert und der Servo-Pin als Ausgang gesetzt. &amp;quot;servopos&amp;quot; beinhaltet die aktuelle Dauer des Signals in 1/100ms. Vergessen Sie nicht, globale Interrupts vor dem Betrieb zu aktivieren!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Letzter Beitrag von &amp;quot;stochri&amp;quot; ist eine super Lösung in avr-gcc mit bis zu 10 Servos&lt;br /&gt;
&lt;br /&gt;
[[http://www.roboternetz.de/phpBB2/zeigebeitrag.php?t=14220&amp;amp;highlight=servo &amp;quot;Servo / avr-gcc&amp;quot; ]]&lt;br /&gt;
&lt;br /&gt;
==Servos hacken==&lt;br /&gt;
Häufig entledigt man sich auch des Potis und der Endlagenanschläge, um so einen Motor mit hohem Drehmoment und ohne Begrenzung des Drehwinkels zu erlangen. Das Poti wird dann durch einen 1:1-Spannungsteiler ersetzt. Dieser Vorgang wird auch als Servo-Hacking bezeichnet. Durch die Pulslänge kann die Winkelgeschwindigkeit des Servos beeinflusst werden.&lt;br /&gt;
&lt;br /&gt;
[[Bild:servo.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
Diese erste Methode des Servohackings nutzt die im Servo eingebaute Elektronik zur Motoransteuerung. Sie ist am Weitesten verbreitet. &lt;br /&gt;
&lt;br /&gt;
Bei der zweiten Methode wird die vorhandene Elektronik komplett entfernt und der Motor z.B. direkt mit Gleichstrom versorgt oder durch eine externe Elektronik angesteuert. Die beiden Varianten des Servohackings sowie ihre Vor- und Nachteile sind im folgenden Link beschrieben. [[http://www.roboternetz.de/phpBB2/viewtopic.php?p=516553#516553 &amp;quot;Servohacking. Technik, Vor- und Nachteile&amp;quot;]] Bei fast allen Servos muss zum Hacken ein mechanischer Anschlag entfernt werden. Er besteht aus einem Nocken an der Abtriebswelle und dem Gegenstück im Getriebegehäuse.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die wesentlichen elektrischen und elektronischen Teile und Baugruppen eines einfachen Servos:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Servo-hack2_mini.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
Beim Servohacking nach der Methode &amp;quot;zwei&amp;quot; wird die Elektronik komplett entfernt. Üblicherweise wird dabei das Poti ebenfalls entfernt oder von der Abtriebsachse abgekoppelt. Der Motor wird dann direkt an die Versorgung angeschlossen. [[Getriebemotoren_Ansteuerung#Und_nie_vergessen_Motoren_zu_entst.C3.B6ren|Bitte Entstörung nicht vergessen!]] Gleichwertig wie das Entfernen der kompletten Elektronik ist es, sie einfach zu umgehen und die Motorzuleitung direkt anzulöten. &lt;br /&gt;
&lt;br /&gt;
Der nach Methode 2 gehackte Servo wird dadurch zu einem Getriebemotor mit einem sehr kleinen, sehr schnell drehenden Motor und einem hoch übersetzten Getriebe.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Siehe auch==&lt;br /&gt;
*[[Getriebemotoren]]&lt;br /&gt;
*[[RC-Empfänger_auswerten]]&lt;br /&gt;
*[[Servoansteuerung]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Robotikeinstieg]]&lt;br /&gt;
[[Category:Praxis]]&lt;br /&gt;
[[Category:Grundlagen]]&lt;br /&gt;
[[Category:Motoren]]&lt;/div&gt;</summary>
		<author><name>Oberallgeier</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=Servos&amp;diff=17244</id>
		<title>Servos</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=Servos&amp;diff=17244"/>
				<updated>2011-02-09T10:18:57Z</updated>
		
		<summary type="html">&lt;p&gt;Oberallgeier: /* Ansteuerung: Signalform und Schaltung */  Bild mit Beispielen ergänzt&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Servos (Servomotoren) sind kleine [[Getriebemotoren]], die häufig im Modellbau eingesetzt werden, doch auch in der Industrie sind sie anzutreffen. &lt;br /&gt;
Mithilfe eines Potentiometers, das an der Drehachse befestigt ist, wird intern die aktuelle Position bestimmt. Wegen ihrer einfachen Ansteuerung und Präzision eigenen sie sich hervorragend für mehr oder weniger kraftaufwändige Aufgaben in der Robotik. &lt;br /&gt;
&lt;br /&gt;
==Anschlussbelegung==&lt;br /&gt;
Handelsübliche Servomotoren besitzen 3 Anschlüsse:&lt;br /&gt;
# GND&lt;br /&gt;
# [[PWM]]&lt;br /&gt;
# +5V&lt;br /&gt;
&lt;br /&gt;
Wobei sich die Steckerbelegung von Hersteller zu Hersteller unterscheidet.&lt;br /&gt;
&lt;br /&gt;
[[Bild:servosteckerbelegung.gif|center]]&lt;br /&gt;
&lt;br /&gt;
==Ansteuerung: Signalform und Schaltung==&lt;br /&gt;
An die PWM-Leitung wird ein pulsweitenmoduliertes Signal angeschlossen. Die Repetition-Period (Periode) entspricht bei den meisten Modellen 20ms. Innerhalb/zu Beginn dieser 20ms wird ein Puls erwartet, der sich zwischen 1ms und 2ms bewegt, wobei diese Werte jeweils den Endlagen des Servos entsprechen. D.h. 1ms ist ganz links und 2ms ist ganz rechts (Einige Servos haben in diesem Wertebereich jedoch nicht die volle Bewegungsfreiheit ausgenutzt, die Werte, bei denen der Servo ganz links/rechts ist können auch unter 1ms/über 2ms liegen). 1,5ms würde demnach die Mittelstellung bedeuten. &lt;br /&gt;
Aufgrund der Pulslänge lässt sich also eine direkte Aussage über die Position des Servos treffen.&lt;br /&gt;
Der Motor sorgt dann intern mithilfe des Potis dafür, dass die Position gehalten wird.&lt;br /&gt;
&lt;br /&gt;
Die folgende Darstellung zeigt beispielhafte Zeit-Pegeldiagramme der PWM für Standardservos und als Beispiel die zugehörigen Stellungen des Servohorns. Die Schwenkwinkel und die maximale Auslenkung &amp;quot;links&amp;quot; bzw. &amp;quot;rechts&amp;quot; können je nach Servotyp variieren.&lt;br /&gt;
&lt;br /&gt;
[[Bild:Servo_pwm.gif|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Empfohlene Ansteuerung (Schaltungsvorschlag)&lt;br /&gt;
&lt;br /&gt;
Es wird dringend empfohlen, zur Versorgung des Servos eine vom Mikrocontroller gesonderte Versorgungsspannung zu wählen. Dabei muss die GND-Leitung (i.A. die (-)-Leitung) von Controller, Servo und den Versorgungen leitend verbunden sein. Im untenstehenden Beispiel ist die Verschaltung eines Controllers ATMega168 mit einem Servo gezeigt. Der Servo kann natürlich auch an anderen Ausgängen des Controllers angeschlossen werden.&lt;br /&gt;
&lt;br /&gt;
Achtung, Fehlermöglichkeiten!&lt;br /&gt;
&lt;br /&gt;
Werden die GND-Pegel nicht verbunden, sind Störungen mit Sicherheit zu erwarten. &lt;br /&gt;
&lt;br /&gt;
Wird der Controller von der gleichen Spannungsquelle versorgt wie der Servo, so sind Störungen mit Sicherheit zu erwarten.&lt;br /&gt;
&lt;br /&gt;
[[Bild:Servoansteuerg_02.gif|center]]&lt;br /&gt;
&lt;br /&gt;
==Unterschied zwischen Digital- und Analogservos==&lt;br /&gt;
Der hauptsächliche Unterschied besteht darin, dass digitale Servos schneller und genauer sind und ihre Position besser halten können. Analoge Servos geben ihrem Motor alle 20ms ein Signal. Wirkt eine Kraft auf das Servo, braucht die Steuerelektronik bis zu 20ms, um dem Motor einen neuen Spannungsimpuls zu senden. Bei Digitalservos sendet die Steuerelektronik alle 400us einen Impuls an den Motor. Der Motor bekommt die Spannungsimpulse viel schneller. Um so öfter ein Motor Spannung bekommt, um so mehr Leistung kann er verrichten. Man sollte aber auch bedenken, dass dies unweigerlich einen höheren Stromverbrauch zur Folge hat, der besonders bei Modellfliegern nicht tolerierbar ist, da die Betriebszeit stark verkürzt wird.&lt;br /&gt;
&lt;br /&gt;
Die einfachste Art, einen Servo mit [[Bascom]] anzusteuern, ist folgender Befehl:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Config Servos = 2 , Servo1 = Portb.0 , Servo2 = Portb.1 , Reload = 10&lt;br /&gt;
&lt;br /&gt;
Config Portb = Output&lt;br /&gt;
&lt;br /&gt;
Enable Interrupts&lt;br /&gt;
&lt;br /&gt;
Servo(1) = 100&lt;br /&gt;
Servo(2) = 100&lt;br /&gt;
waitms 1000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'Wobei 100 die Mitte ist. 50 ist der linke bzw. rechte Anschlag und 150 der entsprechend andere. Es gibt aber auch elegantere Möglichkeiten die sich besonders empfehlen wenn z.B. eine höhere Auflösung gewünscht ist: [[Servoansteuerung]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Und in C sieht das ganze so aus:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#define SERVOPIN 7&lt;br /&gt;
#define SERVOPORT PORTD&lt;br /&gt;
#define DDRSERVO DDRD&lt;br /&gt;
&lt;br /&gt;
volatile unsigned char servopos;&lt;br /&gt;
&lt;br /&gt;
void servo_init()&lt;br /&gt;
{&lt;br /&gt;
	TIMSK|=(1&amp;lt;&amp;lt;OCIE2);&lt;br /&gt;
	TCCR2 |= (1&amp;lt;&amp;lt;WGM21) | (1&amp;lt;&amp;lt;CS20);	//Prescale=1, CTC mode&lt;br /&gt;
	OCR2 = F_CPU/100000;			//alle 10µS ein IRQ&lt;br /&gt;
	DDRSERVO|=(1&amp;lt;&amp;lt;SERVOPIN);&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
ISR(TIMER2_COMP_vect)&lt;br /&gt;
{&lt;br /&gt;
	static int count;&lt;br /&gt;
	if(count&amp;gt;servopos)SERVOPORT&amp;amp;=~(1&amp;lt;&amp;lt;SERVOPIN);&lt;br /&gt;
	  else SERVOPORT|=(1&amp;lt;&amp;lt;SERVOPIN);&lt;br /&gt;
	if(count&amp;lt;2000)count++; // Die Impulse sollten alle 20ms gesendet werden! 6.2.11 mic&lt;br /&gt;
	  else count=0;&lt;br /&gt;
};&lt;br /&gt;
	&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Man muss zuvor DDRSERVO, SERVOPIN und SERVOPORT entsprechend definieren. Mit der Funktion &amp;quot;servo_init()&amp;quot; wird Timer2 initialisiert und der Servo-Pin als Ausgang gesetzt. &amp;quot;servopos&amp;quot; beinhaltet die aktuelle Dauer des Signals in 1/100ms. Vergessen Sie nicht, globale Interrupts vor dem Betrieb zu aktivieren!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Letzter Beitrag von &amp;quot;stochri&amp;quot; ist eine super Lösung in avr-gcc mit bis zu 10 Servos&lt;br /&gt;
&lt;br /&gt;
[[http://www.roboternetz.de/phpBB2/zeigebeitrag.php?t=14220&amp;amp;highlight=servo &amp;quot;Servo / avr-gcc&amp;quot; ]]&lt;br /&gt;
&lt;br /&gt;
==Servos hacken==&lt;br /&gt;
Häufig entledigt man sich auch des Potis und der Endlagenanschläge, um so einen Motor mit hohem Drehmoment und ohne Begrenzung des Drehwinkels zu erlangen. Das Poti wird dann durch einen 1:1-Spannungsteiler ersetzt. Dieser Vorgang wird auch als Servo-Hacking bezeichnet. Durch die Pulslänge kann die Winkelgeschwindigkeit des Servos beeinflusst werden.&lt;br /&gt;
&lt;br /&gt;
[[Bild:servo.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
Diese erste Methode des Servohackings nutzt die im Servo eingebaute Elektronik zur Motoransteuerung. Sie ist am Weitesten verbreitet. &lt;br /&gt;
&lt;br /&gt;
Bei der zweiten Methode wird die vorhandene Elektronik komplett entfernt und der Motor z.B. direkt mit Gleichstrom versorgt oder durch eine externe Elektronik angesteuert. Die beiden Varianten des Servohackings sowie ihre Vor- und Nachteile sind im folgenden Link beschrieben. [[http://www.roboternetz.de/phpBB2/viewtopic.php?p=516553#516553 &amp;quot;Servohacking. Technik, Vor- und Nachteile&amp;quot;]] Bei fast allen Servos muss zum Hacken ein mechanischer Anschlag entfernt werden. Er besteht aus einem Nocken an der Abtriebswelle und dem Gegenstück im Getriebegehäuse.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die wesentlichen elektrischen und elektronischen Teile und Baugruppen eines einfachen Servos:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Servo-hack2_mini.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
Beim Servohacking nach der Methode &amp;quot;zwei&amp;quot; wird die Elektronik komplett entfernt. Üblicherweise wird dabei das Poti ebenfalls entfernt oder von der Abtriebsachse abgekoppelt. Der Motor wird dann direkt an die Versorgung angeschlossen. [[Getriebemotoren_Ansteuerung#Und_nie_vergessen_Motoren_zu_entst.C3.B6ren|Bitte Entstörung nicht vergessen!]] Gleichwertig wie das Entfernen der kompletten Elektronik ist es, sie einfach zu umgehen und die Motorzuleitung direkt anzulöten. &lt;br /&gt;
&lt;br /&gt;
Der nach Methode 2 gehackte Servo wird dadurch zu einem Getriebemotor mit einem sehr kleinen, sehr schnell drehenden Motor und einem hoch übersetzten Getriebe.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Siehe auch==&lt;br /&gt;
*[[Getriebemotoren]]&lt;br /&gt;
*[[RC-Empfänger_auswerten]]&lt;br /&gt;
*[[Servoansteuerung]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Robotikeinstieg]]&lt;br /&gt;
[[Category:Praxis]]&lt;br /&gt;
[[Category:Grundlagen]]&lt;br /&gt;
[[Category:Motoren]]&lt;/div&gt;</summary>
		<author><name>Oberallgeier</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=Servos&amp;diff=17235</id>
		<title>Servos</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=Servos&amp;diff=17235"/>
				<updated>2011-02-07T17:42:02Z</updated>
		
		<summary type="html">&lt;p&gt;Oberallgeier: /* Ansteuerung */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Servos (Servomotoren) sind kleine [[Getriebemotoren]], die häufig im Modellbau eingesetzt werden, doch auch in der Industrie sind sie anzutreffen. &lt;br /&gt;
Mithilfe eines Potentiometers, das an der Drehachse befestigt ist, wird intern die aktuelle Position bestimmt. Wegen ihrer einfachen Ansteuerung und Präzision eigenen sie sich hervorragend für mehr oder weniger kraftaufwändige Aufgaben in der Robotik. &lt;br /&gt;
&lt;br /&gt;
==Anschlussbelegung==&lt;br /&gt;
Handelsübliche Servomotoren besitzen 3 Anschlüsse:&lt;br /&gt;
# GND&lt;br /&gt;
# [[PWM]]&lt;br /&gt;
# +5V&lt;br /&gt;
&lt;br /&gt;
Wobei sich die Steckerbelegung von Hersteller zu Hersteller unterscheidet.&lt;br /&gt;
&lt;br /&gt;
[[Bild:servosteckerbelegung.gif|center]]&lt;br /&gt;
&lt;br /&gt;
==Ansteuerung: Signalform und Schaltung==&lt;br /&gt;
An die PWM-Leitung wird ein pulsweitenmoduliertes Signal angeschlossen. Die Repetition-Period (Periode) entspricht bei den meisten Modellen 20ms. Innerhalb/zu Beginn dieser 20ms wird ein Puls erwartet, der sich zwischen 1ms und 2ms bewegt, wobei diese Werte jeweils den Endlagen des Servos entsprechen. D.h. 1ms ist ganz links und 2ms ist ganz rechts (Einige Servos haben in diesem Wertebereich jedoch nicht die volle Bewegungsfreiheit ausgenutzt, die Werte, bei denen der Servo ganz links/rechts ist können auch unter 1ms/über 2ms liegen). 1,5ms würde demnach die Mittelstellung bedeuten. &lt;br /&gt;
Aufgrund der Pulslänge lässt sich also eine direkte Aussage über die Position des Servos treffen.&lt;br /&gt;
Der Motor sorgt dann intern mithilfe des Potis dafür, dass die Position gehalten wird.&lt;br /&gt;
&lt;br /&gt;
[[Bild:Servo_pwm.gif|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Empfohlene Ansteuerung (Schaltungsvorschlag)&lt;br /&gt;
&lt;br /&gt;
Es wird dringend empfohlen, zur Versorgung des Servos eine vom Mikrocontroller gesonderte Versorgungsspannung zu wählen. Dabei muss die GND-Leitung (i.A. die (-)-Leitung) von Controller, Servo und den Versorgungen leitend verbunden sein. Im untenstehenden Beispiel ist die Verschaltung eines Controllers ATMega168 mit einem Servo gezeigt. Der Servo kann natürlich auch an anderen Ausgängen des Controllers angeschlossen werden.&lt;br /&gt;
&lt;br /&gt;
Achtung, Fehlermöglichkeiten!&lt;br /&gt;
&lt;br /&gt;
Werden die GND-Pegel nicht verbunden, sind Störungen mit Sicherheit zu erwarten. &lt;br /&gt;
&lt;br /&gt;
Wird der Controller von der gleichen Spannungsquelle versorgt wie der Servo, so sind Störungen mit Sicherheit zu erwarten.&lt;br /&gt;
&lt;br /&gt;
[[Bild:Servoansteuerg_02.gif|center]]&lt;br /&gt;
&lt;br /&gt;
==Unterschied zwischen Digital- und Analogservos==&lt;br /&gt;
Der hauptsächliche Unterschied besteht darin, dass digitale Servos schneller und genauer sind und ihre Position besser halten können. Analoge Servos geben ihrem Motor alle 20ms ein Signal. Wirkt eine Kraft auf das Servo, braucht die Steuerelektronik bis zu 20ms, um dem Motor einen neuen Spannungsimpuls zu senden. Bei Digitalservos sendet die Steuerelektronik alle 400us einen Impuls an den Motor. Der Motor bekommt die Spannungsimpulse viel schneller. Um so öfter ein Motor Spannung bekommt, um so mehr Leistung kann er verrichten. Man sollte aber auch bedenken, dass dies unweigerlich einen höheren Stromverbrauch zur Folge hat, der besonders bei Modellfliegern nicht tolerierbar ist, da die Betriebszeit stark verkürzt wird.&lt;br /&gt;
&lt;br /&gt;
Die einfachste Art, einen Servo mit [[Bascom]] anzusteuern, ist folgender Befehl:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Config Servos = 2 , Servo1 = Portb.0 , Servo2 = Portb.1 , Reload = 10&lt;br /&gt;
&lt;br /&gt;
Config Portb = Output&lt;br /&gt;
&lt;br /&gt;
Enable Interrupts&lt;br /&gt;
&lt;br /&gt;
Servo(1) = 100&lt;br /&gt;
Servo(2) = 100&lt;br /&gt;
waitms 1000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'Wobei 100 die Mitte ist. 50 ist der linke bzw. rechte Anschlag und 150 der entsprechend andere. Es gibt aber auch elegantere Möglichkeiten die sich besonders empfehlen wenn z.B. eine höhere Auflösung gewünscht ist: [[Servoansteuerung]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Und in C sieht das ganze so aus:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#define SERVOPIN 7&lt;br /&gt;
#define SERVOPORT PORTD&lt;br /&gt;
#define DDRSERVO DDRD&lt;br /&gt;
&lt;br /&gt;
volatile unsigned char servopos;&lt;br /&gt;
&lt;br /&gt;
void servo_init()&lt;br /&gt;
{&lt;br /&gt;
	TIMSK|=(1&amp;lt;&amp;lt;OCIE2);&lt;br /&gt;
	TCCR2 |= (1&amp;lt;&amp;lt;WGM21) | (1&amp;lt;&amp;lt;CS20);	//Prescale=1, CTC mode&lt;br /&gt;
	OCR2 = F_CPU/100000;			//alle 10µS ein IRQ&lt;br /&gt;
	DDRSERVO|=(1&amp;lt;&amp;lt;SERVOPIN);&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
ISR(TIMER2_COMP_vect)&lt;br /&gt;
{&lt;br /&gt;
	static int count;&lt;br /&gt;
	if(count&amp;gt;servopos)SERVOPORT&amp;amp;=~(1&amp;lt;&amp;lt;SERVOPIN);&lt;br /&gt;
	  else SERVOPORT|=(1&amp;lt;&amp;lt;SERVOPIN);&lt;br /&gt;
	if(count&amp;lt;2000)count++; // Die Impulse sollten alle 20ms gesendet werden! 6.2.11 mic&lt;br /&gt;
	  else count=0;&lt;br /&gt;
};&lt;br /&gt;
	&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Man muss zuvor DDRSERVO, SERVOPIN und SERVOPORT entsprechend definieren. Mit der Funktion &amp;quot;servo_init()&amp;quot; wird Timer2 initialisiert und der Servo-Pin als Ausgang gesetzt. &amp;quot;servopos&amp;quot; beinhaltet die aktuelle Dauer des Signals in 1/100ms. Vergessen Sie nicht, globale Interrupts vor dem Betrieb zu aktivieren!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Letzter Beitrag von &amp;quot;stochri&amp;quot; ist eine super Lösung in avr-gcc mit bis zu 10 Servos&lt;br /&gt;
&lt;br /&gt;
[[http://www.roboternetz.de/phpBB2/zeigebeitrag.php?t=14220&amp;amp;highlight=servo &amp;quot;Servo / avr-gcc&amp;quot; ]]&lt;br /&gt;
&lt;br /&gt;
==Servos hacken==&lt;br /&gt;
Häufig entledigt man sich auch des Potis und der Endlagenanschläge, um so einen Motor mit hohem Drehmoment und ohne Begrenzung des Drehwinkels zu erlangen. Das Poti wird dann durch einen 1:1-Spannungsteiler ersetzt. Dieser Vorgang wird auch als Servo-Hacking bezeichnet. Durch die Pulslänge kann die Winkelgeschwindigkeit des Servos beeinflusst werden.&lt;br /&gt;
&lt;br /&gt;
[[Bild:servo.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
Diese erste Methode des Servohackings nutzt die im Servo eingebaute Elektronik zur Motoransteuerung. Sie ist am Weitesten verbreitet. &lt;br /&gt;
&lt;br /&gt;
Bei der zweiten Methode wird die vorhandene Elektronik komplett entfernt und der Motor z.B. direkt mit Gleichstrom versorgt oder durch eine externe Elektronik angesteuert. Die beiden Varianten des Servohackings sowie ihre Vor- und Nachteile sind im folgenden Link beschrieben. [[http://www.roboternetz.de/phpBB2/viewtopic.php?p=516553#516553 &amp;quot;Servohacking. Technik, Vor- und Nachteile&amp;quot;]] Bei fast allen Servos muss zum Hacken ein mechanischer Anschlag entfernt werden. Er besteht aus einem Nocken an der Abtriebswelle und dem Gegenstück im Getriebegehäuse.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die wesentlichen elektrischen und elektronischen Teile und Baugruppen eines einfachen Servos:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Servo-hack2_mini.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
Beim Servohacking nach der Methode &amp;quot;zwei&amp;quot; wird die Elektronik komplett entfernt. Üblicherweise wird dabei das Poti ebenfalls entfernt oder von der Abtriebsachse abgekoppelt. Der Motor wird dann direkt an die Versorgung angeschlossen. [[Getriebemotoren_Ansteuerung#Und_nie_vergessen_Motoren_zu_entst.C3.B6ren|Bitte Entstörung nicht vergessen!]] Gleichwertig wie das Entfernen der kompletten Elektronik ist es, sie einfach zu umgehen und die Motorzuleitung direkt anzulöten. &lt;br /&gt;
&lt;br /&gt;
Der nach Methode 2 gehackte Servo wird dadurch zu einem Getriebemotor mit einem sehr kleinen, sehr schnell drehenden Motor und einem hoch übersetzten Getriebe.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Siehe auch==&lt;br /&gt;
*[[Getriebemotoren]]&lt;br /&gt;
*[[RC-Empfänger_auswerten]]&lt;br /&gt;
*[[Servoansteuerung]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Robotikeinstieg]]&lt;br /&gt;
[[Category:Praxis]]&lt;br /&gt;
[[Category:Grundlagen]]&lt;br /&gt;
[[Category:Motoren]]&lt;/div&gt;</summary>
		<author><name>Oberallgeier</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=Servos&amp;diff=17234</id>
		<title>Servos</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=Servos&amp;diff=17234"/>
				<updated>2011-02-07T17:39:14Z</updated>
		
		<summary type="html">&lt;p&gt;Oberallgeier: /* Ansteuerung eines Servo, Schaltungsvorschlag*/&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Servos (Servomotoren) sind kleine [[Getriebemotoren]], die häufig im Modellbau eingesetzt werden, doch auch in der Industrie sind sie anzutreffen. &lt;br /&gt;
Mithilfe eines Potentiometers, das an der Drehachse befestigt ist, wird intern die aktuelle Position bestimmt. Wegen ihrer einfachen Ansteuerung und Präzision eigenen sie sich hervorragend für mehr oder weniger kraftaufwändige Aufgaben in der Robotik. &lt;br /&gt;
&lt;br /&gt;
==Anschlussbelegung==&lt;br /&gt;
Handelsübliche Servomotoren besitzen 3 Anschlüsse:&lt;br /&gt;
# GND&lt;br /&gt;
# [[PWM]]&lt;br /&gt;
# +5V&lt;br /&gt;
&lt;br /&gt;
Wobei sich die Steckerbelegung von Hersteller zu Hersteller unterscheidet.&lt;br /&gt;
&lt;br /&gt;
[[Bild:servosteckerbelegung.gif|center]]&lt;br /&gt;
&lt;br /&gt;
==Ansteuerung==&lt;br /&gt;
An die PWM-Leitung wird ein pulsweitenmoduliertes Signal angeschlossen. Die Repetition-Period (Periode) entspricht bei den meisten Modellen 20ms. Innerhalb/zu Beginn dieser 20ms wird ein Puls erwartet, der sich zwischen 1ms und 2ms bewegt, wobei diese Werte jeweils den Endlagen des Servos entsprechen. D.h. 1ms ist ganz links und 2ms ist ganz rechts (Einige Servos haben in diesem Wertebereich jedoch nicht die volle Bewegungsfreiheit ausgenutzt, die Werte, bei denen der Servo ganz links/rechts ist können auch unter 1ms/über 2ms liegen). 1,5ms würde demnach die Mittelstellung bedeuten. &lt;br /&gt;
Aufgrund der Pulslänge lässt sich also eine direkte Aussage über die Position des Servos treffen.&lt;br /&gt;
Der Motor sorgt dann intern mithilfe des Potis dafür, dass die Position gehalten wird.&lt;br /&gt;
&lt;br /&gt;
[[Bild:Servo_pwm.gif|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Empfohlene Ansteuerung&lt;br /&gt;
&lt;br /&gt;
Es wird dringend empfohlen, zur Versorgung des Servos eine vom Mikrocontroller gesonderte Versorgungsspannung zu wählen. Dabei muss die GND-Leitung (i.A. die (-)-Leitung) von Controller, Servo und den Versorgungen leitend verbunden sein. Im untenstehenden Beispiel ist die Verschaltung eines Controllers ATMega168 mit einem Servo gezeigt. Der Servo kann natürlich auch an anderen Ausgängen des Controllers angeschlossen werden.&lt;br /&gt;
&lt;br /&gt;
Achtung, Fehlermöglichkeiten!&lt;br /&gt;
&lt;br /&gt;
Werden die GND-Pegel nicht verbunden, sind Störungen mit Sicherheit zu erwarten. &lt;br /&gt;
&lt;br /&gt;
Wird der Controller von der gleichen Spannungsquelle versorgt wie der Servo, so sind Störungen mit Sicherheit zu erwarten.&lt;br /&gt;
&lt;br /&gt;
[[Bild:Servoansteuerg_02.gif|center]]&lt;br /&gt;
&lt;br /&gt;
==Unterschied zwischen Digital- und Analogservos==&lt;br /&gt;
Der hauptsächliche Unterschied besteht darin, dass digitale Servos schneller und genauer sind und ihre Position besser halten können. Analoge Servos geben ihrem Motor alle 20ms ein Signal. Wirkt eine Kraft auf das Servo, braucht die Steuerelektronik bis zu 20ms, um dem Motor einen neuen Spannungsimpuls zu senden. Bei Digitalservos sendet die Steuerelektronik alle 400us einen Impuls an den Motor. Der Motor bekommt die Spannungsimpulse viel schneller. Um so öfter ein Motor Spannung bekommt, um so mehr Leistung kann er verrichten. Man sollte aber auch bedenken, dass dies unweigerlich einen höheren Stromverbrauch zur Folge hat, der besonders bei Modellfliegern nicht tolerierbar ist, da die Betriebszeit stark verkürzt wird.&lt;br /&gt;
&lt;br /&gt;
Die einfachste Art, einen Servo mit [[Bascom]] anzusteuern, ist folgender Befehl:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Config Servos = 2 , Servo1 = Portb.0 , Servo2 = Portb.1 , Reload = 10&lt;br /&gt;
&lt;br /&gt;
Config Portb = Output&lt;br /&gt;
&lt;br /&gt;
Enable Interrupts&lt;br /&gt;
&lt;br /&gt;
Servo(1) = 100&lt;br /&gt;
Servo(2) = 100&lt;br /&gt;
waitms 1000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'Wobei 100 die Mitte ist. 50 ist der linke bzw. rechte Anschlag und 150 der entsprechend andere. Es gibt aber auch elegantere Möglichkeiten die sich besonders empfehlen wenn z.B. eine höhere Auflösung gewünscht ist: [[Servoansteuerung]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Und in C sieht das ganze so aus:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#define SERVOPIN 7&lt;br /&gt;
#define SERVOPORT PORTD&lt;br /&gt;
#define DDRSERVO DDRD&lt;br /&gt;
&lt;br /&gt;
volatile unsigned char servopos;&lt;br /&gt;
&lt;br /&gt;
void servo_init()&lt;br /&gt;
{&lt;br /&gt;
	TIMSK|=(1&amp;lt;&amp;lt;OCIE2);&lt;br /&gt;
	TCCR2 |= (1&amp;lt;&amp;lt;WGM21) | (1&amp;lt;&amp;lt;CS20);	//Prescale=1, CTC mode&lt;br /&gt;
	OCR2 = F_CPU/100000;			//alle 10µS ein IRQ&lt;br /&gt;
	DDRSERVO|=(1&amp;lt;&amp;lt;SERVOPIN);&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
ISR(TIMER2_COMP_vect)&lt;br /&gt;
{&lt;br /&gt;
	static int count;&lt;br /&gt;
	if(count&amp;gt;servopos)SERVOPORT&amp;amp;=~(1&amp;lt;&amp;lt;SERVOPIN);&lt;br /&gt;
	  else SERVOPORT|=(1&amp;lt;&amp;lt;SERVOPIN);&lt;br /&gt;
	if(count&amp;lt;2000)count++; // Die Impulse sollten alle 20ms gesendet werden! 6.2.11 mic&lt;br /&gt;
	  else count=0;&lt;br /&gt;
};&lt;br /&gt;
	&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Man muss zuvor DDRSERVO, SERVOPIN und SERVOPORT entsprechend definieren. Mit der Funktion &amp;quot;servo_init()&amp;quot; wird Timer2 initialisiert und der Servo-Pin als Ausgang gesetzt. &amp;quot;servopos&amp;quot; beinhaltet die aktuelle Dauer des Signals in 1/100ms. Vergessen Sie nicht, globale Interrupts vor dem Betrieb zu aktivieren!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Letzter Beitrag von &amp;quot;stochri&amp;quot; ist eine super Lösung in avr-gcc mit bis zu 10 Servos&lt;br /&gt;
&lt;br /&gt;
[[http://www.roboternetz.de/phpBB2/zeigebeitrag.php?t=14220&amp;amp;highlight=servo &amp;quot;Servo / avr-gcc&amp;quot; ]]&lt;br /&gt;
&lt;br /&gt;
==Servos hacken==&lt;br /&gt;
Häufig entledigt man sich auch des Potis und der Endlagenanschläge, um so einen Motor mit hohem Drehmoment und ohne Begrenzung des Drehwinkels zu erlangen. Das Poti wird dann durch einen 1:1-Spannungsteiler ersetzt. Dieser Vorgang wird auch als Servo-Hacking bezeichnet. Durch die Pulslänge kann die Winkelgeschwindigkeit des Servos beeinflusst werden.&lt;br /&gt;
&lt;br /&gt;
[[Bild:servo.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
Diese erste Methode des Servohackings nutzt die im Servo eingebaute Elektronik zur Motoransteuerung. Sie ist am Weitesten verbreitet. &lt;br /&gt;
&lt;br /&gt;
Bei der zweiten Methode wird die vorhandene Elektronik komplett entfernt und der Motor z.B. direkt mit Gleichstrom versorgt oder durch eine externe Elektronik angesteuert. Die beiden Varianten des Servohackings sowie ihre Vor- und Nachteile sind im folgenden Link beschrieben. [[http://www.roboternetz.de/phpBB2/viewtopic.php?p=516553#516553 &amp;quot;Servohacking. Technik, Vor- und Nachteile&amp;quot;]] Bei fast allen Servos muss zum Hacken ein mechanischer Anschlag entfernt werden. Er besteht aus einem Nocken an der Abtriebswelle und dem Gegenstück im Getriebegehäuse.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die wesentlichen elektrischen und elektronischen Teile und Baugruppen eines einfachen Servos:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Servo-hack2_mini.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
Beim Servohacking nach der Methode &amp;quot;zwei&amp;quot; wird die Elektronik komplett entfernt. Üblicherweise wird dabei das Poti ebenfalls entfernt oder von der Abtriebsachse abgekoppelt. Der Motor wird dann direkt an die Versorgung angeschlossen. [[Getriebemotoren_Ansteuerung#Und_nie_vergessen_Motoren_zu_entst.C3.B6ren|Bitte Entstörung nicht vergessen!]] Gleichwertig wie das Entfernen der kompletten Elektronik ist es, sie einfach zu umgehen und die Motorzuleitung direkt anzulöten. &lt;br /&gt;
&lt;br /&gt;
Der nach Methode 2 gehackte Servo wird dadurch zu einem Getriebemotor mit einem sehr kleinen, sehr schnell drehenden Motor und einem hoch übersetzten Getriebe.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Siehe auch==&lt;br /&gt;
*[[Getriebemotoren]]&lt;br /&gt;
*[[RC-Empfänger_auswerten]]&lt;br /&gt;
*[[Servoansteuerung]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Robotikeinstieg]]&lt;br /&gt;
[[Category:Praxis]]&lt;br /&gt;
[[Category:Grundlagen]]&lt;br /&gt;
[[Category:Motoren]]&lt;/div&gt;</summary>
		<author><name>Oberallgeier</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=Datei:Servoansteuerg_02.gif&amp;diff=17233</id>
		<title>Datei:Servoansteuerg 02.gif</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=Datei:Servoansteuerg_02.gif&amp;diff=17233"/>
				<updated>2011-02-07T17:37:10Z</updated>
		
		<summary type="html">&lt;p&gt;Oberallgeier: Ansteuerschaltung für Servo
Am Beispiel eines ATmega168 wird die empfohlene Schaltung eines Servos gezeigt.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Ansteuerschaltung für Servo&lt;br /&gt;
Am Beispiel eines ATmega168 wird die empfohlene Schaltung eines Servos gezeigt.&lt;/div&gt;</summary>
		<author><name>Oberallgeier</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=Datei:Servoansteuerg_01.gif&amp;diff=17232</id>
		<title>Datei:Servoansteuerg 01.gif</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=Datei:Servoansteuerg_01.gif&amp;diff=17232"/>
				<updated>2011-02-07T17:25:18Z</updated>
		
		<summary type="html">&lt;p&gt;Oberallgeier: Empfohlene Ansteuerung&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Empfohlene Ansteuerung&lt;/div&gt;</summary>
		<author><name>Oberallgeier</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=Avr&amp;diff=17184</id>
		<title>Avr</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=Avr&amp;diff=17184"/>
				<updated>2011-01-20T15:40:05Z</updated>
		
		<summary type="html">&lt;p&gt;Oberallgeier: /* Die Fusebits */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Bild:AtmelController.jpg|thumb|Beispiel eines AVR Controllers]]&lt;br /&gt;
'''AVR''' ist eine 8-Bit [[Microcontroller]]-Familie mit RISC-Architektur.&lt;br /&gt;
Im Gegensatz zu vielen anderen Microcontroller-Architekturen hat die AVR-Architektur keine Vorgänger. Sie ist ein komplettes Neudesign, das Anfang der 90-Jahre an der Universität von Trondheim/Norwegen entwickelt und vom (bis heute einzigen) Hersteller [[Atmel]] aufgekauft wurde. Es gibt eine ganze Serie von AVR-Controllern. Sie alle werden ähnlich programmiert, haben vergleichbaren Befehlssatz und physikalische Eigenschaften, bieten jedoch unterschiedliche Features und Peripherie. &lt;br /&gt;
&lt;br /&gt;
Es gibt zahlreiche und kostenlose Entwicklungssysteme in den Sprachen Basic, C/C++, Pascal und Assembler für diese Controller-Familie. &lt;br /&gt;
&lt;br /&gt;
== Wofür steht AVR? ==&lt;br /&gt;
&amp;quot;AVR&amp;quot; steht angeblich für ''Advanced Virtual RISC'' (in einem Paper der Entwickler des AVR-Kerns Alf Egin Bogen und Vegard Wollan). Laut [[Atmel]] bedeutet es nichts.&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
AVR-Controller besitzen eine zweistufige Pipeline (fetch and execute), die es ermöglicht, die meisten Befehle innerhalb eines einzigen Prozessortaktes auszuführen. Dadurch ist ein AVR wesentlich schneller als etwa 8051-Controller, bei denen der Prozessortakt intern noch durch 12 geteilt wird.&lt;br /&gt;
&lt;br /&gt;
*AVR-Kern&lt;br /&gt;
** Harvard-Architektur (getrennter Befehls- und Datenspeicher) &lt;br /&gt;
** 8-Bit Architektur ist für Hochsprachen (C) optimiert &lt;br /&gt;
** 32 Register, davon 6 als 3 Pointerregister, kein Akkumulator&lt;br /&gt;
** Lineares Speichermodell (keine Segmentierung)&lt;br /&gt;
* In-System programmierbar: die Controller können sehr einfach über ein  Programmierkabel (oft ISP-Kabel genannt), das mit dem PC verbunden wird, programmiert werden &amp;amp;ndash; auch dann, wenn sie sich nicht in einer Schaltung befindet.&lt;br /&gt;
* integrierter Flash-Speicher für Programm &lt;br /&gt;
* umfangreiche Peripherie&lt;br /&gt;
** [[Watchdog]], [[Bootloader]]-Support, verschiedene [[Stromspar-Modi(AVR)|Stromspar-Modi]], Brownout-Erkennung, Interner Oszillator&lt;br /&gt;
** EEPROM-Datenspeicher&lt;br /&gt;
** 8- und 16-Bit-Timer/Counter mit [[PWM]], Capture/Compare, externe Betaktung, asynchrone Operation&lt;br /&gt;
** Kommunikation: [[UART|USART]], [[SPI]], [[I2C]] ([[TWI]])&lt;br /&gt;
** Analog-Comparator, Analog-Digital-Wandler &lt;br /&gt;
** unterschiedlichste externe und interne Interrupt-Quellen (UART, SPI, Timer, A/D-Wandler, Analog-Comparator, ...)&lt;br /&gt;
** JTAG (Debugerinterface) (Teilweise)&lt;br /&gt;
* AVR Typen (AT90 &amp;quot;Classic AVR&amp;quot;, ATtiny, ATmega) &lt;br /&gt;
* erhältlich in unterschiedlichen Gehäusen, idR Durchsteck und als [[SMD]]&lt;br /&gt;
* Viele Entwicklungsboards erhältlich, z.B. das Roboternetzboard [[RN-Control]]&lt;br /&gt;
&lt;br /&gt;
==Einige Pinbelegungen der populärsten AVR-Controller==&lt;br /&gt;
(in etwa nach Leistungsfähigkeit sortiert)&lt;br /&gt;
&lt;br /&gt;
* [[AT90S2313]]&lt;br /&gt;
&lt;br /&gt;
[[Bild:at90s2313tiny.png|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [[Atmel Controller Mega8]]&lt;br /&gt;
* [[Atmel Controller Mega48 Mega88 Mega168]]&lt;br /&gt;
&lt;br /&gt;
[[Bild:mega8kompatibel.png|center]]&lt;br /&gt;
&lt;br /&gt;
* [[Atmel Controller Mega16 und Mega32]]&lt;br /&gt;
&lt;br /&gt;
[[Bild:Mega1632.gif|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [[Atmel Controller Mega128]] ([[SMD]]-Chip)&lt;br /&gt;
&lt;br /&gt;
[[Bild:mega128pin.gif|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Die AVR-Pin-Bezeichnungen und deren Funktion ===&lt;br /&gt;
Die meisten Ports sind doppelt belegt und besitzen neben der normalen Port-Funktion noch eine Sonderfunktion. Die verschiedenen Pinbezeichnungen und Sonderfunktionen werden hier beschrieben:&lt;br /&gt;
&lt;br /&gt;
{| {{Blauetabelle}}&lt;br /&gt;
|+ '''Tabelle: Die AVR-Pin-Bezeichnungen und deren Funktion'''&lt;br /&gt;
&amp;lt;!-------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
|- {{Hintergrund1}}&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot;| Versorgungs- und Referenzpins, Reset&lt;br /&gt;
|-&lt;br /&gt;
 |'''[[VCC]]''' &lt;br /&gt;
 | Versorgungsspannung von 2,7 V bis 5,5 V bei den L-Varianten (low power), ansonsten 4,5V bis 5,5 V. Neuere AVR ab 2,7 V und ab 1,8 V in V-Variante.&lt;br /&gt;
|-&lt;br /&gt;
 |'''[[GND]]''' &lt;br /&gt;
 |Masse &lt;br /&gt;
|-&lt;br /&gt;
 |'''AREF''' &lt;br /&gt;
 |Referenzspannung für den Analog-Digital-Wandler. Auch die interne Bandgap-Referenzspannung kann über diesen Pin entstört werden (dann KEINE externe Spannung an diesen Pin geben (Kurzschluss)!). &lt;br /&gt;
|-&lt;br /&gt;
 |'''AGND''' &lt;br /&gt;
 |Analoge Masse für AD Wandler und dazugehörige Ports. Sollte in aller Regel mit GND verbunden werden.&lt;br /&gt;
|-&lt;br /&gt;
 |'''AVCC''' &lt;br /&gt;
 | &lt;br /&gt;
Die Betriebsspannung für den Analog-Digital-Wandler (und einiges mehr) (siehe Beschaltungsskizze). Die Pins AVCC und AGND müssen immer beschaltet werden, selbst wenn man den AD-Wandler und Port A nicht benutzt. &lt;br /&gt;
|-&lt;br /&gt;
 |'''RESET''' &lt;br /&gt;
 |Rücksetz-Eingang, intern über einen [[Pullup]] mit VCC verbunden. Ein LOW–Pegel an diesem Pin für die Dauer von mindestens zwei Zyklen des Systemtaktes bei aktivem Oszillator setzt den Controller zurück. Rücksetzen der Ports erfolgt unabhängig von einem evtl. anliegenden Systemtakt.&lt;br /&gt;
|-&lt;br /&gt;
|'''PEN'''&lt;br /&gt;
|Programming Enable - Diesen Pin gibt es nur beim Mega128/64 u.ä. Wird dieser Pin beim Power-On Reset nach Masse gezogen, geht der Controller in den [[ISP]] Programmiermodus. Man kann ihn also alternativ zu Reset verwenden. In der Regel verwendet man aber die Reset-Leitung und PEN sollte man direkt mit VCC verbinden.&lt;br /&gt;
&amp;lt;!-------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
|- {{Hintergrund1}}&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot;| System-Takt&lt;br /&gt;
|-&lt;br /&gt;
 |'''XTAL1''' &lt;br /&gt;
 |Eingang des internen Oszillators zur Erzeugung des Systemtaktes bzw. Eingang für ein externes Taktsignal, wenn der interne Oszillator nicht verwendet werden soll bzw. Anschluss von Quarz/Keramik-Resonator/RC-Glied.&lt;br /&gt;
|-&lt;br /&gt;
 |'''XTAL2''' &lt;br /&gt;
 |Anschluss von Quarz oder Keramik-Resonator oder Ausgang des integrierten Oszillators zur Nutzung als Systemtakt (Je nach Fuse-Einstellungen). &lt;br /&gt;
&amp;lt;!-------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
|- {{Hintergrund1}}&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot;| Digitale bidirektionale  I/O-Ports&lt;br /&gt;
|- &lt;br /&gt;
| colspan=&amp;quot;2&amp;quot;| Jeder Pin der Ports kann individuell als Eingang oder Ausgang konfiguriert werden. Die I/O-Ports sind maximal 8 Bit breit und verfügen ja nach AVR-Typ über eine unterschiedliche Anzahl von Pins. An jedem als Eingang (Input) geschalteten Pin gibt es zuschaltbare [[Pullup]]-Widerstände, die teilweise auch bei aktivierter Sonderfunkton verfügbar sind.&lt;br /&gt;
&lt;br /&gt;
Bei eingeschalteten Sonderfunktionen wie UART, SPI, ADC, etc. sind die entsprechenden Pins nicht als &amp;quot;normale&amp;quot; digitale I/O verwendbar, sondern dienen der Sonderfunktion. Die Anzahl der als I/O verwendbaren Pins ist auch abhängig von den Fuse-Einstellungen (Vorsicht beim Umstellen, Handbuch GENAU lesen!).&lt;br /&gt;
|-&lt;br /&gt;
|'''PA 0 – 7''' || Port A &lt;br /&gt;
|-&lt;br /&gt;
|'''PB 0 – 7''' || Port B &lt;br /&gt;
|-&lt;br /&gt;
|'''PC 0 – 7''' || Port C &lt;br /&gt;
|-&lt;br /&gt;
|'''PD 0 – 7''' || Port D &lt;br /&gt;
|-&lt;br /&gt;
|'''PE 0 – 7''' || Port E &lt;br /&gt;
|-&lt;br /&gt;
|'''PF 0 – 7''' || Port F &lt;br /&gt;
|-&lt;br /&gt;
|'''PG 0 – 7''' || Port G &lt;br /&gt;
&amp;lt;!-------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
|- {{Hintergrund1}}&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot;| Externe Interrupts&lt;br /&gt;
|- &lt;br /&gt;
| colspan=&amp;quot;2&amp;quot;| Die PCINT-Interrupts gibt es nur für neuere AVRs wie den [[ATmega88]]. Falls die Anzahl an externen Interrupts nicht ausreicht, kann evtl. auch andere Hardware dafür eingesetzt werden, etwa der Analog-Comparator mit interner Bandgap-Referenz, falls er anderwärtig nicht gebraucht wird.&lt;br /&gt;
|-&lt;br /&gt;
 |'''INT0''' ||Externer Interrupt 0&lt;br /&gt;
|-&lt;br /&gt;
 |'''INT1''' ||Externer Interrupt 1&lt;br /&gt;
|-&lt;br /&gt;
 |'''INT2''' ||Externer Interrupt 2 &lt;br /&gt;
|-&lt;br /&gt;
 |'''PCINTx''' ||Pin-Change Interrupt&lt;br /&gt;
&amp;lt;!-------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
|- {{Hintergrund1}}&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot;| [[Timer]] und [[PWM]]&lt;br /&gt;
|-&lt;br /&gt;
 |'''T0''' &lt;br /&gt;
 |Timer 0: externer Takteingang.&lt;br /&gt;
|-&lt;br /&gt;
 |'''T1''' &lt;br /&gt;
 |Timer 1: externer Takteingang.&lt;br /&gt;
|-&lt;br /&gt;
 |'''OC0''' &lt;br /&gt;
 |PWM bzw. Output Compare Ausgang des Timers 0 &lt;br /&gt;
|-&lt;br /&gt;
 |'''OC1A''' &lt;br /&gt;
 |Ausgang für die Compare-Funktion des integrierten Zeitgeber- / Zählerbausteines &lt;br /&gt;
Der erste PWM-Ausgang des Timers1. Er kann zum Regeln der Bot-Motorgeschwindigkeit benutzt werden. &lt;br /&gt;
|-&lt;br /&gt;
 |'''OC1B''' &lt;br /&gt;
 |Ausgang für die Compare-Funktion des integrierten Zeitgeber- / Zählerbausteines &lt;br /&gt;
Der zweite PWM-Ausgang des Timers1. Er kann zum Regeln der Bot-Motorgeschwindigkeit benutzt werden. &lt;br /&gt;
|-&lt;br /&gt;
 |'''ICP1''' &lt;br /&gt;
 |Eingang für die [[Timer/Counter_(Avr)#Input_Capture|Capture-Funktion]] des integrierten Zeitgebers / Zählerbausteines &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
 |'''OC2''' &lt;br /&gt;
 |[[Pwm]] bzw. Output Compare Ausgang des Timers2. Er kann zum Regeln der Bot-Motorgeschwindigkeit benutzt werden. &lt;br /&gt;
|-&lt;br /&gt;
 |'''TOSC1, TOSC2''' &lt;br /&gt;
 |TOSC1 und TOSC2 sind Eingänge für den asynchronen Modus von Timer2. Sie sind vorgesehen für den Anschluss eines externen Uhrenquarzes ( 32.768 kHz ). Damit lassen sich zum Beispiel genaue Ein-Sekunden-Impulse für eine Uhr generien, sogar wenn der normale Takt im Power-save Modus aus ist.&lt;br /&gt;
&amp;lt;!-------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
|- {{Hintergrund1}}&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot;| Analog-Digital-Wandler&lt;br /&gt;
|-&lt;br /&gt;
 |'''ADC0''' bis '''ADC7''' &lt;br /&gt;
 |Eingänge des AD-Wandlers. Spannungen können hier gemessen werden oder an den Analog-Komparator weiter geleitet werden. &lt;br /&gt;
&amp;lt;!-------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
|- {{Hintergrund1}}&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot;| Analog-Komparator&lt;br /&gt;
|-&lt;br /&gt;
 |'''AIN0, AIN1''' &lt;br /&gt;
 |Die beiden externen Eingänge des Analog-Komparators. &lt;br /&gt;
Mit AIN0(+) und AIN1(-) kann man zwei Spannungen miteinander vergleichen. Wenn die Spannung an AIN0 höher als bei AIN1 ist, liefert der Komparator &amp;quot;High&amp;quot;, ansonsten ein &amp;quot;Low&amp;quot;. Als interne Eingänge des Komparators können die Interne Bandgap-Referenzspannung oder Ausgänge des ADC-Multiplexers dienen.&lt;br /&gt;
&amp;lt;!-------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
|- {{Hintergrund1}}&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot;| Serielle Schnittstelle ([[UART|USART]])&lt;br /&gt;
|-&lt;br /&gt;
 |'''RXD''' &lt;br /&gt;
 |Eingang der Seriellen Schnittstelle (Receive Data), TTL-Pegel &lt;br /&gt;
|-&lt;br /&gt;
 |'''TXD''' &lt;br /&gt;
 |Ausgang Serielle Schnittstelle (Transmit Data), TTL-Pegel &lt;br /&gt;
|-&lt;br /&gt;
 |'''XCK''' &lt;br /&gt;
 |Taktsignal der USART im synchronen Mode (z.B. als SPI Master). &lt;br /&gt;
&amp;lt;!-------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
|- {{Hintergrund1}}&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot;| [[SPI]]-Schnittstelle&lt;br /&gt;
|-&lt;br /&gt;
 |'''SS''' &lt;br /&gt;
 |SPI-Interface – wird benötigt, um den µC als aktiven Slave auszuwählen&lt;br /&gt;
|-&lt;br /&gt;
 |'''MOSI''' &lt;br /&gt;
 |SPI-Interface – Datenausgang (als Master) oder Dateneingang (als Slave), verwendet bei ISP (In-System-Programmierung)&lt;br /&gt;
|-&lt;br /&gt;
 |'''MISO''' &lt;br /&gt;
 |SPI-Interface – Dateneingang (als Master) oder Datenausgang (als Slave), verwendet bei ISP (In-System-Programmierung)&lt;br /&gt;
|-&lt;br /&gt;
 |'''SCK''' &lt;br /&gt;
 |SPI-Interface – Bustakt vom Master, verwendet bei ISP (In-System-Programmierung)&lt;br /&gt;
&amp;lt;!-------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
|- {{Hintergrund1}}&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot;| [[I2C|I&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;C]]-Schnittstelle ([[TWI]])&lt;br /&gt;
|-&lt;br /&gt;
 |'''SDA''' &lt;br /&gt;
 |I2C-Schnittstelle (Bus aus 2 Leitungen) Datenleitung &lt;br /&gt;
|-&lt;br /&gt;
 |'''SCL''' &lt;br /&gt;
 |I2C-Schnittstelle (Bus aus 2 Leitungen) Clockleitung &lt;br /&gt;
&amp;lt;!-------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
|- {{Hintergrund1}}&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot;| [[JTAG]]-Interface&lt;br /&gt;
|-&lt;br /&gt;
 |'''TDI''' &lt;br /&gt;
 |JTAG-Debug Interface - Über dieses Interface kann man den AVR programmieren und debuggen. Die Schnittstelle ist ähnlich wie die SPI Schnittstelle und hat getrennte Dateneingangs- und Datenausgangsleitungen sowie eine Taktleitung. TDI ist die Dateneingangsleitung&lt;br /&gt;
|-&lt;br /&gt;
 |'''TDO''' &lt;br /&gt;
 |JTAG-Debug Interface - TDO ist die Datenausgangsleitung des JTAG Interface&lt;br /&gt;
|-&lt;br /&gt;
 |'''TMS''' &lt;br /&gt;
 |JTAG-Debug Interface&lt;br /&gt;
|-&lt;br /&gt;
 |'''TCK''' &lt;br /&gt;
 |JTAG-Debug Interface &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Timer/Counter ==&lt;br /&gt;
Für Infos zu Timer und Counter siehe Artikel [[Timer/Counter (Avr)]].&lt;br /&gt;
&lt;br /&gt;
== Analog-Digital-Wandler ==&lt;br /&gt;
Für Infos zu Analog-Digital-Wandler siehe Artikel [[ADC (Avr)]].&lt;br /&gt;
&lt;br /&gt;
== Analog-Komparator ==&lt;br /&gt;
Für Infos zu Analog-Komparator siehe Artikel [[Analog Komparator (Avr)]].&lt;br /&gt;
&lt;br /&gt;
== TWI/I2C ==&lt;br /&gt;
Für Details über das Two-wire Serial Interface (kurz [[TWI]]) siehe Artikel [[TWI]].&lt;br /&gt;
&lt;br /&gt;
== UART/USART ==&lt;br /&gt;
Für Details über den UART/USART siehe Artikel [[UART]].&lt;br /&gt;
&lt;br /&gt;
== SPI - Serial Peripheral Interface ==&lt;br /&gt;
Für Details über SPI siehe Artikel [[SPI]].&lt;br /&gt;
&lt;br /&gt;
Näheres zu SPI beim AVR siehe [[SPI (AVR)]].&lt;br /&gt;
&lt;br /&gt;
== USI - Universal Serial Interface ==&lt;br /&gt;
Für Infos zu USI (Universal Serial Interface) siehe Artikel [[USI (Avr)]].&lt;br /&gt;
&lt;br /&gt;
== IO-PORTs ==&lt;br /&gt;
Die IO-Port dienen dazu direkt digitale Werte auszugeben oder einzulesen. Zu jedem Port (im folgenden X für A,B,C,D,...) gehören 3 Register. Zum einem Port gehören bis zu 8 Pins (PX0,...,PX7).&lt;br /&gt;
* DDRX : Datenrichtungsregister (1 = Ausgang, 0 = Eingang)&lt;br /&gt;
* PORTX bzw. Portx bei BASCOM : Ausgaberegister. Für Ausgänge wird hier der Ausgabewert bestimmt. Für Eingänge wird hier der Pullup-Widerstand eingeschaltet (1) oder ausgeschaltet (0).&lt;br /&gt;
* PINX bzw. Pinx bei BASCOM : Eingangsregister. Lesen gibt den Zustand am Pin (1 = high, 0 = low). Das gilt auch wenn der IO Pin als Ausgang funktioniert. Die Wirkung beim Schreiben in dieses Register hängt vom Typ ab (siehe Datenblatt). Bei älteren Typen passiert beim schreiben nichts. Bei einigen neueren Typen wird beim schreiben einer 1 das entsprechende Bit im Register PORTX umgedreht.&lt;br /&gt;
&lt;br /&gt;
Von außen gesehen kann der IO Pin also 4 Zustände haben:  niederohmig an VCC (high), niederohmig an GND (low), Pullup an VCC und hochohmiger Eingang. Für die Ausgabe nutzt man in der Regel PORTX, für Eingänge immer PINX.&lt;br /&gt;
&lt;br /&gt;
== Die Fusebits ==&lt;br /&gt;
Zur Konfigurierung eines AVR-Controllers werden Fusebits benutzt. Bei der Auslieferung neuer AVR Controller sind die Fusebits bereits vorkonfiguriert, in der Regel auf den internen RC Oszillator und etwa 1 MHz Frequenz. In vielen Fällen kann die Konfiguration unverändert bleiben. Bei den Typen Mega xxx bestimmen einige Fusebits beispielsweise, dass der interne Taktgeber aktiviert ist. Soll z.B. dagegen ein externer Quarz anschlossen oder die Taktfrequenz geändert werden, so müssen auch die Fusebits geändert werden. Auch das Deaktivieren des &amp;quot;[[On Chip Debugging]]&amp;quot; Modus ist oft notwendig, wenn alle Ports genutzt werden sollen. &lt;br /&gt;
&lt;br /&gt;
Die Fusebits werden in der Regel über die Software eingestellt, welche auch für das Übertragen des Programmcodes zuständig ist. Besonders einfach geht dies beispielsweise mit der Entwicklungsumgebung [[Bascom]]. Aber auch andere Programme wie [[PonyProg]] können für die Umstellung der Fusebits genutzt werden. Einmal eingestellte Fusebits bleiben bis zur erneuten Fusebit-Änderung erhalten. Der normale Programmiermodus verändert die Fusebits nicht. &lt;br /&gt;
&lt;br /&gt;
Je nach AVR Controllertyp sind unterschiedliche Fusebits (Einstellungen) vorhanden. Die genaue Beschreibung findet man im jeweiligen Datenblatt. Da aber falsch gesetzte Fusebit-Einstellungen zu den häufigsten Problemen gehören (siehe auch unter dieser Tabelle), liste ich hier die Funktion der üblichen Fusebits nochmals genauer auf:&lt;br /&gt;
&lt;br /&gt;
{| {{Blauetabelle}}&lt;br /&gt;
 |'''CKSEL0, CKSEL1, CKSEL2, CKSEL3'''&lt;br /&gt;
 |Die Kombination dieser 4 Fusebits bestimmt die Taktquelle des Controllers. Das kann eine interner Taktgenerator, ein Quarz, Quarzoszillator, RC-Glied und ähnliches sein.&lt;br /&gt;
|-&lt;br /&gt;
 |'''JTAGEN'''&lt;br /&gt;
 |Hiermit wird die &amp;quot;[[On Chip Debugging]]&amp;quot; Schnittstelle aktiviert bzw. deaktiviert. Das sind die Bits mit den Bezeichnungen TDI, TDO, TMS und TCK. Möchte man diese Pins als normalen Port nutzen, so muss diese Schnittstelle immer deaktiviert werden. Alternativ kann man das JTAG aber auch per Software deaktivieren.&lt;br /&gt;
|-&lt;br /&gt;
 |'''SUT0, SUT1'''&lt;br /&gt;
 |Die sogenannte StartUp-Zeit (PowerOn delay). Diese Einstellung muss abhängig von der Art des Taktgenerators eingestellt werden, genaueres im jeweiligen Datenblatt. &lt;br /&gt;
|-&lt;br /&gt;
 |'''SPIEN'''&lt;br /&gt;
 |Hiermit kann die serielle [[AVR-ISP Programmierkabel|ISP-Programmierung]], welche die meisten Programmierkabel nutzen, deaktiviert werden. Dies sollte man lieber vermeiden, denn wenn dieser Programmiermodus deaktiviert wurde, kann nur noch der Parallel-Programmiermodus genutzt werden. Der Parallel-Programmiermodus benötigt jedoch ein spezielles Programmiergerät, das die wenigsten Bastler besitzen. ''Also Vorsicht!''&lt;br /&gt;
|-&lt;br /&gt;
 |'''BODEN'''&lt;br /&gt;
 |Über dieses Bit wird der '''Brown-out Detector''' aktiviert bzw. deaktiviert. Dies ist eine Überwachung der Betriebsspannung, die dafür sorgt, dass bei zu geringer Spannung der Controller angehalten wird und dann ein ordentlicher RESET durchgeführt wird, wenn die Spannung wieder ausreicht. Dadurch wird verhindert, dass der Controller in einen undefinierten Zustand gerät (hängen bleibt), sich verrechnet oder versehentlich das EEPROM / Flash verändert. In der Regel sollte man daher den Brown-out Detector aktivieren.&lt;br /&gt;
|-&lt;br /&gt;
 |'''BODLEVEL'''&lt;br /&gt;
 |Über dieses Bit (ggf. auch mehrere) wird festgelegt, ab welcher Spannung der Brown-out Detector anspricht. &lt;br /&gt;
|-&lt;br /&gt;
 |'''BOOTRST'''&lt;br /&gt;
 |Gewöhnlich startet ein Programm im Controller nach einem RESET ab Adresse 0. Durch dieses Fusebit kann der Controller jedoch veranlasst werden, nach einem Reset einen sogenannten Bootloader-Bereich auszuführen. Ein [[Bootloader]] kann genutzt werden, um Controller über andere Schnittstellen (z.B. RS232) zu programmieren.&lt;br /&gt;
|-&lt;br /&gt;
 |'''BOOTSZ0, BOOTSZ1'''&lt;br /&gt;
 |Der zuvor genannte Bootloaderbereich kann bei AVR-Controllern verschieden groß sein. Über diese beiden Bits können vier verschiedene Größen eingestellt werden. Siehe unter [[Bootloader]].&lt;br /&gt;
|-&lt;br /&gt;
 |'''EESAVE'''&lt;br /&gt;
 |Dieses Bit legt fest, ob beim Programmieren des Controllers (man nennt es auch brennen) immer das EEPROM gelöscht werden soll.&lt;br /&gt;
|-&lt;br /&gt;
 |'''CKOPT'''&lt;br /&gt;
 |Abhängig von den Einstellungen von CKSEL kann hier dir Oszillator-Verstärkung eingestellt werden. Genaueres im Datenblatt des jeweiligen Controllers.&lt;br /&gt;
|-&lt;br /&gt;
 |'''WDTON'''&lt;br /&gt;
 |Schaltet den WatchDog-Timer beim Booten ein/aus. Dies ist auch per Software möglich&lt;br /&gt;
|-&lt;br /&gt;
 |'''RSTDISBL'''&lt;br /&gt;
 |Durch dieses Bit kann man den RESET-Pin deaktivieren und dann als normalen I/O-Port nutzen. Aber Vorsicht! Da die RESET-Leitung beim Programmieren (Brennen) des Chips genutzt wird, kann man nach dessen Deaktivierung den Controller mit den üblichen [[AVR-ISP Programmierkabel|ISP-Adaptern]] nicht mehr programmieren. In diesem Fall könnte man zwar den Controlle noch mit speziellen Programmiergeräten im Parallelmodus programmieren, aber in der Praxis verfügen nur wenige Bastler über ein Programmiergerät, das dies leistet.&lt;br /&gt;
|-&lt;br /&gt;
 |'''LB1, LB2'''&lt;br /&gt;
 |Das sind die sogenannten Lockbits, mit denen sich das Auslesen des Flash- als auch EEPROM-Speichers verhindern läßt. Zwar können andere Anwender immer noch Daten lesen, allerdings handelt es sich dabei nicht mehr um den wirklichen Inhalt sondern lediglich um wirre Datenbytefolgen. Programmierer, die den erarbeiteten Code vor Raubkopierern schützen wollen, nutzen diese Lockbits. Das Programmieren ist auch bei gesetzen Lockbits noch möglich. Der Bootloader-Bereich wird nicht durch die Lockbits geschützt.&lt;br /&gt;
|-&lt;br /&gt;
 |'''BLB01, BLB02'''&lt;br /&gt;
 |Durch diese Bits kann der Code sogar vor dem Zugriff durch den Bootloader geschützt werden&lt;br /&gt;
|-&lt;br /&gt;
 |'''BLB11, BLB12'''&lt;br /&gt;
 |Diese Bits schützen den Bootloaderbereich selbst&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Wie man die Fusebits mit [[Bascom]] einstellt, wird im Beitrag [[Bascom - Erstes Programm in den AVR Controller übertragen]] erläutert.&lt;br /&gt;
&lt;br /&gt;
''Autoren des Artikels: Frank, Luma''&lt;br /&gt;
&lt;br /&gt;
Fusebits verstellt auf Externer Oszillator gehört zu den sehr häufigen Fehlern insbesondere bei Anfängern. Eine Möglichkeit, diesen Fehler mit einem Minimum an Hardware (minimalistisch gehts mit nur 1 Widerstand an einer EIA232-Schnittstelle) zu reparieren, ist hier vorgestellt: [http://www.roboternetz.de/phpBB2/viewtopic.php?t=51685 Fuse irrtümlich auf extern Takt?].&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
* [[AVR-Einstieg leicht gemacht]]&lt;br /&gt;
===Entwicklungsumgebungen===&lt;br /&gt;
* [[Microsoft_Visual_Studio_2008_als_AVR_Entwicklungsumgebung| Microsoft Visual Studio]] - Die kostenlose &amp;quot;Express Edition&amp;quot; setzt auf WinAVR und auf den GCC auf, compiliert über custom-build und generiert ein Script für Ponyprog&lt;br /&gt;
&lt;br /&gt;
* [[Bascom]] - Basic-Entwicklungssystem&lt;br /&gt;
* [[Bascom - Erstes Programm in den AVR Controller übertragen]]&lt;br /&gt;
* [[Avr-gcc|avr-gcc]] - Leistungsfähiger AVR-Port des freien Compilers GCC&lt;br /&gt;
* [[WinAVR]] - Freies, kostenloses Werkzeugpaket mit avr-gcc, binutils, tools ([[make]], [[Programmer's Notepad]], [[avrdude]], etc.) für MS-Windows.&lt;br /&gt;
* [[Linuxdistribution_Avr-live-cd]]&lt;br /&gt;
* [[AVR_Assembler_Einf%C3%BChrung|AVR Assembler Einführung (AvrStudio)]]&lt;br /&gt;
* [http://www.mikroe.com/en/compilers/mikropascal/avr/ MikroPascal for AVR] Sehr gute kommerzielle Pascal Entwicklungsumgebung. Der Compiler ist auch für PIC und andere Controller verfügbar.&lt;br /&gt;
&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
* [[AVR-ISP Programmierkabel]] - Bauanleitung für die AVR Controller Programmierkabel&lt;br /&gt;
* [[RN-Control]] - Eines der beliebtestet AVR-Boards im Roboternetz&lt;br /&gt;
* [[RNBFRA-Board]] - Größeres Board mit zwei Atmel Controllern&lt;br /&gt;
&lt;br /&gt;
===Sonstiges===&lt;br /&gt;
* [[Atmel]]&lt;br /&gt;
* [[HEX Beispiel-Dateien für AVR]]&lt;br /&gt;
* [[Bootloader]]&lt;br /&gt;
* [[On Chip Debugging]]&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* [http://www.atmel.com/dyn/products/param_table.asp?family_id=607&amp;amp;OrderBy=part_no&amp;amp;Direction=ASC Aktuelle AVR Vergleichstabelle]&lt;br /&gt;
* [http://www.atmel.com/dyn/products/devices.asp?family_id=607 Die Datenblätter zu Atmel Controllern]&lt;br /&gt;
* [https://mpg.dnsalias.com/~magerlu/rn-wiki/avrtimer_applet Java Applet Timer Berechnung] &lt;br /&gt;
* [http://www.roboternetz.de/phpBB2/dload.php?action=file&amp;amp;file_id=169 AvrTimer Windows Berechnungstool (für Bascom, nur nach Anmeldung)]&lt;br /&gt;
* [http://people.freenet.de/gjl/helferlein/avr-uart-rechner.html AVR-Baudraten-Rechner (JavaScript)]&lt;br /&gt;
* [http://www.engbedded.com/fusecalc/ Berechnung der Fusebits (englisch)]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Microcontroller]]&lt;br /&gt;
[[Kategorie:Grundlagen]]&lt;br /&gt;
[[Kategorie:Elektronik]]&lt;br /&gt;
[[Kategorie:Abkürzung|AVR]]&lt;/div&gt;</summary>
		<author><name>Oberallgeier</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=Avr&amp;diff=17183</id>
		<title>Avr</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=Avr&amp;diff=17183"/>
				<updated>2011-01-20T15:35:07Z</updated>
		
		<summary type="html">&lt;p&gt;Oberallgeier: /* Die Fusebits */  Hinweis auf Fuseretter bei irrrtümlichem Verstellen auf externen Oszillator.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Bild:AtmelController.jpg|thumb|Beispiel eines AVR Controllers]]&lt;br /&gt;
'''AVR''' ist eine 8-Bit [[Microcontroller]]-Familie mit RISC-Architektur.&lt;br /&gt;
Im Gegensatz zu vielen anderen Microcontroller-Architekturen hat die AVR-Architektur keine Vorgänger. Sie ist ein komplettes Neudesign, das Anfang der 90-Jahre an der Universität von Trondheim/Norwegen entwickelt und vom (bis heute einzigen) Hersteller [[Atmel]] aufgekauft wurde. Es gibt eine ganze Serie von AVR-Controllern. Sie alle werden ähnlich programmiert, haben vergleichbaren Befehlssatz und physikalische Eigenschaften, bieten jedoch unterschiedliche Features und Peripherie. &lt;br /&gt;
&lt;br /&gt;
Es gibt zahlreiche und kostenlose Entwicklungssysteme in den Sprachen Basic, C/C++, Pascal und Assembler für diese Controller-Familie. &lt;br /&gt;
&lt;br /&gt;
== Wofür steht AVR? ==&lt;br /&gt;
&amp;quot;AVR&amp;quot; steht angeblich für ''Advanced Virtual RISC'' (in einem Paper der Entwickler des AVR-Kerns Alf Egin Bogen und Vegard Wollan). Laut [[Atmel]] bedeutet es nichts.&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
AVR-Controller besitzen eine zweistufige Pipeline (fetch and execute), die es ermöglicht, die meisten Befehle innerhalb eines einzigen Prozessortaktes auszuführen. Dadurch ist ein AVR wesentlich schneller als etwa 8051-Controller, bei denen der Prozessortakt intern noch durch 12 geteilt wird.&lt;br /&gt;
&lt;br /&gt;
*AVR-Kern&lt;br /&gt;
** Harvard-Architektur (getrennter Befehls- und Datenspeicher) &lt;br /&gt;
** 8-Bit Architektur ist für Hochsprachen (C) optimiert &lt;br /&gt;
** 32 Register, davon 6 als 3 Pointerregister, kein Akkumulator&lt;br /&gt;
** Lineares Speichermodell (keine Segmentierung)&lt;br /&gt;
* In-System programmierbar: die Controller können sehr einfach über ein  Programmierkabel (oft ISP-Kabel genannt), das mit dem PC verbunden wird, programmiert werden &amp;amp;ndash; auch dann, wenn sie sich nicht in einer Schaltung befindet.&lt;br /&gt;
* integrierter Flash-Speicher für Programm &lt;br /&gt;
* umfangreiche Peripherie&lt;br /&gt;
** [[Watchdog]], [[Bootloader]]-Support, verschiedene [[Stromspar-Modi(AVR)|Stromspar-Modi]], Brownout-Erkennung, Interner Oszillator&lt;br /&gt;
** EEPROM-Datenspeicher&lt;br /&gt;
** 8- und 16-Bit-Timer/Counter mit [[PWM]], Capture/Compare, externe Betaktung, asynchrone Operation&lt;br /&gt;
** Kommunikation: [[UART|USART]], [[SPI]], [[I2C]] ([[TWI]])&lt;br /&gt;
** Analog-Comparator, Analog-Digital-Wandler &lt;br /&gt;
** unterschiedlichste externe und interne Interrupt-Quellen (UART, SPI, Timer, A/D-Wandler, Analog-Comparator, ...)&lt;br /&gt;
** JTAG (Debugerinterface) (Teilweise)&lt;br /&gt;
* AVR Typen (AT90 &amp;quot;Classic AVR&amp;quot;, ATtiny, ATmega) &lt;br /&gt;
* erhältlich in unterschiedlichen Gehäusen, idR Durchsteck und als [[SMD]]&lt;br /&gt;
* Viele Entwicklungsboards erhältlich, z.B. das Roboternetzboard [[RN-Control]]&lt;br /&gt;
&lt;br /&gt;
==Einige Pinbelegungen der populärsten AVR-Controller==&lt;br /&gt;
(in etwa nach Leistungsfähigkeit sortiert)&lt;br /&gt;
&lt;br /&gt;
* [[AT90S2313]]&lt;br /&gt;
&lt;br /&gt;
[[Bild:at90s2313tiny.png|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [[Atmel Controller Mega8]]&lt;br /&gt;
* [[Atmel Controller Mega48 Mega88 Mega168]]&lt;br /&gt;
&lt;br /&gt;
[[Bild:mega8kompatibel.png|center]]&lt;br /&gt;
&lt;br /&gt;
* [[Atmel Controller Mega16 und Mega32]]&lt;br /&gt;
&lt;br /&gt;
[[Bild:Mega1632.gif|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [[Atmel Controller Mega128]] ([[SMD]]-Chip)&lt;br /&gt;
&lt;br /&gt;
[[Bild:mega128pin.gif|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Die AVR-Pin-Bezeichnungen und deren Funktion ===&lt;br /&gt;
Die meisten Ports sind doppelt belegt und besitzen neben der normalen Port-Funktion noch eine Sonderfunktion. Die verschiedenen Pinbezeichnungen und Sonderfunktionen werden hier beschrieben:&lt;br /&gt;
&lt;br /&gt;
{| {{Blauetabelle}}&lt;br /&gt;
|+ '''Tabelle: Die AVR-Pin-Bezeichnungen und deren Funktion'''&lt;br /&gt;
&amp;lt;!-------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
|- {{Hintergrund1}}&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot;| Versorgungs- und Referenzpins, Reset&lt;br /&gt;
|-&lt;br /&gt;
 |'''[[VCC]]''' &lt;br /&gt;
 | Versorgungsspannung von 2,7 V bis 5,5 V bei den L-Varianten (low power), ansonsten 4,5V bis 5,5 V. Neuere AVR ab 2,7 V und ab 1,8 V in V-Variante.&lt;br /&gt;
|-&lt;br /&gt;
 |'''[[GND]]''' &lt;br /&gt;
 |Masse &lt;br /&gt;
|-&lt;br /&gt;
 |'''AREF''' &lt;br /&gt;
 |Referenzspannung für den Analog-Digital-Wandler. Auch die interne Bandgap-Referenzspannung kann über diesen Pin entstört werden (dann KEINE externe Spannung an diesen Pin geben (Kurzschluss)!). &lt;br /&gt;
|-&lt;br /&gt;
 |'''AGND''' &lt;br /&gt;
 |Analoge Masse für AD Wandler und dazugehörige Ports. Sollte in aller Regel mit GND verbunden werden.&lt;br /&gt;
|-&lt;br /&gt;
 |'''AVCC''' &lt;br /&gt;
 | &lt;br /&gt;
Die Betriebsspannung für den Analog-Digital-Wandler (und einiges mehr) (siehe Beschaltungsskizze). Die Pins AVCC und AGND müssen immer beschaltet werden, selbst wenn man den AD-Wandler und Port A nicht benutzt. &lt;br /&gt;
|-&lt;br /&gt;
 |'''RESET''' &lt;br /&gt;
 |Rücksetz-Eingang, intern über einen [[Pullup]] mit VCC verbunden. Ein LOW–Pegel an diesem Pin für die Dauer von mindestens zwei Zyklen des Systemtaktes bei aktivem Oszillator setzt den Controller zurück. Rücksetzen der Ports erfolgt unabhängig von einem evtl. anliegenden Systemtakt.&lt;br /&gt;
|-&lt;br /&gt;
|'''PEN'''&lt;br /&gt;
|Programming Enable - Diesen Pin gibt es nur beim Mega128/64 u.ä. Wird dieser Pin beim Power-On Reset nach Masse gezogen, geht der Controller in den [[ISP]] Programmiermodus. Man kann ihn also alternativ zu Reset verwenden. In der Regel verwendet man aber die Reset-Leitung und PEN sollte man direkt mit VCC verbinden.&lt;br /&gt;
&amp;lt;!-------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
|- {{Hintergrund1}}&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot;| System-Takt&lt;br /&gt;
|-&lt;br /&gt;
 |'''XTAL1''' &lt;br /&gt;
 |Eingang des internen Oszillators zur Erzeugung des Systemtaktes bzw. Eingang für ein externes Taktsignal, wenn der interne Oszillator nicht verwendet werden soll bzw. Anschluss von Quarz/Keramik-Resonator/RC-Glied.&lt;br /&gt;
|-&lt;br /&gt;
 |'''XTAL2''' &lt;br /&gt;
 |Anschluss von Quarz oder Keramik-Resonator oder Ausgang des integrierten Oszillators zur Nutzung als Systemtakt (Je nach Fuse-Einstellungen). &lt;br /&gt;
&amp;lt;!-------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
|- {{Hintergrund1}}&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot;| Digitale bidirektionale  I/O-Ports&lt;br /&gt;
|- &lt;br /&gt;
| colspan=&amp;quot;2&amp;quot;| Jeder Pin der Ports kann individuell als Eingang oder Ausgang konfiguriert werden. Die I/O-Ports sind maximal 8 Bit breit und verfügen ja nach AVR-Typ über eine unterschiedliche Anzahl von Pins. An jedem als Eingang (Input) geschalteten Pin gibt es zuschaltbare [[Pullup]]-Widerstände, die teilweise auch bei aktivierter Sonderfunkton verfügbar sind.&lt;br /&gt;
&lt;br /&gt;
Bei eingeschalteten Sonderfunktionen wie UART, SPI, ADC, etc. sind die entsprechenden Pins nicht als &amp;quot;normale&amp;quot; digitale I/O verwendbar, sondern dienen der Sonderfunktion. Die Anzahl der als I/O verwendbaren Pins ist auch abhängig von den Fuse-Einstellungen (Vorsicht beim Umstellen, Handbuch GENAU lesen!).&lt;br /&gt;
|-&lt;br /&gt;
|'''PA 0 – 7''' || Port A &lt;br /&gt;
|-&lt;br /&gt;
|'''PB 0 – 7''' || Port B &lt;br /&gt;
|-&lt;br /&gt;
|'''PC 0 – 7''' || Port C &lt;br /&gt;
|-&lt;br /&gt;
|'''PD 0 – 7''' || Port D &lt;br /&gt;
|-&lt;br /&gt;
|'''PE 0 – 7''' || Port E &lt;br /&gt;
|-&lt;br /&gt;
|'''PF 0 – 7''' || Port F &lt;br /&gt;
|-&lt;br /&gt;
|'''PG 0 – 7''' || Port G &lt;br /&gt;
&amp;lt;!-------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
|- {{Hintergrund1}}&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot;| Externe Interrupts&lt;br /&gt;
|- &lt;br /&gt;
| colspan=&amp;quot;2&amp;quot;| Die PCINT-Interrupts gibt es nur für neuere AVRs wie den [[ATmega88]]. Falls die Anzahl an externen Interrupts nicht ausreicht, kann evtl. auch andere Hardware dafür eingesetzt werden, etwa der Analog-Comparator mit interner Bandgap-Referenz, falls er anderwärtig nicht gebraucht wird.&lt;br /&gt;
|-&lt;br /&gt;
 |'''INT0''' ||Externer Interrupt 0&lt;br /&gt;
|-&lt;br /&gt;
 |'''INT1''' ||Externer Interrupt 1&lt;br /&gt;
|-&lt;br /&gt;
 |'''INT2''' ||Externer Interrupt 2 &lt;br /&gt;
|-&lt;br /&gt;
 |'''PCINTx''' ||Pin-Change Interrupt&lt;br /&gt;
&amp;lt;!-------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
|- {{Hintergrund1}}&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot;| [[Timer]] und [[PWM]]&lt;br /&gt;
|-&lt;br /&gt;
 |'''T0''' &lt;br /&gt;
 |Timer 0: externer Takteingang.&lt;br /&gt;
|-&lt;br /&gt;
 |'''T1''' &lt;br /&gt;
 |Timer 1: externer Takteingang.&lt;br /&gt;
|-&lt;br /&gt;
 |'''OC0''' &lt;br /&gt;
 |PWM bzw. Output Compare Ausgang des Timers 0 &lt;br /&gt;
|-&lt;br /&gt;
 |'''OC1A''' &lt;br /&gt;
 |Ausgang für die Compare-Funktion des integrierten Zeitgeber- / Zählerbausteines &lt;br /&gt;
Der erste PWM-Ausgang des Timers1. Er kann zum Regeln der Bot-Motorgeschwindigkeit benutzt werden. &lt;br /&gt;
|-&lt;br /&gt;
 |'''OC1B''' &lt;br /&gt;
 |Ausgang für die Compare-Funktion des integrierten Zeitgeber- / Zählerbausteines &lt;br /&gt;
Der zweite PWM-Ausgang des Timers1. Er kann zum Regeln der Bot-Motorgeschwindigkeit benutzt werden. &lt;br /&gt;
|-&lt;br /&gt;
 |'''ICP1''' &lt;br /&gt;
 |Eingang für die [[Timer/Counter_(Avr)#Input_Capture|Capture-Funktion]] des integrierten Zeitgebers / Zählerbausteines &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
 |'''OC2''' &lt;br /&gt;
 |[[Pwm]] bzw. Output Compare Ausgang des Timers2. Er kann zum Regeln der Bot-Motorgeschwindigkeit benutzt werden. &lt;br /&gt;
|-&lt;br /&gt;
 |'''TOSC1, TOSC2''' &lt;br /&gt;
 |TOSC1 und TOSC2 sind Eingänge für den asynchronen Modus von Timer2. Sie sind vorgesehen für den Anschluss eines externen Uhrenquarzes ( 32.768 kHz ). Damit lassen sich zum Beispiel genaue Ein-Sekunden-Impulse für eine Uhr generien, sogar wenn der normale Takt im Power-save Modus aus ist.&lt;br /&gt;
&amp;lt;!-------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
|- {{Hintergrund1}}&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot;| Analog-Digital-Wandler&lt;br /&gt;
|-&lt;br /&gt;
 |'''ADC0''' bis '''ADC7''' &lt;br /&gt;
 |Eingänge des AD-Wandlers. Spannungen können hier gemessen werden oder an den Analog-Komparator weiter geleitet werden. &lt;br /&gt;
&amp;lt;!-------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
|- {{Hintergrund1}}&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot;| Analog-Komparator&lt;br /&gt;
|-&lt;br /&gt;
 |'''AIN0, AIN1''' &lt;br /&gt;
 |Die beiden externen Eingänge des Analog-Komparators. &lt;br /&gt;
Mit AIN0(+) und AIN1(-) kann man zwei Spannungen miteinander vergleichen. Wenn die Spannung an AIN0 höher als bei AIN1 ist, liefert der Komparator &amp;quot;High&amp;quot;, ansonsten ein &amp;quot;Low&amp;quot;. Als interne Eingänge des Komparators können die Interne Bandgap-Referenzspannung oder Ausgänge des ADC-Multiplexers dienen.&lt;br /&gt;
&amp;lt;!-------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
|- {{Hintergrund1}}&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot;| Serielle Schnittstelle ([[UART|USART]])&lt;br /&gt;
|-&lt;br /&gt;
 |'''RXD''' &lt;br /&gt;
 |Eingang der Seriellen Schnittstelle (Receive Data), TTL-Pegel &lt;br /&gt;
|-&lt;br /&gt;
 |'''TXD''' &lt;br /&gt;
 |Ausgang Serielle Schnittstelle (Transmit Data), TTL-Pegel &lt;br /&gt;
|-&lt;br /&gt;
 |'''XCK''' &lt;br /&gt;
 |Taktsignal der USART im synchronen Mode (z.B. als SPI Master). &lt;br /&gt;
&amp;lt;!-------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
|- {{Hintergrund1}}&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot;| [[SPI]]-Schnittstelle&lt;br /&gt;
|-&lt;br /&gt;
 |'''SS''' &lt;br /&gt;
 |SPI-Interface – wird benötigt, um den µC als aktiven Slave auszuwählen&lt;br /&gt;
|-&lt;br /&gt;
 |'''MOSI''' &lt;br /&gt;
 |SPI-Interface – Datenausgang (als Master) oder Dateneingang (als Slave), verwendet bei ISP (In-System-Programmierung)&lt;br /&gt;
|-&lt;br /&gt;
 |'''MISO''' &lt;br /&gt;
 |SPI-Interface – Dateneingang (als Master) oder Datenausgang (als Slave), verwendet bei ISP (In-System-Programmierung)&lt;br /&gt;
|-&lt;br /&gt;
 |'''SCK''' &lt;br /&gt;
 |SPI-Interface – Bustakt vom Master, verwendet bei ISP (In-System-Programmierung)&lt;br /&gt;
&amp;lt;!-------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
|- {{Hintergrund1}}&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot;| [[I2C|I&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;C]]-Schnittstelle ([[TWI]])&lt;br /&gt;
|-&lt;br /&gt;
 |'''SDA''' &lt;br /&gt;
 |I2C-Schnittstelle (Bus aus 2 Leitungen) Datenleitung &lt;br /&gt;
|-&lt;br /&gt;
 |'''SCL''' &lt;br /&gt;
 |I2C-Schnittstelle (Bus aus 2 Leitungen) Clockleitung &lt;br /&gt;
&amp;lt;!-------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
|- {{Hintergrund1}}&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot;| [[JTAG]]-Interface&lt;br /&gt;
|-&lt;br /&gt;
 |'''TDI''' &lt;br /&gt;
 |JTAG-Debug Interface - Über dieses Interface kann man den AVR programmieren und debuggen. Die Schnittstelle ist ähnlich wie die SPI Schnittstelle und hat getrennte Dateneingangs- und Datenausgangsleitungen sowie eine Taktleitung. TDI ist die Dateneingangsleitung&lt;br /&gt;
|-&lt;br /&gt;
 |'''TDO''' &lt;br /&gt;
 |JTAG-Debug Interface - TDO ist die Datenausgangsleitung des JTAG Interface&lt;br /&gt;
|-&lt;br /&gt;
 |'''TMS''' &lt;br /&gt;
 |JTAG-Debug Interface&lt;br /&gt;
|-&lt;br /&gt;
 |'''TCK''' &lt;br /&gt;
 |JTAG-Debug Interface &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Timer/Counter ==&lt;br /&gt;
Für Infos zu Timer und Counter siehe Artikel [[Timer/Counter (Avr)]].&lt;br /&gt;
&lt;br /&gt;
== Analog-Digital-Wandler ==&lt;br /&gt;
Für Infos zu Analog-Digital-Wandler siehe Artikel [[ADC (Avr)]].&lt;br /&gt;
&lt;br /&gt;
== Analog-Komparator ==&lt;br /&gt;
Für Infos zu Analog-Komparator siehe Artikel [[Analog Komparator (Avr)]].&lt;br /&gt;
&lt;br /&gt;
== TWI/I2C ==&lt;br /&gt;
Für Details über das Two-wire Serial Interface (kurz [[TWI]]) siehe Artikel [[TWI]].&lt;br /&gt;
&lt;br /&gt;
== UART/USART ==&lt;br /&gt;
Für Details über den UART/USART siehe Artikel [[UART]].&lt;br /&gt;
&lt;br /&gt;
== SPI - Serial Peripheral Interface ==&lt;br /&gt;
Für Details über SPI siehe Artikel [[SPI]].&lt;br /&gt;
&lt;br /&gt;
Näheres zu SPI beim AVR siehe [[SPI (AVR)]].&lt;br /&gt;
&lt;br /&gt;
== USI - Universal Serial Interface ==&lt;br /&gt;
Für Infos zu USI (Universal Serial Interface) siehe Artikel [[USI (Avr)]].&lt;br /&gt;
&lt;br /&gt;
== IO-PORTs ==&lt;br /&gt;
Die IO-Port dienen dazu direkt digitale Werte auszugeben oder einzulesen. Zu jedem Port (im folgenden X für A,B,C,D,...) gehören 3 Register. Zum einem Port gehören bis zu 8 Pins (PX0,...,PX7).&lt;br /&gt;
* DDRX : Datenrichtungsregister (1 = Ausgang, 0 = Eingang)&lt;br /&gt;
* PORTX bzw. Portx bei BASCOM : Ausgaberegister. Für Ausgänge wird hier der Ausgabewert bestimmt. Für Eingänge wird hier der Pullup-Widerstand eingeschaltet (1) oder ausgeschaltet (0).&lt;br /&gt;
* PINX bzw. Pinx bei BASCOM : Eingangsregister. Lesen gibt den Zustand am Pin (1 = high, 0 = low). Das gilt auch wenn der IO Pin als Ausgang funktioniert. Die Wirkung beim Schreiben in dieses Register hängt vom Typ ab (siehe Datenblatt). Bei älteren Typen passiert beim schreiben nichts. Bei einigen neueren Typen wird beim schreiben einer 1 das entsprechende Bit im Register PORTX umgedreht.&lt;br /&gt;
&lt;br /&gt;
Von außen gesehen kann der IO Pin also 4 Zustände haben:  niederohmig an VCC (high), niederohmig an GND (low), Pullup an VCC und hochohmiger Eingang. Für die Ausgabe nutzt man in der Regel PORTX, für Eingänge immer PINX.&lt;br /&gt;
&lt;br /&gt;
== Die Fusebits ==&lt;br /&gt;
Zur Konfigurierung eines AVR-Controllers werden Fusebits benutzt. Bei der Auslieferung neuer AVR Controller sind die Fusebits bereits vorkonfiguriert, in der Regel auf den internen RC Oszillator und etwa 1 MHz Frequenz. In vielen Fällen kann die Konfiguration unverändert bleiben. Bei den Typen Mega xxx bestimmen einige Fusebits beispielsweise, dass der interne Taktgeber aktiviert ist. Soll z.B. dagegen ein externer Quarz anschlossen oder die Taktfrequenz geändert werden, so müssen auch die Fusebits geändert werden. Auch das Deaktivieren des &amp;quot;[[On Chip Debugging]]&amp;quot; Modus ist oft notwendig, wenn alle Ports genutzt werden sollen. &lt;br /&gt;
&lt;br /&gt;
Die Fusebits werden in der Regel über die Software eingestellt, welche auch für das Übertragen des Programmcodes zuständig ist. Besonders einfach geht dies beispielsweise mit der Entwicklungsumgebung [[Bascom]]. Aber auch andere Programme wie [[PonyProg]] können für die Umstellung der Fusebits genutzt werden. Einmal eingestellte Fusebits bleiben bis zur erneuten Fusebit-Änderung erhalten. Der normale Programmiermodus verändert die Fusebits nicht. &lt;br /&gt;
&lt;br /&gt;
Je nach AVR Controllertyp sind unterschiedliche Fusebits (Einstellungen) vorhanden. Die genaue Beschreibung findet man im jeweiligen Datenblatt. Da aber falsch gesetzte Fusebit-Einstellungen zu den häufigsten Problemen gehören (siehe auch unter dieser Tabelle), liste ich hier die Funktion der üblichen Fusebits nochmals genauer auf:&lt;br /&gt;
&lt;br /&gt;
{| {{Blauetabelle}}&lt;br /&gt;
 |'''CKSEL0, CKSEL1, CKSEL2, CKSEL3'''&lt;br /&gt;
 |Die Kombination dieser 4 Fusebits bestimmt die Taktquelle des Controllers. Das kann eine interner Taktgenerator, ein Quarz, Quarzoszillator, RC-Glied und ähnliches sein.&lt;br /&gt;
|-&lt;br /&gt;
 |'''JTAGEN'''&lt;br /&gt;
 |Hiermit wird die &amp;quot;[[On Chip Debugging]]&amp;quot; Schnittstelle aktiviert bzw. deaktiviert. Das sind die Bits mit den Bezeichnungen TDI, TDO, TMS und TCK. Möchte man diese Pins als normalen Port nutzen, so muss diese Schnittstelle immer deaktiviert werden. Alternativ kann man das JTAG aber auch per Software deaktivieren.&lt;br /&gt;
|-&lt;br /&gt;
 |'''SUT0, SUT1'''&lt;br /&gt;
 |Die sogenannte StartUp-Zeit (PowerOn delay). Diese Einstellung muss abhängig von der Art des Taktgenerators eingestellt werden, genaueres im jeweiligen Datenblatt. &lt;br /&gt;
|-&lt;br /&gt;
 |'''SPIEN'''&lt;br /&gt;
 |Hiermit kann die serielle [[AVR-ISP Programmierkabel|ISP-Programmierung]], welche die meisten Programmierkabel nutzen, deaktiviert werden. Dies sollte man lieber vermeiden, denn wenn dieser Programmiermodus deaktiviert wurde, kann nur noch der Parallel-Programmiermodus genutzt werden. Der Parallel-Programmiermodus benötigt jedoch ein spezielles Programmiergerät, das die wenigsten Bastler besitzen. ''Also Vorsicht!''&lt;br /&gt;
|-&lt;br /&gt;
 |'''BODEN'''&lt;br /&gt;
 |Über dieses Bit wird der '''Brown-out Detector''' aktiviert bzw. deaktiviert. Dies ist eine Überwachung der Betriebsspannung, die dafür sorgt, dass bei zu geringer Spannung der Controller angehalten wird und dann ein ordentlicher RESET durchgeführt wird, wenn die Spannung wieder ausreicht. Dadurch wird verhindert, dass der Controller in einen undefinierten Zustand gerät (hängen bleibt), sich verrechnet oder versehentlich das EEPROM / Flash verändert. In der Regel sollte man daher den Brown-out Detector aktivieren.&lt;br /&gt;
|-&lt;br /&gt;
 |'''BODLEVEL'''&lt;br /&gt;
 |Über dieses Bit (ggf. auch mehrere) wird festgelegt, ab welcher Spannung der Brown-out Detector anspricht. &lt;br /&gt;
|-&lt;br /&gt;
 |'''BOOTRST'''&lt;br /&gt;
 |Gewöhnlich startet ein Programm im Controller nach einem RESET ab Adresse 0. Durch dieses Fusebit kann der Controller jedoch veranlasst werden, nach einem Reset einen sogenannten Bootloader-Bereich auszuführen. Ein [[Bootloader]] kann genutzt werden, um Controller über andere Schnittstellen (z.B. RS232) zu programmieren.&lt;br /&gt;
|-&lt;br /&gt;
 |'''BOOTSZ0, BOOTSZ1'''&lt;br /&gt;
 |Der zuvor genannte Bootloaderbereich kann bei AVR-Controllern verschieden groß sein. Über diese beiden Bits können vier verschiedene Größen eingestellt werden. Siehe unter [[Bootloader]].&lt;br /&gt;
|-&lt;br /&gt;
 |'''EESAVE'''&lt;br /&gt;
 |Dieses Bit legt fest, ob beim Programmieren des Controllers (man nennt es auch brennen) immer das EEPROM gelöscht werden soll.&lt;br /&gt;
|-&lt;br /&gt;
 |'''CKOPT'''&lt;br /&gt;
 |Abhängig von den Einstellungen von CKSEL kann hier dir Oszillator-Verstärkung eingestellt werden. Genaueres im Datenblatt des jeweiligen Controllers.&lt;br /&gt;
|-&lt;br /&gt;
 |'''WDTON'''&lt;br /&gt;
 |Schaltet den WatchDog-Timer beim Booten ein/aus. Dies ist auch per Software möglich&lt;br /&gt;
|-&lt;br /&gt;
 |'''RSTDISBL'''&lt;br /&gt;
 |Durch dieses Bit kann man den RESET-Pin deaktivieren und dann als normalen I/O-Port nutzen. Aber Vorsicht! Da die RESET-Leitung beim Programmieren (Brennen) des Chips genutzt wird, kann man nach dessen Deaktivierung den Controller mit den üblichen [[AVR-ISP Programmierkabel|ISP-Adaptern]] nicht mehr programmieren. In diesem Fall könnte man zwar den Controlle noch mit speziellen Programmiergeräten im Parallelmodus programmieren, aber in der Praxis verfügen nur wenige Bastler über ein Programmiergerät, das dies leistet.&lt;br /&gt;
|-&lt;br /&gt;
 |'''LB1, LB2'''&lt;br /&gt;
 |Das sind die sogenannten Lockbits, mit denen sich das Auslesen des Flash- als auch EEPROM-Speichers verhindern läßt. Zwar können andere Anwender immer noch Daten lesen, allerdings handelt es sich dabei nicht mehr um den wirklichen Inhalt sondern lediglich um wirre Datenbytefolgen. Programmierer, die den erarbeiteten Code vor Raubkopierern schützen wollen, nutzen diese Lockbits. Das Programmieren ist auch bei gesetzen Lockbits noch möglich. Der Bootloader-Bereich wird nicht durch die Lockbits geschützt.&lt;br /&gt;
|-&lt;br /&gt;
 |'''BLB01, BLB02'''&lt;br /&gt;
 |Durch diese Bits kann der Code sogar vor dem Zugriff durch den Bootloader geschützt werden&lt;br /&gt;
|-&lt;br /&gt;
 |'''BLB11, BLB12'''&lt;br /&gt;
 |Diese Bits schützen den Bootloaderbereich selbst&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Wie man die Fusebits mit [[Bascom]] einstellt, wird im Beitrag [[Bascom - Erstes Programm in den AVR Controller übertragen]] erläutert.&lt;br /&gt;
&lt;br /&gt;
''Autoren des Artikels: Frank, Luma''&lt;br /&gt;
&lt;br /&gt;
Fusebits verstellt auf Externer Oszillator gehört zu den sehr häufigen Fehlern insbesondere bei Anfängern. Eine Möglichkeit, diesen Fehler mit einem Minimum an Hardware (minimalistisch gehts mit nur 1 Widerstand) zu reparieren, ist hier vorgestellt: [http://www.roboternetz.de/phpBB2/viewtopic.php?t=51685 Fuse irrtümlich auf extern Takt?].&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
* [[AVR-Einstieg leicht gemacht]]&lt;br /&gt;
===Entwicklungsumgebungen===&lt;br /&gt;
* [[Microsoft_Visual_Studio_2008_als_AVR_Entwicklungsumgebung| Microsoft Visual Studio]] - Die kostenlose &amp;quot;Express Edition&amp;quot; setzt auf WinAVR und auf den GCC auf, compiliert über custom-build und generiert ein Script für Ponyprog&lt;br /&gt;
&lt;br /&gt;
* [[Bascom]] - Basic-Entwicklungssystem&lt;br /&gt;
* [[Bascom - Erstes Programm in den AVR Controller übertragen]]&lt;br /&gt;
* [[Avr-gcc|avr-gcc]] - Leistungsfähiger AVR-Port des freien Compilers GCC&lt;br /&gt;
* [[WinAVR]] - Freies, kostenloses Werkzeugpaket mit avr-gcc, binutils, tools ([[make]], [[Programmer's Notepad]], [[avrdude]], etc.) für MS-Windows.&lt;br /&gt;
* [[Linuxdistribution_Avr-live-cd]]&lt;br /&gt;
* [[AVR_Assembler_Einf%C3%BChrung|AVR Assembler Einführung (AvrStudio)]]&lt;br /&gt;
* [http://www.mikroe.com/en/compilers/mikropascal/avr/ MikroPascal for AVR] Sehr gute kommerzielle Pascal Entwicklungsumgebung. Der Compiler ist auch für PIC und andere Controller verfügbar.&lt;br /&gt;
&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
* [[AVR-ISP Programmierkabel]] - Bauanleitung für die AVR Controller Programmierkabel&lt;br /&gt;
* [[RN-Control]] - Eines der beliebtestet AVR-Boards im Roboternetz&lt;br /&gt;
* [[RNBFRA-Board]] - Größeres Board mit zwei Atmel Controllern&lt;br /&gt;
&lt;br /&gt;
===Sonstiges===&lt;br /&gt;
* [[Atmel]]&lt;br /&gt;
* [[HEX Beispiel-Dateien für AVR]]&lt;br /&gt;
* [[Bootloader]]&lt;br /&gt;
* [[On Chip Debugging]]&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* [http://www.atmel.com/dyn/products/param_table.asp?family_id=607&amp;amp;OrderBy=part_no&amp;amp;Direction=ASC Aktuelle AVR Vergleichstabelle]&lt;br /&gt;
* [http://www.atmel.com/dyn/products/devices.asp?family_id=607 Die Datenblätter zu Atmel Controllern]&lt;br /&gt;
* [https://mpg.dnsalias.com/~magerlu/rn-wiki/avrtimer_applet Java Applet Timer Berechnung] &lt;br /&gt;
* [http://www.roboternetz.de/phpBB2/dload.php?action=file&amp;amp;file_id=169 AvrTimer Windows Berechnungstool (für Bascom, nur nach Anmeldung)]&lt;br /&gt;
* [http://people.freenet.de/gjl/helferlein/avr-uart-rechner.html AVR-Baudraten-Rechner (JavaScript)]&lt;br /&gt;
* [http://www.engbedded.com/fusecalc/ Berechnung der Fusebits (englisch)]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Microcontroller]]&lt;br /&gt;
[[Kategorie:Grundlagen]]&lt;br /&gt;
[[Kategorie:Elektronik]]&lt;br /&gt;
[[Kategorie:Abkürzung|AVR]]&lt;/div&gt;</summary>
		<author><name>Oberallgeier</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=Servos&amp;diff=16928</id>
		<title>Servos</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=Servos&amp;diff=16928"/>
				<updated>2010-09-21T07:45:52Z</updated>
		
		<summary type="html">&lt;p&gt;Oberallgeier: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Servos (Servomotoren) sind kleine [[Getriebemotoren]], die häufig im Modellbau eingesetzt werden, doch auch in der Industrie sind sie anzutreffen. &lt;br /&gt;
Mithilfe eines Potentiometers, das an der Drehachse befestigt ist, wird intern die aktuelle Position bestimmt. Wegen ihrer einfachen Ansteuerung und Präzision eigenen sie sich hervorragend für mehr oder weniger kraftaufwändige Aufgaben in der Robotik. &lt;br /&gt;
&lt;br /&gt;
==Anschlussbelegung==&lt;br /&gt;
Handelsübliche Servomotoren besitzen 3 Anschlüsse:&lt;br /&gt;
# GND&lt;br /&gt;
# [[PWM]]&lt;br /&gt;
# +5V&lt;br /&gt;
&lt;br /&gt;
Wobei sich die Steckerbelegung von Hersteller zu Hersteller unterscheidet.&lt;br /&gt;
&lt;br /&gt;
[[Bild:servosteckerbelegung.gif|center]]&lt;br /&gt;
&lt;br /&gt;
==Ansteuerung==&lt;br /&gt;
An die PWM-Leitung wird ein pulsweitenmoduliertes Signal angeschlossen. Die Repetition-Period (Periode) entspricht bei den meisten Modellen 20ms. Innerhalb/zu Beginn dieser 20ms wird ein Puls erwartet, der sich zwischen 1ms und 2ms bewegt, wobei diese Werte jeweils den Endlagen des Servos entsprechen. D.h. 1ms ist ganz links und 2ms ist ganz rechts (Einige Servos haben in diesem Wertebereich jedoch nicht die volle Bewegungsfreiheit ausgenutzt, die Werte, bei denen der Servo ganz links/rechts ist können auch unter 1ms/über 2ms liegen). 1,5ms würde demnach die Mittelstellung bedeuten. &lt;br /&gt;
Aufgrund der Pulslänge lässt sich also eine direkte Aussage über die Position des Servos treffen.&lt;br /&gt;
Der Motor sorgt dann intern mithilfe des Potis dafür, dass die Position gehalten wird.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:Servo_pwm.gif|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Unterschied zwischen Digital- und Analogservos==&lt;br /&gt;
Der hauptsächliche Unterschied besteht darin, dass digitale Servos schneller und genauer sind und ihre Position besser halten können. Analoge Servos geben ihrem Motor alle 20ms ein Signal. Wirkt eine Kraft auf das Servo, braucht die Steuerelektronik bis zu 20ms, um dem Motor einen neuen Spannungsimpuls zu senden. Bei Digitalservos sendet die Steuerelektronik alle 400us einen Impuls an den Motor. Der Motor bekommt die Spannungsimpulse viel schneller. Um so öfter ein Motor Spannung bekommt, um so mehr Leistung kann er verrichten. Man sollte aber auch bedenken, dass dies unweigerlich einen höheren Stromverbrauch zur Folge hat, der besonders bei Modellfliegern nicht tolerierbar ist, da die Betriebszeit stark verkürzt wird.&lt;br /&gt;
&lt;br /&gt;
Die einfachste Art, einen Servo mit [[Bascom]] anzusteuern, ist folgender Befehl:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Config Servos = 2 , Servo1 = Portb.0 , Servo2 = Portb.1 , Reload = 10&lt;br /&gt;
&lt;br /&gt;
Config Portb = Output&lt;br /&gt;
&lt;br /&gt;
Enable Interrupts&lt;br /&gt;
&lt;br /&gt;
Servo(1) = 100&lt;br /&gt;
Servo(2) = 100&lt;br /&gt;
waitms 1000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'Wobei 100 die Mitte ist. 50 ist der linke bzw. rechte Anschlag und 150 der entsprechend andere. Es gibt aber auch elegantere Möglichkeiten die sich besonders empfehlen wenn z.B. eine höhere Auflösung gewünscht ist: [[Servoansteuerung]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Und in C sieht das ganze so aus:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#define SERVOPIN 7&lt;br /&gt;
#define SERVOPORT PORTD&lt;br /&gt;
#define DDRSERVO DDRD&lt;br /&gt;
&lt;br /&gt;
volatile unsigned char servopos;&lt;br /&gt;
&lt;br /&gt;
void servo_init()&lt;br /&gt;
{&lt;br /&gt;
	TIMSK|=(1&amp;lt;&amp;lt;OCIE2);&lt;br /&gt;
	TCCR2 |= (1&amp;lt;&amp;lt;WGM21) | (1&amp;lt;&amp;lt;CS20);	//Prescale=1, CTC mode&lt;br /&gt;
	OCR2 = F_CPU/100000;			//alle 10µS ein IRQ&lt;br /&gt;
	DDRSERVO|=(1&amp;lt;&amp;lt;SERVOPIN);&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
ISR(TIMER2_COMP_vect)&lt;br /&gt;
{&lt;br /&gt;
	static int count;&lt;br /&gt;
	if(count&amp;gt;servopos)SERVOPORT&amp;amp;=~(1&amp;lt;&amp;lt;SERVOPIN);&lt;br /&gt;
	else SERVOPORT|=(1&amp;lt;&amp;lt;SERVOPIN);&lt;br /&gt;
	if(count&amp;lt;2000+servopos)count++;&lt;br /&gt;
	else count=0;&lt;br /&gt;
};&lt;br /&gt;
	&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Man muss zuvor DDRSERVO, SERVOPIN und SERVOPORT entsprechend definieren. Mit der Funktion &amp;quot;servo_init()&amp;quot; wird Timer2 initialisiert und der Servo-Pin als Ausgang gesetzt. &amp;quot;servopos&amp;quot; beinhaltet die aktuelle Dauer des Signals in 1/100ms. Vergessen Sie nicht, globale Interrupts vor dem Betrieb zu aktivieren!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Letzter Beitrag von &amp;quot;stochri&amp;quot; ist eine super Lösung in avr-gcc mit bis zu 10 Servos&lt;br /&gt;
&lt;br /&gt;
[[http://www.roboternetz.de/phpBB2/zeigebeitrag.php?t=14220&amp;amp;highlight=servo &amp;quot;Servo / avr-gcc&amp;quot; ]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Servos hacken==&lt;br /&gt;
Häufig entledigt man sich auch des Potis und der Endlagenanschläge, um so einen Motor mit hohem Drehmoment und ohne Begrenzung des Drehwinkels zu erlangen. Das Poti wird dann durch einen 1:1-Spannungsteiler ersetzt. Dieser Vorgang wird auch als Servo-Hacking bezeichnet. Durch die Pulslänge kann die Winkelgeschwindigkeit des Servos beeinflusst werden.&lt;br /&gt;
&lt;br /&gt;
[[Bild:servo.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
Diese erste Methode des Servohackings nutzt die im Servo eingebaute Elektronik zur Motoransteuerung. Sie ist am Weitesten verbreitet. &lt;br /&gt;
&lt;br /&gt;
Bei der zweiten Methode wird die vorhandene Elektronik komplett entfernt und der Motor z.B. direkt mit Gleichstrom versorgt oder durch eine externe Elektronik angesteuert. Die beiden Varianten des Servohackings sowie ihre Vor- und Nachteile sind im folgenden Link beschrieben. [[http://www.roboternetz.de/phpBB2/viewtopic.php?p=516553#516553 &amp;quot;Servohacking. Technik, Vor- und Nachteile&amp;quot;]] Bei fast allen Servos muss zum Hacken ein mechanischer Anschlag entfernt werden. Er besteht aus einem Nocken an der Abtriebswelle und dem Gegenstück im Getriebegehäuse.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die wesentlichen elektrischen und elektronischen Teile und Baugruppen eines einfachen Servos:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Servo-hack2_mini.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
Beim Servohacking nach der Methode &amp;quot;zwei&amp;quot; wird die Elektronik komplett entfernt. Üblicherweise wird dabei das Poti ebenfalls entfernt oder von der Abtriebsachse abgekoppelt. Der Motor wird dann direkt an die Versorgung angeschlossen. [[Getriebemotoren_Ansteuerung#Und_nie_vergessen_Motoren_zu_entst.C3.B6ren|Bitte Entstörung nicht vergessen!]] Gleichwertig wie das Entfernen der kompletten Elektronik ist es, sie einfach zu umgehen und die Motorzuleitung direkt anzulöten. &lt;br /&gt;
&lt;br /&gt;
Der nach Methode 2 gehackte Servo wird dadurch zu einem Getriebemotor mit einem sehr kleinen, sehr schnell drehenden Motor und einem hoch übersetzten Getriebe.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Siehe auch==&lt;br /&gt;
*[[Getriebemotoren]]&lt;br /&gt;
*[[RC-Empfänger_auswerten]]&lt;br /&gt;
*[[Servoansteuerung]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Robotikeinstieg]]&lt;br /&gt;
[[Category:Praxis]]&lt;br /&gt;
[[Category:Grundlagen]]&lt;br /&gt;
[[Category:Motoren]]&lt;/div&gt;</summary>
		<author><name>Oberallgeier</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=Servos&amp;diff=16927</id>
		<title>Servos</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=Servos&amp;diff=16927"/>
				<updated>2010-09-20T21:33:20Z</updated>
		
		<summary type="html">&lt;p&gt;Oberallgeier: Link auf Motorentstörung beim Servohacking&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Servos (Servomotoren) sind kleine [[Getriebemotoren]], die häufig im Modellbau eingesetzt werden, doch auch in der Industrie sind sie anzutreffen. &lt;br /&gt;
Mithilfe eines Potentiometers, das an der Drehachse befestigt ist, wird intern die aktuelle Position bestimmt. Wegen ihrer einfachen Ansteuerung und Präzision eigenen sie sich hervorragend für mehr oder weniger kraftaufwändige Aufgaben in der Robotik. &lt;br /&gt;
&lt;br /&gt;
==Anschlussbelegung==&lt;br /&gt;
Handelsübliche Servomotoren besitzen 3 Anschlüsse:&lt;br /&gt;
# GND&lt;br /&gt;
# [[PWM]]&lt;br /&gt;
# +5V&lt;br /&gt;
&lt;br /&gt;
Wobei sich die Steckerbelegung von Hersteller zu Hersteller unterscheidet.&lt;br /&gt;
&lt;br /&gt;
[[Bild:servosteckerbelegung.gif|center]]&lt;br /&gt;
&lt;br /&gt;
==Ansteuerung==&lt;br /&gt;
An die PWM-Leitung wird ein pulsweitenmoduliertes Signal angeschlossen. Die Repetition-Period (Periode) entspricht bei den meisten Modellen 20ms. Innerhalb/zu Beginn dieser 20ms wird ein Puls erwartet, der sich zwischen 1ms und 2ms bewegt, wobei diese Werte jeweils den Endlagen des Servos entsprechen. D.h. 1ms ist ganz links und 2ms ist ganz rechts (Einige Servos haben in diesem Wertebereich jedoch nicht die volle Bewegungsfreiheit ausgenutzt, die Werte, bei denen der Servo ganz links/rechts ist können auch unter 1ms/über 2ms liegen). 1,5ms würde demnach die Mittelstellung bedeuten. &lt;br /&gt;
Aufgrund der Pulslänge lässt sich also eine direkte Aussage über die Position des Servos treffen.&lt;br /&gt;
Der Motor sorgt dann intern mithilfe des Potis dafür, dass die Position gehalten wird.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:Servo_pwm.gif|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Unterschied zwischen Digital- und Analogservos==&lt;br /&gt;
Der hauptsächliche Unterschied besteht darin, dass digitale Servos schneller und genauer sind und ihre Position besser halten können. Analoge Servos geben ihrem Motor alle 20ms ein Signal. Wirkt eine Kraft auf das Servo, braucht die Steuerelektronik bis zu 20ms, um dem Motor einen neuen Spannungsimpuls zu senden. Bei Digitalservos sendet die Steuerelektronik alle 400us einen Impuls an den Motor. Der Motor bekommt die Spannungsimpulse viel schneller. Um so öfter ein Motor Spannung bekommt, um so mehr Leistung kann er verrichten. Man sollte aber auch bedenken, dass dies unweigerlich einen höheren Stromverbrauch zur Folge hat, der besonders bei Modellfliegern nicht tolerierbar ist, da die Betriebszeit stark verkürzt wird.&lt;br /&gt;
&lt;br /&gt;
Die einfachste Art, einen Servo mit [[Bascom]] anzusteuern, ist folgender Befehl:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Config Servos = 2 , Servo1 = Portb.0 , Servo2 = Portb.1 , Reload = 10&lt;br /&gt;
&lt;br /&gt;
Config Portb = Output&lt;br /&gt;
&lt;br /&gt;
Enable Interrupts&lt;br /&gt;
&lt;br /&gt;
Servo(1) = 100&lt;br /&gt;
Servo(2) = 100&lt;br /&gt;
waitms 1000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'Wobei 100 die Mitte ist. 50 ist der linke bzw. rechte Anschlag und 150 der entsprechend andere. Es gibt aber auch elegantere Möglichkeiten die sich besonders empfehlen wenn z.B. eine höhere Auflösung gewünscht ist: [[Servoansteuerung]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Und in C sieht das ganze so aus:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#define SERVOPIN 7&lt;br /&gt;
#define SERVOPORT PORTD&lt;br /&gt;
#define DDRSERVO DDRD&lt;br /&gt;
&lt;br /&gt;
volatile unsigned char servopos;&lt;br /&gt;
&lt;br /&gt;
void servo_init()&lt;br /&gt;
{&lt;br /&gt;
	TIMSK|=(1&amp;lt;&amp;lt;OCIE2);&lt;br /&gt;
	TCCR2 |= (1&amp;lt;&amp;lt;WGM21) | (1&amp;lt;&amp;lt;CS20);	//Prescale=1, CTC mode&lt;br /&gt;
	OCR2 = F_CPU/100000;			//alle 10µS ein IRQ&lt;br /&gt;
	DDRSERVO|=(1&amp;lt;&amp;lt;SERVOPIN);&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
ISR(TIMER2_COMP_vect)&lt;br /&gt;
{&lt;br /&gt;
	static int count;&lt;br /&gt;
	if(count&amp;gt;servopos)SERVOPORT&amp;amp;=~(1&amp;lt;&amp;lt;SERVOPIN);&lt;br /&gt;
	else SERVOPORT|=(1&amp;lt;&amp;lt;SERVOPIN);&lt;br /&gt;
	if(count&amp;lt;2000+servopos)count++;&lt;br /&gt;
	else count=0;&lt;br /&gt;
};&lt;br /&gt;
	&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Man muss zuvor DDRSERVO, SERVOPIN und SERVOPORT entsprechend definieren. Mit der Funktion &amp;quot;servo_init()&amp;quot; wird Timer2 initialisiert und der Servo-Pin als Ausgang gesetzt. &amp;quot;servopos&amp;quot; beinhaltet die aktuelle Dauer des Signals in 1/100ms. Vergessen Sie nicht, globale Interrupts vor dem Betrieb zu aktivieren!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Letzter Beitrag von &amp;quot;stochri&amp;quot; ist eine super Lösung in avr-gcc mit bis zu 10 Servos&lt;br /&gt;
&lt;br /&gt;
[[http://www.roboternetz.de/phpBB2/zeigebeitrag.php?t=14220&amp;amp;highlight=servo &amp;quot;Servo / avr-gcc&amp;quot; ]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Servos hacken==&lt;br /&gt;
Häufig entledigt man sich auch des Potis und der Endlagenanschläge, um so einen Motor mit hohem Drehmoment und ohne Begrenzung des Drehwinkels zu erlangen. Das Poti wird dann durch einen 1:1-Spannungsteiler ersetzt. Dieser Vorgang wird auch als Servo-Hacking bezeichnet. Durch die Pulslänge kann die Winkelgeschwindigkeit des Servos beeinflusst werden.&lt;br /&gt;
&lt;br /&gt;
[[Bild:servo.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
Diese erste Methode des Servohackings nutzt die im Servo eingebaute Elektronik zur Motoransteuerung. Sie ist am Weitesten verbreitet. &lt;br /&gt;
&lt;br /&gt;
Bei der zweiten Methode wird die vorhandene Elektronik komplett entfernt und der Motor z.B. direkt mit Gleichstrom versorgt oder durch eine externe Elektronik angesteuert. Die beiden Varianten des Servohackings sowie ihre Vor- und Nachteile sind im folgenden Link beschrieben. [[http://www.roboternetz.de/phpBB2/viewtopic.php?p=516553#516553 &amp;quot;Servohacking. Technik, Vor- und Nachteile&amp;quot;]] Bei fast allen Servos muss zum Hacken ein mechanischer Anschlag entfernt werden. Er besteht aus einem Nocken an der Abtriebswelle und dem Gegenstück im Getriebegehäuse.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die wesentlichen elektrischen und elektronischen Teile und Baugruppen eines einfachen Servos:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Servo-hack2_mini.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
Beim Servohacking nach der Methode &amp;quot;zwei&amp;quot; wird die Elektronik komplett entfernt. Üblicherweise wird dabei das Poti ebenfalls entfernt oder von der Abtriebsachse abgekoppelt. Der Motor wird dann direkt an die Versorgung angeschlossen. [[Getriebemotoren_Ansteuerung#Und_nie_vergessen_Motoren_zu_entst.C3.B6ren|Bitte Entstörkondensatoren nicht vergessen!]] Gleichwertig wie das Entfernen der kompletten Elektronik ist es, sie einfach zu umgehen und die Motorzuleitung direkt anzulöten. &lt;br /&gt;
&lt;br /&gt;
Der nach Methode 2 gehackte Servo wird dadurch zu einem Getriebemotor mit einem sehr kleinen, sehr schnell drehenden Motor und einem hoch übersetzten Getriebe.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Siehe auch==&lt;br /&gt;
*[[Getriebemotoren]]&lt;br /&gt;
*[[RC-Empfänger_auswerten]]&lt;br /&gt;
*[[Servoansteuerung]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Robotikeinstieg]]&lt;br /&gt;
[[Category:Praxis]]&lt;br /&gt;
[[Category:Grundlagen]]&lt;br /&gt;
[[Category:Motoren]]&lt;/div&gt;</summary>
		<author><name>Oberallgeier</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=Servos&amp;diff=16926</id>
		<title>Servos</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=Servos&amp;diff=16926"/>
				<updated>2010-09-20T21:20:50Z</updated>
		
		<summary type="html">&lt;p&gt;Oberallgeier: Anmerkung ergänzt mit Servohacking nach Methode 2 + Bild Einzelteile&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Servos (Servomotoren) sind kleine [[Getriebemotoren]], die häufig im Modellbau eingesetzt werden, doch auch in der Industrie sind sie anzutreffen. &lt;br /&gt;
Mithilfe eines Potentiometers, das an der Drehachse befestigt ist, wird intern die aktuelle Position bestimmt. Wegen ihrer einfachen Ansteuerung und Präzision eigenen sie sich hervorragend für mehr oder weniger kraftaufwändige Aufgaben in der Robotik. &lt;br /&gt;
&lt;br /&gt;
==Anschlussbelegung==&lt;br /&gt;
Handelsübliche Servomotoren besitzen 3 Anschlüsse:&lt;br /&gt;
# GND&lt;br /&gt;
# [[PWM]]&lt;br /&gt;
# +5V&lt;br /&gt;
&lt;br /&gt;
Wobei sich die Steckerbelegung von Hersteller zu Hersteller unterscheidet.&lt;br /&gt;
&lt;br /&gt;
[[Bild:servosteckerbelegung.gif|center]]&lt;br /&gt;
&lt;br /&gt;
==Ansteuerung==&lt;br /&gt;
An die PWM-Leitung wird ein pulsweitenmoduliertes Signal angeschlossen. Die Repetition-Period (Periode) entspricht bei den meisten Modellen 20ms. Innerhalb/zu Beginn dieser 20ms wird ein Puls erwartet, der sich zwischen 1ms und 2ms bewegt, wobei diese Werte jeweils den Endlagen des Servos entsprechen. D.h. 1ms ist ganz links und 2ms ist ganz rechts (Einige Servos haben in diesem Wertebereich jedoch nicht die volle Bewegungsfreiheit ausgenutzt, die Werte, bei denen der Servo ganz links/rechts ist können auch unter 1ms/über 2ms liegen). 1,5ms würde demnach die Mittelstellung bedeuten. &lt;br /&gt;
Aufgrund der Pulslänge lässt sich also eine direkte Aussage über die Position des Servos treffen.&lt;br /&gt;
Der Motor sorgt dann intern mithilfe des Potis dafür, dass die Position gehalten wird.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:Servo_pwm.gif|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Unterschied zwischen Digital- und Analogservos==&lt;br /&gt;
Der hauptsächliche Unterschied besteht darin, dass digitale Servos schneller und genauer sind und ihre Position besser halten können. Analoge Servos geben ihrem Motor alle 20ms ein Signal. Wirkt eine Kraft auf das Servo, braucht die Steuerelektronik bis zu 20ms, um dem Motor einen neuen Spannungsimpuls zu senden. Bei Digitalservos sendet die Steuerelektronik alle 400us einen Impuls an den Motor. Der Motor bekommt die Spannungsimpulse viel schneller. Um so öfter ein Motor Spannung bekommt, um so mehr Leistung kann er verrichten. Man sollte aber auch bedenken, dass dies unweigerlich einen höheren Stromverbrauch zur Folge hat, der besonders bei Modellfliegern nicht tolerierbar ist, da die Betriebszeit stark verkürzt wird.&lt;br /&gt;
&lt;br /&gt;
Die einfachste Art, einen Servo mit [[Bascom]] anzusteuern, ist folgender Befehl:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Config Servos = 2 , Servo1 = Portb.0 , Servo2 = Portb.1 , Reload = 10&lt;br /&gt;
&lt;br /&gt;
Config Portb = Output&lt;br /&gt;
&lt;br /&gt;
Enable Interrupts&lt;br /&gt;
&lt;br /&gt;
Servo(1) = 100&lt;br /&gt;
Servo(2) = 100&lt;br /&gt;
waitms 1000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'Wobei 100 die Mitte ist. 50 ist der linke bzw. rechte Anschlag und 150 der entsprechend andere. Es gibt aber auch elegantere Möglichkeiten die sich besonders empfehlen wenn z.B. eine höhere Auflösung gewünscht ist: [[Servoansteuerung]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Und in C sieht das ganze so aus:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#define SERVOPIN 7&lt;br /&gt;
#define SERVOPORT PORTD&lt;br /&gt;
#define DDRSERVO DDRD&lt;br /&gt;
&lt;br /&gt;
volatile unsigned char servopos;&lt;br /&gt;
&lt;br /&gt;
void servo_init()&lt;br /&gt;
{&lt;br /&gt;
	TIMSK|=(1&amp;lt;&amp;lt;OCIE2);&lt;br /&gt;
	TCCR2 |= (1&amp;lt;&amp;lt;WGM21) | (1&amp;lt;&amp;lt;CS20);	//Prescale=1, CTC mode&lt;br /&gt;
	OCR2 = F_CPU/100000;			//alle 10µS ein IRQ&lt;br /&gt;
	DDRSERVO|=(1&amp;lt;&amp;lt;SERVOPIN);&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
ISR(TIMER2_COMP_vect)&lt;br /&gt;
{&lt;br /&gt;
	static int count;&lt;br /&gt;
	if(count&amp;gt;servopos)SERVOPORT&amp;amp;=~(1&amp;lt;&amp;lt;SERVOPIN);&lt;br /&gt;
	else SERVOPORT|=(1&amp;lt;&amp;lt;SERVOPIN);&lt;br /&gt;
	if(count&amp;lt;2000+servopos)count++;&lt;br /&gt;
	else count=0;&lt;br /&gt;
};&lt;br /&gt;
	&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Man muss zuvor DDRSERVO, SERVOPIN und SERVOPORT entsprechend definieren. Mit der Funktion &amp;quot;servo_init()&amp;quot; wird Timer2 initialisiert und der Servo-Pin als Ausgang gesetzt. &amp;quot;servopos&amp;quot; beinhaltet die aktuelle Dauer des Signals in 1/100ms. Vergessen Sie nicht, globale Interrupts vor dem Betrieb zu aktivieren!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Letzter Beitrag von &amp;quot;stochri&amp;quot; ist eine super Lösung in avr-gcc mit bis zu 10 Servos&lt;br /&gt;
&lt;br /&gt;
[[http://www.roboternetz.de/phpBB2/zeigebeitrag.php?t=14220&amp;amp;highlight=servo &amp;quot;Servo / avr-gcc&amp;quot; ]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Servos hacken==&lt;br /&gt;
Häufig entledigt man sich auch des Potis und der Endlagenanschläge, um so einen Motor mit hohem Drehmoment und ohne Begrenzung des Drehwinkels zu erlangen. Das Poti wird dann durch einen 1:1-Spannungsteiler ersetzt. Dieser Vorgang wird auch als Servo-Hacking bezeichnet. Durch die Pulslänge kann die Winkelgeschwindigkeit des Servos beeinflusst werden.&lt;br /&gt;
&lt;br /&gt;
[[Bild:servo.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
Diese erste Methode des Servohackings nutzt die im Servo eingebaute Elektronik zur Motoransteuerung. Sie ist am Weitesten verbreitet. &lt;br /&gt;
&lt;br /&gt;
Bei der zweiten Methode wird die vorhandene Elektronik komplett entfernt und der Motor z.B. direkt mit Gleichstrom versorgt oder durch eine externe Elektronik angesteuert. Die beiden Varianten des Servohackings sowie ihre Vor- und Nachteile sind im folgenden Link beschrieben. [[http://www.roboternetz.de/phpBB2/viewtopic.php?p=516553#516553 &amp;quot;Servohacking. Technik, Vor- und Nachteile&amp;quot;]] Bei fast allen Servos muss zum Hacken ein mechanischer Anschlag entfernt werden. Er besteht aus einem Nocken an der Abtriebswelle und dem Gegenstück im Getriebegehäuse.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die wesentlichen elektrischen und elektronischen Teile und Baugruppen eines einfachen Servos:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Servo-hack2_mini.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
Beim Servohacking nach der Methode &amp;quot;zwei&amp;quot; wird die Elektronik komplett entfernt. Üblicherweise wird dabei das Poti ebenfalls entfernt oder von der Abtriebsachse abgekoppelt. Der Motor wird dann direkt an die Versorgung angeschlossen. Dabei die Entstörkondensatoren nicht vergessen! Gleichwertig wie das Entfernen der kompletten Elektronik ist es, sie einfach zu umgehen und die Motorzuleitung direkt anzulöten. &lt;br /&gt;
&lt;br /&gt;
Der nach Methode 2 gehackte Servo wird dadurch zu einem Getriebemotor mit einem sehr kleinen, sehr schnell drehenden Motor und einem hoch übersetzten Getriebe.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Siehe auch==&lt;br /&gt;
*[[Getriebemotoren]]&lt;br /&gt;
*[[RC-Empfänger_auswerten]]&lt;br /&gt;
*[[Servoansteuerung]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Robotikeinstieg]]&lt;br /&gt;
[[Category:Praxis]]&lt;br /&gt;
[[Category:Grundlagen]]&lt;br /&gt;
[[Category:Motoren]]&lt;/div&gt;</summary>
		<author><name>Oberallgeier</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=Datei:Servo-hack2_mini.jpg&amp;diff=16925</id>
		<title>Datei:Servo-hack2 mini.jpg</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=Datei:Servo-hack2_mini.jpg&amp;diff=16925"/>
				<updated>2010-09-20T18:20:50Z</updated>
		
		<summary type="html">&lt;p&gt;Oberallgeier: Die wesentlichen elektrischen und elektronischen Einzelteile und Baugruppen eines einfachen Servos&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Die wesentlichen elektrischen und elektronischen Einzelteile und Baugruppen eines einfachen Servos&lt;/div&gt;</summary>
		<author><name>Oberallgeier</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=Servoansteuerung&amp;diff=16916</id>
		<title>Servoansteuerung</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=Servoansteuerung&amp;diff=16916"/>
				<updated>2010-09-09T17:39:19Z</updated>
		
		<summary type="html">&lt;p&gt;Oberallgeier: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Einleitung==&lt;br /&gt;
Die [[Servo#Ansteuerung|Ansteuerung von Servos (siehe auch hier)]], z.B. mit einem Atmel Mega32, kann auf viele verschiedene Weisen erfolgen. Im folgenden findet ihr eine gut funktionierende Variante. Der Quellcode bezieht sich zwar auf einen Mega32 und BASCOM, aber gerade BASCOM-Code ist leicht verständlich und für andere Programmiersprachen übersetzbar. Es wird absichtlich nicht der BASCOM interne &amp;quot;SERVO&amp;quot; Befehl genutzt, da dieser nur sehr eingeschränkt und unbefriedigend (z.B. für fliegende Anwendungen) funktioniert.&lt;br /&gt;
Hier eine kurze Zusammenfassung der vorgeschlagenen Servoansteuerung:&lt;br /&gt;
# Der 16bit Timer wird mit einem Prescale von 8 genutzt (==&amp;gt; Interruptfrequenz ohne Preload von ~ 30Hz)&lt;br /&gt;
# Interrupt-Aktionen: Nacheinander werden die Servos mit ihrem PWM Signal versorgt:&lt;br /&gt;
# Port für das erste Servo auf High schalten&lt;br /&gt;
# 1 - 2 ms warten&lt;br /&gt;
# Port wieder auf Low schalten&lt;br /&gt;
# Nächstes Servo bearbeiten.&lt;br /&gt;
# Da viele billige Servos am besten funktionieren wenn die Zeit zwischen ihren Signalen ~ 20 ms (= 50Hz) beträgt, sollte nach dem Stellen des letzten Servos noch eine Pause eingelegt werden (ca. 12ms Pause). In einigen Anwendungen kann es aber erforderlich sein auf diese Pause zu verzichten (z.B. bei der Regelung von Brushless Motoren. Hier ist eine besonders hohe Stellfrequenz oftmals wünschenswert). Bei Verzicht auf diese Pause kann eine Refreshrate von 333Hz bis 166 Hz (bei 3 Brushlessreglern) erreicht werden.&lt;br /&gt;
&lt;br /&gt;
''Werden andere Quarzfrequenzen benutzt, kann man mit dem Tool rnAVR komfortabel die richtigen Preload und Prescale Werte errechnen:''&lt;br /&gt;
[http://www.roboternetz.de/phpBB2/dload.php?action=file&amp;amp;file_id=169 rnAVR im Roboternetz]&lt;br /&gt;
&lt;br /&gt;
==Quellcode==&lt;br /&gt;
Der Bascom Quellcode für eine Auflösung von 2000 Schritten:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$regfile &amp;quot;m32def.dat&amp;quot;&lt;br /&gt;
$baud = 19200&lt;br /&gt;
$crystal = 16000000&lt;br /&gt;
$framesize = 64&lt;br /&gt;
$swstack = 64&lt;br /&gt;
$hwstack = 64&lt;br /&gt;
Config Timer1 = Timer , Prescale = 8              'timer für servos&lt;br /&gt;
Enable Timer1&lt;br /&gt;
Timer1 = 62535&lt;br /&gt;
Config Portb = Output&lt;br /&gt;
Portb.0 = 0                                       'hier hängt servo1&lt;br /&gt;
Portb.1 = 0                                       'hier hängt servo2&lt;br /&gt;
Portb.2 = 0                                       'hier hängt servo3&lt;br /&gt;
Portb.3 = 0                                       'hier hängt servo4&lt;br /&gt;
&lt;br /&gt;
On Timer1 Servoirq                                'servo&lt;br /&gt;
&lt;br /&gt;
Enable Interrupts&lt;br /&gt;
&lt;br /&gt;
Dim Kanal As Byte&lt;br /&gt;
Dim Servo(4) As Word                              'min: 61535, mitte 62535, max 63535 = 2000 schritte&lt;br /&gt;
&lt;br /&gt;
Do&lt;br /&gt;
Servo(1) = 62535 'Mitte&lt;br /&gt;
Servo(2) = 62535 'Mitte&lt;br /&gt;
Servo(3) = 62535 'Mitte&lt;br /&gt;
Servo(4) = 62535 'Mitte&lt;br /&gt;
Loop&lt;br /&gt;
&lt;br /&gt;
Servoirq:&lt;br /&gt;
If Kanal = 0 Then&lt;br /&gt;
   If Portb.0 = 0 Then                            'wenn port low&lt;br /&gt;
      Timer1 = Servo(1)                           'dann timer auf entsprechende verzögerung&lt;br /&gt;
      Portb.0 = 1                                 'und port anschalten&lt;br /&gt;
   Else                                           'das hier passiert erst bei dem darauf folgenden interrupt&lt;br /&gt;
      Portb.0 = 0                                 'dann port wieder ausschalten&lt;br /&gt;
      Incr Kanal                                  'und den nächsten kanal bearbeiten&lt;br /&gt;
   End If&lt;br /&gt;
End If&lt;br /&gt;
If Kanal = 1 Then&lt;br /&gt;
   If Portb.1 = 0 Then&lt;br /&gt;
      Timer1 = Servo(2)&lt;br /&gt;
      Portb.1 = 1&lt;br /&gt;
   Else&lt;br /&gt;
      Portb.1 = 0&lt;br /&gt;
      Incr Kanal&lt;br /&gt;
   End If&lt;br /&gt;
End If&lt;br /&gt;
If Kanal = 2 Then&lt;br /&gt;
   If Portb.2 = 0 Then&lt;br /&gt;
      Timer1 = Servo(3)&lt;br /&gt;
      Portb.2 = 1&lt;br /&gt;
   Else&lt;br /&gt;
      Portb.2 = 0&lt;br /&gt;
      Incr Kanal&lt;br /&gt;
   End If&lt;br /&gt;
End If&lt;br /&gt;
If Kanal = 3 Then&lt;br /&gt;
   If Portb.3 = 0 Then&lt;br /&gt;
      Timer1 = Servo(4)&lt;br /&gt;
      Portb.3 = 1&lt;br /&gt;
   Else&lt;br /&gt;
      Portb.3 = 0&lt;br /&gt;
      Incr Kanal&lt;br /&gt;
   End If&lt;br /&gt;
End If&lt;br /&gt;
&lt;br /&gt;
If Kanal = 4 Then&lt;br /&gt;
  Timer1 = 40000                                  'eine pause von ca. 12ms bis zum nächsten interrupt. Bei guten Servos oder Brushlessreglern kann man hier bis auf 65530 gehen ==&amp;gt; ansteuerfrequenz von ~ 200Hz&lt;br /&gt;
  Kanal = 0&lt;br /&gt;
End If&lt;br /&gt;
Return&lt;br /&gt;
End&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Empfängersignal durch µC durchschleifen==&lt;br /&gt;
Oftmals ist auch gewünscht das Signal eines RC-Empfängers einzulesen, die Daten zu bearbeiten/ mischen und dann wieder an Servos auszugeben. Den Code dafür findet ihr im folgenden (das gleiche wie oben aber erweitert mit der Empfängerauswertung). Hier werden die Servos weiterhin mit einer Auflösung von 2000 Schritten angesteuert, die Auflösung der Empfängerauswertung beträgt aber &amp;quot;nur&amp;quot; 72 Schritte. Meiner bescheidenen Meinung nach ist das für eine präzise Steuerung ausreichend. Oftmals werden die Empfängersignale nicht einfach durchgeschleift sondern untereinander bzw. mit Gyrosignalen gemischt. In diesen Fällen fällt die geringere Auflösung der Empfängerauswertung nicht mehr ins Gewicht.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
'RC-Signal durch Empfänger durchschleifen:&lt;br /&gt;
'Der Empfänger wird mit einer Auflösung von 74 Schritten abgefragt,&lt;br /&gt;
'die Servos werden mit einer Auflösung von 2000 Schritten angesteuert.&lt;br /&gt;
'Dabei ist die Wiederholfrequenz des Servosignals frei wählbar (35 bis zu 200 Hz).&lt;br /&gt;
$regfile &amp;quot;m32def.dat&amp;quot;&lt;br /&gt;
$baud = 19200&lt;br /&gt;
$crystal = 16000000&lt;br /&gt;
$framesize = 64&lt;br /&gt;
$swstack = 64&lt;br /&gt;
$hwstack = 64&lt;br /&gt;
&lt;br /&gt;
Config Timer0 = Timer , Prescale = 256 , Capture Edge = Falling , Noise Cancel = 1       'empfänger&lt;br /&gt;
Config Timer1 = Timer , Prescale = 8              'servo&lt;br /&gt;
Enable Timer0&lt;br /&gt;
Enable Timer1&lt;br /&gt;
Timer1 = 62535&lt;br /&gt;
Config Portb = Output&lt;br /&gt;
Portb.0 = 0                                       'hier hängt motor1&lt;br /&gt;
Portb.1 = 0                                       'hier hängt motor2&lt;br /&gt;
Portb.2 = 0                                       'hier hängt motor3&lt;br /&gt;
Portb.3 = 0                                       'hier hängt gierservo4&lt;br /&gt;
&lt;br /&gt;
On Timer0 Pausenerkennung                         'empfänger&lt;br /&gt;
On Timer1 Servoirq                                'servo&lt;br /&gt;
&lt;br /&gt;
Config Int1 = Falling                             'empfängersignal angeschlossen an INT1&lt;br /&gt;
Enable Int1                                       'empfänger&lt;br /&gt;
On Int1 Summensignalmessung                       'empfänger&lt;br /&gt;
Enable Interrupts&lt;br /&gt;
&lt;br /&gt;
Dim Empf(5) As Word                               'original daten ausm empfänger gehen von min = 63, mitte = 100, max = 137&lt;br /&gt;
Dim Sempf(5) As Integer                           '&amp;quot;nachbearbeitete&amp;quot; empfängerdaten gehen von -999 bis +999 (mit 0 als mitte)&lt;br /&gt;
Dim Channel As Byte&lt;br /&gt;
Dim Kanal As Byte&lt;br /&gt;
Dim Servo(4) As Word                              'min: 61535, mitte 62535, max 63535 = 2000 schritte&lt;br /&gt;
Dim I As Byte&lt;br /&gt;
&lt;br /&gt;
Do&lt;br /&gt;
For I = 1 To 5&lt;br /&gt;
  Sempf(i) = Empf(i)&lt;br /&gt;
  Sempf(i) = Sempf(i) - 100                       'empfängerwerte mitte auf null verschieben&lt;br /&gt;
  Sempf(i) = Sempf(i) * 27                        'und hochskalieren&lt;br /&gt;
Next&lt;br /&gt;
Servo(1) = 62535 + Sempf(1)&lt;br /&gt;
Servo(2) = 62535 + Sempf(2)&lt;br /&gt;
Servo(3) = 62535 + Sempf(3)&lt;br /&gt;
Servo(4) = 62535 + Sempf(4)&lt;br /&gt;
Loop&lt;br /&gt;
&lt;br /&gt;
Summensignalmessung:                              'bei fallender flanke&lt;br /&gt;
Select Case Channel&lt;br /&gt;
    Case 1 :&lt;br /&gt;
    Empf(1) = Timer0&lt;br /&gt;
    Case 2 :&lt;br /&gt;
    Empf(2) = Timer0&lt;br /&gt;
    Case 3 :&lt;br /&gt;
    Empf(3) = Timer0&lt;br /&gt;
    Case 4:&lt;br /&gt;
    Empf(4) = Timer0&lt;br /&gt;
    Case 5:&lt;br /&gt;
    Empf(5) = Timer0&lt;br /&gt;
End Select&lt;br /&gt;
Timer0 = 6                                        'preload für 4ms&lt;br /&gt;
Incr Channel&lt;br /&gt;
Return&lt;br /&gt;
&lt;br /&gt;
Pausenerkennung:&lt;br /&gt;
Channel = 0&lt;br /&gt;
Return&lt;br /&gt;
&lt;br /&gt;
Servoirq:&lt;br /&gt;
If Kanal = 0 Then&lt;br /&gt;
   If Portb.0 = 0 Then                            'wenn port low&lt;br /&gt;
      Timer1 = Servo(1)                           'dann timer auf entsprechende verzögerung&lt;br /&gt;
      Portb.0 = 1                                 'und port anschalten&lt;br /&gt;
   Else                                           'das hier passiert erst bei dem darauf folgenden interrupt&lt;br /&gt;
      Portb.0 = 0                                 'dann port wieder ausschalten&lt;br /&gt;
      Incr Kanal                                  'und den nächsten kanal bearbeiten&lt;br /&gt;
   End If&lt;br /&gt;
End If&lt;br /&gt;
If Kanal = 1 Then&lt;br /&gt;
   If Portb.1 = 0 Then&lt;br /&gt;
      Timer1 = Servo(2)&lt;br /&gt;
      Portb.1 = 1&lt;br /&gt;
   Else&lt;br /&gt;
      Portb.1 = 0&lt;br /&gt;
      Incr Kanal&lt;br /&gt;
   End If&lt;br /&gt;
End If&lt;br /&gt;
If Kanal = 2 Then&lt;br /&gt;
   If Portb.2 = 0 Then&lt;br /&gt;
      Timer1 = Servo(3)&lt;br /&gt;
      Portb.2 = 1&lt;br /&gt;
   Else&lt;br /&gt;
      Portb.2 = 0&lt;br /&gt;
      Incr Kanal&lt;br /&gt;
   End If&lt;br /&gt;
End If&lt;br /&gt;
If Kanal = 3 Then&lt;br /&gt;
   If Portb.3 = 0 Then&lt;br /&gt;
      Timer1 = Servo(4)&lt;br /&gt;
      Portb.3 = 1&lt;br /&gt;
   Else&lt;br /&gt;
      Portb.3 = 0&lt;br /&gt;
      Incr Kanal&lt;br /&gt;
   End If&lt;br /&gt;
End If&lt;br /&gt;
&lt;br /&gt;
If Kanal = 4 Then&lt;br /&gt;
  Timer1 = 40000                                  'eine pause von ca. 12ms bis zum nächsten interrupt. Bei guten Servos oder Brushlessreglern kann man hier bis auf 65530 gehen ==&amp;gt; ansteuerfrequenz von ~ 200Hz&lt;br /&gt;
  Kanal = 0&lt;br /&gt;
End If&lt;br /&gt;
Return&lt;br /&gt;
End&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Autoren ==&lt;br /&gt;
* [[Benutzer:Willa|Willa]]&lt;br /&gt;
&lt;br /&gt;
 [[Kategorie:Microcontroller]]&lt;br /&gt;
 [[Kategorie:Software]]&lt;br /&gt;
 [[Kategorie:Grundlagen]]&lt;br /&gt;
 [[Kategorie:Robotikeinstieg]] &lt;br /&gt;
 [[Kategorie:Praxis]] &lt;br /&gt;
 [[Kategorie:Quellcode Bascom]]&lt;br /&gt;
&lt;br /&gt;
==Siehe auch==&lt;br /&gt;
*[[RC-Empfänger_auswerten]]&lt;br /&gt;
*[[Servos]]&lt;/div&gt;</summary>
		<author><name>Oberallgeier</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=Servoansteuerung&amp;diff=16915</id>
		<title>Servoansteuerung</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=Servoansteuerung&amp;diff=16915"/>
				<updated>2010-09-09T17:37:06Z</updated>
		
		<summary type="html">&lt;p&gt;Oberallgeier: Link auf RN-Artikel Servos gesetzt&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Einleitung==&lt;br /&gt;
Die [[Servo#Ansteuerung|Ansteuerung von Servos (siehe auch hier)]], z.B. mit einem Atmel Mega32, kann auf viele verschiedene Weisen erfolgen. Im folgenden findet ihr eine gut funktionierende Variante. Der Quellcode bezieht sich zwar auf einen Mega32 und BASCOM, aber gerade BASCOM-Code ist leicht verständlich und für andere Programmiersprachen übersetzbar. Es wird absichtlich nicht der BASCOM interne &amp;quot;SERVO&amp;quot; Befehl genutzt, da dieser nur sehr eingeschränkt und unbefriedigend (z.B. für fliegende Anwendungen) funktioniert.&lt;br /&gt;
Hier eine kurze Zusammenfassung der vorgeschlagenen Servoansteuerung:&lt;br /&gt;
# Der 16bit Timer wird mit einem Prescale von 8 genutzt (==&amp;gt; Interruptfrequenz ohne Preload von ~ 30Hz)&lt;br /&gt;
# Interrupt-Aktionen: Nacheinander werden die Servos mit ihrem PWM Signal versorgt:&lt;br /&gt;
# Port für das erste Servo auf High schalten&lt;br /&gt;
# 1 - 2 ms warten&lt;br /&gt;
# Port wieder auf Low schalten&lt;br /&gt;
# Nächstes Servo bearbeiten.&lt;br /&gt;
# Da viele billige Servos am besten funktionieren wenn die Zeit zwischen ihren Signalen ~ 20 ms (= 50Hz) beträgt, sollte nach dem Stellen des letzten Servos noch eine Pause eingelegt werden (ca. 12ms Pause). In einigen Anwendungen kann es aber erforderlich sein auf diese Pause zu verzichten (z.B. bei der Regelung von Brushless Motoren. Hier ist eine besonders hohe Stellfrequenz oftmals wünschenswert). Bei Verzicht auf diese Pause kann eine Refreshrate von 333Hz bis 166 Hz (bei 3 Brushlessreglern) erreicht werden.&lt;br /&gt;
&lt;br /&gt;
''Werden andere Quarzfrequenzen benutzt, kann man mit dem Tool rnAVR komfortabel die richtigen Preload und Prescale Werte errechnen:''&lt;br /&gt;
[http://www.roboternetz.de/phpBB2/dload.php?action=file&amp;amp;file_id=169 rnAVR im Roboternetz]&lt;br /&gt;
&lt;br /&gt;
==Quellcode==&lt;br /&gt;
Der Bascom Quellcode für eine Auflösung von 2000 Schritten:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$regfile &amp;quot;m32def.dat&amp;quot;&lt;br /&gt;
$baud = 19200&lt;br /&gt;
$crystal = 16000000&lt;br /&gt;
$framesize = 64&lt;br /&gt;
$swstack = 64&lt;br /&gt;
$hwstack = 64&lt;br /&gt;
Config Timer1 = Timer , Prescale = 8              'timer für servos&lt;br /&gt;
Enable Timer1&lt;br /&gt;
Timer1 = 62535&lt;br /&gt;
Config Portb = Output&lt;br /&gt;
Portb.0 = 0                                       'hier hängt servo1&lt;br /&gt;
Portb.1 = 0                                       'hier hängt servo2&lt;br /&gt;
Portb.2 = 0                                       'hier hängt servo3&lt;br /&gt;
Portb.3 = 0                                       'hier hängt servo4&lt;br /&gt;
&lt;br /&gt;
On Timer1 Servoirq                                'servo&lt;br /&gt;
&lt;br /&gt;
Enable Interrupts&lt;br /&gt;
&lt;br /&gt;
Dim Kanal As Byte&lt;br /&gt;
Dim Servo(4) As Word                              'min: 61535, mitte 62535, max 63535 = 2000 schritte&lt;br /&gt;
&lt;br /&gt;
Do&lt;br /&gt;
Servo(1) = 62535 'Mitte&lt;br /&gt;
Servo(2) = 62535 'Mitte&lt;br /&gt;
Servo(3) = 62535 'Mitte&lt;br /&gt;
Servo(4) = 62535 'Mitte&lt;br /&gt;
Loop&lt;br /&gt;
&lt;br /&gt;
Servoirq:&lt;br /&gt;
If Kanal = 0 Then&lt;br /&gt;
   If Portb.0 = 0 Then                            'wenn port low&lt;br /&gt;
      Timer1 = Servo(1)                           'dann timer auf entsprechende verzögerung&lt;br /&gt;
      Portb.0 = 1                                 'und port anschalten&lt;br /&gt;
   Else                                           'das hier passiert erst bei dem darauf folgenden interrupt&lt;br /&gt;
      Portb.0 = 0                                 'dann port wieder ausschalten&lt;br /&gt;
      Incr Kanal                                  'und den nächsten kanal bearbeiten&lt;br /&gt;
   End If&lt;br /&gt;
End If&lt;br /&gt;
If Kanal = 1 Then&lt;br /&gt;
   If Portb.1 = 0 Then&lt;br /&gt;
      Timer1 = Servo(2)&lt;br /&gt;
      Portb.1 = 1&lt;br /&gt;
   Else&lt;br /&gt;
      Portb.1 = 0&lt;br /&gt;
      Incr Kanal&lt;br /&gt;
   End If&lt;br /&gt;
End If&lt;br /&gt;
If Kanal = 2 Then&lt;br /&gt;
   If Portb.2 = 0 Then&lt;br /&gt;
      Timer1 = Servo(3)&lt;br /&gt;
      Portb.2 = 1&lt;br /&gt;
   Else&lt;br /&gt;
      Portb.2 = 0&lt;br /&gt;
      Incr Kanal&lt;br /&gt;
   End If&lt;br /&gt;
End If&lt;br /&gt;
If Kanal = 3 Then&lt;br /&gt;
   If Portb.3 = 0 Then&lt;br /&gt;
      Timer1 = Servo(4)&lt;br /&gt;
      Portb.3 = 1&lt;br /&gt;
   Else&lt;br /&gt;
      Portb.3 = 0&lt;br /&gt;
      Incr Kanal&lt;br /&gt;
   End If&lt;br /&gt;
End If&lt;br /&gt;
&lt;br /&gt;
If Kanal = 4 Then&lt;br /&gt;
  Timer1 = 40000                                  'eine pause von ca. 12ms bis zum nächsten interrupt. Bei guten Servos oder Brushlessreglern kann man hier bis auf 65530 gehen ==&amp;gt; ansteuerfrequenz von ~ 200Hz&lt;br /&gt;
  Kanal = 0&lt;br /&gt;
End If&lt;br /&gt;
Return&lt;br /&gt;
End&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Empfängersignal durch µC durchschleifen==&lt;br /&gt;
Oftmals ist auch gewünscht das Signal eines RC-Empfängers einzulesen, die Daten zu bearbeiten/ mischen und dann wieder an Servos auszugeben. Den Code dafür findet ihr im folgenden (das gleiche wie oben aber erweitert mit der Empfängerauswertung). Hier werden die Servos weiterhin mit einer Auflösung von 2000 Schritten angesteuert, die Auflösung der Empfängerauswertung beträgt aber &amp;quot;nur&amp;quot; 72 Schritte. Meiner bescheidenen Meinung nach ist das für eine präzise Steuerung ausreichend. Oftmals werden die Empfängersignale nicht einfach durchgeschleift sondern untereinander bzw. mit Gyrosignalen gemischt. In diesen Fällen fällt die geringere Auflösung der Empfängerauswertung nicht mehr ins Gewicht.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
'RC-Signal durch Empfänger durchschleifen:&lt;br /&gt;
'Der Empfänger wird mit einer Auflösung von 74 Schritten abgefragt,&lt;br /&gt;
'die Servos werden mit einer Auflösung von 2000 Schritten angesteuert.&lt;br /&gt;
'Dabei ist die Wiederholfrequenz des Servosignals frei wählbar (35 bis zu 200 Hz).&lt;br /&gt;
$regfile &amp;quot;m32def.dat&amp;quot;&lt;br /&gt;
$baud = 19200&lt;br /&gt;
$crystal = 16000000&lt;br /&gt;
$framesize = 64&lt;br /&gt;
$swstack = 64&lt;br /&gt;
$hwstack = 64&lt;br /&gt;
&lt;br /&gt;
Config Timer0 = Timer , Prescale = 256 , Capture Edge = Falling , Noise Cancel = 1       'empfänger&lt;br /&gt;
Config Timer1 = Timer , Prescale = 8              'servo&lt;br /&gt;
Enable Timer0&lt;br /&gt;
Enable Timer1&lt;br /&gt;
Timer1 = 62535&lt;br /&gt;
Config Portb = Output&lt;br /&gt;
Portb.0 = 0                                       'hier hängt motor1&lt;br /&gt;
Portb.1 = 0                                       'hier hängt motor2&lt;br /&gt;
Portb.2 = 0                                       'hier hängt motor3&lt;br /&gt;
Portb.3 = 0                                       'hier hängt gierservo4&lt;br /&gt;
&lt;br /&gt;
On Timer0 Pausenerkennung                         'empfänger&lt;br /&gt;
On Timer1 Servoirq                                'servo&lt;br /&gt;
&lt;br /&gt;
Config Int1 = Falling                             'empfängersignal angeschlossen an INT1&lt;br /&gt;
Enable Int1                                       'empfänger&lt;br /&gt;
On Int1 Summensignalmessung                       'empfänger&lt;br /&gt;
Enable Interrupts&lt;br /&gt;
&lt;br /&gt;
Dim Empf(5) As Word                               'original daten ausm empfänger gehen von min = 63, mitte = 100, max = 137&lt;br /&gt;
Dim Sempf(5) As Integer                           '&amp;quot;nachbearbeitete&amp;quot; empfängerdaten gehen von -999 bis +999 (mit 0 als mitte)&lt;br /&gt;
Dim Channel As Byte&lt;br /&gt;
Dim Kanal As Byte&lt;br /&gt;
Dim Servo(4) As Word                              'min: 61535, mitte 62535, max 63535 = 2000 schritte&lt;br /&gt;
Dim I As Byte&lt;br /&gt;
&lt;br /&gt;
Do&lt;br /&gt;
For I = 1 To 5&lt;br /&gt;
  Sempf(i) = Empf(i)&lt;br /&gt;
  Sempf(i) = Sempf(i) - 100                       'empfängerwerte mitte auf null verschieben&lt;br /&gt;
  Sempf(i) = Sempf(i) * 27                        'und hochskalieren&lt;br /&gt;
Next&lt;br /&gt;
Servo(1) = 62535 + Sempf(1)&lt;br /&gt;
Servo(2) = 62535 + Sempf(2)&lt;br /&gt;
Servo(3) = 62535 + Sempf(3)&lt;br /&gt;
Servo(4) = 62535 + Sempf(4)&lt;br /&gt;
Loop&lt;br /&gt;
&lt;br /&gt;
Summensignalmessung:                              'bei fallender flanke&lt;br /&gt;
Select Case Channel&lt;br /&gt;
    Case 1 :&lt;br /&gt;
    Empf(1) = Timer0&lt;br /&gt;
    Case 2 :&lt;br /&gt;
    Empf(2) = Timer0&lt;br /&gt;
    Case 3 :&lt;br /&gt;
    Empf(3) = Timer0&lt;br /&gt;
    Case 4:&lt;br /&gt;
    Empf(4) = Timer0&lt;br /&gt;
    Case 5:&lt;br /&gt;
    Empf(5) = Timer0&lt;br /&gt;
End Select&lt;br /&gt;
Timer0 = 6                                        'preload für 4ms&lt;br /&gt;
Incr Channel&lt;br /&gt;
Return&lt;br /&gt;
&lt;br /&gt;
Pausenerkennung:&lt;br /&gt;
Channel = 0&lt;br /&gt;
Return&lt;br /&gt;
&lt;br /&gt;
Servoirq:&lt;br /&gt;
If Kanal = 0 Then&lt;br /&gt;
   If Portb.0 = 0 Then                            'wenn port low&lt;br /&gt;
      Timer1 = Servo(1)                           'dann timer auf entsprechende verzögerung&lt;br /&gt;
      Portb.0 = 1                                 'und port anschalten&lt;br /&gt;
   Else                                           'das hier passiert erst bei dem darauf folgenden interrupt&lt;br /&gt;
      Portb.0 = 0                                 'dann port wieder ausschalten&lt;br /&gt;
      Incr Kanal                                  'und den nächsten kanal bearbeiten&lt;br /&gt;
   End If&lt;br /&gt;
End If&lt;br /&gt;
If Kanal = 1 Then&lt;br /&gt;
   If Portb.1 = 0 Then&lt;br /&gt;
      Timer1 = Servo(2)&lt;br /&gt;
      Portb.1 = 1&lt;br /&gt;
   Else&lt;br /&gt;
      Portb.1 = 0&lt;br /&gt;
      Incr Kanal&lt;br /&gt;
   End If&lt;br /&gt;
End If&lt;br /&gt;
If Kanal = 2 Then&lt;br /&gt;
   If Portb.2 = 0 Then&lt;br /&gt;
      Timer1 = Servo(3)&lt;br /&gt;
      Portb.2 = 1&lt;br /&gt;
   Else&lt;br /&gt;
      Portb.2 = 0&lt;br /&gt;
      Incr Kanal&lt;br /&gt;
   End If&lt;br /&gt;
End If&lt;br /&gt;
If Kanal = 3 Then&lt;br /&gt;
   If Portb.3 = 0 Then&lt;br /&gt;
      Timer1 = Servo(4)&lt;br /&gt;
      Portb.3 = 1&lt;br /&gt;
   Else&lt;br /&gt;
      Portb.3 = 0&lt;br /&gt;
      Incr Kanal&lt;br /&gt;
   End If&lt;br /&gt;
End If&lt;br /&gt;
&lt;br /&gt;
If Kanal = 4 Then&lt;br /&gt;
  Timer1 = 40000                                  'eine pause von ca. 12ms bis zum nächsten interrupt. Bei guten Servos oder Brushlessreglern kann man hier bis auf 65530 gehen ==&amp;gt; ansteuerfrequenz von ~ 200Hz&lt;br /&gt;
  Kanal = 0&lt;br /&gt;
End If&lt;br /&gt;
Return&lt;br /&gt;
End&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Autoren ==&lt;br /&gt;
* [[Benutzer:Willa|Willa]]&lt;br /&gt;
&lt;br /&gt;
 [[Kategorie:Microcontroller]]&lt;br /&gt;
 [[Kategorie:Software]]&lt;br /&gt;
 [[Kategorie:Grundlagen]]&lt;br /&gt;
 [[Kategorie:Robotikeinstieg]] &lt;br /&gt;
 [[Kategorie:Praxis]] &lt;br /&gt;
 [[Kategorie:Quellcode Bascom]]&lt;br /&gt;
&lt;br /&gt;
==Siehe auch==&lt;br /&gt;
*[[RC-Empfänger_auswerten]]&lt;/div&gt;</summary>
		<author><name>Oberallgeier</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=Servos&amp;diff=16897</id>
		<title>Servos</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=Servos&amp;diff=16897"/>
				<updated>2010-08-27T08:01:29Z</updated>
		
		<summary type="html">&lt;p&gt;Oberallgeier: /* Anmerkungen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Servos (Servomotoren) sind kleine [[Getriebemotoren]], die häufig im Modellbau eingesetzt werden, doch auch in der Industrie sind sie anzutreffen. &lt;br /&gt;
Mithilfe eines Potentiometers, das an der Drehachse befestigt ist, wird intern die aktuelle Position bestimmt. Wegen ihrer einfachen Ansteuerung und Präzision eigenen sie sich hervorragend für mehr oder weniger kraftaufwändige Aufgaben in der Robotik. &lt;br /&gt;
&lt;br /&gt;
==Anschlussbelegung==&lt;br /&gt;
Handelsübliche Servomotoren besitzen 3 Anschlüsse:&lt;br /&gt;
# GND&lt;br /&gt;
# [[PWM]]&lt;br /&gt;
# +5V&lt;br /&gt;
&lt;br /&gt;
Wobei sich die Steckerbelegung von Hersteller zu Hersteller unterscheidet.&lt;br /&gt;
&lt;br /&gt;
[[Bild:servosteckerbelegung.gif|center]]&lt;br /&gt;
&lt;br /&gt;
==Ansteuerung==&lt;br /&gt;
An die PWM-Leitung wird ein pulsweitenmoduliertes Signal angeschlossen. Die Repetition-Period (Periode) entspricht bei den meisten Modellen 20ms. Innerhalb/zu Beginn dieser 20ms wird ein Puls erwartet, der sich zwischen 1ms und 2ms bewegt, wobei diese Werte jeweils den Endlagen des Servos entsprechen. D.h. 1ms ist ganz links und 2ms ist ganz rechts (Einige Servos haben in diesem Wertebereich jedoch nicht die volle Bewegungsfreiheit ausgenutzt, die Werte, bei denen der Servo ganz links/rechts ist können auch unter 1ms/über 2ms liegen). 1,5ms würde demnach die Mittelstellung bedeuten. &lt;br /&gt;
Aufgrund der Pulslänge lässt sich also eine direkte Aussage über die Position des Servos treffen.&lt;br /&gt;
Der Motor sorgt dann intern mithilfe des Potis dafür, dass die Position gehalten wird.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:Servo_pwm.gif|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Unterschied zwischen Digital- und Analogservos==&lt;br /&gt;
Der hauptsächliche Unterschied besteht darin, dass digitale Servos schneller und genauer sind und ihre Position besser halten können. Analoge Servos geben ihrem Motor alle 20ms ein Signal. Wirkt eine Kraft auf das Servo, braucht die Steuerelektronik bis zu 20ms, um dem Motor einen neuen Spannungsimpuls zu senden. Bei Digitalservos sendet die Steuerelektronik alle 400us einen Impuls an den Motor. Der Motor bekommt die Spannungsimpulse viel schneller. Um so öfter ein Motor Spannung bekommt, um so mehr Leistung kann er verrichten. Man sollte aber auch bedenken, dass dies unweigerlich einen höheren Stromverbrauch zur Folge hat, der besonders bei Modellfliegern nicht tolerierbar ist, da die Betriebszeit stark verkürzt wird.&lt;br /&gt;
&lt;br /&gt;
Die einfachste Art, einen Servo mit [[Bascom]] anzusteuern, ist folgender Befehl:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Config Servos = 2 , Servo1 = Portb.0 , Servo2 = Portb.1 , Reload = 10&lt;br /&gt;
&lt;br /&gt;
Config Portb = Output&lt;br /&gt;
&lt;br /&gt;
Enable Interrupts&lt;br /&gt;
&lt;br /&gt;
Servo(1) = 100&lt;br /&gt;
Servo(2) = 100&lt;br /&gt;
waitms 1000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'Wobei 100 die Mitte ist. 50 ist der linke bzw. rechte Anschlag und 150 der entsprechend andere. Es gibt aber auch elegantere Möglichkeiten die sich besonders empfehlen wenn z.B. eine höhere Auflösung gewünscht ist: [[Servoansteuerung]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Und in C sieht das ganze so aus:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#define SERVOPIN 7&lt;br /&gt;
#define SERVOPORT PORTD&lt;br /&gt;
#define DDRSERVO DDRD&lt;br /&gt;
&lt;br /&gt;
volatile unsigned char servopos;&lt;br /&gt;
&lt;br /&gt;
void servo_init()&lt;br /&gt;
{&lt;br /&gt;
	TIMSK|=(1&amp;lt;&amp;lt;OCIE2);&lt;br /&gt;
	TCCR2 |= (1&amp;lt;&amp;lt;WGM21) | (1&amp;lt;&amp;lt;CS20);	//Prescale=1, CTC mode&lt;br /&gt;
	OCR2 = F_CPU/100000;			//alle 10µS ein IRQ&lt;br /&gt;
	DDRSERVO|=(1&amp;lt;&amp;lt;SERVOPIN);&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
ISR(TIMER2_COMP_vect)&lt;br /&gt;
{&lt;br /&gt;
	static int count;&lt;br /&gt;
	if(count&amp;gt;servopos)SERVOPORT&amp;amp;=~(1&amp;lt;&amp;lt;SERVOPIN);&lt;br /&gt;
	else SERVOPORT|=(1&amp;lt;&amp;lt;SERVOPIN);&lt;br /&gt;
	if(count&amp;lt;2000+servopos)count++;&lt;br /&gt;
	else count=0;&lt;br /&gt;
};&lt;br /&gt;
	&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Man muss zuvor DDRSERVO, SERVOPIN und SERVOPORT entsprechend definieren. Mit der Funktion &amp;quot;servo_init()&amp;quot; wird Timer2 initialisiert und der Servo-Pin als Ausgang gesetzt. &amp;quot;servopos&amp;quot; beinhaltet die aktuelle Dauer des Signals in 1/100ms. Vergessen Sie nicht, globale Interrupts vor dem Betrieb zu aktivieren!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Letzter Beitrag von &amp;quot;stochri&amp;quot; ist eine super Lösung in avr-gcc mit bis zu 10 Servos&lt;br /&gt;
&lt;br /&gt;
[[http://www.roboternetz.de/phpBB2/zeigebeitrag.php?t=14220&amp;amp;highlight=servo &amp;quot;Servo / avr-gcc&amp;quot; ]]&lt;br /&gt;
&lt;br /&gt;
==Anmerkungen==&lt;br /&gt;
Häufig entledigt man sich auch des Potis und der Endlagenanschläge, um so einen Motor mit hohem Drehmoment zu erlangen. Dieser Vorgang wird auch als Servo-Hacking bezeichnet. Durch die Pulslänge kann dann die Winkelgeschwindigkeit des Servos beeinflusst werden.&lt;br /&gt;
&lt;br /&gt;
[[Bild:servo.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
Es gibt zwei deutlich unterschiedliche Varianten des Servohackings. Eine nutzt die im Servo eingebaute Elektronik zur Motoransteuerung, eine andere nutzt eine externe Elektronik - die vorhandene wird komplett entfernt. Die beiden Varianten des Servohackings sowie ihre Vor- und Nachteile sind hier beschrieben.&lt;br /&gt;
[[http://www.roboternetz.de/phpBB2/viewtopic.php?p=516553#516553 &amp;quot;Servohacking. Technik, Vor- und Nachteile&amp;quot; ]]&lt;br /&gt;
&lt;br /&gt;
==Siehe auch==&lt;br /&gt;
*[[Getriebemotoren]]&lt;br /&gt;
*[[RC-Empfänger_auswerten]]&lt;br /&gt;
*[[Servoansteuerung]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Robotikeinstieg]]&lt;br /&gt;
[[Category:Praxis]]&lt;br /&gt;
[[Category:Grundlagen]]&lt;br /&gt;
[[Category:Motoren]]&lt;/div&gt;</summary>
		<author><name>Oberallgeier</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=Servos&amp;diff=16896</id>
		<title>Servos</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=Servos&amp;diff=16896"/>
				<updated>2010-08-27T08:00:47Z</updated>
		
		<summary type="html">&lt;p&gt;Oberallgeier: /* Anmerkungen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Servos (Servomotoren) sind kleine [[Getriebemotoren]], die häufig im Modellbau eingesetzt werden, doch auch in der Industrie sind sie anzutreffen. &lt;br /&gt;
Mithilfe eines Potentiometers, das an der Drehachse befestigt ist, wird intern die aktuelle Position bestimmt. Wegen ihrer einfachen Ansteuerung und Präzision eigenen sie sich hervorragend für mehr oder weniger kraftaufwändige Aufgaben in der Robotik. &lt;br /&gt;
&lt;br /&gt;
==Anschlussbelegung==&lt;br /&gt;
Handelsübliche Servomotoren besitzen 3 Anschlüsse:&lt;br /&gt;
# GND&lt;br /&gt;
# [[PWM]]&lt;br /&gt;
# +5V&lt;br /&gt;
&lt;br /&gt;
Wobei sich die Steckerbelegung von Hersteller zu Hersteller unterscheidet.&lt;br /&gt;
&lt;br /&gt;
[[Bild:servosteckerbelegung.gif|center]]&lt;br /&gt;
&lt;br /&gt;
==Ansteuerung==&lt;br /&gt;
An die PWM-Leitung wird ein pulsweitenmoduliertes Signal angeschlossen. Die Repetition-Period (Periode) entspricht bei den meisten Modellen 20ms. Innerhalb/zu Beginn dieser 20ms wird ein Puls erwartet, der sich zwischen 1ms und 2ms bewegt, wobei diese Werte jeweils den Endlagen des Servos entsprechen. D.h. 1ms ist ganz links und 2ms ist ganz rechts (Einige Servos haben in diesem Wertebereich jedoch nicht die volle Bewegungsfreiheit ausgenutzt, die Werte, bei denen der Servo ganz links/rechts ist können auch unter 1ms/über 2ms liegen). 1,5ms würde demnach die Mittelstellung bedeuten. &lt;br /&gt;
Aufgrund der Pulslänge lässt sich also eine direkte Aussage über die Position des Servos treffen.&lt;br /&gt;
Der Motor sorgt dann intern mithilfe des Potis dafür, dass die Position gehalten wird.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:Servo_pwm.gif|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Unterschied zwischen Digital- und Analogservos==&lt;br /&gt;
Der hauptsächliche Unterschied besteht darin, dass digitale Servos schneller und genauer sind und ihre Position besser halten können. Analoge Servos geben ihrem Motor alle 20ms ein Signal. Wirkt eine Kraft auf das Servo, braucht die Steuerelektronik bis zu 20ms, um dem Motor einen neuen Spannungsimpuls zu senden. Bei Digitalservos sendet die Steuerelektronik alle 400us einen Impuls an den Motor. Der Motor bekommt die Spannungsimpulse viel schneller. Um so öfter ein Motor Spannung bekommt, um so mehr Leistung kann er verrichten. Man sollte aber auch bedenken, dass dies unweigerlich einen höheren Stromverbrauch zur Folge hat, der besonders bei Modellfliegern nicht tolerierbar ist, da die Betriebszeit stark verkürzt wird.&lt;br /&gt;
&lt;br /&gt;
Die einfachste Art, einen Servo mit [[Bascom]] anzusteuern, ist folgender Befehl:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Config Servos = 2 , Servo1 = Portb.0 , Servo2 = Portb.1 , Reload = 10&lt;br /&gt;
&lt;br /&gt;
Config Portb = Output&lt;br /&gt;
&lt;br /&gt;
Enable Interrupts&lt;br /&gt;
&lt;br /&gt;
Servo(1) = 100&lt;br /&gt;
Servo(2) = 100&lt;br /&gt;
waitms 1000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'Wobei 100 die Mitte ist. 50 ist der linke bzw. rechte Anschlag und 150 der entsprechend andere. Es gibt aber auch elegantere Möglichkeiten die sich besonders empfehlen wenn z.B. eine höhere Auflösung gewünscht ist: [[Servoansteuerung]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Und in C sieht das ganze so aus:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#define SERVOPIN 7&lt;br /&gt;
#define SERVOPORT PORTD&lt;br /&gt;
#define DDRSERVO DDRD&lt;br /&gt;
&lt;br /&gt;
volatile unsigned char servopos;&lt;br /&gt;
&lt;br /&gt;
void servo_init()&lt;br /&gt;
{&lt;br /&gt;
	TIMSK|=(1&amp;lt;&amp;lt;OCIE2);&lt;br /&gt;
	TCCR2 |= (1&amp;lt;&amp;lt;WGM21) | (1&amp;lt;&amp;lt;CS20);	//Prescale=1, CTC mode&lt;br /&gt;
	OCR2 = F_CPU/100000;			//alle 10µS ein IRQ&lt;br /&gt;
	DDRSERVO|=(1&amp;lt;&amp;lt;SERVOPIN);&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
ISR(TIMER2_COMP_vect)&lt;br /&gt;
{&lt;br /&gt;
	static int count;&lt;br /&gt;
	if(count&amp;gt;servopos)SERVOPORT&amp;amp;=~(1&amp;lt;&amp;lt;SERVOPIN);&lt;br /&gt;
	else SERVOPORT|=(1&amp;lt;&amp;lt;SERVOPIN);&lt;br /&gt;
	if(count&amp;lt;2000+servopos)count++;&lt;br /&gt;
	else count=0;&lt;br /&gt;
};&lt;br /&gt;
	&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Man muss zuvor DDRSERVO, SERVOPIN und SERVOPORT entsprechend definieren. Mit der Funktion &amp;quot;servo_init()&amp;quot; wird Timer2 initialisiert und der Servo-Pin als Ausgang gesetzt. &amp;quot;servopos&amp;quot; beinhaltet die aktuelle Dauer des Signals in 1/100ms. Vergessen Sie nicht, globale Interrupts vor dem Betrieb zu aktivieren!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Letzter Beitrag von &amp;quot;stochri&amp;quot; ist eine super Lösung in avr-gcc mit bis zu 10 Servos&lt;br /&gt;
&lt;br /&gt;
[[http://www.roboternetz.de/phpBB2/zeigebeitrag.php?t=14220&amp;amp;highlight=servo &amp;quot;Servo / avr-gcc&amp;quot; ]]&lt;br /&gt;
&lt;br /&gt;
==Anmerkungen==&lt;br /&gt;
Häufig entledigt man sich auch des Potis und der Endlagenanschläge, um so einen Motor mit hohem Drehmoment zu erlangen. Dieser Vorgang wird auch als Servo-Hacking bezeichnet. Durch die Pulslänge kann dann die Winkelgeschwindigkeit des Servos beeinflusst werden.&lt;br /&gt;
&lt;br /&gt;
[[Bild:servo.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
Es gibt zwei deutlich unterschiedliche Varianten des Servohackings. Eine nutzt die im Servo eingebaute Elektronik zur Motoransteuerung, eine andere nutzt eine externe Elektronik - die vorhandene wird kompletet entfernt. Die beiden Varianten des Servohackings sowie ihre Vor- und Nachteile sind hier beschrieben.&lt;br /&gt;
[[http://www.roboternetz.de/phpBB2/viewtopic.php?p=516553#516553 &amp;quot;Servohacking. Technik, Vor- und Nachteile&amp;quot; ]]&lt;br /&gt;
&lt;br /&gt;
==Siehe auch==&lt;br /&gt;
*[[Getriebemotoren]]&lt;br /&gt;
*[[RC-Empfänger_auswerten]]&lt;br /&gt;
*[[Servoansteuerung]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Robotikeinstieg]]&lt;br /&gt;
[[Category:Praxis]]&lt;br /&gt;
[[Category:Grundlagen]]&lt;br /&gt;
[[Category:Motoren]]&lt;/div&gt;</summary>
		<author><name>Oberallgeier</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=Servos&amp;diff=16895</id>
		<title>Servos</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=Servos&amp;diff=16895"/>
				<updated>2010-08-27T07:57:15Z</updated>
		
		<summary type="html">&lt;p&gt;Oberallgeier: 2 Varianten Servohacking. Kurzbeschreibung als erster Versuch.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Servos (Servomotoren) sind kleine [[Getriebemotoren]], die häufig im Modellbau eingesetzt werden, doch auch in der Industrie sind sie anzutreffen. &lt;br /&gt;
Mithilfe eines Potentiometers, das an der Drehachse befestigt ist, wird intern die aktuelle Position bestimmt. Wegen ihrer einfachen Ansteuerung und Präzision eigenen sie sich hervorragend für mehr oder weniger kraftaufwändige Aufgaben in der Robotik. &lt;br /&gt;
&lt;br /&gt;
==Anschlussbelegung==&lt;br /&gt;
Handelsübliche Servomotoren besitzen 3 Anschlüsse:&lt;br /&gt;
# GND&lt;br /&gt;
# [[PWM]]&lt;br /&gt;
# +5V&lt;br /&gt;
&lt;br /&gt;
Wobei sich die Steckerbelegung von Hersteller zu Hersteller unterscheidet.&lt;br /&gt;
&lt;br /&gt;
[[Bild:servosteckerbelegung.gif|center]]&lt;br /&gt;
&lt;br /&gt;
==Ansteuerung==&lt;br /&gt;
An die PWM-Leitung wird ein pulsweitenmoduliertes Signal angeschlossen. Die Repetition-Period (Periode) entspricht bei den meisten Modellen 20ms. Innerhalb/zu Beginn dieser 20ms wird ein Puls erwartet, der sich zwischen 1ms und 2ms bewegt, wobei diese Werte jeweils den Endlagen des Servos entsprechen. D.h. 1ms ist ganz links und 2ms ist ganz rechts (Einige Servos haben in diesem Wertebereich jedoch nicht die volle Bewegungsfreiheit ausgenutzt, die Werte, bei denen der Servo ganz links/rechts ist können auch unter 1ms/über 2ms liegen). 1,5ms würde demnach die Mittelstellung bedeuten. &lt;br /&gt;
Aufgrund der Pulslänge lässt sich also eine direkte Aussage über die Position des Servos treffen.&lt;br /&gt;
Der Motor sorgt dann intern mithilfe des Potis dafür, dass die Position gehalten wird.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:Servo_pwm.gif|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Unterschied zwischen Digital- und Analogservos==&lt;br /&gt;
Der hauptsächliche Unterschied besteht darin, dass digitale Servos schneller und genauer sind und ihre Position besser halten können. Analoge Servos geben ihrem Motor alle 20ms ein Signal. Wirkt eine Kraft auf das Servo, braucht die Steuerelektronik bis zu 20ms, um dem Motor einen neuen Spannungsimpuls zu senden. Bei Digitalservos sendet die Steuerelektronik alle 400us einen Impuls an den Motor. Der Motor bekommt die Spannungsimpulse viel schneller. Um so öfter ein Motor Spannung bekommt, um so mehr Leistung kann er verrichten. Man sollte aber auch bedenken, dass dies unweigerlich einen höheren Stromverbrauch zur Folge hat, der besonders bei Modellfliegern nicht tolerierbar ist, da die Betriebszeit stark verkürzt wird.&lt;br /&gt;
&lt;br /&gt;
Die einfachste Art, einen Servo mit [[Bascom]] anzusteuern, ist folgender Befehl:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Config Servos = 2 , Servo1 = Portb.0 , Servo2 = Portb.1 , Reload = 10&lt;br /&gt;
&lt;br /&gt;
Config Portb = Output&lt;br /&gt;
&lt;br /&gt;
Enable Interrupts&lt;br /&gt;
&lt;br /&gt;
Servo(1) = 100&lt;br /&gt;
Servo(2) = 100&lt;br /&gt;
waitms 1000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'Wobei 100 die Mitte ist. 50 ist der linke bzw. rechte Anschlag und 150 der entsprechend andere. Es gibt aber auch elegantere Möglichkeiten die sich besonders empfehlen wenn z.B. eine höhere Auflösung gewünscht ist: [[Servoansteuerung]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Und in C sieht das ganze so aus:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#define SERVOPIN 7&lt;br /&gt;
#define SERVOPORT PORTD&lt;br /&gt;
#define DDRSERVO DDRD&lt;br /&gt;
&lt;br /&gt;
volatile unsigned char servopos;&lt;br /&gt;
&lt;br /&gt;
void servo_init()&lt;br /&gt;
{&lt;br /&gt;
	TIMSK|=(1&amp;lt;&amp;lt;OCIE2);&lt;br /&gt;
	TCCR2 |= (1&amp;lt;&amp;lt;WGM21) | (1&amp;lt;&amp;lt;CS20);	//Prescale=1, CTC mode&lt;br /&gt;
	OCR2 = F_CPU/100000;			//alle 10µS ein IRQ&lt;br /&gt;
	DDRSERVO|=(1&amp;lt;&amp;lt;SERVOPIN);&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
ISR(TIMER2_COMP_vect)&lt;br /&gt;
{&lt;br /&gt;
	static int count;&lt;br /&gt;
	if(count&amp;gt;servopos)SERVOPORT&amp;amp;=~(1&amp;lt;&amp;lt;SERVOPIN);&lt;br /&gt;
	else SERVOPORT|=(1&amp;lt;&amp;lt;SERVOPIN);&lt;br /&gt;
	if(count&amp;lt;2000+servopos)count++;&lt;br /&gt;
	else count=0;&lt;br /&gt;
};&lt;br /&gt;
	&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Man muss zuvor DDRSERVO, SERVOPIN und SERVOPORT entsprechend definieren. Mit der Funktion &amp;quot;servo_init()&amp;quot; wird Timer2 initialisiert und der Servo-Pin als Ausgang gesetzt. &amp;quot;servopos&amp;quot; beinhaltet die aktuelle Dauer des Signals in 1/100ms. Vergessen Sie nicht, globale Interrupts vor dem Betrieb zu aktivieren!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Letzter Beitrag von &amp;quot;stochri&amp;quot; ist eine super Lösung in avr-gcc mit bis zu 10 Servos&lt;br /&gt;
&lt;br /&gt;
[[http://www.roboternetz.de/phpBB2/zeigebeitrag.php?t=14220&amp;amp;highlight=servo &amp;quot;Servo / avr-gcc&amp;quot; ]]&lt;br /&gt;
&lt;br /&gt;
==Anmerkungen==&lt;br /&gt;
Häufig entledigt man sich auch des Potis und der Endlagenanschläge, um so einen Motor mit hohem Drehmoment zu erlangen. Dieser Vorgang wird auch als Servo-Hacking bezeichnet. Durch die Pulslänge kann dann die Winkelgeschwindigkeit des Servos beeinflusst werden.&lt;br /&gt;
&lt;br /&gt;
[[Bild:servo.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
Die Varianten des Servohackings sind hier beschrieben.&lt;br /&gt;
[[http://www.roboternetz.de/phpBB2/viewtopic.php?p=516553#516553 &amp;quot;Servohacking&amp;quot; ]]&lt;br /&gt;
&lt;br /&gt;
==Siehe auch==&lt;br /&gt;
*[[Getriebemotoren]]&lt;br /&gt;
*[[RC-Empfänger_auswerten]]&lt;br /&gt;
*[[Servoansteuerung]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Robotikeinstieg]]&lt;br /&gt;
[[Category:Praxis]]&lt;br /&gt;
[[Category:Grundlagen]]&lt;br /&gt;
[[Category:Motoren]]&lt;/div&gt;</summary>
		<author><name>Oberallgeier</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=Servos&amp;diff=16891</id>
		<title>Servos</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=Servos&amp;diff=16891"/>
				<updated>2010-08-16T11:52:49Z</updated>
		
		<summary type="html">&lt;p&gt;Oberallgeier: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Servos (Servomotoren) sind kleine [[Getriebemotoren]], die häufig im Modellbau eingesetzt werden, doch auch in der Industrie sind sie anzutreffen. &lt;br /&gt;
Mithilfe eines Potentiometers, das an der Drehachse befestigt ist, wird intern die aktuelle Position bestimmt. Wegen ihrer einfachen Ansteuerung und Präzision eigenen sie sich hervorragend für mehr oder weniger kraftaufwändige Aufgaben in der Robotik. &lt;br /&gt;
&lt;br /&gt;
==Anschlussbelegung==&lt;br /&gt;
Handelsübliche Servomotoren besitzen 3 Anschlüsse:&lt;br /&gt;
# GND&lt;br /&gt;
# [[PWM]]&lt;br /&gt;
# +5V&lt;br /&gt;
&lt;br /&gt;
Wobei sich die Steckerbelegung von Hersteller zu Hersteller unterscheidet.&lt;br /&gt;
&lt;br /&gt;
[[Bild:servosteckerbelegung.gif|center]]&lt;br /&gt;
&lt;br /&gt;
==Ansteuerung==&lt;br /&gt;
An die PWM-Leitung wird ein pulsweitenmoduliertes Signal angeschlossen. Die Repetition-Period (Periode) entspricht bei den meisten Modellen 20ms. Innerhalb/zu Beginn dieser 20ms wird ein Puls erwartet, der sich zwischen 1ms und 2ms bewegt, wobei diese Werte jeweils den Endlagen des Servos entsprechen. D.h. 1ms ist ganz links und 2ms ist ganz rechts (Einige Servos haben in diesem Wertebereich jedoch nicht die volle Bewegungsfreiheit ausgenutzt, die Werte, bei denen der Servo ganz links/rechts ist können auch unter 1ms/über 2ms liegen). 1,5ms würde demnach die Mittelstellung bedeuten. &lt;br /&gt;
Aufgrund der Pulslänge lässt sich also eine direkte Aussage über die Position des Servos treffen.&lt;br /&gt;
Der Motor sorgt dann intern mithilfe des Potis dafür, dass die Position gehalten wird.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:Servo_pwm.gif|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Unterschied zwischen Digital- und Analogservos==&lt;br /&gt;
Der hauptsächliche Unterschied besteht darin, dass digitale Servos schneller und genauer sind und ihre Position besser halten können. Analoge Servos geben ihrem Motor alle 20ms ein Signal. Wirkt eine Kraft auf das Servo, braucht die Steuerelektronik bis zu 20ms, um dem Motor einen neuen Spannungsimpuls zu senden. Bei Digitalservos sendet die Steuerelektronik alle 400us einen Impuls an den Motor. Der Motor bekommt die Spannungsimpulse viel schneller. Um so öfter ein Motor Spannung bekommt, um so mehr Leistung kann er verrichten. Man sollte aber auch bedenken, dass dies unweigerlich einen höheren Stromverbrauch zur Folge hat, der besonders bei Modellfliegern nicht tolerierbar ist, da die Betriebszeit stark verkürzt wird.&lt;br /&gt;
&lt;br /&gt;
Die einfachste Art, einen Servo mit [[Bascom]] anzusteuern, ist folgender Befehl:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Config Servos = 2 , Servo1 = Portb.0 , Servo2 = Portb.1 , Reload = 10&lt;br /&gt;
&lt;br /&gt;
Config Portb = Output&lt;br /&gt;
&lt;br /&gt;
Enable Interrupts&lt;br /&gt;
&lt;br /&gt;
Servo(1) = 100&lt;br /&gt;
Servo(2) = 100&lt;br /&gt;
waitms 1000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'Wobei 100 die Mitte ist. 50 ist der linke bzw. rechte Anschlag und 150 der entsprechend andere. Es gibt aber auch elegantere Möglichkeiten die sich besonders empfehlen wenn z.B. eine höhere Auflösung gewünscht ist: [[Servoansteuerung]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Und in C sieht das ganze so aus:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#define SERVOPIN 7&lt;br /&gt;
#define SERVOPORT PORTD&lt;br /&gt;
#define DDRSERVO DDRD&lt;br /&gt;
&lt;br /&gt;
volatile unsigned char servopos;&lt;br /&gt;
&lt;br /&gt;
void servo_init()&lt;br /&gt;
{&lt;br /&gt;
	TIMSK|=(1&amp;lt;&amp;lt;OCIE2);&lt;br /&gt;
	TCCR2 |= (1&amp;lt;&amp;lt;WGM21) | (1&amp;lt;&amp;lt;CS20);	//Prescale=1, CTC mode&lt;br /&gt;
	OCR2 = F_CPU/100000;			//alle 10µS ein IRQ&lt;br /&gt;
	DDRSERVO|=(1&amp;lt;&amp;lt;SERVOPIN);&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
ISR(TIMER2_COMP_vect)&lt;br /&gt;
{&lt;br /&gt;
	static int count;&lt;br /&gt;
	if(count&amp;gt;servopos)SERVOPORT&amp;amp;=~(1&amp;lt;&amp;lt;SERVOPIN);&lt;br /&gt;
	else SERVOPORT|=(1&amp;lt;&amp;lt;SERVOPIN);&lt;br /&gt;
	if(count&amp;lt;2000+servopos)count++;&lt;br /&gt;
	else count=0;&lt;br /&gt;
};&lt;br /&gt;
	&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Man muss zuvor DDRSERVO, SERVOPIN und SERVOPORT entsprechend definieren. Mit der Funktion &amp;quot;servo_init()&amp;quot; wird Timer2 initialisiert und der Servo-Pin als Ausgang gesetzt. &amp;quot;servopos&amp;quot; beinhaltet die aktuelle Dauer des Signals in 1/100ms. Vergessen Sie nicht, globale Interrupts vor dem Betrieb zu aktivieren!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Letzter Beitrag von &amp;quot;stochri&amp;quot; ist eine super Lösung in avr-gcc mit bis zu 10 Servos&lt;br /&gt;
&lt;br /&gt;
[[http://www.roboternetz.de/phpBB2/zeigebeitrag.php?t=14220&amp;amp;highlight=servo &amp;quot;Servo / avr-gcc&amp;quot; ]]&lt;br /&gt;
&lt;br /&gt;
==Anmerkungen==&lt;br /&gt;
Häufig entledigt man sich auch des Potis und der Endlagenanschläge, um so einen Motor mit hohem Drehmoment zu erlangen. Dieser Vorgang wird auch als Servo-Hacking bezeichnet. Durch die Pulslänge kann dann die Winkelgeschwindigkeit des Servos beeinflusst werden.&lt;br /&gt;
&lt;br /&gt;
[[Bild:servo.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
==Siehe auch==&lt;br /&gt;
*[[Getriebemotoren]]&lt;br /&gt;
*[[RC-Empfänger_auswerten]]&lt;br /&gt;
*[[Servoansteuerung]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Robotikeinstieg]]&lt;br /&gt;
[[Category:Praxis]]&lt;br /&gt;
[[Category:Grundlagen]]&lt;br /&gt;
[[Category:Motoren]]&lt;/div&gt;</summary>
		<author><name>Oberallgeier</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=Servos&amp;diff=16890</id>
		<title>Servos</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=Servos&amp;diff=16890"/>
				<updated>2010-08-16T10:44:18Z</updated>
		
		<summary type="html">&lt;p&gt;Oberallgeier: Bild eingefügt: Zeit-Pegeldiagramm für PWM für Standardservos&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Servos (Servomotoren) sind kleine [[Getriebemotoren]], die häufig im Modellbau eingesetzt werden, doch auch in der Industrie sind sie anzutreffen. &lt;br /&gt;
Mithilfe eines Potentiometers, das an der Drehachse befestigt ist, wird intern die aktuelle Position bestimmt. Wegen ihrer einfachen Ansteuerung und Präzision eigenen sie sich hervorragend für mehr oder weniger kraftaufwändige Aufgaben in der Robotik. &lt;br /&gt;
&lt;br /&gt;
==Anschlussbelegung==&lt;br /&gt;
Handelsübliche Servomotoren besitzen 3 Anschlüsse:&lt;br /&gt;
# GND&lt;br /&gt;
# [[PWM]]&lt;br /&gt;
# +5V&lt;br /&gt;
&lt;br /&gt;
Wobei sich die Steckerbelegung von Hersteller zu Hersteller unterscheidet.&lt;br /&gt;
&lt;br /&gt;
[[Bild:servosteckerbelegung.gif|center]]&lt;br /&gt;
&lt;br /&gt;
==Ansteuerung==&lt;br /&gt;
An die PWM-Leitung wird ein pulsweitenmoduliertes Signal angeschlossen. Die Repetition-Period(Periode) entspricht bei den meisten Modellen 20ms. Innerhalb/zu Beginn dieser 20ms wird ein Puls erwartet, der sich zwischen 1ms und 2ms bewegt, wobei diese Werte jeweils den Endlagen des Servos entsprechen. D.h. 1ms ist ganz links und 2ms ist ganz rechts(Einige Sevos haben in diesem Wertebereich jedoch nicht die volle Bewegungsfreiheit ausgenutzt, die Werte, bei denen der Servo ganz links/rechts ist können auch unter 1ms/über 2ms liegen). 1,5ms würde demnach die Mittelstellung bedeuten. &lt;br /&gt;
Aufgrund der Pulslänge lässt sich also eine direkte Aussage über die Position des Servos treffen.&lt;br /&gt;
Der Motor sorgt dann intern mithilfe des Potis dafür, dass die Position gehalten wird.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:Servo_pwm.gif|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Unterschied zwischen Digital- und Analogservos==&lt;br /&gt;
Der hauptsächliche Unterschied besteht darin, dass digitale Servos schneller und genauer sind und ihre Position besser halten können. Analoge Servos geben ihrem Motor alle 20ms ein Signal. Wirkt eine Kraft auf das Servo, braucht die Steuerelektronik bis zu 20ms, um dem Motor einen neuen Spannungsimpuls zu senden. Bei Digitalservos sendet die Steuerelektronik alle 400us einen Impuls an den Motor. Der Motor bekommt die Spannungsimpulse viel schneller. Um so öfter ein Motor Spannung bekommt, um so mehr Leistung kann er verrichten. Man sollte aber auch bedenken, dass dies unweigerlich einen höheren Stromverbrauch zur Folge hat, der besonders bei Modellfliegern nicht tolerierbar ist, da die Betriebszeit stark verkürzt wird.&lt;br /&gt;
&lt;br /&gt;
Die einfachste Art, einen Servo mit [[Bascom]] anzusteuern, ist folgender Befehl:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Config Servos = 2 , Servo1 = Portb.0 , Servo2 = Portb.1 , Reload = 10&lt;br /&gt;
&lt;br /&gt;
Config Portb = Output&lt;br /&gt;
&lt;br /&gt;
Enable Interrupts&lt;br /&gt;
&lt;br /&gt;
Servo(1) = 100&lt;br /&gt;
Servo(2) = 100&lt;br /&gt;
waitms 1000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'Wobei 100 die Mitte ist. 50 ist der linke bzw. rechte Anschlag und 150 der entsprechend andere. Es gibt aber auch elegantere Möglichkeiten die sich besonders empfehlen wenn z.B. eine höhere Auflösung gewünscht ist: [[Servoansteuerung]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Und in C sieht das ganze so aus:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#define SERVOPIN 7&lt;br /&gt;
#define SERVOPORT PORTD&lt;br /&gt;
#define DDRSERVO DDRD&lt;br /&gt;
&lt;br /&gt;
volatile unsigned char servopos;&lt;br /&gt;
&lt;br /&gt;
void servo_init()&lt;br /&gt;
{&lt;br /&gt;
	TIMSK|=(1&amp;lt;&amp;lt;OCIE2);&lt;br /&gt;
	TCCR2 |= (1&amp;lt;&amp;lt;WGM21) | (1&amp;lt;&amp;lt;CS20);	//Prescale=1, CTC mode&lt;br /&gt;
	OCR2 = F_CPU/100000;			//alle 10µS ein IRQ&lt;br /&gt;
	DDRSERVO|=(1&amp;lt;&amp;lt;SERVOPIN);&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
ISR(TIMER2_COMP_vect)&lt;br /&gt;
{&lt;br /&gt;
	static int count;&lt;br /&gt;
	if(count&amp;gt;servopos)SERVOPORT&amp;amp;=~(1&amp;lt;&amp;lt;SERVOPIN);&lt;br /&gt;
	else SERVOPORT|=(1&amp;lt;&amp;lt;SERVOPIN);&lt;br /&gt;
	if(count&amp;lt;2000+servopos)count++;&lt;br /&gt;
	else count=0;&lt;br /&gt;
};&lt;br /&gt;
	&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Man muss zuvor DDRSERVO, SERVOPIN und SERVOPORT entsprechend definieren. Mit der Funktion &amp;quot;servo_init()&amp;quot; wird Timer2 initialisiert und der Servo-Pin als Ausgang gesetzt. &amp;quot;servopos&amp;quot; beinhaltet die aktuelle Dauer des Signals in 1/100ms. Vergessen Sie nicht, globale Interrupts vor dem Betrieb zu aktivieren!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Letzter Beitrag von &amp;quot;stochri&amp;quot; ist eine super Lösung in avr-gcc mit bis zu 10 Servos&lt;br /&gt;
&lt;br /&gt;
[[http://www.roboternetz.de/phpBB2/zeigebeitrag.php?t=14220&amp;amp;highlight=servo &amp;quot;Servo / avr-gcc&amp;quot; ]]&lt;br /&gt;
&lt;br /&gt;
==Anmerkungen==&lt;br /&gt;
Häufig entledigt man sich auch des Potis und der Endlagenanschläge, um so einen Motor mit hohem Drehmoment zu erlangen. Dieser Vorgang wird auch als Servo-Hacking bezeichnet. Durch die Pulslänge kann dann die Winkelgeschwindigkeit des Servos beeinflusst werden.&lt;br /&gt;
&lt;br /&gt;
[[Bild:servo.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
==Siehe auch==&lt;br /&gt;
*[[Getriebemotoren]]&lt;br /&gt;
*[[RC-Empfänger_auswerten]]&lt;br /&gt;
*[[Servoansteuerung]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Robotikeinstieg]]&lt;br /&gt;
[[Category:Praxis]]&lt;br /&gt;
[[Category:Grundlagen]]&lt;br /&gt;
[[Category:Motoren]]&lt;/div&gt;</summary>
		<author><name>Oberallgeier</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=Datei:Servo_pwm.gif&amp;diff=16889</id>
		<title>Datei:Servo pwm.gif</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=Datei:Servo_pwm.gif&amp;diff=16889"/>
				<updated>2010-08-16T10:38:00Z</updated>
		
		<summary type="html">&lt;p&gt;Oberallgeier: Zeit-Pegeldiagramm der PWM für Standardservos&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Zeit-Pegeldiagramm der PWM für Standardservos&lt;/div&gt;</summary>
		<author><name>Oberallgeier</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=Leuchtdiode&amp;diff=15512</id>
		<title>Leuchtdiode</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=Leuchtdiode&amp;diff=15512"/>
				<updated>2009-10-22T13:32:08Z</updated>
		
		<summary type="html">&lt;p&gt;Oberallgeier: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Bild:SFH300.jpg|right|thumb|Standard Bauform]]Leuchtdioden (Lumineszenzdiode) oder auch LED abgekürzt (light emitting diodes) basieren auf Halbleiterverbindungen, die den Strom direkt in Licht umwandeln. Bezogen auf Größe, Effektivität, Haltbarkeit und Lebensdauer verhalten sich die Leuchtdioden zu konventionellen Glühlampen, wie Halbleiterdioden zu Röhrendioden. Sie werden die Beleuchtungstechnik in ähnlicher Weise verändern, wie die Halbleitertechnologie schon die Elektronik verändert hat.&lt;br /&gt;
[[Bild:led.gif|right]]&lt;br /&gt;
[[Bild:Schaltsymbol_Lunineszenzdiode.png|left|Schaltsymbol Lunineszenzdiode (LED)]]Ein großer Vorteil ist die hohe Leuchtkraft bei geringer Stromstärke. Daher werden LEDs fast in allen elektronischen Geräten zur Anzeige von Signalen/Zuständen genutzt. Gerade ist auch die neue weisse LED dabei sogar der Glühlampe etwas Konkurrenz zu machen.&lt;br /&gt;
Gewöhnlich werden LED mit 20 mA betrieben. Bei der „SuperFlux LED“ und der „Luxeon“ von Lumileds ist der maximale Betriebsstrom höher, nämlich 70 mA und 350 mA. Dagegen gibt es auch Low-current Typen die für 2mA ausgelegt sind. Weniger Strom ist kein Problem: die Helligkeit nimmt ungefähr proportional zum Strom ab.&lt;br /&gt;
&lt;br /&gt;
Die Durchlassspannung hängt direkt von der Bandlücke ab und damit von der Lichtfarbe. Die Betriebsspannungen betragen 2V bis 4V. Der durch die Diode fließende Strom ist von der angelegten Spannung abhängig.&lt;br /&gt;
Wegen des hohen Dotierungsunterschieds an der Sperrschicht vertragen Leuchtdioden nur geringe Sperrspannung von ca. 5 V. Wenn eine LED also an der Kathode positive Spannung abbekommt muss eine Diode antiparallel eingesetzt werden.&lt;br /&gt;
&lt;br /&gt;
Es ist eine große Vielfalt von Bauformen lieferbar. Neben diversen Metall-/Glas-Gehäusen werden hauptsächlich Plastikbauformen eingesetzt. Hier setzt der Kunststoffkörper zum einen den Grenzwinkel der Totalreflexion an der Chipoberfläche herab und erhöht damit die aus dem Kristall austretende Strahlungsleistung, zum anderen wirkt die gekrümmte Oberfläche als Linse und bündelt die Strahlung in Achsrichtung. Sie sind problemlos in großen Stückzahlen zu fertigen.&lt;br /&gt;
&lt;br /&gt;
Je nach Verlötungsverfahren wird bei elektronischen Bauteilen zwischen den auf der Rückseite der Platine verlöteten und den SMD (Surface Mounted Device) Bauformen unterschieden. Auch LED werden in beiden Bauformen angeboten.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Praxistip:''' An einer Spannung von 5V (auch Digitalports) werden Leuchtdioden gewöhnlich mit einem Widerstand von min. 330 Ohm bis 1000 Ohm (je nach gewünschter Leuchtstärke) betrieben.&lt;br /&gt;
&lt;br /&gt;
'''Berechnung des Vorwiderstandes:''' Zur Berechnung des Vorwiderstandes benutzt man das Ohmsche Gesetz. Von der Versorgungsspannung wird die Spannung der LED abgezogen und dann durch den gwünschten Strom geteilt.&lt;br /&gt;
Beispiel: Eine LED soll 20mA bekommen und braucht 2V. Unsere Versorgungsspannung hat 9V. Setzt man das in die Formel ein bekommt man 350 Ohm herraus.&lt;br /&gt;
Da es die meisten errechneten Widerstände nicht gibt nimmt man sicherheitshalber den nächst höheren.&lt;br /&gt;
Beim Rechnen sollte man immer in den Grundeinheiten Ampere, Volt und Ohm bleiben.&lt;br /&gt;
Man rechnet also nicht mit 20mA, sondern mit 0,02A. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:LED.jpg|thumb|center|Weiße LED]] &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==IR-LEDs==&lt;br /&gt;
Neben den LEDs für sichbares Licht gibt es auch LEDs für Infrarotlicht. Die üblichen Wellenlängen sind 880 nm und 950 nm. Diese LEDs haben einen recht hohen Wirkungsgrad und Silizium Fotodioden sind hier besonders empfindlich. Entsprechend eignen sich die IR-LEDs gut für Lichtschranken und die Datenübertragung, z.B. für Fernsteuerungen. Die typischen IR LEDs vertragen bis 100 mA, wenn für eine einigermaßene Wärmeableitung gesorgt wird.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Funktionstest von IR-LEDs:''' Infrarotlicht ist für Menschen nicht sichtbar. Daher ist der Funktionstest einer IR-LED ohne Hilfsmittel nicht möglich. Neben der Messung der Stromaufnahme ist eine praxiserprobte Möglichkeit das Messgerät Digitalkamera. Warum? Die meisten Digitalkameras &amp;quot;sehen&amp;quot; Infrarotlicht. Eine Ausnahme bilden z.T. hochpreisige Systemkameras, aber die übliche Digicams oder Handikameras sind geeignet. Es muss einfach bei - vermutetem - Leuchten der IR-LED auf das Kameradisplay geschaut werden.&lt;br /&gt;
&lt;br /&gt;
'''ACHTUNG, extremes Verletzungsrisiko = Erblindungsgefahr :''' Bitte keinesfalls direkt in die leuchtende Infrarotdiode sehen - egal ob man denkt, dass die leuchtet oder nicht. Das Licht kann nicht erkannt werden; wenn man etwas merkt, ist der Augenschaden schon da.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:Gp2d-060608_1297.jpg]]&lt;br /&gt;
&lt;br /&gt;
Die Infrarot-LED, links im Bauteil, leuchtet nicht.&lt;br /&gt;
&lt;br /&gt;
[[Bild:Gpd2d-060608_1503.jpg]]&lt;br /&gt;
&lt;br /&gt;
Die Infrarot-LED, links im Bauteil, leuchtet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wie bei jedem indirektem Test bietet sich eine Gegenprobe an. Ist ein Leuchten nicht zu erkennen, kann es sein, dass Spannung garnicht anliegt: Spannung prüfen oder Schalter in andere Position (oder Code ändern). Wenn beide Tests kein positives Ergebnis zeigen, macht ein Diodentest Sinn: wenn man den Minuspol (-) an die Kathode hält, siehe oben, kürzeres Bein, Marke &amp;quot;K&amp;quot; und den Pluspol (+) an die Anode, dann sollte das Instrument einen Wert um etwa 1 V anzeigen. Nach Wechsel der Anschlüsse ist der Durchgang gesperrt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Parallelschalten von LEDs==&lt;br /&gt;
Es kommt immer wieder die Frage auf, ob man LEDs paralelschalten kann: Die kurze Antwort ist besser nicht. &lt;br /&gt;
&lt;br /&gt;
Dafür gibt es 2 Gründe: Zum einen ist die Spannung der LEDs nicht immer hundertprozentig gleich, und schon etwa 20 mV Unterschied machen einen Faktor 2 beim Strom aus. &lt;br /&gt;
Selbst wenn man gleiche Dioden ausgesucht hat, gibt es noch ein Temperaturproblem:  Wie bei anderen Dioden auch, nimmt mit steigender Temperatur und konstanter Spannung der Strom relativ schnell zu. Schon bei etwa 5-10 Grad mehr kann sich der Strom verdoppeln. Wenn man jetzt LEDs parallel hat, steigt der Strom der wärmeren LED an und macht diese LED noch wärmer, bis prakisch der ganze Strom durch diese eine LEDs fließt und die LED dann evenetuell schädigt.&lt;br /&gt;
Ein ähnliches Problem hat man auch beim Parallelschalten von Gleichrichterdiode oder bipolaren Transistoren.&lt;br /&gt;
&lt;br /&gt;
Wenn man LEDs parallel betreiben will, muß man durch jeweils einen Serienwiderstand dafür sorgen, das der Strom durch den Widerstand, und weniger durch die recht steile Diodenkennlinie bestimmt wird. Der Spannungsabfall am Widerstand sollte dazu wenigstens 100-200 mV betragen.&lt;br /&gt;
&lt;br /&gt;
Bei den blauen und weissen LEDs gibt es einige Typen, die intern schon einen relativ hohen Serienwiderstand haben und deshalb unter günstigen Umständen direkt paralel geschaltet werden können. Ohne genaue Informationen aus dem Datenblatt sollte man das aber nicht machen und besser für jede LED eine Vorwiderstand spendieren.&lt;br /&gt;
&lt;br /&gt;
==Siehe auch==&lt;br /&gt;
* [[Diode]]&lt;br /&gt;
* [[Optokoppler]]&lt;br /&gt;
* [[RN-Digi|7 Segment Anzeigen Bauanleitung]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Weblinks==&lt;br /&gt;
* [http://www.roboternetz.de/phpBB2/konstantstrom.php Konstantstromquellen eignen sich gut für LED Stromversorgung]&lt;br /&gt;
* [http://www.ledshift.com/Lichtstaerke%20German.html Erklärung zur Lichtstärke ]&lt;br /&gt;
&lt;br /&gt;
* [http://de.wikipedia.org/wiki/Leuchtdiode LED bei Wikipedia]&lt;br /&gt;
[[Kategorie:Elektronik]]&lt;br /&gt;
[[Kategorie:Grundlagen]]&lt;/div&gt;</summary>
		<author><name>Oberallgeier</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=Leuchtdiode&amp;diff=15511</id>
		<title>Leuchtdiode</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=Leuchtdiode&amp;diff=15511"/>
				<updated>2009-10-22T13:17:54Z</updated>
		
		<summary type="html">&lt;p&gt;Oberallgeier: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Bild:SFH300.jpg|right|thumb|Standard Bauform]]Leuchtdioden (Lumineszenzdiode) oder auch LED abgekürzt (light emitting diodes) basieren auf Halbleiterverbindungen, die den Strom direkt in Licht umwandeln. Bezogen auf Größe, Effektivität, Haltbarkeit und Lebensdauer verhalten sich die Leuchtdioden zu konventionellen Glühlampen, wie Halbleiterdioden zu Röhrendioden. Sie werden die Beleuchtungstechnik in ähnlicher Weise verändern, wie die Halbleitertechnologie schon die Elektronik verändert hat.&lt;br /&gt;
[[Bild:led.gif|right]]&lt;br /&gt;
[[Bild:Schaltsymbol_Lunineszenzdiode.png|left|Schaltsymbol Lunineszenzdiode (LED)]]Ein großer Vorteil ist die hohe Leuchtkraft bei geringer Stromstärke. Daher werden LEDs fast in allen elektronischen Geräten zur Anzeige von Signalen/Zuständen genutzt. Gerade ist auch die neue weisse LED dabei sogar der Glühlampe etwas Konkurrenz zu machen.&lt;br /&gt;
Gewöhnlich werden LED mit 20 mA betrieben. Bei der „SuperFlux LED“ und der „Luxeon“ von Lumileds ist der maximale Betriebsstrom höher, nämlich 70 mA und 350 mA. Dagegen gibt es auch Low-current Typen die für 2mA ausgelegt sind. Weniger Strom ist kein Problem: die Helligkeit nimmt ungefähr proportional zum Strom ab.&lt;br /&gt;
&lt;br /&gt;
Die Durchlassspannung hängt direkt von der Bandlücke ab und damit von der Lichtfarbe. Die Betriebsspannungen betragen 2V bis 4V. Der durch die Diode fließende Strom ist von der angelegten Spannung abhängig.&lt;br /&gt;
Wegen des hohen Dotierungsunterschieds an der Sperrschicht vertragen Leuchtdioden nur geringe Sperrspannung von ca. 5 V. Wenn eine LED also an der Kathode positive Spannung abbekommt muss eine Diode antiparallel eingesetzt werden.&lt;br /&gt;
&lt;br /&gt;
Es ist eine große Vielfalt von Bauformen lieferbar. Neben diversen Metall-/Glas-Gehäusen werden hauptsächlich Plastikbauformen eingesetzt. Hier setzt der Kunststoffkörper zum einen den Grenzwinkel der Totalreflexion an der Chipoberfläche herab und erhöht damit die aus dem Kristall austretende Strahlungsleistung, zum anderen wirkt die gekrümmte Oberfläche als Linse und bündelt die Strahlung in Achsrichtung. Sie sind problemlos in großen Stückzahlen zu fertigen.&lt;br /&gt;
&lt;br /&gt;
Je nach Verlötungsverfahren wird bei elektronischen Bauteilen zwischen den auf der Rückseite der Platine verlöteten und den SMD (Surface Mounted Device) Bauformen unterschieden. Auch LED werden in beiden Bauformen angeboten.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Praxistip:''' An einer Spannung von 5V (auch Digitalports) werden Leuchtdioden gewöhnlich mit einem Widerstand von min. 330 Ohm bis 1000 Ohm (je nach gewünschter Leuchtstärke) betrieben.&lt;br /&gt;
&lt;br /&gt;
'''Berechnung des Vorwiderstandes:''' Zur Berechnung des Vorwiderstandes benutzt man das Ohmsche Gesetz. Von der Versorgungsspannung wird die Spannung der LED abgezogen und dann durch den gwünschten Strom geteilt.&lt;br /&gt;
Beispiel: Eine LED soll 20mA bekommen und braucht 2V. Unsere Versorgungsspannung hat 9V. Setzt man das in die Formel ein bekommt man 350 Ohm herraus.&lt;br /&gt;
Da es die meisten errechneten Widerstände nicht gibt nimmt man sicherheitshalber den nächst höheren.&lt;br /&gt;
Beim Rechnen sollte man immer in den Grundeinheiten Ampere, Volt und Ohm bleiben.&lt;br /&gt;
Man rechnet also nicht mit 20mA, sondern mit 0,02A. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:LED.jpg|thumb|center|Weiße LED]] &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==IR-LEDs==&lt;br /&gt;
Neben den LEDs für sichbares Licht gibt es auch LEDs für Infrarotlicht. Die üblichen Wellenlängen sind 880 nm und 950 nm. Diese LEDs haben einen recht hohen Wirkungsgrad und Silizium Fotodioden sind hier besonders empfindlich. Entsprechend eignen sich die IR-LEDs gut für Lichtschranken und die Datenübertragung, z.B. für Fernsteuerungen. Die typischen IR LEDs vertragen bis 100 mA, wenn für eine einigermaßene Wärmeableitung gesorgt wird.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Funktionstest von IR-LEDs:''' Infrarotlicht ist für Menschen nicht sichtbar. Daher ist der Funktionstest einer IR-LED ohne Hilfsmittel nicht möglich. Neben der Messung der Stromaufnahme ist eine praxiserprobte Möglichkeit das Messgerät Digitalkamera. Warum? Die meisten Digitalkameras &amp;quot;sehen&amp;quot; Infrarotlicht. Eine Ausnahme bilden z.T. hochpreisige Systemkameras, aber die übliche Digicams oder Handikameras sind geeignet. Es muss einfach bei - vermutetem - Leuchten der IR-LED auf das Kameradisplay geschaut werden.&lt;br /&gt;
&lt;br /&gt;
'''ACHTUNG, extremes Verletzungsrisiko = Erblindungsgefahr :''' Bitte keinesfalls direkt in die leuchtende Infrarotdiode sehen - egal ob man denkt, dass die leuchtet oder nicht. Das Licht kann nicht erkannt werden; wenn man etwas merkt, ist der Augenschaden schon da.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:Gp2d-060608_1297.jpg]]&lt;br /&gt;
&lt;br /&gt;
Die Infrarot-LED, links im Bauteil, leuchtet nicht.&lt;br /&gt;
&lt;br /&gt;
[[Bild:Gpd2d-060608_1503.jpg]]&lt;br /&gt;
&lt;br /&gt;
Die Infrarot-LED, links im Bauteil, leuchtet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Parallelschalten von LEDs==&lt;br /&gt;
Es kommt immer wieder die Frage auf, ob man LEDs paralelschalten kann: Die kurze Antwort ist besser nicht. &lt;br /&gt;
&lt;br /&gt;
Dafür gibt es 2 Gründe: Zum einen ist die Spannung der LEDs nicht immer hundertprozentig gleich, und schon etwa 20 mV Unterschied machen einen Faktor 2 beim Strom aus. &lt;br /&gt;
Selbst wenn man gleiche Dioden ausgesucht hat, gibt es noch ein Temperaturproblem:  Wie bei anderen Dioden auch, nimmt mit steigender Temperatur und konstanter Spannung der Strom relativ schnell zu. Schon bei etwa 5-10 Grad mehr kann sich der Strom verdoppeln. Wenn man jetzt LEDs parallel hat, steigt der Strom der wärmeren LED an und macht diese LED noch wärmer, bis prakisch der ganze Strom durch diese eine LEDs fließt und die LED dann evenetuell schädigt.&lt;br /&gt;
Ein ähnliches Problem hat man auch beim Parallelschalten von Gleichrichterdiode oder bipolaren Transistoren.&lt;br /&gt;
&lt;br /&gt;
Wenn man LEDs parallel betreiben will, muß man durch jeweils einen Serienwiderstand dafür sorgen, das der Strom durch den Widerstand, und weniger durch die recht steile Diodenkennlinie bestimmt wird. Der Spannungsabfall am Widerstand sollte dazu wenigstens 100-200 mV betragen.&lt;br /&gt;
&lt;br /&gt;
Bei den blauen und weissen LEDs gibt es einige Typen, die intern schon einen relativ hohen Serienwiderstand haben und deshalb unter günstigen Umständen direkt paralel geschaltet werden können. Ohne genaue Informationen aus dem Datenblatt sollte man das aber nicht machen und besser für jede LED eine Vorwiderstand spendieren.&lt;br /&gt;
&lt;br /&gt;
==Siehe auch==&lt;br /&gt;
* [[Diode]]&lt;br /&gt;
* [[Optokoppler]]&lt;br /&gt;
* [[RN-Digi|7 Segment Anzeigen Bauanleitung]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Weblinks==&lt;br /&gt;
* [http://www.roboternetz.de/phpBB2/konstantstrom.php Konstantstromquellen eignen sich gut für LED Stromversorgung]&lt;br /&gt;
* [http://www.ledshift.com/Lichtstaerke%20German.html Erklärung zur Lichtstärke ]&lt;br /&gt;
&lt;br /&gt;
* [http://de.wikipedia.org/wiki/Leuchtdiode LED bei Wikipedia]&lt;br /&gt;
[[Kategorie:Elektronik]]&lt;br /&gt;
[[Kategorie:Grundlagen]]&lt;/div&gt;</summary>
		<author><name>Oberallgeier</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=Leuchtdiode&amp;diff=15510</id>
		<title>Leuchtdiode</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=Leuchtdiode&amp;diff=15510"/>
				<updated>2009-10-22T13:04:42Z</updated>
		
		<summary type="html">&lt;p&gt;Oberallgeier: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Bild:SFH300.jpg|right|thumb|Standard Bauform]]Leuchtdioden (Lumineszenzdiode) oder auch LED abgekürzt (light emitting diodes) basieren auf Halbleiterverbindungen, die den Strom direkt in Licht umwandeln. Bezogen auf Größe, Effektivität, Haltbarkeit und Lebensdauer verhalten sich die Leuchtdioden zu konventionellen Glühlampen, wie Halbleiterdioden zu Röhrendioden. Sie werden die Beleuchtungstechnik in ähnlicher Weise verändern, wie die Halbleitertechnologie schon die Elektronik verändert hat.&lt;br /&gt;
[[Bild:led.gif|right]]&lt;br /&gt;
[[Bild:Schaltsymbol_Lunineszenzdiode.png|left|Schaltsymbol Lunineszenzdiode (LED)]]Ein großer Vorteil ist die hohe Leuchtkraft bei geringer Stromstärke. Daher werden LEDs fast in allen elektronischen Geräten zur Anzeige von Signalen/Zuständen genutzt. Gerade ist auch die neue weisse LED dabei sogar der Glühlampe etwas Konkurrenz zu machen.&lt;br /&gt;
Gewöhnlich werden LED mit 20 mA betrieben. Bei der „SuperFlux LED“ und der „Luxeon“ von Lumileds ist der maximale Betriebsstrom höher, nämlich 70 mA und 350 mA. Dagegen gibt es auch Low-current Typen die für 2mA ausgelegt sind. Weniger Strom ist kein Problem: die Helligkeit nimmt ungefähr proportional zum Strom ab.&lt;br /&gt;
&lt;br /&gt;
Die Durchlassspannung hängt direkt von der Bandlücke ab und damit von der Lichtfarbe. Die Betriebsspannungen betragen 2V bis 4V. Der durch die Diode fließende Strom ist von der angelegten Spannung abhängig.&lt;br /&gt;
Wegen des hohen Dotierungsunterschieds an der Sperrschicht vertragen Leuchtdioden nur geringe Sperrspannung von ca. 5 V. Wenn eine LED also an der Kathode positive Spannung abbekommt muss eine Diode antiparallel eingesetzt werden.&lt;br /&gt;
&lt;br /&gt;
Es ist eine große Vielfalt von Bauformen lieferbar. Neben diversen Metall-/Glas-Gehäusen werden hauptsächlich Plastikbauformen eingesetzt. Hier setzt der Kunststoffkörper zum einen den Grenzwinkel der Totalreflexion an der Chipoberfläche herab und erhöht damit die aus dem Kristall austretende Strahlungsleistung, zum anderen wirkt die gekrümmte Oberfläche als Linse und bündelt die Strahlung in Achsrichtung. Sie sind problemlos in großen Stückzahlen zu fertigen.&lt;br /&gt;
&lt;br /&gt;
Je nach Verlötungsverfahren wird bei elektronischen Bauteilen zwischen den auf der Rückseite der Platine verlöteten und den SMD (Surface Mounted Device) Bauformen unterschieden. Auch LED werden in beiden Bauformen angeboten.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Praxistip:''' An einer Spannung von 5V (auch Digitalports) werden Leuchtdioden gewöhnlich mit einem Widerstand von min. 330 Ohm bis 1000 Ohm (je nach gewünschter Leuchtstärke) betrieben.&lt;br /&gt;
&lt;br /&gt;
'''Berechnung des Vorwiderstandes:''' Zur Berechnung des Vorwiderstandes benutzt man das Ohmsche Gesetz. Von der Versorgungsspannung wird die Spannung der LED abgezogen und dann durch den gwünschten Strom geteilt.&lt;br /&gt;
Beispiel: Eine LED soll 20mA bekommen und braucht 2V. Unsere Versorgungsspannung hat 9V. Setzt man das in die Formel ein bekommt man 350 Ohm herraus.&lt;br /&gt;
Da es die meisten errechneten Widerstände nicht gibt nimmt man sicherheitshalber den nächst höheren.&lt;br /&gt;
Beim Rechnen sollte man immer in den Grundeinheiten Ampere, Volt und Ohm bleiben.&lt;br /&gt;
Man rechnet also nicht mit 20mA, sondern mit 0,02A. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:LED.jpg|thumb|center|Weiße LED]] &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==IR-LEDs==&lt;br /&gt;
Neben den LEDs für sichbares Licht gibt es auch LEDs für Infrarotlicht. Die üblichen Wellenlängen sind 880 nm und 950 nm. Diese LEDs haben einen recht hohen Wirkungsgrad und Silizium Fotodioden sind hier besonders empfindlich. Entsprechend eignen sich die IR-LEDs gut für Lichtschranken und die Datenübertragung, z.B. für Fernsteuerungen. Die typischen IR LEDs vertragen bis 100 mA, wenn für eine einigermaßene Wärmeableitung gesorgt wird.&lt;br /&gt;
&lt;br /&gt;
'''Funktionstest von IR-LEDs:''' Infrarotlicht ist für Menschen nicht sichtbar. Daher ist der Funktionstest einer IR-LED ohne Hilfsmittel nicht möglich. Neben der Messung der Stromaufnahme ist eine praxiserprobte Möglichkeit das Messgerät Digitalkamera. Warum? Die meisten Digitalkameras &amp;quot;sehen&amp;quot; Infrarotlicht. Eine Ausnahme bilden z.T. hochpreisige Systemkameras, aber die übliche Digicams oder Handikameras sind geeignet. Es muss einfach bei - vermutetem - Leuchten der IR-LED auf das Kameradisplay geschaut werden.&lt;br /&gt;
&lt;br /&gt;
[[Bild:Gp2d-060608_1297.jpg|left|Diese Infrarot-LED, links im Bauteil, leuchtet nicht]] &lt;br /&gt;
&lt;br /&gt;
[[Bild:Gpd2d-060608_1503.jpg|right|Diese Infrarot-LED, links im Bauteil, leuchtet ]] &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Parallelschalten von LEDs==&lt;br /&gt;
Es kommt immer wieder die Frage auf, ob man LEDs paralelschalten kann: Die kurze Antwort ist besser nicht. &lt;br /&gt;
&lt;br /&gt;
Dafür gibt es 2 Gründe: Zum einen ist die Spannung der LEDs nicht immer hundertprozentig gleich, und schon etwa 20 mV Unterschied machen einen Faktor 2 beim Strom aus. &lt;br /&gt;
Selbst wenn man gleiche Dioden ausgesucht hat, gibt es noch ein Temperaturproblem:  Wie bei anderen Dioden auch, nimmt mit steigender Temperatur und konstanter Spannung der Strom relativ schnell zu. Schon bei etwa 5-10 Grad mehr kann sich der Strom verdoppeln. Wenn man jetzt LEDs parallel hat, steigt der Strom der wärmeren LED an und macht diese LED noch wärmer, bis prakisch der ganze Strom durch diese eine LEDs fließt und die LED dann evenetuell schädigt.&lt;br /&gt;
Ein ähnliches Problem hat man auch beim Parallelschalten von Gleichrichterdiode oder bipolaren Transistoren.&lt;br /&gt;
&lt;br /&gt;
Wenn man LEDs parallel betreiben will, muß man durch jeweils einen Serienwiderstand dafür sorgen, das der Strom durch den Widerstand, und weniger durch die recht steile Diodenkennlinie bestimmt wird. Der Spannungsabfall am Widerstand sollte dazu wenigstens 100-200 mV betragen.&lt;br /&gt;
&lt;br /&gt;
Bei den blauen und weissen LEDs gibt es einige Typen, die intern schon einen relativ hohen Serienwiderstand haben und deshalb unter günstigen Umständen direkt paralel geschaltet werden können. Ohne genaue Informationen aus dem Datenblatt sollte man das aber nicht machen und besser für jede LED eine Vorwiderstand spendieren.&lt;br /&gt;
&lt;br /&gt;
==Siehe auch==&lt;br /&gt;
* [[Diode]]&lt;br /&gt;
* [[Optokoppler]]&lt;br /&gt;
* [[RN-Digi|7 Segment Anzeigen Bauanleitung]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Weblinks==&lt;br /&gt;
* [http://www.roboternetz.de/phpBB2/konstantstrom.php Konstantstromquellen eignen sich gut für LED Stromversorgung]&lt;br /&gt;
* [http://www.ledshift.com/Lichtstaerke%20German.html Erklärung zur Lichtstärke ]&lt;br /&gt;
&lt;br /&gt;
* [http://de.wikipedia.org/wiki/Leuchtdiode LED bei Wikipedia]&lt;br /&gt;
[[Kategorie:Elektronik]]&lt;br /&gt;
[[Kategorie:Grundlagen]]&lt;/div&gt;</summary>
		<author><name>Oberallgeier</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=Leuchtdiode&amp;diff=15509</id>
		<title>Leuchtdiode</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=Leuchtdiode&amp;diff=15509"/>
				<updated>2009-10-22T13:02:31Z</updated>
		
		<summary type="html">&lt;p&gt;Oberallgeier: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Bild:SFH300.jpg|right|thumb|Standard Bauform]]Leuchtdioden (Lumineszenzdiode) oder auch LED abgekürzt (light emitting diodes) basieren auf Halbleiterverbindungen, die den Strom direkt in Licht umwandeln. Bezogen auf Größe, Effektivität, Haltbarkeit und Lebensdauer verhalten sich die Leuchtdioden zu konventionellen Glühlampen, wie Halbleiterdioden zu Röhrendioden. Sie werden die Beleuchtungstechnik in ähnlicher Weise verändern, wie die Halbleitertechnologie schon die Elektronik verändert hat.&lt;br /&gt;
[[Bild:led.gif|right]]&lt;br /&gt;
[[Bild:Schaltsymbol_Lunineszenzdiode.png|left|Schaltsymbol Lunineszenzdiode (LED)]]Ein großer Vorteil ist die hohe Leuchtkraft bei geringer Stromstärke. Daher werden LEDs fast in allen elektronischen Geräten zur Anzeige von Signalen/Zuständen genutzt. Gerade ist auch die neue weisse LED dabei sogar der Glühlampe etwas Konkurrenz zu machen.&lt;br /&gt;
Gewöhnlich werden LED mit 20 mA betrieben. Bei der „SuperFlux LED“ und der „Luxeon“ von Lumileds ist der maximale Betriebsstrom höher, nämlich 70 mA und 350 mA. Dagegen gibt es auch Low-current Typen die für 2mA ausgelegt sind. Weniger Strom ist kein Problem: die Helligkeit nimmt ungefähr proportional zum Strom ab.&lt;br /&gt;
&lt;br /&gt;
Die Durchlassspannung hängt direkt von der Bandlücke ab und damit von der Lichtfarbe. Die Betriebsspannungen betragen 2V bis 4V. Der durch die Diode fließende Strom ist von der angelegten Spannung abhängig.&lt;br /&gt;
Wegen des hohen Dotierungsunterschieds an der Sperrschicht vertragen Leuchtdioden nur geringe Sperrspannung von ca. 5 V. Wenn eine LED also an der Kathode positive Spannung abbekommt muss eine Diode antiparallel eingesetzt werden.&lt;br /&gt;
&lt;br /&gt;
Es ist eine große Vielfalt von Bauformen lieferbar. Neben diversen Metall-/Glas-Gehäusen werden hauptsächlich Plastikbauformen eingesetzt. Hier setzt der Kunststoffkörper zum einen den Grenzwinkel der Totalreflexion an der Chipoberfläche herab und erhöht damit die aus dem Kristall austretende Strahlungsleistung, zum anderen wirkt die gekrümmte Oberfläche als Linse und bündelt die Strahlung in Achsrichtung. Sie sind problemlos in großen Stückzahlen zu fertigen.&lt;br /&gt;
&lt;br /&gt;
Je nach Verlötungsverfahren wird bei elektronischen Bauteilen zwischen den auf der Rückseite der Platine verlöteten und den SMD (Surface Mounted Device) Bauformen unterschieden. Auch LED werden in beiden Bauformen angeboten.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Praxistip:''' An einer Spannung von 5V (auch Digitalports) werden Leuchtdioden gewöhnlich mit einem Widerstand von min. 330 Ohm bis 1000 Ohm (je nach gewünschter Leuchtstärke) betrieben.&lt;br /&gt;
&lt;br /&gt;
'''Berechnung des Vorwiderstandes:''' Zur Berechnung des Vorwiderstandes benutzt man das Ohmsche Gesetz. Von der Versorgungsspannung wird die Spannung der LED abgezogen und dann durch den gwünschten Strom geteilt.&lt;br /&gt;
Beispiel: Eine LED soll 20mA bekommen und braucht 2V. Unsere Versorgungsspannung hat 9V. Setzt man das in die Formel ein bekommt man 350 Ohm herraus.&lt;br /&gt;
Da es die meisten errechneten Widerstände nicht gibt nimmt man sicherheitshalber den nächst höheren.&lt;br /&gt;
Beim Rechnen sollte man immer in den Grundeinheiten Ampere, Volt und Ohm bleiben.&lt;br /&gt;
Man rechnet also nicht mit 20mA, sondern mit 0,02A. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:LED.jpg|thumb|center|Weiße LED]] &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==IR-LEDs==&lt;br /&gt;
Neben den LEDs für sichbares Licht gibt es auch LEDs für Infrarotlicht. Die üblichen Wellenlängen sind 880 nm und 950 nm. Diese LEDs haben einen recht hohen Wirkungsgrad und Silizium Fotodioden sind hier besonders empfindlich. Entsprechend eignen sich die IR-LEDs gut für Lichtschranken und die Datenübertragung, z.B. für Fernsteuerungen. Die typischen IR LEDs vertragen bis 100 mA, wenn für eine einigermaßene Wärmeableitung gesorgt wird.&lt;br /&gt;
&lt;br /&gt;
'''Funktionstest von IR-LEDs:''' Infrarotlicht ist für Menschen nicht sichtbar. Daher ist der Funktionstest einer IR-LED ohne Hilfsmittel nicht möglich. Neben der Messung der Stromaufnahme ist eine praxiserprobte Möglichkeit das Messgerät Digitalkamera. Warum? Die meisten Digitalkameras &amp;quot;sehen&amp;quot; Infrarotlicht. Eine Ausnahme bilden z.T. hochpreisige Systemkameras, aber die übliche Digicams oder Handikameras sind geeignet. Es muss einfach bei - vermutetem - Leuchten der IR-LED auf das Kameradisplay geschaut werden.&lt;br /&gt;
&lt;br /&gt;
[[Bild:Gp2d-060608_1297.jpg|center|Diese Infrarot-LED, links im Bauteil, leuchtet nicht]] &lt;br /&gt;
[[Bild:Gpd2d-060608_1503.jpg|center|Diese Infrarot-LED, links im Bauteil, leuchtet ]] &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Parallelschalten von LEDs==&lt;br /&gt;
Es kommt immer wieder die Frage auf, ob man LEDs paralelschalten kann: Die kurze Antwort ist besser nicht. &lt;br /&gt;
&lt;br /&gt;
Dafür gibt es 2 Gründe: Zum einen ist die Spannung der LEDs nicht immer hundertprozentig gleich, und schon etwa 20 mV Unterschied machen einen Faktor 2 beim Strom aus. &lt;br /&gt;
Selbst wenn man gleiche Dioden ausgesucht hat, gibt es noch ein Temperaturproblem:  Wie bei anderen Dioden auch, nimmt mit steigender Temperatur und konstanter Spannung der Strom relativ schnell zu. Schon bei etwa 5-10 Grad mehr kann sich der Strom verdoppeln. Wenn man jetzt LEDs parallel hat, steigt der Strom der wärmeren LED an und macht diese LED noch wärmer, bis prakisch der ganze Strom durch diese eine LEDs fließt und die LED dann evenetuell schädigt.&lt;br /&gt;
Ein ähnliches Problem hat man auch beim Parallelschalten von Gleichrichterdiode oder bipolaren Transistoren.&lt;br /&gt;
&lt;br /&gt;
Wenn man LEDs parallel betreiben will, muß man durch jeweils einen Serienwiderstand dafür sorgen, das der Strom durch den Widerstand, und weniger durch die recht steile Diodenkennlinie bestimmt wird. Der Spannungsabfall am Widerstand sollte dazu wenigstens 100-200 mV betragen.&lt;br /&gt;
&lt;br /&gt;
Bei den blauen und weissen LEDs gibt es einige Typen, die intern schon einen relativ hohen Serienwiderstand haben und deshalb unter günstigen Umständen direkt paralel geschaltet werden können. Ohne genaue Informationen aus dem Datenblatt sollte man das aber nicht machen und besser für jede LED eine Vorwiderstand spendieren.&lt;br /&gt;
&lt;br /&gt;
==Siehe auch==&lt;br /&gt;
* [[Diode]]&lt;br /&gt;
* [[Optokoppler]]&lt;br /&gt;
* [[RN-Digi|7 Segment Anzeigen Bauanleitung]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Weblinks==&lt;br /&gt;
* [http://www.roboternetz.de/phpBB2/konstantstrom.php Konstantstromquellen eignen sich gut für LED Stromversorgung]&lt;br /&gt;
* [http://www.ledshift.com/Lichtstaerke%20German.html Erklärung zur Lichtstärke ]&lt;br /&gt;
&lt;br /&gt;
* [http://de.wikipedia.org/wiki/Leuchtdiode LED bei Wikipedia]&lt;br /&gt;
[[Kategorie:Elektronik]]&lt;br /&gt;
[[Kategorie:Grundlagen]]&lt;/div&gt;</summary>
		<author><name>Oberallgeier</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=Leuchtdiode&amp;diff=15508</id>
		<title>Leuchtdiode</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=Leuchtdiode&amp;diff=15508"/>
				<updated>2009-10-22T13:00:33Z</updated>
		
		<summary type="html">&lt;p&gt;Oberallgeier: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Bild:SFH300.jpg|right|thumb|Standard Bauform]]Leuchtdioden (Lumineszenzdiode) oder auch LED abgekürzt (light emitting diodes) basieren auf Halbleiterverbindungen, die den Strom direkt in Licht umwandeln. Bezogen auf Größe, Effektivität, Haltbarkeit und Lebensdauer verhalten sich die Leuchtdioden zu konventionellen Glühlampen, wie Halbleiterdioden zu Röhrendioden. Sie werden die Beleuchtungstechnik in ähnlicher Weise verändern, wie die Halbleitertechnologie schon die Elektronik verändert hat.&lt;br /&gt;
[[Bild:led.gif|right]]&lt;br /&gt;
[[Bild:Schaltsymbol_Lunineszenzdiode.png|left|Schaltsymbol Lunineszenzdiode (LED)]]Ein großer Vorteil ist die hohe Leuchtkraft bei geringer Stromstärke. Daher werden LEDs fast in allen elektronischen Geräten zur Anzeige von Signalen/Zuständen genutzt. Gerade ist auch die neue weisse LED dabei sogar der Glühlampe etwas Konkurrenz zu machen.&lt;br /&gt;
Gewöhnlich werden LED mit 20 mA betrieben. Bei der „SuperFlux LED“ und der „Luxeon“ von Lumileds ist der maximale Betriebsstrom höher, nämlich 70 mA und 350 mA. Dagegen gibt es auch Low-current Typen die für 2mA ausgelegt sind. Weniger Strom ist kein Problem: die Helligkeit nimmt ungefähr proportional zum Strom ab.&lt;br /&gt;
&lt;br /&gt;
Die Durchlassspannung hängt direkt von der Bandlücke ab und damit von der Lichtfarbe. Die Betriebsspannungen betragen 2V bis 4V. Der durch die Diode fließende Strom ist von der angelegten Spannung abhängig.&lt;br /&gt;
Wegen des hohen Dotierungsunterschieds an der Sperrschicht vertragen Leuchtdioden nur geringe Sperrspannung von ca. 5 V. Wenn eine LED also an der Kathode positive Spannung abbekommt muss eine Diode antiparallel eingesetzt werden.&lt;br /&gt;
&lt;br /&gt;
Es ist eine große Vielfalt von Bauformen lieferbar. Neben diversen Metall-/Glas-Gehäusen werden hauptsächlich Plastikbauformen eingesetzt. Hier setzt der Kunststoffkörper zum einen den Grenzwinkel der Totalreflexion an der Chipoberfläche herab und erhöht damit die aus dem Kristall austretende Strahlungsleistung, zum anderen wirkt die gekrümmte Oberfläche als Linse und bündelt die Strahlung in Achsrichtung. Sie sind problemlos in großen Stückzahlen zu fertigen.&lt;br /&gt;
&lt;br /&gt;
Je nach Verlötungsverfahren wird bei elektronischen Bauteilen zwischen den auf der Rückseite der Platine verlöteten und den SMD (Surface Mounted Device) Bauformen unterschieden. Auch LED werden in beiden Bauformen angeboten.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Praxistip:''' An einer Spannung von 5V (auch Digitalports) werden Leuchtdioden gewöhnlich mit einem Widerstand von min. 330 Ohm bis 1000 Ohm (je nach gewünschter Leuchtstärke) betrieben.&lt;br /&gt;
&lt;br /&gt;
'''Berechnung des Vorwiderstandes:''' Zur Berechnung des Vorwiderstandes benutzt man das Ohmsche Gesetz. Von der Versorgungsspannung wird die Spannung der LED abgezogen und dann durch den gwünschten Strom geteilt.&lt;br /&gt;
Beispiel: Eine LED soll 20mA bekommen und braucht 2V. Unsere Versorgungsspannung hat 9V. Setzt man das in die Formel ein bekommt man 350 Ohm herraus.&lt;br /&gt;
Da es die meisten errechneten Widerstände nicht gibt nimmt man sicherheitshalber den nächst höheren.&lt;br /&gt;
Beim Rechnen sollte man immer in den Grundeinheiten Ampere, Volt und Ohm bleiben.&lt;br /&gt;
Man rechnet also nicht mit 20mA, sondern mit 0,02A. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:LED.jpg|thumb|center|Weiße LED]] &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==IR-LEDs==&lt;br /&gt;
Neben den LEDs für sichbares Licht gibt es auch LEDs für Infrarotlicht. Die üblichen Wellenlängen sind 880 nm und 950 nm. Diese LEDs haben einen recht hohen Wirkungsgrad und Silizium Fotodioden sind hier besonders empfindlich. Entsprechend eignen sich die IR-LEDs gut für Lichtschranken und die Datenübertragung, z.B. für Fernsteuerungen. Die typischen IR LEDs vertragen bis 100 mA, wenn für eine einigermaßene Wärmeableitung gesorgt wird.&lt;br /&gt;
&lt;br /&gt;
'''Funktionstest von IR-LEDs:''' Infrarotlicht ist für Menschen nicht sichtbar. Daher ist der Funktionstest einer IR-LED ohne Hilfsmittel nicht möglich. Neben der Messung der Stromaufnahme ist eine praxiserprobte Möglichkeit das Messgerät Digitalkamera. Warum? Die meisten Digitalkameras &amp;quot;sehen&amp;quot; Infrarotlicht. Eine Ausnahme bilden z.T. hochpreisige Systemkameras, aber die übliche Digicams oder Handikameras sind geeignet. Es muss einfach bei - vermutetem - Leuchten der IR-LED auf das Kameradisplay geschaut werden.&lt;br /&gt;
&lt;br /&gt;
[[Bild:Gp2d-060608_1297.jpg|thumb|center|Weiße LED]] &lt;br /&gt;
[[Bild:Gpd2d-060608_1503.jpg|thumb|center|Weiße LED]] &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Parallelschalten von LEDs==&lt;br /&gt;
Es kommt immer wieder die Frage auf, ob man LEDs paralelschalten kann: Die kurze Antwort ist besser nicht. &lt;br /&gt;
&lt;br /&gt;
Dafür gibt es 2 Gründe: Zum einen ist die Spannung der LEDs nicht immer hundertprozentig gleich, und schon etwa 20 mV Unterschied machen einen Faktor 2 beim Strom aus. &lt;br /&gt;
Selbst wenn man gleiche Dioden ausgesucht hat, gibt es noch ein Temperaturproblem:  Wie bei anderen Dioden auch, nimmt mit steigender Temperatur und konstanter Spannung der Strom relativ schnell zu. Schon bei etwa 5-10 Grad mehr kann sich der Strom verdoppeln. Wenn man jetzt LEDs parallel hat, steigt der Strom der wärmeren LED an und macht diese LED noch wärmer, bis prakisch der ganze Strom durch diese eine LEDs fließt und die LED dann evenetuell schädigt.&lt;br /&gt;
Ein ähnliches Problem hat man auch beim Parallelschalten von Gleichrichterdiode oder bipolaren Transistoren.&lt;br /&gt;
&lt;br /&gt;
Wenn man LEDs parallel betreiben will, muß man durch jeweils einen Serienwiderstand dafür sorgen, das der Strom durch den Widerstand, und weniger durch die recht steile Diodenkennlinie bestimmt wird. Der Spannungsabfall am Widerstand sollte dazu wenigstens 100-200 mV betragen.&lt;br /&gt;
&lt;br /&gt;
Bei den blauen und weissen LEDs gibt es einige Typen, die intern schon einen relativ hohen Serienwiderstand haben und deshalb unter günstigen Umständen direkt paralel geschaltet werden können. Ohne genaue Informationen aus dem Datenblatt sollte man das aber nicht machen und besser für jede LED eine Vorwiderstand spendieren.&lt;br /&gt;
&lt;br /&gt;
==Siehe auch==&lt;br /&gt;
* [[Diode]]&lt;br /&gt;
* [[Optokoppler]]&lt;br /&gt;
* [[RN-Digi|7 Segment Anzeigen Bauanleitung]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Weblinks==&lt;br /&gt;
* [http://www.roboternetz.de/phpBB2/konstantstrom.php Konstantstromquellen eignen sich gut für LED Stromversorgung]&lt;br /&gt;
* [http://www.ledshift.com/Lichtstaerke%20German.html Erklärung zur Lichtstärke ]&lt;br /&gt;
&lt;br /&gt;
* [http://de.wikipedia.org/wiki/Leuchtdiode LED bei Wikipedia]&lt;br /&gt;
[[Kategorie:Elektronik]]&lt;br /&gt;
[[Kategorie:Grundlagen]]&lt;/div&gt;</summary>
		<author><name>Oberallgeier</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=Datei:Gpd2d-060608_1503.jpg&amp;diff=15507</id>
		<title>Datei:Gpd2d-060608 1503.jpg</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=Datei:Gpd2d-060608_1503.jpg&amp;diff=15507"/>
				<updated>2009-10-22T12:57:19Z</updated>
		
		<summary type="html">&lt;p&gt;Oberallgeier: Diese Infrarot-LED, links im Bauteil, leuchtet&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Diese Infrarot-LED, links im Bauteil, leuchtet&lt;/div&gt;</summary>
		<author><name>Oberallgeier</name></author>	</entry>

	</feed>