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

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=Relais&amp;diff=12296</id>
		<title>Relais</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=Relais&amp;diff=12296"/>
				<updated>2007-06-25T20:52:15Z</updated>
		
		<summary type="html">&lt;p&gt;Maybe: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Ein Relais ist ein Schalter, der mit Hilfe eines Elektromagneten betätigt wird. Es besteht aus zwei getrennten Stromkreisen. Der erste Stromkreis wird als Steuerstromkreis und der Zweite als Arbeitsstromkreis bezeichnet. Wird der Steuerstromkreis über mit Spannung versorgt , dann zieht der Elektromagnet (bestehend aus einer Spule mit Eisenkern) den Kontakt im Arbeitskreis an und der zweite Stromkreis ist ebenfalls geschlossen. &lt;br /&gt;
&lt;br /&gt;
Wird der Steuerstromkreis abgeschaltet, dann lässt der Magnet den Kontakt los, und der Arbeitsstromkreis ist unterbrochen. &lt;br /&gt;
Das Relais bietet somit die Möglichkeit, mit kleinen Spannungen (oft zwischen 5 und 24V), z.B. Batteriespannungen, Stromkreise mit hohen Spannungen und Strömen (auch Netzspannung) zu steuern. &lt;br /&gt;
&lt;br /&gt;
Es gibt auch Relais mit Umschaltkontakten oder sogar mehreren Umschaltkontakten. Zudem gibt es spezielle Relais mit bistabilen Schaltkontakten. Also Kontakte die durch einem Impuls schließen und durch einen weiteren wieder öffnen. Die Bauformen und Baugrößen sind sehr vielfältig.&lt;br /&gt;
&lt;br /&gt;
Relais findet man überall dort wo hohe Spannungen oder starke Ströme mit kleinen Spannungen geschaltet werden müssen. Auch die bekannte Tasterschaltung, welche sich in vielen Hausfluren findet, wird mit einem Relais verwirklicht. Auch Heizungssteuerung schalten oft Pumpen, Brenner usw. mit Relais. &lt;br /&gt;
&lt;br /&gt;
Zum Teil werden heute Relais durch Thyristoren, MosFets und andere Halbleiter ersetzt. Relais bieten aber noch immer eine bessere Trennung zwischen Steuer- und Arbeitsstromkreis. &lt;br /&gt;
Durch sehr viele Schaltvorgänge, insbesondere bei hohen Strömen, nutzen sich Kontakte und Mechanik ab, dadurch haben Relais nur eine begrenzte Lebensdauern. Anwendungen, die viele Schaltvorgänge erfordern, zum Beispiel ständig mehrere Schaltvorgänge pro Minute, sind daher weniger gut für Relais geeignet. &lt;br /&gt;
&lt;br /&gt;
[[Bild:relais.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Autor==&lt;br /&gt;
* Frank&lt;br /&gt;
&lt;br /&gt;
==Siehe auch==&lt;br /&gt;
* [[RN-Relais]]&lt;br /&gt;
* [[FET]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Elektronik]]&lt;br /&gt;
[[Kategorie:Grundlagen]]&lt;/div&gt;</summary>
		<author><name>Maybe</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=Bascom_-_Erstes_Programm_in_den_AVR_Controller_%C3%BCbertragen&amp;diff=12282</id>
		<title>Bascom - Erstes Programm in den AVR Controller übertragen</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=Bascom_-_Erstes_Programm_in_den_AVR_Controller_%C3%BCbertragen&amp;diff=12282"/>
				<updated>2007-06-23T14:05:35Z</updated>
		
		<summary type="html">&lt;p&gt;Maybe: /* Das erste Programm */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Wie ist der Ablauf mit Bascom Basic?==&lt;br /&gt;
Atmel Controller (also auch [[RN-Control]]) lassen in verschiedenen Programmiersprachen programmieren.  Sehr beliebt sind diesbezüglich der Basic Compiler [[Bascom]], der C Compiler GCC und der AVR Studio Assembler. &lt;br /&gt;
&lt;br /&gt;
Der Einstieg wird einem besonders einfach beim [[Bascom]] Compiler gemacht. Nicht nur dass dieser unzählige von Funktion besitzt, nein auch die Entwicklungsumgebung ist sehr umfangreich. Simulator, [[Terminalprogramm]] und Flasher (Übertragungsprogramm) sowie eine ganze Reihe anderer Tools sind bereits integriert. Zudem erzeugt der Compiler überraschend kompakten Maschinencode.&lt;br /&gt;
Es gibt eine kostenlose Demo-Version von [[Bascom]]. Die Einschränkung gegenüber der Vollversion besteht im wesentlichen darin, das nur 4K Code erzeugt werden kann. Dies reicht bereits für viele kleinere Anwendungen aus. Für ca. 90 Euro gibt’s auch eine Vollversion ohne Einschränkung. Fast alle gängigen [[Atmel]]-Controller lassen sich mit Bascom Basic programmieren.&lt;br /&gt;
&lt;br /&gt;
Der Einstieg ist sehr einfach. Nachdem man sich die Demo oder Vollversion besorgt hat, installiert man das Programm über SETUP auf einem Windows-Rechner, dies ist recht unproblematisch.&lt;br /&gt;
Das Programm wird anschließend über das START-Menü aufgerufen.&lt;br /&gt;
&lt;br /&gt;
Bevor ein erstes Programm entwickelt wird, sollte man erst mal einige grundsätzliche Optionen in Bascom einstellen. Zum Programmieren eines Controllers benötigt man ein speziellen Adapter welcher einige Leitungen des Controllers (SPI-Ports und RESET) mit dem PC verbindet. Man spricht hier von einem [[AVR-ISP Programmierkabel|AVR-ISP Programmierkabel]] oder auch [[AVR-ISP Programmierkabel|ISP-Dongel]] genannt, dieser wird oft an den Druckerport des PC  angeschlossen. &lt;br /&gt;
&lt;br /&gt;
Beispiel eines ISP-Programmierkabels (hier [[AVR-ISP Programmierkabel|Bauanleitung]]):&lt;br /&gt;
&lt;br /&gt;
[[Bild:avrtutorial_ispkabel.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
Verwendet man ein solches Kabel, so sollte man in Bascom folgende Optionen einstellen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
http://www.roboternetz.de/bilder/bascom/bascomispoptionen.gif&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Diese Optionen bleiben dauerhaft gespeichert und müssen nicht bei jedem neuen Programm geändert werden.&lt;br /&gt;
&lt;br /&gt;
Nun müssen noch die Output-Optionen in [[Bascom]] festgelegt werden. Bascom ist in der Lage eine ganze Reihe von verschiedenen Dateien zu generieren um später verschiedene Programmiertools und Debugger nutzen zu können. Empfehlenswert ist folgende Grundeinstellung:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
http://www.roboternetz.de/bilder/bascom/bascomoutputoptionen.gif&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Das erste Programm===&lt;br /&gt;
&lt;br /&gt;
Über das Menü File/New kann dann ein neues Fenster für ein erstes Bascom-Programm geöffnet werden.&lt;br /&gt;
Als erstes Einstiegsprogramm könnte ein &amp;quot;Hello World&amp;quot;-Programm so aussehen:&lt;br /&gt;
&lt;br /&gt;
  Print &amp;quot;**** RN-CONTROL sagt Hello World *****&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Dieses Programm würde allerdings kaum funktionieren, außer wenn man unter Optionen den Controllertyp, die genaue Quarzfrequenz und Baudrate des verwendeten Controllers (Controllerboard´s) richtig eingestellt hat.&lt;br /&gt;
&lt;br /&gt;
Es ist allerdings empfehlenswert diese Werte lieber im Programmcode mit festzulegen. Dadurch hat man eine wesentlich bessere Übersicht und kann die Programme auch leichter, ohne zusätzliche Kommentare, an interessierte weitergeben. Eventuell vorhandene Einstellungen im Optionsmenü werden durch die Anweisungen im Code außer Kraft gesetzt.&lt;br /&gt;
Im Falle von dem Microcontrollerboard [[RN-Control]] mit AVR [[ATMega32]] sollte daher jeder Quelltext mit folgenden Zeilen beginnen:&lt;br /&gt;
&lt;br /&gt;
  $regfile = &amp;quot;m32def.dat&amp;quot;&lt;br /&gt;
  $framesize = 32&lt;br /&gt;
  $swstack = 32&lt;br /&gt;
  $hwstack = 32&lt;br /&gt;
  $crystal = 16000000&lt;br /&gt;
  $baud = 9600&lt;br /&gt;
   do&lt;br /&gt;
     Print &amp;quot;**** RN-CONTROL sagt Hello World *****&amp;quot;&lt;br /&gt;
     wait 1&lt;br /&gt;
   loop&lt;br /&gt;
&lt;br /&gt;
Die erste Anweisung $regfile  legt fest für welchen Controllertyp überhaupt Code produziert werden soll. Die Anweisungen    $framesize,  $swstack,  $hwstack sind eigentlich bei dem kleinen Programm nicht notwendig. Sie legen den Platz fest, der für bestimmte Stackbereiche (lokale Variablen / Funktionsparameter) reserviert wird. Man sollte sich jedoch gleich angewöhnen diese Anweisungen in den Code zu schreiben. Das ermitteln der richtigen Werte für die Stackgröße ist etwas aufwendiger, dazu bietet Bascom spezielle Funktionen für den Simulator. In der Regel kommt man aber mit den oberen Werten schon bei den meisten Programmen hin. Im Zweifel sollte man die Werte etwas erhöhen. Je höher die Werte, desto mehr Speicher wird natürlich benötigt. Zu geringe Werte können aber unter Umständen, wenn z.B. viele Subroutinen, Funktionen, Interrupts, lokale Variablen genutzt werden, zu seltsamen schwer auffindbaren Programmfehlern führen. &lt;br /&gt;
Wenn also eine Funktion völlig unsinnige Ergebnisse liefert oder Abstürze erfolgen, dann ist es Zeit den Stack mal zu prüfen.&lt;br /&gt;
&lt;br /&gt;
Die Anweisung $crystal legt die Quarzfrequenz fest. Es ist wichtig, dass Bascom weiss, mit welcher Quarzfrequenz der Controller arbeitet. Ansonsten liefern viele Funktionen falsche Ergebnisse oder funktionieren erst garnicht. Anzumerken ist hier, dass [[AVR]] Controller der Mega Serie (wie der [[ATMega32]] in [[RN-Control]]) nach dem Kauf noch gar keinen Quarz sondern den internen Taktgenerator nutzen. Der interne Taktgenerator läuft immer mit 1 Mhz, so dass man bei neuen Controllern eigentlich   $crystal=1000000 angeben müsste. Zumindest solange bis man den Quarz über die sogenannten Fusebits (bestimmte Einstellungen im Controller) aktiviert.&lt;br /&gt;
Da in diesem Beispiel jedoch das Board [[RN-Control]] gleich auf die vollen 16 Mhz umgeschaltet werden soll,  geben wir gleich $crystal = 16000000  an.&lt;br /&gt;
&lt;br /&gt;
Die Anweisung  $baud = 9600 bestimmt die Übertragungsgeschwindigkeit der RS232 Schnittstelle im Controller. 9600 Baud ist ein Wert der sehr oft genutzt wird. Da ein Controller ja kein Bildschirm besitzt, erfolgen alle Ausgaben gewöhnlich über diese RS232  Schnittstelle. Man muss also nur das eingebaute [[Terminalprogramm]] in [[Bascom]] starten und kann dann alle Ausgaben des angeschlossenen Controllers am Bildschirm verfolgen. Dies ist sehr hilfreich bei der Fehlersuche in Programmen, daher gehört neben dem [[AVR-ISP Programmierkabel]] eigentlich auch immer ein RS232-Kabel zur Standard Ausstattung eines Programmierers.&lt;br /&gt;
&lt;br /&gt;
Nachdem nun der Quellcode erstellt wurde muss dieser compiliert (in Maschinencode übersetzt) werden. Dies geschieht durch einen einfachen Klick: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
http://www.roboternetz.de/bilder/bascom/bascomcompilieren550_a.gif&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hat man noch einen Fehler im Quellcode, dann steht nun gewöhnlich im unteren Bereich eine Fehlermeldung, ansonsten dürfte ein Fenster ähnlich wie dieses erscheinen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
http://www.roboternetz.de/bilder/bascom/bascomcompiliermsg_b.gif&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dieser Vorgang dauert oft nur wenige Sekunden, danach ist das Maschinencodeprogramm fertig. Damit es ausgeführt werden kann, muss es natürlich in den Controller übertragen werden. Dazu verbindet man das Controllerboard über ein ISP-Programmierkabel mit dem Druckerport des PC´s. Zudem schaltet man die Betriebsspannung des Baords ein. Nun kann der Bascom Programmiermodus durch einen Klick aktiviert werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
http://www.roboternetz.de/bilder/bascom/bascomprgaktivieren550_c.gif&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Im Bascom Programmiermodus wird der Maschinencode in Hex-Form angezeigt. In diesem Dialog brauchen wir eigentlich nur die Übertragung zu starten. Dies geschieht wiederum durch einen Klick:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
http://www.roboternetz.de/bilder/bascom/bascomispstart550_d.gif&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Auch die Übertragung dauert nur wenige Sekunden. Wenn alles geklappt hat sollte in der Statuszeile links &amp;quot;OK&amp;quot; stehen. Leider ist die ISP Übertragung manchmal etwas störanfällig so das man einen zweiten oder dritten Versuch braucht. Kommt dies öfters vor, sollte man prüfen ob nicht ein Netzkabel oder eine andere Störquelle das ISP Kabel kreuzt.&lt;br /&gt;
&lt;br /&gt;
Nachdem man das Programm übertragen hat, muss man bei einem neuen Controller noch die sogenannten Fusebit´s umschalten. Unter dem Begriff Fusebit´s versteht man bestimmte Controllereinstellungen die ebenfalls über das ISP-Programmierkabel geändert werden können. Es gibt eine ganze Reihe von Einstellungen die man verändern kann, dies ist bei jedem Controller ein wenig anders. gewöhnlich reicht es jedoch den Quarz zu aktivieren und ein soganannten JTAG-Interface zu deaktivieren. Das JTAG-Interface ist ein spezielles Debugger-Interface um Programmfehler zu finden, es kann jedoch nur genutzt werden wenn man spezielle Zusatzhardware besitzt. Da dies selten der Fall ist kann man diese Port´s auch für andere Zwecke nutzen, daher wird dieses oft deaktiviert.&lt;br /&gt;
Um die Fusebit´s nun zu ändern rufen wir im Programmierdialog die Tafel mit den [[Fusebits]] durch einen klick auf:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
http://www.roboternetz.de/bilder/bascom/bascomfusebitdialog550_e.gif&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Controller muss beim Aufruf dieses Dialoges angeschlossen und mit Strom versorgt werden.&lt;br /&gt;
Nun können wir die [[Fusebits]] an zwei Stellen ändern. Dies geht in [[Bascom]] sehr bequem, da wir in zwei Feldern nur eine andere Auswahl treffen müssen, siehe Bild:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
http://www.roboternetz.de/bilder/bascom/bascomquarz550_f.gif&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Beim Quarz ist es meist die unterste Auswahlmöglichkeit. Die [[Fusebits]] sind also richtig eingestellt wenn es wie auf dem oberen Bild aussieht. Bei dem Board [[RN-Control]] sind diese Einstellungen in der Regel nicht notwendig da diese bereits vor der Auslieferung umgestellt werden.&lt;br /&gt;
Die Fusebits müssen auch nur einmal umgestellt werden. Die Einstellungen  bleiben auch erhalten wenn ein neues Programm eingespielt wird.&lt;br /&gt;
Nicht vergessen dass nach der Änderungen der Fusebit-Auswahl diese auch über den Button &amp;quot;WRITE FS&amp;quot; und &amp;quot;WRITE FSH&amp;quot; in den Controller übertragen werden müssen. &lt;br /&gt;
&lt;br /&gt;
Vorsicht: Vor der Übertragung darauf achten dass die richtigen Quarzeinstellungen gewählt wurden. Man kann den Controller dort nämlich auch auf aktive externe Taktgeneratoren umstellen. Wenn man dies versehentlich tut und keinen echten Taktgenerator hat, dann ist der Controller quasi tot und muss gewechselt werden.&lt;br /&gt;
&lt;br /&gt;
Mit der Programmübertragung wird gleichzeitig auch immer ein RESET ausgeführt und das Programm im Controller gestartet. Wenn Sie nun also das Terminalprogramm in Bascom starten (Parameter 9600 baud, 8 Bit, 1 Stopp Bit), dann wird im Sekundentakt  ''**** RN-CONTROL sagt Hello World *****''  erscheinen.&lt;br /&gt;
&lt;br /&gt;
'''Nun viel Spaß beim Einstieg'''&lt;br /&gt;
&lt;br /&gt;
==Autor==&lt;br /&gt;
* Frank&lt;br /&gt;
&lt;br /&gt;
==Siehe auch==&lt;br /&gt;
*[[Bascom]]&lt;br /&gt;
*[[AVR-ISP Programmierkabel]]&lt;br /&gt;
*[[RN-Board FAQ-Seite]] &lt;br /&gt;
*[[Atmel]]&lt;br /&gt;
*[[RN-Control]]&lt;br /&gt;
*[[AVR-Einstieg leicht gemacht]]&lt;br /&gt;
*[[Buchvorstellungen]]&lt;br /&gt;
&lt;br /&gt;
==Weblinks==&lt;br /&gt;
[http://www.roboternetz.de/phpBB2/viewforum.php?f=32 Bascom-Forum]&lt;br /&gt;
[[Kategorie:Microcontroller]]&lt;br /&gt;
[[Kategorie:Software]]&lt;br /&gt;
[[Kategorie:Grundlagen]]&lt;br /&gt;
[[Kategorie:Praxis]]&lt;br /&gt;
[[Kategorie:Robotikeinstieg]]&lt;/div&gt;</summary>
		<author><name>Maybe</name></author>	</entry>

	</feed>