<?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=Poky</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=Poky"/>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=Spezial:Beitr%C3%A4ge/Poky"/>
		<updated>2026-04-11T21:16:31Z</updated>
		<subtitle>Benutzerbeiträge</subtitle>
		<generator>MediaWiki 1.25.1</generator>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=Sensoren&amp;diff=10926</id>
		<title>Sensoren</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=Sensoren&amp;diff=10926"/>
				<updated>2007-04-03T19:39:08Z</updated>
		
		<summary type="html">&lt;p&gt;Poky: /* Weggeber */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Sensoren==&lt;br /&gt;
Jeder, der sich einen Roboter baut wird schnell zu dem Punkt kommen, wo er möchte dass sein Roboter „sieht“. &lt;br /&gt;
Sensoren müssen hauptsächlich drei Aufgaben erledigen. Die ersten beiden sind Kollisionschutz und Navigation. Diese unterscheiden sich in der Funktionsweise vor allem in der Interpretation im Programm und im Aufbau am Roboter. Die dritte Art sind Sensoren, die ihn mit der Umwelt in Kontakt treten lassen. &lt;br /&gt;
&lt;br /&gt;
Grundsätzlich müssen alle Sensoren diese Merkmale aufweisen: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Passiv oder Aktiv?=== &lt;br /&gt;
Manche Sensoren (z.B. IR) brauchen eine aktive Quelle (hier die IR LED) die dann aber einen Mehrverbrauch an Strom bedeutet. Passive Sensoren wie Taster bekommen ihre Signale aus der Umwelt (hier Stoß). Zu ihnen zählen die meisten Umweltgrössen wie Temperatur und Feuchtigkeit, Licht und Vibration oder Kraft (Stoß). &lt;br /&gt;
&lt;br /&gt;
===Einfachheit===&lt;br /&gt;
Ein Sensor muss einfach sein. Denn was nützt es uns wenn wir den Sensor nicht kalibrieren können oder der Aufbau zu schwer ist? Doch Sensoren, die nicht in einem einzigen Gehäuse untergebracht sind, sind äußerst selten. Dann besteht nur noch der Wunsch, dass die meist zwei drahtigen Sensoren auch einfach anzuschließen sind. Deswegen ist es manchmal von Vorteil, sich vorgefertigte Anschlüsse zu kaufen, anstatt diese in mühsamer Kleinarbeit selber zu erstellen. &lt;br /&gt;
&lt;br /&gt;
===Auswertbarkeit in Echtzeit===&lt;br /&gt;
Alle Sensoren, die zunächst in Frage kommen, basieren auf dem Prinzip des Spannungsteilers. Das heißt, es wird eine Urspannung eingegeben und eine Teilspannung kommt heraus. Diese Differenz können wir erfassen und mittels Wertetabelle im Programm auswerten. Aber durch Störeinflüsse in der Umwelt kann es vorkommen, das die berechneten Werte abweichen. Jeder Messtechniker weiß, dass allein die Messung an sich schon das Messergebnis verfälscht.&lt;br /&gt;
&lt;br /&gt;
===Robustheit===&lt;br /&gt;
Wir werden am Anfang sicher nicht unseren Roboter in einer Morastlandschaft einsetzten aber auch schon ein Stoss gegen die Wand hat schon manchen Roboter ausgenockt. Schon normaler Hausstaub kann und wird Linsen trüben und Messwerte verschlechtern. Das heisst wenn ein Sensor gekauft wird muss er der Situation angemessen sein. &lt;br /&gt;
&lt;br /&gt;
==Aufgaben für Roboter==&lt;br /&gt;
Natürlich muss man bevor der Roboter steht schon im klaren sein was seine Aufgaben sind. Auch wenn diese so weitgefasst sind wie „Karte erstellen und Raumüberwachung dabei einer Linie folgen“. Jeder Sensor braucht Platz und verringert die Einsatzdauer. Nicht jeder Sensor ist für jede Arbeit gedacht und zum Schluss spielt das Geld eine Rolle, denn mancher Sensor kostet schon 30 Euro. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Sensoren für den Kollisionsschutz===&lt;br /&gt;
Die wichtigsten Sensoren auf einen Roboter sind die Kollisionssensoren. Diese schützen den Roboter vor Zusammenstößen und Abstürzen in einen Schacht. Dabei kann man diese Gruppe auf direkte und indirekte Sensoren unterteilen. &lt;br /&gt;
&lt;br /&gt;
====Direkte Sensoren====&lt;br /&gt;
Sie sollen den Zusammenstoß nicht verhindern sondern dabei das Signal ausgeben. In letzter Zeit werden diese Sensoren noch gepolstert, damit beim Zusammenstoß keine zu großen Kräfte auftreten. &lt;br /&gt;
Am einfachsten geht dies mit einem Taster, der am Chassis befestigt ist. Da dies sehr kurze Reaktionszeiten mit sich bringt, haben einige Roboter Fühler um diese Zeit zu verlängern. Eine weitere Methode ist es, eine Stoßstange zu entwickeln, die dann an den Tastern (direkt oder indirekt) befestigt sind. Dabei kann diese Stoßstange auch gepolstert sein. Eine nun neuere Methode ist es, Luftschläuche zu verwenden. Die dämpfen den Stoß ab und sind dabei an einem Drucksensor angeschlossen, der das Zusammenquetschen erkennt und ein Signal ausgibt. &lt;br /&gt;
====Indirekte Sensoren====&lt;br /&gt;
Sie sollen helfen, den Zusammenstoß zu vermeiden um am besten noch Zeit zu geben, einen optimalen Weg am Hindernis herum zu finden. Diese haben ein größeres Problem, da sie meist keine 360 Grad „Rundumsicht“ garantieren können. Das bedeutet, dass die meisten Roboter diesen Typ der Sensoren in Fahrtrichtung eingebaut haben, um diese Aufgabe zu erfüllen. Was auch effizient ist, denn solche Sensoren sind sehr teuer und müssen ständig vom Programm überwacht werden. &lt;br /&gt;
&lt;br /&gt;
 Diese Sensoren werden bei neueren Autos auch als Parkhilfe angeboten. &lt;br /&gt;
&lt;br /&gt;
==Probleme==&lt;br /&gt;
Das Problem der Sensoren ist ihre räumliche Begrenztheit. Denn schon 5 Meter sind sehr lang. Aber auf der anderen Seite wollen die meisten eh keine 5 Meter „vorausschauen“. &lt;br /&gt;
[[Sensorarten|Es gibt mehrere Typen]]. Am bekanntesten sind die [[Sensorarten#optische_Sensoren|IR Sensoren]]. Diese sind gut für lange Distanzen aber haben das Problem, dass sie gebündelt sind und somit Zwischenräume schwer abdecken können. Besser sind dort [[Sensorarten#Ultraschall_Sensoren|Ultraschallsensoren]], die aber teurer sind. Etwas in der Nische ist das Radar – System; es ist ein sehr aufwendiges und teueres System ist und die Auswertung der Daten ist komplex. Es bietet aber den besten Schutz gegen Zusammenstöße, da dieses System nicht auf einen Punkt gerichtet ist sondern die ganze Fläche abspannt. &lt;br /&gt;
&lt;br /&gt;
Probleme beider Systeme: &lt;br /&gt;
Ist die Höhe. Leider ist unser Roboter dreidimensional und bewegt sich zweidimensional. Das heißt, es spannen sich mehrere Ebenen auf die überwacht werden wollen. Denn wenn dies nicht geschieht, stößt der Roboter gegen eine Tischplatte, weil er diese nicht erkannt hat oder gegen ein Hindernis das unter den Sensoren hindurch rutscht. &lt;br /&gt;
Deswegen bemüht man sich, den Roboter so flach wie möglich zu halten und das Fahrgestell so zu bauen, dass man flache Hindernisse überfahren kann. Es hilft also, darüber sich vorher Gedanken zu machen. &lt;br /&gt;
Je nachdem wo der Roboter zum Einsatz kommt tun sich manchmal Abgründe auf (z.B. Tischplatte). Diese müssen erkannt werden. Deswegen ist es erforderlich, Abstandssensoren noch unten zu richten um einen Absturz zu vermeiden. Dabei sollte man indirekte Sensoren einsetzten, denn was nützt es wenn der Taster erkannt hat das nun ein Loch da ist aber der Roboter bis er reagiert schon auf dem Boden aufschlägt? &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Navigation==&lt;br /&gt;
Nun gibt es hier viele Arten wie die Navigation erfolgen kann. Ich tue 2 Felder auf. Wenn unser Freund neue Welten erkunden soll oder in einen Spiel gegen eine Mannschaft antritt, dann braucht er andere Sensoren, als wenn er routiniert Wege abfahren soll. Obwohl sich die Felder überschneiden. &lt;br /&gt;
&lt;br /&gt;
Alle Navigationssysteme bauen auf 2 Quellen der Navigation auf: [[Sensorarten#Drehgeber_Sharp_GP1A30|inkrementale Weggeber]] und Absolutwertgeber. &lt;br /&gt;
&lt;br /&gt;
Dies ist das größte Problem, wenn ihr einen Bot bauen wollt. Denn ihr habt das Problem nicht, was euer Bot hat. Euch ist das zu abstrakt, aber wenn ihr das nicht begreift, wird er nie dort hinkommen, wo er hin soll. Ihr habt Augen, die euch ohne zu denken den Absolutwert geben, wie weit der Abstand des Cursors eurer Maus zum Startbutton jetzt ist. Die Maus hat einen Weggeber intern doch ihr Kontrolliert ständig, ob die Werte korrekt sind und korrigiert diese falls nötig! Das kann euer Roboter nicht. Das heisst, wenn eine Achse sich schwerer dreht als die andere wird er ständig in einem Kreis fahren. Ohne das ihr das in den Messwerten sehen könnt.&lt;br /&gt;
&lt;br /&gt;
==Weggeber==&lt;br /&gt;
Die [[Sensorarten#Drehgeber_Sharp_GP1A30|Weggeber]] existieren meistens in Form der Odometrie. Das heisst, die Drehung der Antriebsachse wird direkt erfasst. Das kann erfolgen mit einem Schrittmotor (wobei dies indirekt ist, da ihr hier die Werte vorgebt) oder mit einer Lochscheibe, die dann die Schritte zählt mittels Lichtschranke. Oder mit Tastern und einem Zahnrad. &lt;br /&gt;
Nicht zur Odometrie gehörend aber auch Weggeber sind „mitlaufende“ Räder, die zählen (z.B eine Kugelmaus) oder aber eine optische Maus. Oder ein Seil, das ihr von einem Lotpunkt mitzieht. &lt;br /&gt;
&lt;br /&gt;
Diese Weggeber sind ungenau und verfälschen immer das Ergebnis. Wenn ihr den Roboter über längere Strecken fahren lasst, braucht ihr den 2. Typ um ihn neu einzukalibrieren. &lt;br /&gt;
&lt;br /&gt;
===Absolutwertgeber:===&lt;br /&gt;
Diese Methode sagt euch, wo auf einer Ebene ihr euch exakt befindet in X und Y Achse aufgesplittet. &lt;br /&gt;
&lt;br /&gt;
Es gibt mehre Methoden die ich ohne besondere Reihenfolge aufliste: &lt;br /&gt;
&lt;br /&gt;
====Peilung====&lt;br /&gt;
Das [[Sensorarten#Sharp_GP2D12|IR-Abstandsmessungsprinzip]] funktioniert so, dass sich ein Turm auf dem Roboter befindet. Diese scannen den Raum ab. Mittels weiterer Sensoren ([[Sensorarten#Kompa.C3.9F|Kompasssensoren]]). Nun kann man berechnen, wo im Raum man sich befindet. Nur bedingt einsetzbar, da ja Objekte die Wand verdecken. &lt;br /&gt;
Das Barkensystem funktioniert nach dem Einpeilungsprinzip. Das heißt, in einen Raum kennen wir mindestens 2 Punkte (Baken) die dann mit dem Roboter ein Dreick/Ebene aufspannen. Mittels Berechnungen kann dann der unbekannte Roboter -Punkt exakt bestimmen. Es gibt verschiede Methoden doch hier die Wichtigsten: &lt;br /&gt;
&lt;br /&gt;
* Aktive Bake, heisst die Baken senden ein Signal aus das dann vom Roboter empfangen wird ( z.B. IR). Das ist die einfachste Methode wenn auch nicht die eleganteste. Denn dadurch muss sich die Technik über den Roboter hinaus in den Raum ausbreiten und das wiederum kollidiert mit dem Prinzip von Autonomer Roboter. Die meisten Absolutwertgeber mit Barken gehen diesen Weg. &lt;br /&gt;
&lt;br /&gt;
* Passive Barke, heisst das diese nur ein Signal zu dem Roboter zurücksendet das dieser ausstrahlt. Das Problem ist, dass bei diesem System der Aufwand auf dem Roboter höher ist und das der Baterieverbauch grösser wird. Aber wir haben dann auch einen wirklichen autonomen Roboter. &lt;br /&gt;
&lt;br /&gt;
-Aus dem Alltag- &lt;br /&gt;
Es gibt Veranstaltungen /Wettkäpfe die nur eine Bake zulassen. Diese soll dabei nicht helfen um herauszufinden wo sich der Roboter um Raum befindet sonder nur, wo er hin soll bzw. wo sein „Feind“ ist. &lt;br /&gt;
&lt;br /&gt;
====Das Bodenmarkierungsprinzip====&lt;br /&gt;
wird meistens eingesetzt, wenn der Roboter sich nur in einem bestimmten Feld oder auf einer bestimmten Bahn aufhalten soll. Dabei werden passive oder aktive Elemente in dem Boden eingelassen, die dann von Onboard Sensoren wahrgenommen werden. Beispiel hierfür sind Rasenmäherbots oder autonome Fahrzeuge in Werkshallen. &lt;br /&gt;
&lt;br /&gt;
====[[GPS]]====&lt;br /&gt;
Neben dem Brakensystem existiert noch ein raumunabhängiges System das [[GPS]]. Dieses ist aber sehr aufwendig. Denn es bezieht Signale (3 Zeitsignale von Satelliten die dann verglichen werden) und ist meist draussen besser zu empfangen. Auch ließ das US Militär das Signal verschlechtern so das es nur sehr ungenau war. Heutzutage ohne Störsignal schafft man auch nur Genauigkeiten von einigen Metern. Wenn man genauere Werte braucht menötigt man mindestens 2 Empfänger und muss diese miteinander vergleichen. Einer der Empfänger steht dann normalerweise an einem festen Punkt. Das nennt sich Differential GPS (DGPS). Näheres unter dem Artikel [[GPS]].&lt;br /&gt;
&lt;br /&gt;
Weitere Methoden sind nicht zu gebrauchen oder sind nur Abarten der hier erwähnten Methoden.&lt;br /&gt;
&lt;br /&gt;
===Umweltsensoren===&lt;br /&gt;
Sie sind meist erst in der letzten Ausbaustufe beim Roboter interessant und sollen unserem Freund helfen, sich in der Umwelt zurechtzufinden. &lt;br /&gt;
&lt;br /&gt;
Dabei gibt es Interaktionsensoren, wie Drucksensoren oder Mikrofone. Mikrofone lassen dem Roboter erkennen, ob Geräusche vorhanden sind. Richtig: ob, nicht wo. Dazu muss das Mikrofon entweder gerichtet sein und sich in dem im Raum drehen können oder aber in vier Ecken starr auf dem Roboter befinden. &lt;br /&gt;
&lt;br /&gt;
Wenn der Roboter eine Solarzelle hat dann braucht er Lichtsensoren, die ihn zur grössten Lichtquelle bringt. &lt;br /&gt;
&lt;br /&gt;
====Rauchsensoren==== lassen den Roboter zwar erkennen das sich Rauch im Raum befindet. Doch was nützt es wenn dieser Rauch erst in einer Höhe von 40 cm erkannt wird? Um z.B. Räume auf Giftgas zu testen braucht es einen Gasmesser. Beide Sensoren arbeiten unterschiedlich. Während Rauchmelder alle Partikel ohne Ausnahme erkennt haben Gasmesser nur eine begrenzte Sammlung an zu erkennenden Gasen. &lt;br /&gt;
&lt;br /&gt;
====Temperatursensoren==== ermöglichen dem Bot die Temperatur zu messen, um z.B. aus der Sonne zu gehen, oder um einzelne Bauelemente vor Überhitzung zu schützen.&lt;br /&gt;
&lt;br /&gt;
==Nachsatz==&lt;br /&gt;
Es gibt dutzende Sensoren und Sensorenanlangen die unseren Bot helfen sich in der Umwelt zurechtzufinden. Je mehr man hat umso mehr kann man mit diesen spielen, um zb. Gewohnheiten zu programmieren. Aber wenn man seinen Bot auf eine Aufgabe ausrichtet sind diese die das i-Tüpfelchen bringen. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Autor: honkitonk / Wiki Übernahme Picnick''&lt;br /&gt;
&lt;br /&gt;
==Siehe auch==&lt;br /&gt;
* [[Sensorarten]]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Sensoren]]&lt;/div&gt;</summary>
		<author><name>Poky</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=Sensoren&amp;diff=10925</id>
		<title>Sensoren</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=Sensoren&amp;diff=10925"/>
				<updated>2007-04-03T19:33:31Z</updated>
		
		<summary type="html">&lt;p&gt;Poky: /* Navigation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Sensoren==&lt;br /&gt;
Jeder, der sich einen Roboter baut wird schnell zu dem Punkt kommen, wo er möchte dass sein Roboter „sieht“. &lt;br /&gt;
Sensoren müssen hauptsächlich drei Aufgaben erledigen. Die ersten beiden sind Kollisionschutz und Navigation. Diese unterscheiden sich in der Funktionsweise vor allem in der Interpretation im Programm und im Aufbau am Roboter. Die dritte Art sind Sensoren, die ihn mit der Umwelt in Kontakt treten lassen. &lt;br /&gt;
&lt;br /&gt;
Grundsätzlich müssen alle Sensoren diese Merkmale aufweisen: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Passiv oder Aktiv?=== &lt;br /&gt;
Manche Sensoren (z.B. IR) brauchen eine aktive Quelle (hier die IR LED) die dann aber einen Mehrverbrauch an Strom bedeutet. Passive Sensoren wie Taster bekommen ihre Signale aus der Umwelt (hier Stoß). Zu ihnen zählen die meisten Umweltgrössen wie Temperatur und Feuchtigkeit, Licht und Vibration oder Kraft (Stoß). &lt;br /&gt;
&lt;br /&gt;
===Einfachheit===&lt;br /&gt;
Ein Sensor muss einfach sein. Denn was nützt es uns wenn wir den Sensor nicht kalibrieren können oder der Aufbau zu schwer ist? Doch Sensoren, die nicht in einem einzigen Gehäuse untergebracht sind, sind äußerst selten. Dann besteht nur noch der Wunsch, dass die meist zwei drahtigen Sensoren auch einfach anzuschließen sind. Deswegen ist es manchmal von Vorteil, sich vorgefertigte Anschlüsse zu kaufen, anstatt diese in mühsamer Kleinarbeit selber zu erstellen. &lt;br /&gt;
&lt;br /&gt;
===Auswertbarkeit in Echtzeit===&lt;br /&gt;
Alle Sensoren, die zunächst in Frage kommen, basieren auf dem Prinzip des Spannungsteilers. Das heißt, es wird eine Urspannung eingegeben und eine Teilspannung kommt heraus. Diese Differenz können wir erfassen und mittels Wertetabelle im Programm auswerten. Aber durch Störeinflüsse in der Umwelt kann es vorkommen, das die berechneten Werte abweichen. Jeder Messtechniker weiß, dass allein die Messung an sich schon das Messergebnis verfälscht.&lt;br /&gt;
&lt;br /&gt;
===Robustheit===&lt;br /&gt;
Wir werden am Anfang sicher nicht unseren Roboter in einer Morastlandschaft einsetzten aber auch schon ein Stoss gegen die Wand hat schon manchen Roboter ausgenockt. Schon normaler Hausstaub kann und wird Linsen trüben und Messwerte verschlechtern. Das heisst wenn ein Sensor gekauft wird muss er der Situation angemessen sein. &lt;br /&gt;
&lt;br /&gt;
==Aufgaben für Roboter==&lt;br /&gt;
Natürlich muss man bevor der Roboter steht schon im klaren sein was seine Aufgaben sind. Auch wenn diese so weitgefasst sind wie „Karte erstellen und Raumüberwachung dabei einer Linie folgen“. Jeder Sensor braucht Platz und verringert die Einsatzdauer. Nicht jeder Sensor ist für jede Arbeit gedacht und zum Schluss spielt das Geld eine Rolle, denn mancher Sensor kostet schon 30 Euro. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Sensoren für den Kollisionsschutz===&lt;br /&gt;
Die wichtigsten Sensoren auf einen Roboter sind die Kollisionssensoren. Diese schützen den Roboter vor Zusammenstößen und Abstürzen in einen Schacht. Dabei kann man diese Gruppe auf direkte und indirekte Sensoren unterteilen. &lt;br /&gt;
&lt;br /&gt;
====Direkte Sensoren====&lt;br /&gt;
Sie sollen den Zusammenstoß nicht verhindern sondern dabei das Signal ausgeben. In letzter Zeit werden diese Sensoren noch gepolstert, damit beim Zusammenstoß keine zu großen Kräfte auftreten. &lt;br /&gt;
Am einfachsten geht dies mit einem Taster, der am Chassis befestigt ist. Da dies sehr kurze Reaktionszeiten mit sich bringt, haben einige Roboter Fühler um diese Zeit zu verlängern. Eine weitere Methode ist es, eine Stoßstange zu entwickeln, die dann an den Tastern (direkt oder indirekt) befestigt sind. Dabei kann diese Stoßstange auch gepolstert sein. Eine nun neuere Methode ist es, Luftschläuche zu verwenden. Die dämpfen den Stoß ab und sind dabei an einem Drucksensor angeschlossen, der das Zusammenquetschen erkennt und ein Signal ausgibt. &lt;br /&gt;
====Indirekte Sensoren====&lt;br /&gt;
Sie sollen helfen, den Zusammenstoß zu vermeiden um am besten noch Zeit zu geben, einen optimalen Weg am Hindernis herum zu finden. Diese haben ein größeres Problem, da sie meist keine 360 Grad „Rundumsicht“ garantieren können. Das bedeutet, dass die meisten Roboter diesen Typ der Sensoren in Fahrtrichtung eingebaut haben, um diese Aufgabe zu erfüllen. Was auch effizient ist, denn solche Sensoren sind sehr teuer und müssen ständig vom Programm überwacht werden. &lt;br /&gt;
&lt;br /&gt;
 Diese Sensoren werden bei neueren Autos auch als Parkhilfe angeboten. &lt;br /&gt;
&lt;br /&gt;
==Probleme==&lt;br /&gt;
Das Problem der Sensoren ist ihre räumliche Begrenztheit. Denn schon 5 Meter sind sehr lang. Aber auf der anderen Seite wollen die meisten eh keine 5 Meter „vorausschauen“. &lt;br /&gt;
[[Sensorarten|Es gibt mehrere Typen]]. Am bekanntesten sind die [[Sensorarten#optische_Sensoren|IR Sensoren]]. Diese sind gut für lange Distanzen aber haben das Problem, dass sie gebündelt sind und somit Zwischenräume schwer abdecken können. Besser sind dort [[Sensorarten#Ultraschall_Sensoren|Ultraschallsensoren]], die aber teurer sind. Etwas in der Nische ist das Radar – System; es ist ein sehr aufwendiges und teueres System ist und die Auswertung der Daten ist komplex. Es bietet aber den besten Schutz gegen Zusammenstöße, da dieses System nicht auf einen Punkt gerichtet ist sondern die ganze Fläche abspannt. &lt;br /&gt;
&lt;br /&gt;
Probleme beider Systeme: &lt;br /&gt;
Ist die Höhe. Leider ist unser Roboter dreidimensional und bewegt sich zweidimensional. Das heißt, es spannen sich mehrere Ebenen auf die überwacht werden wollen. Denn wenn dies nicht geschieht, stößt der Roboter gegen eine Tischplatte, weil er diese nicht erkannt hat oder gegen ein Hindernis das unter den Sensoren hindurch rutscht. &lt;br /&gt;
Deswegen bemüht man sich, den Roboter so flach wie möglich zu halten und das Fahrgestell so zu bauen, dass man flache Hindernisse überfahren kann. Es hilft also, darüber sich vorher Gedanken zu machen. &lt;br /&gt;
Je nachdem wo der Roboter zum Einsatz kommt tun sich manchmal Abgründe auf (z.B. Tischplatte). Diese müssen erkannt werden. Deswegen ist es erforderlich, Abstandssensoren noch unten zu richten um einen Absturz zu vermeiden. Dabei sollte man indirekte Sensoren einsetzten, denn was nützt es wenn der Taster erkannt hat das nun ein Loch da ist aber der Roboter bis er reagiert schon auf dem Boden aufschlägt? &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Navigation==&lt;br /&gt;
Nun gibt es hier viele Arten wie die Navigation erfolgen kann. Ich tue 2 Felder auf. Wenn unser Freund neue Welten erkunden soll oder in einen Spiel gegen eine Mannschaft antritt, dann braucht er andere Sensoren, als wenn er routiniert Wege abfahren soll. Obwohl sich die Felder überschneiden. &lt;br /&gt;
&lt;br /&gt;
Alle Navigationssysteme bauen auf 2 Quellen der Navigation auf: [[Sensorarten#Drehgeber_Sharp_GP1A30|inkrementale Weggeber]] und Absolutwertgeber. &lt;br /&gt;
&lt;br /&gt;
Dies ist das größte Problem, wenn ihr einen Bot bauen wollt. Denn ihr habt das Problem nicht, was euer Bot hat. Euch ist das zu abstrakt, aber wenn ihr das nicht begreift, wird er nie dort hinkommen, wo er hin soll. Ihr habt Augen, die euch ohne zu denken den Absolutwert geben, wie weit der Abstand des Cursors eurer Maus zum Startbutton jetzt ist. Die Maus hat einen Weggeber intern doch ihr Kontrolliert ständig, ob die Werte korrekt sind und korrigiert diese falls nötig! Das kann euer Roboter nicht. Das heisst, wenn eine Achse sich schwerer dreht als die andere wird er ständig in einem Kreis fahren. Ohne das ihr das in den Messwerten sehen könnt.&lt;br /&gt;
&lt;br /&gt;
==Weggeber==&lt;br /&gt;
Die [[Sensorarten#Drehgeber_Sharp_GP1A30|Weggeber]] existieren meistens in Form der Odometrie. Das heisst es wird erfasst die Drehung der Antriebsachse direkt. Das kann erfolgen mit einem Schrittmotor ( wobei dies indirekt ist da ihr hier die Werte vorgibt) oder mit einer Lochscheibe die dann die Schritte zählt mittels Lichtschranke. Oder mit Tastern und einem Zahnrad. &lt;br /&gt;
Nicht zur Odometrie aber auch Weggeber sind „mitlaufende“ Räder die Zählen (z.B eine Kugelmaus) oder aber eine optische Maus. Oder ein Seil das ihr von einen Lotpunkt mitzieht. &lt;br /&gt;
&lt;br /&gt;
Diese Weggeber sind ungenau sind verfälschen immer das Ergebnis. Wenn ihr den Roboter über längere Strecken fahren lässt braucht ihr den 2 Typ um ihn neu einzukalibrieren. &lt;br /&gt;
&lt;br /&gt;
===Absolutwertgeber:===&lt;br /&gt;
Diese Methode sagt euch, wo auf einer Ebene ihr euch exakt befindet in X und Y Achse aufgesplittet. &lt;br /&gt;
&lt;br /&gt;
Es gibt mehre Methoden die ich ohne besondere Reihenfolge aufliste: &lt;br /&gt;
&lt;br /&gt;
====Peilung====&lt;br /&gt;
Das [[Sensorarten#Sharp_GP2D12|IR-Abstandsmessungsprinzip]] funktioniert so das sich ein Turm auf dem Roboter befindet. Diese scannen den Raum ab. mittels weiterer Sensoren ([[Sensorarten#Kompa.C3.9F|Kompasssensoren]]). Nun kann man berechnen wo im Raum man sich befindet. Nur bedingt einsetzbar, da ja Objekte die Wand verdecken. &lt;br /&gt;
Das Barkensystem funktioniert nach dem Einpeilungsprinzip. Das heißt, in einen Raum kennen wir mindestens 2 Punkte (Baken) die dann mit dem Roboter ein Dreick/Ebene aufspannen. Mittels Berechnungen kann dann der unbekannte Roboter -Punkt exakt bestimmen. Es gibt verschiede Methoden doch hier die Wichtigsten: &lt;br /&gt;
&lt;br /&gt;
* Aktive Bake, heisst die Baken senden ein Signal aus das dann vom Roboter empfangen wird ( z.B. IR). Das ist die einfachste Methode wenn auch nicht die eleganteste. Denn dadurch muss sich die Technik über den Roboter hinaus in den Raum ausbreiten und das wiederum kollidiert mit dem Prinzip von Autonomer Roboter. Die meisten Absolutwertgeber mit Barken gehen diesen Weg. &lt;br /&gt;
&lt;br /&gt;
* Passive Barke, heisst das diese nur ein Signal zu dem Roboter zurücksendet das dieser ausstrahlt. Das Problem ist, dass bei diesem System der Aufwand auf dem Roboter höher ist und das der Baterieverbauch grösser wird. Aber wir haben dann auch einen wirklichen autonomen Roboter. &lt;br /&gt;
&lt;br /&gt;
-Aus dem Alltag- &lt;br /&gt;
Es gibt Veranstaltungen /Wettkäpfe die nur eine Bake zulassen. Diese soll dabei nicht helfen um herauszufinden wo sich der Roboter um Raum befindet sonder nur, wo er hin soll bzw. wo sein „Feind“ ist. &lt;br /&gt;
&lt;br /&gt;
====Das Bodenmarkierungsprinzip====&lt;br /&gt;
wird meistens eingesetzt, wenn der Roboter sich nur in einem bestimmten Feld oder auf einer bestimmten Bahn aufhalten soll. Dabei werden passive oder aktive Elemente in dem Boden eingelassen, die dann von Onboard Sensoren wahrgenommen werden. Beispiel hierfür sind Rasenmäherbots oder autonome Fahrzeuge in Werkshallen. &lt;br /&gt;
&lt;br /&gt;
====[[GPS]]====&lt;br /&gt;
Neben dem Brakensystem existiert noch ein raumunabhängiges System das [[GPS]]. Dieses ist aber sehr aufwendig. Denn es bezieht Signale (3 Zeitsignale von Satelliten die dann verglichen werden) und ist meist draussen besser zu empfangen. Auch ließ das US Militär das Signal verschlechtern so das es nur sehr ungenau war. Heutzutage ohne Störsignal schafft man auch nur Genauigkeiten von einigen Metern. Wenn man genauere Werte braucht menötigt man mindestens 2 Empfänger und muss diese miteinander vergleichen. Einer der Empfänger steht dann normalerweise an einem festen Punkt. Das nennt sich Differential GPS (DGPS). Näheres unter dem Artikel [[GPS]].&lt;br /&gt;
&lt;br /&gt;
Weitere Methoden sind nicht zu gebrauchen oder sind nur Abarten der hier erwähnten Methoden.&lt;br /&gt;
&lt;br /&gt;
===Umweltsensoren===&lt;br /&gt;
Sie sind meist erst in der letzten Ausbaustufe beim Roboter interessant und sollen unserem Freund helfen, sich in der Umwelt zurechtzufinden. &lt;br /&gt;
&lt;br /&gt;
Dabei gibt es Interaktionsensoren, wie Drucksensoren oder Mikrofone. Mikrofone lassen dem Roboter erkennen, ob Geräusche vorhanden sind. Richtig: ob, nicht wo. Dazu muss das Mikrofon entweder gerichtet sein und sich in dem im Raum drehen können oder aber in vier Ecken starr auf dem Roboter befinden. &lt;br /&gt;
&lt;br /&gt;
Wenn der Roboter eine Solarzelle hat dann braucht er Lichtsensoren, die ihn zur grössten Lichtquelle bringt. &lt;br /&gt;
&lt;br /&gt;
====Rauchsensoren==== lassen den Roboter zwar erkennen das sich Rauch im Raum befindet. Doch was nützt es wenn dieser Rauch erst in einer Höhe von 40 cm erkannt wird? Um z.B. Räume auf Giftgas zu testen braucht es einen Gasmesser. Beide Sensoren arbeiten unterschiedlich. Während Rauchmelder alle Partikel ohne Ausnahme erkennt haben Gasmesser nur eine begrenzte Sammlung an zu erkennenden Gasen. &lt;br /&gt;
&lt;br /&gt;
====Temperatursensoren==== ermöglichen dem Bot die Temperatur zu messen, um z.B. aus der Sonne zu gehen, oder um einzelne Bauelemente vor Überhitzung zu schützen.&lt;br /&gt;
&lt;br /&gt;
==Nachsatz==&lt;br /&gt;
Es gibt dutzende Sensoren und Sensorenanlangen die unseren Bot helfen sich in der Umwelt zurechtzufinden. Je mehr man hat umso mehr kann man mit diesen spielen, um zb. Gewohnheiten zu programmieren. Aber wenn man seinen Bot auf eine Aufgabe ausrichtet sind diese die das i-Tüpfelchen bringen. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Autor: honkitonk / Wiki Übernahme Picnick''&lt;br /&gt;
&lt;br /&gt;
==Siehe auch==&lt;br /&gt;
* [[Sensorarten]]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Sensoren]]&lt;/div&gt;</summary>
		<author><name>Poky</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=Avr&amp;diff=10371</id>
		<title>Avr</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=Avr&amp;diff=10371"/>
				<updated>2007-03-07T15:42:16Z</updated>
		
		<summary type="html">&lt;p&gt;Poky: /* Die AVR-Pin-Bezeichnungen und deren Funktion */  typos&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;
** 32 Register, kein Akkumulator, 3 Pointerregister &lt;br /&gt;
** EEPROM-Datenspeicher&lt;br /&gt;
** [[Watchdog]], [[Bootloader]]-Support, verschiedene Stromspar-Modi, Brownout-Erkennung, Interner Oszillator&lt;br /&gt;
** Lineares Speichermodell (keine Segmentierung)&lt;br /&gt;
** 8-Bit Architektur ist für Hochsprachen (C) optimiert &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;
* umfangreiche Peripherie&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)&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 Volt bis 6 V bei den L-Varianten (low power), ansonsten 4,5V bis 6V. Die nächste AVR-Generation soll ab 1,8 Volt funktionieren.&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 (kann auf 5V gesetzt werden). 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;
 |Alternative Masse, etwa um ein Verbindungspunkt mit GND zu haben und bei empfindlichen Messungen  Masseschleifen zu vermeiden.&lt;br /&gt;
|-&lt;br /&gt;
 |'''AVCC''' &lt;br /&gt;
 | &lt;br /&gt;
Die Betriebsspannung für den Analog-Digital-Wandler (siehe Beschaltungsskizze). Die Pins AVCC, AGND und AREF sollten immer beschaltet werden, da es sonst passieren kann, dass Port A nicht richtig funktioniert, selbst wenn man den AD-Wandler 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-Eingang. Timer kann gestartet, gestoppt oder getaktet werden &lt;br /&gt;
|-&lt;br /&gt;
 |'''T1''' &lt;br /&gt;
 |Timer-Eingang. Timer kann gestartet, gestoppt oder getaktet werden &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 Capture-Funktion des integrierten Zeitgebers / Zählerbausteines &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 sehr genaue Ein-Sekunden-Impulse für eine Uhr generien. &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;
 |Externe Takt für den USART. Wird nur in Sonderfällen für den Takt benötigt. &lt;br /&gt;
USART (&amp;quot;Universal Synchronous/Asynchronous Receiver and Transmitter&amp;quot;). Das ist die serielle Schnittstelle, die zur Datenübertragung zwischen Mikrocontroller und PC genutzt wird. Zur bidirektionalen Übertragung werden zwei Pins am Controller benötigt: TXD und RXD. Über TXD (&amp;quot;Transmit Data&amp;quot;) werden Daten gesendet, RXD (&amp;quot;Receive Data&amp;quot;) dient zum Empfang. &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 richtigen Slave am Bus zu wä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;
== Die Fusebits ==&lt;br /&gt;
Fusebits nennt man bestimmte Bits zur Konfigurierung eines AVR-Controllers. Bei der Auslieferung neuer AVR Controller sind die Fusebits bereits vorkonfiguriert. In vielen Fällen kann man die Konfiguration unverändert belassen, je nach Controllertyp. Bei den Typen Mega xxx bestimmen einige Fusebits beispielsweise, dass der interne Taktgeber aktiviert ist. Möchte man dagegen einen externen Quarz anschließen oder die Taktfrequenz ändern, 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 man alle Ports ausnutzen möchte. &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, 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. &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. Diese Überwachung soll dafür sorgen, dass bei Spannungseinbrüchen ein ordentlicher RESET durchgeführt wird. Dadurch wird verhindert, dass ein Controller in einen undefinierten Zustand gerät (hängen bleibt).&lt;br /&gt;
|-&lt;br /&gt;
 |'''BOOTLEVEL'''&lt;br /&gt;
 |Über dieses  Bit kann die Spannung festgelegt werden, ab welcher der '''Brown-out Detector''' den Controller neu startet (also RESET ausführt). &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;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
* [[AVR-Einstieg leicht gemacht]]&lt;br /&gt;
===Entwicklungsumgebungen===&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;
=== 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;
===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;
&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>Poky</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=ATmega16_ATmega32_ATmega644&amp;diff=10363</id>
		<title>ATmega16 ATmega32 ATmega644</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=ATmega16_ATmega32_ATmega644&amp;diff=10363"/>
				<updated>2007-03-07T15:21:53Z</updated>
		
		<summary type="html">&lt;p&gt;Poky: /* Stack Pointer */ typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Merkmale und Pinbelegung ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div align=&amp;quot;center&amp;quot;&amp;gt;&lt;br /&gt;
{|{{Blauetabelle_Felder_zentriert}} width=50%&lt;br /&gt;
 |&lt;br /&gt;
 |'''Mega 16'''&lt;br /&gt;
 |'''Mega 32'''&lt;br /&gt;
 |'''Mega 644'''&lt;br /&gt;
 |-&lt;br /&gt;
 |'''Gehäuse'''&lt;br /&gt;
 |DIL-40&lt;br /&gt;
 |DIL-40&lt;br /&gt;
 |DIL-40&lt;br /&gt;
 |-&lt;br /&gt;
 |'''MHz'''&lt;br /&gt;
 |max. 16&lt;br /&gt;
 |max. 16&lt;br /&gt;
 |max. 20&lt;br /&gt;
 |-&lt;br /&gt;
 |'''Flash'''&lt;br /&gt;
 |16 KB&lt;br /&gt;
 |32 KB&lt;br /&gt;
 |64 KB&lt;br /&gt;
 |-&lt;br /&gt;
 |'''EEProm'''&lt;br /&gt;
 |512 Byte&lt;br /&gt;
 |1 KB&lt;br /&gt;
 |2 KB&lt;br /&gt;
 |-&lt;br /&gt;
 |'''RAM'''&lt;br /&gt;
 |1 KB&lt;br /&gt;
 |2 KB&lt;br /&gt;
 |4 KB&lt;br /&gt;
 |-&lt;br /&gt;
 |'''I/O'''&lt;br /&gt;
 |32&lt;br /&gt;
 |32&lt;br /&gt;
 |32&lt;br /&gt;
 |-&lt;br /&gt;
 |'''PWM'''&lt;br /&gt;
 |4&lt;br /&gt;
 |4&lt;br /&gt;
 |6&lt;br /&gt;
 |-&lt;br /&gt;
 |'''ext. INT'''&lt;br /&gt;
 |3&lt;br /&gt;
 |3&lt;br /&gt;
 |32&lt;br /&gt;
 |}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Bild:Mega1632.gif|center]]&lt;br /&gt;
[[Bild:PinoutATMega644.gif|center]]&lt;br /&gt;
&lt;br /&gt;
== Einfache Grundschaltung ==&lt;br /&gt;
&lt;br /&gt;
[[Bild:avrtutorial_grundschaltung_mitquarz.gif|center|500px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Weitere Grundschaltungen im Artikel [[AVR-Einstieg leicht gemacht]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Internes zum Atmega32==&lt;br /&gt;
&lt;br /&gt;
Wenn man das erste Mal mit solchen komplizierten Geräten wie Micro-Controllern konfrontiert wird, kann es schon sein, daß man vor Ehrfurcht erschaudert. Und auch wenn man von Bits und Bytes durchaus eine Ahnung hat, ist allein schon der Umfang des Datasheets möglicherweise abschreckend. &lt;br /&gt;
Es soll hier versucht werden darzustellen, daß die ganze Sache nun so schlimm auch wieder nicht ist, wenn man sich den Aufbau eines typischen Vertreters der ATMEL Microcontroller etwas näher betrachtet.&lt;br /&gt;
&lt;br /&gt;
===Architektur Überblick===&lt;br /&gt;
&lt;br /&gt;
[[Bild:Avr.jpg]]Quelle:www.atmel.com&lt;br /&gt;
&lt;br /&gt;
Dieses Bild stammt aus dem Datasheet. Das haben wir wohl schon alle mal gesehen, und vermittelt dem Anfänger eigentlich nur, daß in dem Chip offenbar eine Menge Zeugs drinnen ist. Und da die meisten Pfeile in beide Richtungen zeigen, kann man sich auch nicht recht vorstellen, was da eigentlich in welcher Folge abläuft.  &lt;br /&gt;
&lt;br /&gt;
===CPU===&lt;br /&gt;
Das &amp;quot;Herz&amp;quot; des Controllers ist im mittleren Bereich links, das ist die &amp;quot;CPU&amp;quot; (= Zentral-Processor). Von hier aus wird all das Drumherum gesteuert, hier landet das Programm, das wir mit mit irgendeinem Compiler erstellt haben. &lt;br /&gt;
&lt;br /&gt;
[[Bild:Avrcpu.jpg]]Quelle:www.atmel.com&lt;br /&gt;
&lt;br /&gt;
Der Rest von dem ganzen Atmega32 ist die &amp;quot;Peripherie&amp;quot;, das sind eine Reihe von Einzelgeräten, die alle ihre speziellen Funktionen und Aufgaben haben. Da liegen auch hauptsächlich die Unterschiede zwischen den verschiedenen Micro-Controllern, denn ein kleiner (Tiny) hat weniger solche Geräte und braucht dadurch natürlich auch weniger Pins. &lt;br /&gt;
&lt;br /&gt;
Sehr ähnlich, wenn nicht identisch, ist bei allen AVR-Controllern diese CPU aufgebaut, daher ist es zum Verständnis unerlässlich, sich damit näher zu beschäftigen. &lt;br /&gt;
&lt;br /&gt;
====Program Flash====&lt;br /&gt;
Was da so ein kleines Kästchen ist, das ist der Programmspeicher, der beim Atmega32 immerhin 32k groß ist.&lt;br /&gt;
====Program Counter====&lt;br /&gt;
(=Befehlszähler) beinhaltet IMMER die Adresse des nächsten Befehls im Programmspeicher&lt;br /&gt;
====Instruction Register====&lt;br /&gt;
hier landet der Inhalt des Programmspeichers von der Adresse &amp;quot;Befehlszähler&amp;quot; immer zuerst, da ja der AVR erstmal selber gucken muß, was für ein Befehl das wohl ist.&lt;br /&gt;
Jedes Befehlswort beinhaltet (kodiert) drei Dinge: &amp;quot;WAS&amp;quot;, &amp;quot;WOHER&amp;quot; und &amp;quot;WOHIN&amp;quot;. &lt;br /&gt;
Einiges kann direkt im SRAM oder in den Register eine Auswahl treffen, einiges muß weiter zum&lt;br /&gt;
====Instruction Decoder====&lt;br /&gt;
Je nach Befehl müssen Datenrichtungen eingestellt werden, und etliche Schalter bedient werden. (CONTROL-LINES)&lt;br /&gt;
====SRAM====&lt;br /&gt;
Das ist der frei verwendbare Schreib- und Lesespeicher, beim Atmeg32 2k (2048 Byte)&lt;br /&gt;
====Stack Pointer====&lt;br /&gt;
Der &amp;quot;Stapel-Zeiger&amp;quot; kann ausschließlich den SRAM adressieren. Aber dazu kommen wir noch&lt;br /&gt;
&lt;br /&gt;
====General Purpose Register (GPR)====&lt;br /&gt;
Wie der Name sagt, das sind 32 Bytes für den allgemeinen Gebrauch. Bezeichnet werden sie als R0 (Addresse $0000) bis R31 (Addresse $001F). Die meisten Maschinenbefehle des AVR beziehen sich darauf, wobei einige Unterschiede zwischen R0 - R15 und R16 - R31 gemacht werden. &lt;br /&gt;
R26 bis R31 können auch als Pointer-Register X, Y u. Z mit ein paar Extras verwendet werden. &lt;br /&gt;
[[Bild:Avrgpr.jpg]]Quelle:www.atmel.com&lt;br /&gt;
&lt;br /&gt;
====ALU====&lt;br /&gt;
Arithmetische-Logische-Einheit. Die Register R0 - R31 können ihre Werte da anlegen, die ALU macht dann den eigentlichen Befehl damit. Also Addieren, Subtrahieren, usw.  &lt;br /&gt;
Das Ergebnis landet dann irgendwo in dem gesamten CPU-Bereich, je nachdem, wie eben die Control-Lines vom Decoder eingestellt sind. &lt;br /&gt;
Als Nebenprodukt gibt es aber ein paar Bits, die im &lt;br /&gt;
====STATUS REGISTER====&lt;br /&gt;
landen, wie eben das &amp;quot;ZERO&amp;quot;-Bit, das &amp;quot;CARRY&amp;quot;-Bit usw. &lt;br /&gt;
&lt;br /&gt;
====Adressen Mapping====&lt;br /&gt;
Damit es einfacher ist, Input- und Output-Daten immer ins richtige Kästchen reinzutun oder zu holen, gibt das &amp;quot;Address-Mapping&amp;quot;. Es wird einfach eine fortlaufende Adresse angegeben, aber je nach Werte-Bereich landet man ganz woanders. &lt;br /&gt;
[[Bild:Adrmap.jpg]]&lt;br /&gt;
=====REGISTER=====&lt;br /&gt;
Das sind die bereits oben erwähnten &amp;quot;Allgemeinen Register&amp;quot; (GPR)&lt;br /&gt;
=====I/O=====&lt;br /&gt;
Wenn man hier schreibt oder liest, landet man in Wirklichkeit bei den Kontroll-Schaltern von einem der &amp;quot;Peripheriegeräte&amp;quot;. Da gibt es zum Beispiel Stellen, wenn man da reinschreibt, verändert man irgendeinen PIN aussen am Controller.&lt;br /&gt;
=====SRAM=====&lt;br /&gt;
Der auch schon erwähnte frei verfügbare Schreib-und Lesespeicher&lt;br /&gt;
&lt;br /&gt;
===Maschinen-Code===&lt;br /&gt;
&lt;br /&gt;
====Aufbau====&lt;br /&gt;
Eine Assembler Source-Zeile, schematisch:&lt;br /&gt;
 '''Command   Argument1 , Argument2'''     ; die Argumente sind optionell, je nach Befehl&lt;br /&gt;
&lt;br /&gt;
Jede Instruktion ist (mindestens) 16 Bit (zwei Bytes) breit. Hier ein paar Befehle, die Bits in den Spalten von Bit 15 (MSB)  bis Bit  0 (LSB), links nach rechts&lt;br /&gt;
&lt;br /&gt;
[[Bild:Code1.jpg]]&lt;br /&gt;
&lt;br /&gt;
Der Befehle haben nicht einfach eine Nummer von 0 - 65535, wie man vielleicht erwarten würde, sondern die Befehl-Bits sind mit den Argumenten in recht seltsamer Weise gemischt in diese beiden Bytes hineincodiert.&lt;br /&gt;
Der Grund ist der, daß die Argumente ja mal mehr, mal weniger Platz beanspruchen, das heißt, für den eigentlichen Befehlscode bleiben u.U. recht wenig Bits übrig. &lt;br /&gt;
&lt;br /&gt;
* Die erste Command-Selektion erfolgt mit den Bits A u. B (s.o.): Im obigen Beispiel steht dort immer &amp;quot;10&amp;quot;.&lt;br /&gt;
* Dann ist &amp;quot;C&amp;quot; zu prüfen: &lt;br /&gt;
Steht dort &amp;quot;0&amp;quot;, ist es einer der vier LD/ST Befehle&lt;br /&gt;
Ist dort aber &amp;quot;1&amp;quot;, &lt;br /&gt;
* geht es weiter mit den Bits in den Spalten &amp;quot;D&amp;quot; und &amp;quot;E&amp;quot;  (und so fort)&lt;br /&gt;
&lt;br /&gt;
Die beiden Befehle &amp;quot;JMP&amp;quot; und &amp;quot;CALL&amp;quot; kommen mit den 16 Bits garnicht aus, da wird auch das nächste Wort gelesen, das den restlichen Teil der Zieladresse beinhaltet. (Dadurch brauchen sie auch einen Clock-Cycle mehr)&lt;br /&gt;
&lt;br /&gt;
=====Details=====&lt;br /&gt;
Schauen wir uns noch ein paar Bits genauer an. &lt;br /&gt;
======LD / ST======&lt;br /&gt;
Die Bits A, B u. C dienen zu Identifizierung. Zur weiteren Unterscheidung bleiben noch die beiden anderen farbig unterlegten Bits&lt;br /&gt;
* 2&amp;lt;sup&amp;gt;7&amp;lt;/sup&amp;gt;  ==&amp;gt; LD (SRAM --&amp;gt; Register) oder ST (Register --&amp;gt; SRAM)&lt;br /&gt;
* 2&amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt;  ==&amp;gt; Pointer-Register Z  oder  Y&lt;br /&gt;
======IN / OUT======&lt;br /&gt;
Ob IN oder OUT, entscheidet das Bit 2&amp;lt;sup&amp;gt;11&amp;lt;/sup&amp;gt;&lt;br /&gt;
======JMP / CALL======&lt;br /&gt;
Der einzige Unterschied ist der, ob der aktuelle PC (Program-Count) vor dem Sprung auf den Stack gepusht wird oder nicht (2&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
====Mehrere Namen für einen Befehl====&lt;br /&gt;
Bei einer Reihe von Befehlen gibt es mehrere Namen für ein und denselben Maschinenbefehl. &lt;br /&gt;
Ein Beispiel: &lt;br /&gt;
 CLR R1     ; (Setze Register 1 auf  $00 )&lt;br /&gt;
bringt den gleichen Maschinencode wie&lt;br /&gt;
 EOR R1, R1 ; Register 1 =   Register1  &amp;quot;exclusive or&amp;quot; Register1&lt;br /&gt;
&lt;br /&gt;
Besonders im Umfeld des Stausregisters (SREG) kann man fast von einer &amp;quot;Befehlsvermehrung&amp;quot; sprechen. Obwohl es für Setzen, Löschen und Abfragen der Status-Bits entspechenden Maschinencode gibt, tauchen im &amp;quot;Instruction Set&amp;quot; diese Befehle für jedes der Bits einzeln nochmals auf. &lt;br /&gt;
&lt;br /&gt;
==Instruction Cycles==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:Avrcyc1.jpg]]&lt;br /&gt;
&lt;br /&gt;
[[Bild:Avrcyc2.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:Sramcyc1.jpg]]&lt;br /&gt;
&lt;br /&gt;
''Artikel: PicNick / ergänzt Frank''&lt;br /&gt;
&lt;br /&gt;
==Siehe auch==&lt;br /&gt;
* [[Atmel]]&lt;br /&gt;
* [[AVR]]&lt;br /&gt;
* [[RN-Control]]&lt;br /&gt;
* [[AVR-Einstieg leicht gemacht]]&lt;br /&gt;
* [[HEX Beispiel-Dateien für AVR]]&lt;br /&gt;
* [[AVR_Assembler_Einf%C3%BChrung|AVR Assembler Einführung]]&lt;br /&gt;
* [[Assembler_Einf%C3%BChrung_f%C3%BCr_Bascom-User|Assembler-Einführung für Bascom-User]]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Microcontroller]]&lt;br /&gt;
[[Kategorie:Grundlagen]]&lt;br /&gt;
[[Kategorie:Elektronik]]&lt;br /&gt;
[[Kategorie:Robotikeinstieg]]&lt;/div&gt;</summary>
		<author><name>Poky</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=Spannungsregler&amp;diff=10362</id>
		<title>Spannungsregler</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=Spannungsregler&amp;diff=10362"/>
				<updated>2007-03-07T14:47:52Z</updated>
		
		<summary type="html">&lt;p&gt;Poky: /* Schaltregler */  typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Die meisten Elektronikschaltungen brauchen eine bestimmte, stets gleichbleibende Betriebsspannung. Üblich sind hier 5V, bei einigen Bauteilen auch 3,3V. Oft stellt sich daher das Problem, dass man eine schwankende Spannung auf eine festen Wert regeln muss, um die Schaltung zu betreiben. Bei Batterien und Akkus sinkt die Spannung ab, wenn sie entladen werden, und bei einfachen Netzteilen und Trafos schwankt die Spannung je nach Belastung. &lt;br /&gt;
Um dieses Problem zu lösen, gibt es die sogenannten Spannungsregler: Bauteile, die mit der ungeregelten, schwankenden Spannung versorgt werden und daraus die gewünschte, konstante Spannung erzeugen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Lineare Spannungsregler=&lt;br /&gt;
&lt;br /&gt;
[[Bild:78s05.jpg|thumb|Spannungsregler 78S05]] Die wohl bekanntesten und sehr häufig eingesetzten Spannungsregler sind die der 78xx-Serie. Das xx steht hierbei für die Spannung, die die Regler erzeugen: 7805 für 5V, 7812 für 12V, und so weiter. Der große Vorteil dieser Regler ist ihr geringer Preis (ab etwa 20 cent) und die einfache Verwendung: in der Minimalvariante sind kein externen, zusätzlichen Bauteile nötig. Es wird aber trotzdem dringend empfohlen, zwei Kondensatoren anzuschließen, damit der Regler stabil arbeitet. &lt;br /&gt;
&lt;br /&gt;
Die Regler vergleichen die Ausgangsspannung mit einer intern erzeugen Referenzspannung. Wenn die Ausgangsspannung zu niedrig ist, wird ein [[Transistor]], durch den der Ausgangsstrom fließt, stärker angesteuert, sodass ein größerer Strom fließen kann, bis die gewünschte Spannung erreicht ist. &lt;br /&gt;
[[Bild:Linearregler-Prinzip.png|thumb|Prinzipelle Arbeitsweise eines Linearreglers]]&lt;br /&gt;
Steigt die Ausgangsspannung zu sehr an, wird über den Transistor der Strom reduziert, bis die Spannung sich wieder stabilisiert hat. Der Transistor wird also benutzt wie ein variabler Widerstand, der so eingeregelt wird, daß die &amp;quot;überflüssige&amp;quot; Spannungdifferenz zwischen Eingangsspannung und gewünschter Ausgangsspannung an ihm abfällt, und zwar unabhängig vom fliessenden Strom.  &lt;br /&gt;
&lt;br /&gt;
Der Nachteil dieser linearen Spannungsregler liegt in ihrem schlechten Wirkungsgrad und ihrer großen Verlustleistung. Der Teil der Spannung, die am Eingang zugeführt wird und gerade nicht am Ausgang benötigt wird, fällt am Transistor ab und wird dort in Wärme umgewandelt. Je nach Stromfluss führt das zu einer starken Erwärmung des Reglers, sodass in den meisten Fällen ein Kühlkörper nötig wird, wodurch weitere Kosten entstehen und viel Platz in Anspruch genommen wird. Außerdem reduziert sich durch die großen Verluste die Betriebsdauer, wenn man den Regler mit Akkus oder Batterien versorgt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Linearregler gibt es als Festspannungsregler und Regler mit einstellbarer Ausgangsspannung&lt;br /&gt;
&lt;br /&gt;
;Festspannungsregler:&lt;br /&gt;
* 7805 (5V)&lt;br /&gt;
* 7812 (12V)&lt;br /&gt;
* 78xx (xxV)&lt;br /&gt;
* 79xx (-xxV)&lt;br /&gt;
* LM2936-xx (xxV) Low-Drow, Droput typ. 200mV, max. 50mA&lt;br /&gt;
* LM2940-xx (xxV) Low-Drow, Droput typ. 500mV&lt;br /&gt;
&lt;br /&gt;
;Linerregler&lt;br /&gt;
* LM317: &lt;br /&gt;
* VB408: Hochvolt&lt;br /&gt;
&lt;br /&gt;
Für die Widerstandsberechnung an einem LM317 siehe [http://people.freenet.de/gjl/pub/lm317/index.html].&lt;br /&gt;
&lt;br /&gt;
=Schaltregler=&lt;br /&gt;
&lt;br /&gt;
Schaltregler arbeiten nach einem komplett anderen Prinzip. Während bei Linearreglern die Spannungsdifferenz in Wärme umgewandelt wird und damit verloren ist, wird diese Energie bei Schaltreglern in einem Magnetfeld gespeichert und der Schaltung zu einem späteren Zeitpunkt wieder zugeführt.&lt;br /&gt;
&lt;br /&gt;
Dies erfordert einen komplizierteren Aufbau als beim Linearregler. Ein Schaltregler hat zwei Arbeitsphasen:&lt;br /&gt;
;On-Phase: Eingangsenergie wird im Magnetfeld gespeichert&lt;br /&gt;
;Off-Phase: Die im Magnetfeld gespeicherte Energie wird an den Ausgang abgegeben&lt;br /&gt;
Je nach Konstruktionsprinzip kann in beiden Phasen auch Energie direkt vom Eingang zum Ausgang fliessen.&lt;br /&gt;
&lt;br /&gt;
Neben der Frequenz und dem Tastverhältnis sind auch die beteiligten Komponenten (Schalttransistor, Drossel, [[Diode]], Kondensatoren) entscheidend für die Eigenschaften des Reglers (Effizienz, Störungen, Leistungbereich, Ausgangsspannung- und Strom, Ripple, Baugröße, etc.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Der wesentliche Vorteil eines Schaltreglers besteht in seinem hohen Wirkungsgrad, je nach Typ lassen sich etwa 70% bis über 90% erzielen. Zudem kann die Ausgangssannung über der Eingangsspannung liegen und anderes Vorzeichen haben. Dadurch ergeben sich längere Laufzeiten im Akku- und Batteriebetrieb und eine gegenüber linearen Reglern wesentlich geringere Erwärmung. Daher kommt man meist mit einen vergleichsweise kleinen Kühlkörper aus, bei kleiner Last manchmal auch ohne zusätzliche Kühlung. &lt;br /&gt;
&lt;br /&gt;
Der Nachteil liegt in einem höheren Preis. Übliche Schaltungen, die im Leistungsbereich eines 78xx liegen, kosten etwa 4 bis 5€. Außerdem brauchen diese Schaltungen mehr Platz, weil zum Regler-IC noch die Spule, eine Diode und ein Kondensator kommen. Daher ist der Aufbau auch etwas komplizierter, weil man mehr Bauteile unterbringen und korrekt verschalten muss. Auch das Platinenlayout erfordert etwas Sorgfalt, denn gewisse Leitungen sollten möglichst kurz und breit ausgeführt werden, um die einwandfreie Funktion sicherzustellen. Die Qualität der Spannung kann wegen der hohen Schaltfrequenzen unter Umständen etwas schlechter sein als bei einem Linearregler oder kann zu Problemen in der Schaltung führen wie z.B. die Störung vom Funkempfängern.&lt;br /&gt;
&lt;br /&gt;
==Abwärtswandler==&lt;br /&gt;
[[Bild:smps-down.png|thumb|263px|Prinzipieller Aufbau eines Abwärtsreglers]]&lt;br /&gt;
Am einfachsten zu verstehen ist der Abwärtswandler (Step-Down):&lt;br /&gt;
&lt;br /&gt;
;On-Phase (Schalter S geschlossen): Über S und die Drossel L fliesst Strom an der Diode D vorbei zum Ausgang. Über der Drossel fällt Spannung ab, daher ist V&amp;lt;sub&amp;gt;OUT&amp;lt;/sub&amp;gt; kleiner als V&amp;lt;sub&amp;gt;IN&amp;lt;/sub&amp;gt;. Die Energiedifferenz wird in der Drossel als Magnetfeld gespeichert. Mit der Zeit setzt die Drossel dem Strom einen immer geringer werdenden Widerstand entgegen: Die V&amp;lt;sub&amp;gt;OUT&amp;lt;/sub&amp;gt; steigt immer weiter. Hat V&amp;lt;sub&amp;gt;OUT&amp;lt;/sub&amp;gt; den gewünschten Wert erreicht, dann wird S geöffnet und die On-Phase beendet.&lt;br /&gt;
&lt;br /&gt;
;Off-Phase (Schalter S geöffnet): Die Drossel ist ein induktives Bauelement. Daher kann der Strom durch sie nicht sofort stoppen; er muss weiterfliessen: Die Drossel ist jetzt eine aus der Energie ihres Magnetfelds gespeiste Strompumpe, die den Kondensator C weiter mit Energie versorgt, indem sie Strom durch die Diode D saugt. In der Off-Phase zieht der Verbraucher seine Energie aus dem elektrischen Feld des Kondensators und dem Magnetfeld der Drossel. Sinkt der Strom durch die Drossel unter einen Schwellwert, dann folgt die nächste On-Phase.&lt;br /&gt;
&lt;br /&gt;
==Aufwärtswandler==&lt;br /&gt;
[[Bild:smps-up.png|thumb|267px|Prinzipieller Aufbau eines Aufwärtswandlers]]&lt;br /&gt;
;On-Phase (Schalter S geschlossen): Über S und die Drossel L fliesst Strom an der Diode D vorbei nach GND. Der Stromfluss baut ein Magnetfeld in der Drossel auf. In der On-Phase versorgt sich der Verbraucher aus dem Kondensator C. Erreicht der Strom durch die Drossel einen oberen Schwellwert, wird S geöffnet und die on-Phase endet.&lt;br /&gt;
&lt;br /&gt;
;Off-Phase (Schalter S geöffnet): Die Drossel ist ein induktives Bauelement. Daher kann der Strom durch sie nicht sofort stoppen; er muss weiterfliessen: Die Drossel pumpt  Ladungsträger über die Diode D auf den Kondensator C. Die Energie dazu nimmt sie aus ihrem Magnetfeld. V&amp;lt;sub&amp;gt;OUT&amp;lt;/sub&amp;gt; kann weit über V&amp;lt;sub&amp;gt;IN&amp;lt;/sub&amp;gt; steigen. Sinkt der Strom durch die Drossel unter einen unteren Schwellwert, dann folgt die nächste On-Phase.&lt;br /&gt;
&lt;br /&gt;
==Invertierender Wandler==&lt;br /&gt;
[[Bild:smps-neg.png|thumb|265px|Prinzipieller Aufbau eines invertierenden Wandlers]]&lt;br /&gt;
Funktioniert vom Prinzip wie der Aufwärtswandler.&lt;br /&gt;
&lt;br /&gt;
;On-Phase (Schalter S geschlossen): Über S und die Drossel L fliesst Strom an der Diode D vorbei nach GND. Der Stromfluss baut ein Magnetfeld in der Drossel auf. In der On-Phase versorgt sich der Verbraucher aus dem Kondensator C. Erreicht der Strom durch die Drossel einen oberen Schwellwert, wird S geöffnet und die on-Phase endet.&lt;br /&gt;
&lt;br /&gt;
;Off-Phase (Schalter S geöffnet): Die Drossel ist ein induktives Bauelement. Daher kann der Strom durch sie nicht sofort stoppen; er muss weiterfliessen: Die Drossel saugt über die Diode D Ladungsträger vom Kondensator C. Die Energie dazu nimmt sie aus ihrem Magnetfeld. V&amp;lt;sub&amp;gt;OUT&amp;lt;/sub&amp;gt; sinkt unter GND. Sinkt der Strom durch die Drossel unter einen unteren Schwellwert, dann folgt die nächste On-Phase.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Noch zu ergänzen: &lt;br /&gt;
* Fotos&lt;br /&gt;
* Schaltpläne&lt;br /&gt;
* Beispiele für Schaltregler-Typen und low-drop-Regler&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Spannungsregler als Konstantstromquelle==&lt;br /&gt;
Für viele Aufgaben sind konstante Ströme ebenso wichtig wie konstante Spannungen. Beispielsweise bei Motoren oder Leuchtdioden. Leuchtdioden benötigen in der Regel ca. 20 mA Strom, je nach Ausführung. Vorwiderstände sind oft nicht die beste Lösung, zumal diese bei fallender Spannung den Strom nicht mehr konstant halten und somit die Leuchtkraft unnötig reduzieren. Eine einfache und zugleich günstige Lösung ist die hier abgebildete Schaltung mit dem zweckentfremdeten Spannungsregler LM317K. &lt;br /&gt;
Der LM317K ist normalerweise ein einstellbarer Spannungsregler. Über die untere Schaltung wird er auch zur Konstantstromquelle: Der Spannungsregler stellt sich so ein, daß zwischen &amp;quot;Vout&amp;quot; und &amp;quot;Adj.&amp;quot; 1,25 V liegen. Dank R = U / I läßt sich leicht errechnen, daß bei einem betimmten Widerstandswert ein bestimmter Strom fließt. Und diesen lassen wir dann einfach durch unsere Verbraucher weiterfließen. &lt;br /&gt;
Der LM 317K kann mit einer maximalen Eingangsspannung von ca. 4 bis 35 Volt betrieben werden. Die Strombegrenzung ist in einem Bereich von 1,25 - 0,01 Ampere einstellbar, R1 liegt somit zwischen 1 Ohm bis 120 Ohm. Siehe unten unter [[#Weblinks|Weblinks]], dort findet man ein Online-Formular im Roboternetz, mit der sich die Schaltung genau dimensionieren läßt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:Konstantstromquellelm317.gif]] &lt;br /&gt;
[[Bild:lm317.gif]]&lt;br /&gt;
&lt;br /&gt;
==Autor/en==&lt;br /&gt;
* [[Benutzer:Uwegw|Uwegw]] 15:09, 10. Sep 2006 (CEST)&lt;br /&gt;
* Sprinter&lt;br /&gt;
* [[Benutzer:Frank|Frank]]&lt;br /&gt;
&lt;br /&gt;
==Weblinks==&lt;br /&gt;
* [http://www.roboternetz.de/phpBB2/konstantstrom.php Konstantstromregler mit Spannungsregler berechnen]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Elektronik]]&lt;br /&gt;
[[Kategorie:Grundlagen]]&lt;/div&gt;</summary>
		<author><name>Poky</name></author>	</entry>

	</feed>