<?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=Robo+tom+24</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=Robo+tom+24"/>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=Spezial:Beitr%C3%A4ge/Robo_tom_24"/>
		<updated>2026-04-11T16:13:55Z</updated>
		<subtitle>Benutzerbeiträge</subtitle>
		<generator>MediaWiki 1.25.1</generator>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=Arduino_Tutorial&amp;diff=21087</id>
		<title>Arduino Tutorial</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=Arduino_Tutorial&amp;diff=21087"/>
				<updated>2012-09-19T19:44:03Z</updated>
		
		<summary type="html">&lt;p&gt;Robo tom 24: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dieses mehrwöchige/mehrmonatige Tutorial soll einem den Einstieg in die Welt der Mikrocontroller mit Hilfe des Arduino 2560 R3 Boards erleichtern. Angefangen wird natürlich bei den Grundlagen, also bei der Hochsprache &amp;quot;C&amp;quot;. Das Tutorial ist chronologisch aufgebaut und kann ohne jegliche Vorkenntnisse abgearbeitet und (hoffentlich) verstanden  werden&lt;br /&gt;
{{FarbigerRahmen|&lt;br /&gt;
'''In Bearbeitung''' - Tutorial wird dann regelmäßig geschrieben wenn die Basis da ist&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
= Aller Anfang... =&lt;br /&gt;
..ist gar nicht mal so schwer.&lt;br /&gt;
Dieses Tutorial soll all jenen helfen, die gerade neu einsteigen und mit wenig Hardware viel erreichen wollen. Es wird keine vorherigen Kenntnisse benötigt, ein wenig Zeit und technisches Interesse sollte jedoch mitgebracht werden&lt;br /&gt;
&lt;br /&gt;
Aus eigener Erfahrung: Keine Angst vor neuem!&lt;br /&gt;
Das was wir hier machen ist (mehr oder weniger) ungefährlich und es kann nichts kaputt werden. Es sollte aber alles Punkt für Punkt beachtet und lieber zweimal gelesen werden, bevor man etwas falsch macht.&lt;br /&gt;
&lt;br /&gt;
== Grundlegendes ==&lt;br /&gt;
=== Ziele ===&lt;br /&gt;
* Verstehen und Anwenden von Mikrocontrollern&lt;br /&gt;
* Verstehen und Anwenden der Hochsprache &amp;quot;C&amp;quot;, genauer &amp;quot;AVR-GCC&amp;quot;&lt;br /&gt;
* Anwenden von Arduino-Bibliotheken ''(eher weniger)''&lt;br /&gt;
* Ansteuern von Peripheriegeräten im Zusammenhang mit µC:&lt;br /&gt;
** LED&lt;br /&gt;
** Relais&lt;br /&gt;
** usw.&lt;br /&gt;
* Auslesen von Sensoren mit µC:&lt;br /&gt;
** Temperatursensoren (PT1000, KTY81, etc)&lt;br /&gt;
** Lichtschranken (z.B. zu Drehzahlmessung)&lt;br /&gt;
** usw.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Was gebraucht wird ===&lt;br /&gt;
Für das Tutorial wird das '''Arduino 2560 R3''' Board verwendet, dazu wird noch eine externe Spannungsversorgung wenn man viel Peripherie angschlossen hat und ein USB Kabel benötigt.&lt;br /&gt;
Als integrierte Entwicklungsumgebung (IDE) verwenden wir die Freeware '''&amp;quot;Atmel Studio 6.0&amp;quot;''' und '''&amp;quot;WinAVR&amp;quot;''' zum übertragen auf den Controller. Für das C-Tutorial werden wir aber das '''&amp;quot;Microsoft Visual C++ Express&amp;quot;''' verwenden , das ebenso kostenlos ist.&lt;br /&gt;
&lt;br /&gt;
'''Zusammenfassung:'''&lt;br /&gt;
* Arduino 2560 R3 Mikrocontrollerboard&lt;br /&gt;
* USB A auf B Kabel (&amp;quot;Normaler&amp;quot; USB Anschluss auf den abgeschrägten Quadratischen)&lt;br /&gt;
* PC/Notebook mit USB-Anschluss zum Programmieren&lt;br /&gt;
* IDE: Atmel Studio 6.0&lt;br /&gt;
* Übertragungsprogramm: WinAVR&lt;br /&gt;
* C - IDE: Microsoft Visual C++ Express&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Wir starten mit C =&lt;br /&gt;
Für alle Neulinge die komplett neu in die Materie einsteigen gibts es am Anfang ein kleines C - Tutorial. Dies will ich aber nicht zu tief greifend machen, denn viele Funktionen wie Strings werden nur in Verbindung mit einem LCD bzw. einer Seriellen Schnittstelle gebraucht, solche Funktionen werde ich dann erklären, wenn sie gebraucht werden. Ebenso werden wir einige Bereiche nur überfliegen und nicht bis ins letzte Detail erklären, für das gibt es dann facheinschlägige Internetseiten und (ja man glaubt es kaum) Bücher.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Hello World und der Grundaufbau ==&lt;br /&gt;
Ein C Programm besteht grundsätzlich aus 2 Hauptteilen:&lt;br /&gt;
# Hauptprogramm&lt;br /&gt;
# Include-Datein&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;eine_datei.h&amp;gt; //Include Datei&lt;br /&gt;
#include &amp;quot;eine_andere_datei.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
void main() //Hier fängt das Hauptprogramm an&lt;br /&gt;
{&lt;br /&gt;
//Funktionsaufruf&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Diese paar Zeilen Code sind bereits ein lauffähiges, ausführbares Programm, unsere Konsolenanwendung bleibt aber leer, da wir keine Funktionen aufrufen.&lt;br /&gt;
&lt;br /&gt;
Gleich vorweg: &amp;quot;//&amp;quot; ist ein Kommentar -&amp;gt; Keine Auswirkung auf den Programmablauf - mehr dazu später&lt;br /&gt;
&lt;br /&gt;
=== Include Dateien ===&lt;br /&gt;
Die Inlcude Datein sind jene Datein, in denen Funktionen genauer definiert sind. Also wie die Funktion aufgerufen werden muss&lt;br /&gt;
&lt;br /&gt;
Dateien, die im Standart Include Verzeichniss sind werden in spitze Klammern geschrieben (&amp;lt;...&amp;gt;), Dateien welche im Projektverzeichniss sind werden in doppelte Hochkomma geschrieben (&amp;quot;...&amp;quot;), diese Dateien werden von uns selbst geschrieben, z.B. um große Unterprogramme auslagern zu können&lt;br /&gt;
&lt;br /&gt;
Häufig genutzte Dateien sind (im Windows-Bereich):&amp;lt;br/&amp;gt;&lt;br /&gt;
*conio.h - Character Funktionen (getch etc)&amp;lt;br/&amp;gt;&lt;br /&gt;
*stdio.h - Standart Ein-Ausgabe (printf, scanf etc)&amp;lt;br/&amp;gt;&lt;br /&gt;
*stdlib.h - Zufallsfunktionen, CMD-Funktion&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Hauptprogramm ===&lt;br /&gt;
Das Hauptprogramm wird bei jedem Programmaufruf aufgerufen und abgearbeitet, ist das Hauptprogramm zu Ende, beendet sich das ganze Programm (Konsolenanwendung)&lt;br /&gt;
Das Hauptprogramm selbst besteht ebenso aus mehreren Teilen:&lt;br /&gt;
# Der Funktionskopf:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
void main ()&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Hier steht der Name, bei einem Hauptprogramm immer ''main'', bei Unterprogrammen (dazu später) kann man diesen frei wählen&lt;br /&gt;
Das ''void'' sagt aus, dass das Programm nichts zurück liefert, Unterprogramme können aber auch etwas zurückliefern, dazu ebenso später. &lt;br /&gt;
&lt;br /&gt;
# Der Funktionsaufruf:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
//Funktionsaufruf&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Zwischen den geschwungenen Klammern wird das Programm abgearbeitet, also Berechnungen usw. ausgeführt &lt;br /&gt;
&lt;br /&gt;
=== Ausgabe am Bildschirm ===&lt;br /&gt;
Die Standartausgabe am Bildschirm erfolgt über die Funktion ''printf''&lt;br /&gt;
&lt;br /&gt;
Syntax:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
printf(&amp;quot;Ausgabetext unter doppeltem Hochkomma&amp;quot;, Variablen);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Für die Formatierung und einige Zusatzfunktionen gibt es sogenannte Escape Sequenzen. Diese werden einfach in den Text eingeaut, die wichtigsten sind:&amp;lt;br/&amp;gt;&lt;br /&gt;
* \n Nächste Zeile &amp;lt;br/&amp;gt;&lt;br /&gt;
* \t Tabulator (horizontal)&amp;lt;br/&amp;gt;&lt;br /&gt;
* \a Alarmton (Beep)&lt;br /&gt;
&lt;br /&gt;
=== Hello World ===&lt;br /&gt;
Mit diesen einfachen Funktionen können wir nun unser erstes &amp;quot;sinnvolles&amp;quot; Programm schreiben:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
void main ()&lt;br /&gt;
{&lt;br /&gt;
   printf(&amp;quot;Hello World!&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Bei Verwendung des Microsoft Visual Studios wird unser Programm einfach mit der Tastenkombination [Strg]+[F5] gestartet&lt;br /&gt;
&lt;br /&gt;
== Variablen ==&lt;br /&gt;
Variablen werden verwendet um veränderbare (variable) Werte zu speichern.&lt;br /&gt;
Diese Werte können unterschiedlich groß sein, deshalb gibt es unterschiedliche Datentypen:&lt;br /&gt;
&lt;br /&gt;
Ganzzahlige Variablen:&lt;br /&gt;
 NAME                   WERTEBEREICH                              SPEICHERBEDARF&lt;br /&gt;
 signed char 	        -128 bis 127 	                          1 Byte&lt;br /&gt;
 unsigned char 	        0 bis 255 	                          1 Byte&lt;br /&gt;
 short int 	        -32768 bis 32767                	  2 Byte&lt;br /&gt;
 unsigned short int 	0 bis 65535               	          2 Byte&lt;br /&gt;
 int 	                -32768 bis 32767                          2 Byte&lt;br /&gt;
 unsigned int 	        0 bis 65535 	                          2 Byte&lt;br /&gt;
 long int 	        -2147483648 bis 2147483647                4 Byte&lt;br /&gt;
 unsigned long int 	0 bis 4294967296                	  4 Byte&lt;br /&gt;
&lt;br /&gt;
Gleitkomma Variablen:&lt;br /&gt;
 NAME                   WERTEBEREICH                    GENAUIGKEIT     SPEICHERBEDARF&lt;br /&gt;
 float 	                1.2 * 10&amp;lt;sup&amp;gt;-38&amp;lt;/sup&amp;gt; bis 3.4 * 10&amp;lt;sup&amp;gt;38&amp;lt;/sup&amp;gt; 	6 Stellen 	4 Bytes&lt;br /&gt;
 double 	                2.3 * 10&amp;lt;sup&amp;gt;-308&amp;lt;/sup&amp;gt; bis 1.7 * 10&amp;lt;sup&amp;gt;308&amp;lt;/sup&amp;gt; 	15 Stellen 	8 Bytes&lt;br /&gt;
 long double 	        3.4 * 10&amp;lt;sup&amp;gt;-4932&amp;lt;/sup&amp;gt; bis 1.1 * 10&amp;lt;sup&amp;gt;4932&amp;lt;/sup&amp;gt; 	19 Stellen 	10 Bytes&lt;br /&gt;
&lt;br /&gt;
=== Variablen definieren/deklarieren/initialisieren ===&lt;br /&gt;
==== Definition - Deklaration ====&lt;br /&gt;
Als erster Schritt müssen Variblen definiert werden: es muss Name und Datentyp festgelegt werden, automatisch dazu wird ein gewisser Speicherplatz für die Variable reserviert.&lt;br /&gt;
&lt;br /&gt;
Eine Definition einer Integer Variable könnte zum Beispiel so aussehen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
int variablenname;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Somit haben wir für die Variable &amp;quot;variablenname&amp;quot; einen 2 Byte großen Speicherplatz ''reserviert''.&lt;br /&gt;
&lt;br /&gt;
==== Initialisierung ====&lt;br /&gt;
Nun schreiben wir ''erstmals'' Daten in unseren Speicherbereich.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
variablenname = 2012;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{|{{Blaueschmaltabelle}}&lt;br /&gt;
|'''Merke:'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Deklaration''' ist nur die Vergabe eines Namens und eines Typs für die Variable.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Definition''' ist die Reservierung des Speicherplatzes.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Initialisierung''' ist die Zuweisung eines ersten Wertes.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Alles auf einmal ====&lt;br /&gt;
Die Deklaration und Initialisierung kann auch auf einmal geschehen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
int variablenname = 2012;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Variablen ausgeben ===&lt;br /&gt;
Mit printf werden auch die Werte von Berechnungen ausgegeben:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
//anderer Programmcode&lt;br /&gt;
printf(&amp;quot;Inhalt der Int-Variable: %d&amp;quot;, variablenname);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Bildschirmausgabe:&lt;br /&gt;
&lt;br /&gt;
{|{{Blauetabelle}}&lt;br /&gt;
|&lt;br /&gt;
Inhalt der Int-Variable: 2012&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''Erklärung:'''&lt;br /&gt;
%d ist ein ''Formatzeichen'', wird bei der Bildchirmausgabe durch den Variableninhalt ersetzt&lt;br /&gt;
Formatzeichen:&amp;lt;br/&amp;gt;&lt;br /&gt;
%d - Int und Long Variablen&amp;lt;br/&amp;gt;&lt;br /&gt;
%f - Float&amp;lt;br/&amp;gt;&lt;br /&gt;
%lf - double&amp;lt;br/&amp;gt;&lt;br /&gt;
%s - Zeichenkette (String)&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Mehrere Variablen ausgeben ====&lt;br /&gt;
Es können natürlich auch mehrere Variablen auf einmal ausgegeben werden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
zweite_variable=1.234;&lt;br /&gt;
printf(&amp;quot;Erste Variable: %d \n Die Zweite Variable steht in der nächsten Zeile: %f&amp;quot;, variablenname, zweite_variable);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Bildschirmausgabe:&lt;br /&gt;
&lt;br /&gt;
{|{{Blauetabelle}}&lt;br /&gt;
|&lt;br /&gt;
Erste Variable: 2012 &amp;lt;br/&amp;gt; Die Zweite Variable steht in der nächsten Zeile: 1.234&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{|{{Blaueschmaltabelle}}&lt;br /&gt;
|'''Merke:'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Wenn man mehrere Variablen ausgibt werden die gleichen Positionen verwendet, d.h. für das erste Formatzeichen wird auch die erste nachstehende Variable verwendet, für das zweite Formatzeichen dann die zweite Variable.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Kommentare ==&lt;br /&gt;
Um Programme so lesbar wie möglich zu gestalten kann man verschiedene Kommentare hinzufügen:&lt;br /&gt;
* //Kommentartext  Dieser Kommentar gilt ''nur bis zum Zeilenende'' der selben Zeile&lt;br /&gt;
* /* Kommentartext */ Dieser Kommentar gilt zwischen den beiden Symbolen und kann auch über ''mehrere Zeilen'' gehen&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Kontrollstrukturen ==&lt;br /&gt;
Zum Überprüfen und Vergleichen von Werten gibt es spezielle Funktionen&lt;br /&gt;
Die wohl wichtigste Kontrollstruktur ist die ''if-Abfrage''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== if - Abfrage ===&lt;br /&gt;
'''Syntax:'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
if(Abfragewert Operator Vergleichswert)&lt;br /&gt;
{&lt;br /&gt;
//Ausführung wenn Abfrage zutrifft&lt;br /&gt;
}&lt;br /&gt;
else&lt;br /&gt;
{&lt;br /&gt;
//Ausführung wenn Abfrage NICHT zutrifft&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Erklärung:'''&lt;br /&gt;
Der Operator ist ein sogenannter Vergleichsoperator:&amp;lt;br/&amp;gt;&lt;br /&gt;
== ist gleich     (Wahr, wenn beide Seiten gleich)&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;gt;  Größer         (Wahr, wenn Abfragewert größer Vergleichswert)&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;gt;= Größer Gleich  (Wahr, wenn Abfragewert größer oder gleich Vergleichswert)&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;  Kleiner        (Wahr, wenn Abfragewert kleiner Vergleichswert)&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;  Kleiner Gleich (Wahr, wenn Abfragewert kleiner oder gleich Vergleichswert)&amp;lt;br/&amp;gt;&lt;br /&gt;
!= Ungleich       (Wahr, wenn Abfragewert ungleich Vergleichswert)&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Beispiel:'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
//Hier wurde eine Zahl mittels scanf eingelesen&lt;br /&gt;
&lt;br /&gt;
if(zahl &amp;gt; 0)  //Jetzt wird überprüft ob die Zahl größer als 0 ist, somit positiv&lt;br /&gt;
{&lt;br /&gt;
   printf(&amp;quot;Zahl ist Positiv&amp;quot;);   //Wenn das zurtrifft wird &amp;quot;Positiv&amp;quot; ausgegeben&lt;br /&gt;
}&lt;br /&gt;
else&lt;br /&gt;
{&lt;br /&gt;
   printf(&amp;quot;Zahl ist negativ&amp;quot;);    //Wenn nicht, wird &amp;quot;Negativ&amp;quot; ausgegeben&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Man kann auch mehrere Abfragen miteinander verknüpfen:'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
//Beispiel: Es soll herausgefunden werden, ob eine Zahl positiv oder 0 ist. &lt;br /&gt;
//Wenn dies nicht zutrifft soll geprüft werden ob die Zahl kleiner oder gleich -10 ist&lt;br /&gt;
&lt;br /&gt;
//Hier wurde die Zahle eingelesen&lt;br /&gt;
&lt;br /&gt;
if(zahl &amp;gt;= 0) //Prüfen ob Zahl positiv&lt;br /&gt;
{&lt;br /&gt;
  printf(&amp;quot;Zahl positiv&amp;quot;)&lt;br /&gt;
}&lt;br /&gt;
else if(zahl &amp;lt;= -10)  //ACHTUNG: Das hier wird NUR geprüft wenn die erste Abfrage NICHT wahr ist&lt;br /&gt;
{&lt;br /&gt;
  printf(&amp;quot;Zahl kleiner als -10&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
//Logische Operatoren ( &amp;amp;&amp;amp; || ! )&lt;br /&gt;
&lt;br /&gt;
=== switch/case Abfrage ===&lt;br /&gt;
//Mehrfachabrage usw...&lt;br /&gt;
&lt;br /&gt;
= µC - Programmierung =&lt;br /&gt;
== Über das Board ==&lt;br /&gt;
//In Arbeit&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Begriffserklärungen =&lt;br /&gt;
'''C'''&lt;br /&gt;
* CPU = '''C'''entral'''P'''rocessing'''U'''nit, Hauptprozessor&lt;br /&gt;
'''I'''&lt;br /&gt;
* IDE = '''I'''ntegrated'''D'''evelopment'''E'''nvironment, integrierte Entwicklungsumgebung, bestehend aus: Texteditor, Präprozessor, Compiler, Linker, Debugger&lt;br /&gt;
'''M'''&lt;br /&gt;
* Mikrocontroller = IC (Krabbelkäfer) der aus einer CPU, RAM, Flash-Speicher, Timer usw. zusammensetzt ist&lt;br /&gt;
'''R'''&lt;br /&gt;
* RAM = '''R'''andom-'''A'''ccess '''M'''emory, Speicher auf den laufend direkt zugegriffen werden kann, Arbeitsspeicher&lt;br /&gt;
&lt;br /&gt;
'''Sonderzeichen'''&lt;br /&gt;
* µC = Mikrocontroller&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Über das Tutorial =&lt;br /&gt;
== Dauer ==&lt;br /&gt;
Eine Ende ist vorerst nicht in Sicht, es wird mehr oder weniger gleich wie in der Schule vorgegangen. Ich schätze aber, dass wir Ende des Schuljahres (Juli 2013) von den Grundzügen, über Timer/Interrupts bis hin zur seriellen Schnittstelle kommen sollten.&lt;br /&gt;
&lt;br /&gt;
== Projekte ==&lt;br /&gt;
Geplant ist ein schrittweiser Aufbau mit einem Mix aus Lernstoff und praktischen Beispielen/Projekten, wobei bei diesen Projekten meistens nur &amp;quot;Standarthardware&amp;quot; (LEDs, Transistoren, Relais, Schalter usw) verwendet wird. Es kann aber auch mal vorkommen, dass mehr Teile benötigt werden, dass wird dann (wenn möglich) aber eher als Zusatzbeispiel gemacht. Sollte es sich nicht vermeiden lassen externe Hardware anzuschaffen werd ich versuchen, dies so früh wie möglich anzukündigen.&lt;br /&gt;
&lt;br /&gt;
== Autor ==&lt;br /&gt;
* Thomas PAIL, Geb.: 1996, Schüler HTLuVA Pinkafeld - Elektronik und technische Informatik&lt;br /&gt;
* Für Infos und Kontakt:&lt;br /&gt;
[http://www.roboternetz.de/community/members/53900-robo_tom_24 robo_tom_24 RoboterNetz - Profil]&lt;br /&gt;
&lt;br /&gt;
== Diskussionen über das Tutorial ==&lt;br /&gt;
[http://www.roboternetz.de/community/threads/59197-Diskussionsthread-Arduino-Tutorial-RN-Wiki-Artikel?referrerid=53900 Diskussionsthread]&lt;br /&gt;
&lt;br /&gt;
= Schriften =&lt;br /&gt;
# Platzhalter&lt;br /&gt;
&lt;br /&gt;
 [[Kategorie:Microcontroller]]&lt;br /&gt;
 [[Kategorie:Software]]&lt;br /&gt;
 [[Kategorie:Grundlagen]]&lt;br /&gt;
 [[Kategorie:Quellcode C]]&lt;/div&gt;</summary>
		<author><name>Robo tom 24</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=Arduino_Tutorial&amp;diff=20998</id>
		<title>Arduino Tutorial</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=Arduino_Tutorial&amp;diff=20998"/>
				<updated>2012-09-13T19:35:17Z</updated>
		
		<summary type="html">&lt;p&gt;Robo tom 24: Erweiterung (Kontrollstrukturen)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dieses mehrwöchige/mehrmonatige Tutorial soll einem den Einstieg in die Welt der Mikrocontroller mit Hilfe des Arduino 2560 R3 Boards erleichtern. Angefangen wird natürlich bei den Grundlagen, also bei der Hochsprache &amp;quot;C&amp;quot;. Das Tutorial ist chronologisch aufgebaut und kann ohne jegliche Vorkenntnisse abgearbeitet und (hoffentlich) verstanden  werden&lt;br /&gt;
{{FarbigerRahmen|&lt;br /&gt;
'''In Bearbeitung''' - Tutorial wird dann regelmäßig geschrieben wenn die Basis da ist (in ca. 1 Woche *11.09.2012*)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
= Aller Anfang... =&lt;br /&gt;
..ist gar nicht mal so schwer.&lt;br /&gt;
Dieses Tutorial soll all jenen helfen, die gerade neu einsteigen und mit wenig Hardware viel erreichen wollen. Es wird keine vorherigen Kenntnisse benötigt, ein wenig Zeit und technisches Interesse sollte jedoch mitgebracht werden&lt;br /&gt;
&lt;br /&gt;
Aus eigener Erfahrung: Keine Angst vor neuem!&lt;br /&gt;
Das was wir hier machen ist (mehr oder weniger) ungefährlich und es kann nichts kaputt werden. Es sollte aber alles Punkt für Punkt beachtet und lieber zweimal gelesen werden, bevor man etwas falsch macht.&lt;br /&gt;
&lt;br /&gt;
== Grundlegendes ==&lt;br /&gt;
=== Ziele ===&lt;br /&gt;
* Verstehen und Anwenden von Mikrocontrollern&lt;br /&gt;
* Verstehen und Anwenden der Hochsprache &amp;quot;C&amp;quot;, genauer &amp;quot;AVR-GCC&amp;quot;&lt;br /&gt;
* Anwenden von Arduino-Bibliotheken ''(eher weniger)''&lt;br /&gt;
* Ansteuern von Peripheriegeräten im Zusammenhang mit µC:&lt;br /&gt;
** LED&lt;br /&gt;
** Relais&lt;br /&gt;
** usw.&lt;br /&gt;
* Auslesen von Sensoren mit µC:&lt;br /&gt;
** Temperatursensoren (PT1000, KTY81, etc)&lt;br /&gt;
** Lichtschranken (z.B. zu Drehzahlmessung)&lt;br /&gt;
** usw.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Was gebraucht wird ===&lt;br /&gt;
Für das Tutorial wird das '''Arduino 2560 R3''' Board verwendet, dazu wird noch eine externe Spannungsversorgung wenn man viel Peripherie angschlossen hat und ein USB Kabel benötigt.&lt;br /&gt;
Als integrierte Entwicklungsumgebung (IDE) verwenden wir die Freeware '''&amp;quot;Atmel Studio 6.0&amp;quot;''' und '''&amp;quot;WinAVR&amp;quot;''' zum übertragen auf den Controller. Für das C-Tutorial werden wir aber das '''&amp;quot;Microsoft Visual C++ Express&amp;quot;''' verwenden , das ebenso kostenlos ist.&lt;br /&gt;
&lt;br /&gt;
'''Zusammenfassung:'''&lt;br /&gt;
* Arduino 2560 R3 Mikrocontrollerboard&lt;br /&gt;
* USB A auf B Kabel (&amp;quot;Normaler&amp;quot; USB Anschluss auf den abgeschrägten Quadratischen)&lt;br /&gt;
* PC/Notebook mit USB-Anschluss zum Programmieren&lt;br /&gt;
* IDE: Atmel Studio 6.0&lt;br /&gt;
* Übertragungsprogramm: WinAVR&lt;br /&gt;
* C - IDE: Microsoft Visual C++ Express&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Wir starten mit C =&lt;br /&gt;
Für alle Neulinge die komplett neu in die Materie einsteigen gibts es am Anfang ein kleines C - Tutorial. Dies will ich aber nicht zu tief greifend machen, denn viele Funktionen wie Strings werden nur in Verbindung mit einem LCD bzw. einer Seriellen Schnittstelle gebraucht, solche Funktionen werde ich dann erklären, wenn sie gebraucht werden. Ebenso werden wir einige Bereiche nur überfliegen und nicht bis ins letzte Detail erklären, für das gibt es dann facheinschlägige Internetseiten und (ja man glaubt es kaum) Bücher.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Hello World und der Grundaufbau ==&lt;br /&gt;
Ein C Programm besteht grundsätzlich aus 2 Hauptteilen:&lt;br /&gt;
# Hauptprogramm&lt;br /&gt;
# Include-Datein&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;eine_datei.h&amp;gt; //Include Datei&lt;br /&gt;
#include &amp;quot;eine_andere_datei.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
void main() //Hier fängt das Hauptprogramm an&lt;br /&gt;
{&lt;br /&gt;
//Funktionsaufruf&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Diese paar Zeilen Code sind bereits ein lauffähiges, ausführbares Programm, unsere Konsolenanwendung bleibt aber leer, da wir keine Funktionen aufrufen.&lt;br /&gt;
&lt;br /&gt;
Gleich vorweg: &amp;quot;//&amp;quot; ist ein Kommentar -&amp;gt; Keine Auswirkung auf den Programmablauf - mehr dazu später&lt;br /&gt;
&lt;br /&gt;
=== Include Dateien ===&lt;br /&gt;
Die Inlcude Datein sind jene Datein, in denen Funktionen genauer definiert sind. Also wie die Funktion aufgerufen werden muss&lt;br /&gt;
&lt;br /&gt;
Dateien, die im Standart Include Verzeichniss sind werden in spitze Klammern geschrieben (&amp;lt;...&amp;gt;), Dateien welche im Projektverzeichniss sind werden in doppelte Hochkomma geschrieben (&amp;quot;...&amp;quot;), diese Dateien werden von uns selbst geschrieben, z.B. um große Unterprogramme auslagern zu können&lt;br /&gt;
&lt;br /&gt;
Häufig genutzte Dateien sind (im Windows-Bereich):&amp;lt;br/&amp;gt;&lt;br /&gt;
*conio.h - Character Funktionen (getch etc)&amp;lt;br/&amp;gt;&lt;br /&gt;
*stdio.h - Standart Ein-Ausgabe (printf, scanf etc)&amp;lt;br/&amp;gt;&lt;br /&gt;
*stdlib.h - Zufallsfunktionen, CMD-Funktion&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Hauptprogramm ===&lt;br /&gt;
Das Hauptprogramm wird bei jedem Programmaufruf aufgerufen und abgearbeitet, ist das Hauptprogramm zu Ende, beendet sich das ganze Programm (Konsolenanwendung)&lt;br /&gt;
Das Hauptprogramm selbst besteht ebenso aus mehreren Teilen:&lt;br /&gt;
# Der Funktionskopf:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
void main ()&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Hier steht der Name, bei einem Hauptprogramm immer ''main'', bei Unterprogrammen (dazu später) kann man diesen frei wählen&lt;br /&gt;
Das ''void'' sagt aus, dass das Programm nichts zurück liefert, Unterprogramme können aber auch etwas zurückliefern, dazu ebenso später. &lt;br /&gt;
&lt;br /&gt;
# Der Funktionsaufruf:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
//Funktionsaufruf&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Zwischen den geschwungenen Klammern wird das Programm abgearbeitet, also Berechnungen usw. ausgeführt &lt;br /&gt;
&lt;br /&gt;
=== Ausgabe am Bildschirm ===&lt;br /&gt;
Die Standartausgabe am Bildschirm erfolgt über die Funktion ''printf''&lt;br /&gt;
&lt;br /&gt;
Syntax:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
printf(&amp;quot;Ausgabetext unter doppeltem Hochkomma&amp;quot;, Variablen);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Für die Formatierung und einige Zusatzfunktionen gibt es sogenannte Escape Sequenzen. Diese werden einfach in den Text eingeaut, die wichtigsten sind:&amp;lt;br/&amp;gt;&lt;br /&gt;
* \n Nächste Zeile &amp;lt;br/&amp;gt;&lt;br /&gt;
* \t Tabulator (horizontal)&amp;lt;br/&amp;gt;&lt;br /&gt;
* \a Alarmton (Beep)&lt;br /&gt;
&lt;br /&gt;
=== Hello World ===&lt;br /&gt;
Mit diesen einfachen Funktionen können wir nun unser erstes &amp;quot;sinnvolles&amp;quot; Programm schreiben:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
void main ()&lt;br /&gt;
{&lt;br /&gt;
   printf(&amp;quot;Hello World!&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Bei Verwendung des Microsoft Visual Studios wird unser Programm einfach mit der Tastenkombination [Strg]+[F5] gestartet&lt;br /&gt;
&lt;br /&gt;
== Variablen ==&lt;br /&gt;
Variablen werden verwendet um veränderbare (variable) Werte zu speichern.&lt;br /&gt;
Diese Werte können unterschiedlich groß sein, deshalb gibt es unterschiedliche Datentypen:&lt;br /&gt;
&lt;br /&gt;
Ganzzahlige Variablen:&lt;br /&gt;
 NAME                   WERTEBEREICH                              SPEICHERBEDARF&lt;br /&gt;
 signed char 	        -128 bis 127 	                          1 Byte&lt;br /&gt;
 unsigned char 	        0 bis 255 	                          1 Byte&lt;br /&gt;
 short int 	        -32768 bis 32767                	  2 Byte&lt;br /&gt;
 unsigned short int 	0 bis 65535               	          2 Byte&lt;br /&gt;
 int 	                -32768 bis 32767                          2 Byte&lt;br /&gt;
 unsigned int 	        0 bis 65535 	                          2 Byte&lt;br /&gt;
 long int 	        -2147483648 bis 2147483647                4 Byte&lt;br /&gt;
 unsigned long int 	0 bis 4294967296                	  4 Byte&lt;br /&gt;
&lt;br /&gt;
Gleitkomma Variablen:&lt;br /&gt;
 NAME                   WERTEBEREICH                    GENAUIGKEIT     SPEICHERBEDARF&lt;br /&gt;
 float 	                1.2 * 10&amp;lt;sup&amp;gt;-38&amp;lt;/sup&amp;gt; bis 3.4 * 10&amp;lt;sup&amp;gt;38&amp;lt;/sup&amp;gt; 	6 Stellen 	4 Bytes&lt;br /&gt;
 double 	                2.3 * 10&amp;lt;sup&amp;gt;-308&amp;lt;/sup&amp;gt; bis 1.7 * 10&amp;lt;sup&amp;gt;308&amp;lt;/sup&amp;gt; 	15 Stellen 	8 Bytes&lt;br /&gt;
 long double 	        3.4 * 10&amp;lt;sup&amp;gt;-4932&amp;lt;/sup&amp;gt; bis 1.1 * 10&amp;lt;sup&amp;gt;4932&amp;lt;/sup&amp;gt; 	19 Stellen 	10 Bytes&lt;br /&gt;
&lt;br /&gt;
=== Variablen definieren/deklarieren/initialisieren ===&lt;br /&gt;
==== Definition - Deklaration ====&lt;br /&gt;
Als erster Schritt müssen Variblen definiert werden: es muss Name und Datentyp festgelegt werden, automatisch dazu wird ein gewisser Speicherplatz für die Variable reserviert.&lt;br /&gt;
&lt;br /&gt;
Eine Definition einer Integer Variable könnte zum Beispiel so aussehen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
int variablenname;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Somit haben wir für die Variable &amp;quot;variablenname&amp;quot; einen 2 Byte großen Speicherplatz ''reserviert''.&lt;br /&gt;
&lt;br /&gt;
==== Initialisierung ====&lt;br /&gt;
Nun schreiben wir ''erstmals'' Daten in unseren Speicherbereich.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
variablenname = 2012;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{|{{Blaueschmaltabelle}}&lt;br /&gt;
|'''Merke:'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Deklaration''' ist nur die Vergabe eines Namens und eines Typs für die Variable.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Definition''' ist die Reservierung des Speicherplatzes.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Initialisierung''' ist die Zuweisung eines ersten Wertes.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Alles auf einmal ====&lt;br /&gt;
Die Deklaration und Initialisierung kann auch auf einmal geschehen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
int variablenname = 2012;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Variablen ausgeben ===&lt;br /&gt;
Mit printf werden auch die Werte von Berechnungen ausgegeben:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
//anderer Programmcode&lt;br /&gt;
printf(&amp;quot;Inhalt der Int-Variable: %d&amp;quot;, variablenname);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Bildschirmausgabe:&lt;br /&gt;
&lt;br /&gt;
{|{{Blauetabelle}}&lt;br /&gt;
|&lt;br /&gt;
Inhalt der Int-Variable: 2012&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''Erklärung:'''&lt;br /&gt;
%d ist ein ''Formatzeichen'', wird bei der Bildchirmausgabe durch den Variableninhalt ersetzt&lt;br /&gt;
Formatzeichen:&amp;lt;br/&amp;gt;&lt;br /&gt;
%d - Int und Long Variablen&amp;lt;br/&amp;gt;&lt;br /&gt;
%f - Float&amp;lt;br/&amp;gt;&lt;br /&gt;
%lf - double&amp;lt;br/&amp;gt;&lt;br /&gt;
%s - Zeichenkette (String)&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Mehrere Variablen ausgeben ====&lt;br /&gt;
Es können natürlich auch mehrere Variablen auf einmal ausgegeben werden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
zweite_variable=1.234;&lt;br /&gt;
printf(&amp;quot;Erste Variable: %d \n Die Zweite Variable steht in der nächsten Zeile: %f&amp;quot;, variablenname, zweite_variable);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Bildschirmausgabe:&lt;br /&gt;
&lt;br /&gt;
{|{{Blauetabelle}}&lt;br /&gt;
|&lt;br /&gt;
Erste Variable: 2012 &amp;lt;br/&amp;gt; Die Zweite Variable steht in der nächsten Zeile: 1.234&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{|{{Blaueschmaltabelle}}&lt;br /&gt;
|'''Merke:'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Wenn man mehrere Variablen ausgibt werden die gleichen Positionen verwendet, d.h. für das erste Formatzeichen wird auch die erste nachstehende Variable verwendet, für das zweite Formatzeichen dann die zweite Variable.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Kommentare ==&lt;br /&gt;
Um Programme so lesbar wie möglich zu gestalten kann man verschiedene Kommentare hinzufügen:&lt;br /&gt;
* //Kommentartext  Dieser Kommentar gilt ''nur bis zum Zeilenende'' der selben Zeile&lt;br /&gt;
* /* Kommentartext */ Dieser Kommentar gilt zwischen den beiden Symbolen und kann auch über ''mehrere Zeilen'' gehen&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Kontrollstrukturen ==&lt;br /&gt;
Zum Überprüfen und Vergleichen von Werten gibt es spezielle Funktionen&lt;br /&gt;
Die wohl wichtigste Kontrollstruktur ist die ''if-Abfrage''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== if - Abfrage ===&lt;br /&gt;
'''Syntax:'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
if(Abfragewert Operator Vergleichswert)&lt;br /&gt;
{&lt;br /&gt;
//Ausführung wenn Abfrage zutrifft&lt;br /&gt;
}&lt;br /&gt;
else&lt;br /&gt;
{&lt;br /&gt;
//Ausführung wenn Abfrage NICHT zutrifft&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Erklärung:'''&lt;br /&gt;
Der Operator ist ein sogenannter Vergleichsoperator:&amp;lt;br/&amp;gt;&lt;br /&gt;
== ist gleich     (Wahr, wenn beide Seiten gleich)&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;gt;  Größer         (Wahr, wenn Abfragewert größer Vergleichswert)&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;gt;= Größer Gleich  (Wahr, wenn Abfragewert größer oder gleich Vergleichswert)&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;  Kleiner        (Wahr, wenn Abfragewert kleiner Vergleichswert)&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;  Kleiner Gleich (Wahr, wenn Abfragewert kleiner oder gleich Vergleichswert)&amp;lt;br/&amp;gt;&lt;br /&gt;
!= Ungleich       (Wahr, wenn Abfragewert ungleich Vergleichswert)&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Beispiel:'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
//Hier wurde eine Zahl mittels scanf eingelesen&lt;br /&gt;
&lt;br /&gt;
if(zahl &amp;gt; 0)  //Jetzt wird überprüft ob die Zahl größer als 0 ist, somit positiv&lt;br /&gt;
{&lt;br /&gt;
   printf(&amp;quot;Zahl ist Positiv&amp;quot;);   //Wenn das zurtrifft wird &amp;quot;Positiv&amp;quot; ausgegeben&lt;br /&gt;
}&lt;br /&gt;
else&lt;br /&gt;
{&lt;br /&gt;
   printf(&amp;quot;Zahl ist negativ&amp;quot;);    //Wenn nicht, wird &amp;quot;Negativ&amp;quot; ausgegeben&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Man kann auch mehrere Abfragen miteinander verknüpfen:'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
//Beispiel: Es soll herausgefunden werden, ob eine Zahl positiv oder 0 ist. &lt;br /&gt;
//Wenn dies nicht zutrifft soll geprüft werden ob die Zahl kleiner oder gleich -10 ist&lt;br /&gt;
&lt;br /&gt;
//Hier wurde die Zahle eingelesen&lt;br /&gt;
&lt;br /&gt;
if(zahl &amp;gt;= 0) //Prüfen ob Zahl positiv&lt;br /&gt;
{&lt;br /&gt;
  printf(&amp;quot;Zahl positiv&amp;quot;)&lt;br /&gt;
}&lt;br /&gt;
else if(zahl &amp;lt;= -10)  //ACHTUNG: Das hier wird NUR geprüft wenn die erste Abfrage NICHT wahr ist&lt;br /&gt;
{&lt;br /&gt;
  printf(&amp;quot;Zahl kleiner als -10&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
//Logische Operatoren ( &amp;amp;&amp;amp; || ! )&lt;br /&gt;
&lt;br /&gt;
=== switch/case Abfrage ===&lt;br /&gt;
//Mehrfachabrage usw...&lt;br /&gt;
&lt;br /&gt;
= µC - Programmierung =&lt;br /&gt;
== Über das Board ==&lt;br /&gt;
//In Arbeit&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Begriffserklärungen =&lt;br /&gt;
'''C'''&lt;br /&gt;
* CPU = '''C'''entral'''P'''rocessing'''U'''nit, Hauptprozessor&lt;br /&gt;
'''I'''&lt;br /&gt;
* IDE = '''I'''ntegrated'''D'''evelopment'''E'''nvironment, integrierte Entwicklungsumgebung, bestehend aus: Texteditor, Präprozessor, Compiler, Linker, Debugger&lt;br /&gt;
'''M'''&lt;br /&gt;
* Mikrocontroller = IC (Krabbelkäfer) der aus einer CPU, RAM, Flash-Speicher, Timer usw. zusammensetzt ist&lt;br /&gt;
'''R'''&lt;br /&gt;
* RAM = '''R'''andom-'''A'''ccess '''M'''emory, Speicher auf den laufend direkt zugegriffen werden kann, Arbeitsspeicher&lt;br /&gt;
&lt;br /&gt;
'''Sonderzeichen'''&lt;br /&gt;
* µC = Mikrocontroller&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Über das Tutorial =&lt;br /&gt;
== Dauer ==&lt;br /&gt;
Eine Ende ist vorerst nicht in Sicht, es wird mehr oder weniger gleich wie in der Schule vorgegangen. Ich schätze aber, dass wir Ende des Schuljahres (Juli 2013) von den Grundzügen, über Timer/Interrupts bis hin zur seriellen Schnittstelle kommen sollten.&lt;br /&gt;
&lt;br /&gt;
== Projekte ==&lt;br /&gt;
Geplant ist ein schrittweiser Aufbau mit einem Mix aus Lernstoff und praktischen Beispielen/Projekten, wobei bei diesen Projekten meistens nur &amp;quot;Standarthardware&amp;quot; (LEDs, Transistoren, Relais, Schalter usw) verwendet wird. Es kann aber auch mal vorkommen, dass mehr Teile benötigt werden, dass wird dann (wenn möglich) aber eher als Zusatzbeispiel gemacht. Sollte es sich nicht vermeiden lassen externe Hardware anzuschaffen werd ich versuchen, dies so früh wie möglich anzukündigen.&lt;br /&gt;
&lt;br /&gt;
== Autor ==&lt;br /&gt;
* Thomas PAIL, Geb.: 1996, Schüler HTLuVA Pinkafeld - Elektronik und technische Informatik&lt;br /&gt;
* Für Infos und Kontakt:&lt;br /&gt;
[http://www.roboternetz.de/community/members/53900-robo_tom_24 robo_tom_24 RoboterNetz - Profil]&lt;br /&gt;
&lt;br /&gt;
== Diskussionen über das Tutorial ==&lt;br /&gt;
[http://www.roboternetz.de/community/threads/59197-Diskussionsthread-Arduino-Tutorial-RN-Wiki-Artikel?referrerid=53900 Diskussionsthread]&lt;br /&gt;
&lt;br /&gt;
= Schriften =&lt;br /&gt;
# Platzhalter&lt;br /&gt;
&lt;br /&gt;
 [[Kategorie:Microcontroller]]&lt;br /&gt;
 [[Kategorie:Software]]&lt;br /&gt;
 [[Kategorie:Grundlagen]]&lt;br /&gt;
 [[Kategorie:Quellcode C]]&lt;/div&gt;</summary>
		<author><name>Robo tom 24</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=Arduino_Tutorial&amp;diff=20997</id>
		<title>Arduino Tutorial</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=Arduino_Tutorial&amp;diff=20997"/>
				<updated>2012-09-13T09:50:34Z</updated>
		
		<summary type="html">&lt;p&gt;Robo tom 24: Erweiterung&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dieses mehrwöchige/mehrmonatige Tutorial soll einem den Einstieg in die Welt der Mikrocontroller mit Hilfe des Arduino 2560 R3 Boards erleichtern. Angefangen wird natürlich bei den Grundlagen, also bei der Hochsprache &amp;quot;C&amp;quot;. Das Tutorial ist chronologisch aufgebaut und kann ohne jegliche Vorkenntnisse abgearbeitet und (hoffentlich) verstanden  werden&lt;br /&gt;
{{FarbigerRahmen|&lt;br /&gt;
'''In Bearbeitung''' - Tutorial wird dann regelmäßig geschrieben wenn die Basis da ist (in ca. 1 Woche *11.09.2012*)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
= Aller Anfang... =&lt;br /&gt;
..ist gar nicht mal so schwer.&lt;br /&gt;
Dieses Tutorial soll all jenen helfen, die gerade neu einsteigen und mit wenig Hardware viel erreichen wollen. Es wird keine vorherigen Kenntnisse benötigt, ein wenig Zeit und technisches Interesse sollte jedoch mitgebracht werden&lt;br /&gt;
&lt;br /&gt;
Aus eigener Erfahrung: Keine Angst vor neuem!&lt;br /&gt;
Das was wir hier machen ist (mehr oder weniger) ungefährlich und es kann nichts kaputt werden. Es sollte aber alles Punkt für Punkt beachtet und lieber zweimal gelesen werden, bevor man etwas falsch macht.&lt;br /&gt;
&lt;br /&gt;
== Grundlegendes ==&lt;br /&gt;
=== Ziele ===&lt;br /&gt;
* Verstehen und Anwenden von Mikrocontrollern&lt;br /&gt;
* Verstehen und Anwenden der Hochsprache &amp;quot;C&amp;quot;, genauer &amp;quot;AVR-GCC&amp;quot;&lt;br /&gt;
* Anwenden von Arduino-Bibliotheken ''(eher weniger)''&lt;br /&gt;
* Ansteuern von Peripheriegeräten im Zusammenhang mit µC:&lt;br /&gt;
** LED&lt;br /&gt;
** Relais&lt;br /&gt;
** usw.&lt;br /&gt;
* Auslesen von Sensoren mit µC:&lt;br /&gt;
** Temperatursensoren (PT1000, KTY81, etc)&lt;br /&gt;
** Lichtschranken (z.B. zu Drehzahlmessung)&lt;br /&gt;
** usw.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Was gebraucht wird ===&lt;br /&gt;
Für das Tutorial wird das '''Arduino 2560 R3''' Board verwendet, dazu wird noch eine externe Spannungsversorgung wenn man viel Peripherie angschlossen hat und ein USB Kabel benötigt.&lt;br /&gt;
Als integrierte Entwicklungsumgebung (IDE) verwenden wir die Freeware '''&amp;quot;Atmel Studio 6.0&amp;quot;''' und '''&amp;quot;WinAVR&amp;quot;''' zum übertragen auf den Controller. Für das C-Tutorial werden wir aber das '''&amp;quot;Microsoft Visual C++ Express&amp;quot;''' verwenden , das ebenso kostenlos ist.&lt;br /&gt;
&lt;br /&gt;
'''Zusammenfassung:'''&lt;br /&gt;
* Arduino 2560 R3 Mikrocontrollerboard&lt;br /&gt;
* USB A auf B Kabel (&amp;quot;Normaler&amp;quot; USB Anschluss auf den abgeschrägten Quadratischen)&lt;br /&gt;
* PC/Notebook mit USB-Anschluss zum Programmieren&lt;br /&gt;
* IDE: Atmel Studio 6.0&lt;br /&gt;
* Übertragungsprogramm: WinAVR&lt;br /&gt;
* C - IDE: Microsoft Visual C++ Express&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Wir starten mit C =&lt;br /&gt;
Für alle Neulinge die komplett neu in die Materie einsteigen gibts es am Anfang ein kleines C - Tutorial. Dies will ich aber nicht zu tief greifend machen, denn viele Funktionen wie Strings werden nur in Verbindung mit einem LCD bzw. einer Seriellen Schnittstelle gebraucht, solche Funktionen werde ich dann erklären, wenn sie gebraucht werden. Ebenso werden wir einige Bereiche nur überfliegen und nicht bis ins letzte Detail erklären, für das gibt es dann facheinschlägige Internetseiten und (ja man glaubt es kaum) Bücher.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Hello World und der Grundaufbau ==&lt;br /&gt;
Ein C Programm besteht grundsätzlich aus 2 Hauptteilen:&lt;br /&gt;
# Hauptprogramm&lt;br /&gt;
# Include-Datein&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;eine_datei.h&amp;gt; //Include Datei&lt;br /&gt;
#include &amp;quot;eine_andere_datei.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
void main() //Hier fängt das Hauptprogramm an&lt;br /&gt;
{&lt;br /&gt;
//Funktionsaufruf&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Diese paar Zeilen Code sind bereits ein lauffähiges, ausführbares Programm, unsere Konsolenanwendung bleibt aber leer, da wir keine Funktionen aufrufen.&lt;br /&gt;
&lt;br /&gt;
Gleich vorweg: &amp;quot;//&amp;quot; ist ein Kommentar -&amp;gt; Keine Auswirkung auf den Programmablauf - mehr dazu später&lt;br /&gt;
&lt;br /&gt;
=== Include Dateien ===&lt;br /&gt;
Die Inlcude Datein sind jene Datein, in denen Funktionen genauer definiert sind. Also wie die Funktion aufgerufen werden muss&lt;br /&gt;
&lt;br /&gt;
Dateien, die im Standart Include Verzeichniss sind werden in spitze Klammern geschrieben (&amp;lt;...&amp;gt;), Dateien welche im Projektverzeichniss sind werden in doppelte Hochkomma geschrieben (&amp;quot;...&amp;quot;), diese Dateien werden von uns selbst geschrieben, z.B. um große Unterprogramme auslagern zu können&lt;br /&gt;
&lt;br /&gt;
Häufig genutzte Dateien sind (im Windows-Bereich):&amp;lt;br/&amp;gt;&lt;br /&gt;
*conio.h - Character Funktionen (getch etc)&amp;lt;br/&amp;gt;&lt;br /&gt;
*stdio.h - Standart Ein-Ausgabe (printf, scanf etc)&amp;lt;br/&amp;gt;&lt;br /&gt;
*stdlib.h - Zufallsfunktionen, CMD-Funktion&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Hauptprogramm ===&lt;br /&gt;
Das Hauptprogramm wird bei jedem Programmaufruf aufgerufen und abgearbeitet, ist das Hauptprogramm zu Ende, beendet sich das ganze Programm (Konsolenanwendung)&lt;br /&gt;
Das Hauptprogramm selbst besteht ebenso aus mehreren Teilen:&lt;br /&gt;
# Der Funktionskopf:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
void main ()&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Hier steht der Name, bei einem Hauptprogramm immer ''main'', bei Unterprogrammen (dazu später) kann man diesen frei wählen&lt;br /&gt;
Das ''void'' sagt aus, dass das Programm nichts zurück liefert, Unterprogramme können aber auch etwas zurückliefern, dazu ebenso später. &lt;br /&gt;
&lt;br /&gt;
# Der Funktionsaufruf:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
//Funktionsaufruf&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Zwischen den geschwungenen Klammern wird das Programm abgearbeitet, also Berechnungen usw. ausgeführt &lt;br /&gt;
&lt;br /&gt;
=== Ausgabe am Bildschirm ===&lt;br /&gt;
Die Standartausgabe am Bildschirm erfolgt über die Funktion ''printf''&lt;br /&gt;
&lt;br /&gt;
Syntax:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
printf(&amp;quot;Ausgabetext unter doppeltem Hochkomma&amp;quot;, Variablen);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Für die Formatierung und einige Zusatzfunktionen gibt es sogenannte Escape Sequenzen. Diese werden einfach in den Text eingeaut, die wichtigsten sind:&amp;lt;br/&amp;gt;&lt;br /&gt;
* \n Nächste Zeile &amp;lt;br/&amp;gt;&lt;br /&gt;
* \t Tabulator (horizontal)&amp;lt;br/&amp;gt;&lt;br /&gt;
* \a Alarmton (Beep)&lt;br /&gt;
&lt;br /&gt;
=== Hello World ===&lt;br /&gt;
Mit diesen einfachen Funktionen können wir nun unser erstes &amp;quot;sinnvolles&amp;quot; Programm schreiben:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
void main ()&lt;br /&gt;
{&lt;br /&gt;
   printf(&amp;quot;Hello World!&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Bei Verwendung des Microsoft Visual Studios wird unser Programm einfach mit der Tastenkombination [Strg]+[F5] gestartet&lt;br /&gt;
&lt;br /&gt;
== Variablen ==&lt;br /&gt;
Variablen werden verwendet um veränderbare (variable) Werte zu speichern.&lt;br /&gt;
Diese Werte können unterschiedlich groß sein, deshalb gibt es unterschiedliche Datentypen:&lt;br /&gt;
&lt;br /&gt;
Ganzzahlige Variablen:&lt;br /&gt;
 NAME                   WERTEBEREICH                              SPEICHERBEDARF&lt;br /&gt;
 signed char 	        -128 bis 127 	                          1 Byte&lt;br /&gt;
 unsigned char 	        0 bis 255 	                          1 Byte&lt;br /&gt;
 short int 	        -32768 bis 32767                	  2 Byte&lt;br /&gt;
 unsigned short int 	0 bis 65535               	          2 Byte&lt;br /&gt;
 int 	                -32768 bis 32767                          2 Byte&lt;br /&gt;
 unsigned int 	        0 bis 65535 	                          2 Byte&lt;br /&gt;
 long int 	        -2147483648 bis 2147483647                4 Byte&lt;br /&gt;
 unsigned long int 	0 bis 4294967296                	  4 Byte&lt;br /&gt;
&lt;br /&gt;
Gleitkomma Variablen:&lt;br /&gt;
 NAME                   WERTEBEREICH                    GENAUIGKEIT     SPEICHERBEDARF&lt;br /&gt;
 float 	                1.2 * 10&amp;lt;sup&amp;gt;-38&amp;lt;/sup&amp;gt; bis 3.4 * 10&amp;lt;sup&amp;gt;38&amp;lt;/sup&amp;gt; 	6 Stellen 	4 Bytes&lt;br /&gt;
 double 	                2.3 * 10&amp;lt;sup&amp;gt;-308&amp;lt;/sup&amp;gt; bis 1.7 * 10&amp;lt;sup&amp;gt;308&amp;lt;/sup&amp;gt; 	15 Stellen 	8 Bytes&lt;br /&gt;
 long double 	        3.4 * 10&amp;lt;sup&amp;gt;-4932&amp;lt;/sup&amp;gt; bis 1.1 * 10&amp;lt;sup&amp;gt;4932&amp;lt;/sup&amp;gt; 	19 Stellen 	10 Bytes&lt;br /&gt;
&lt;br /&gt;
=== Variablen definieren/deklarieren/initialisieren ===&lt;br /&gt;
==== Definition - Deklaration ====&lt;br /&gt;
Als erster Schritt müssen Variblen definiert werden: es muss Name und Datentyp festgelegt werden, automatisch dazu wird ein gewisser Speicherplatz für die Variable reserviert.&lt;br /&gt;
&lt;br /&gt;
Eine Definition einer Integer Variable könnte zum Beispiel so aussehen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
int variablenname;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Somit haben wir für die Variable &amp;quot;variablenname&amp;quot; einen 2 Byte großen Speicherplatz ''reserviert''.&lt;br /&gt;
&lt;br /&gt;
==== Initialisierung ====&lt;br /&gt;
Nun schreiben wir ''erstmals'' Daten in unseren Speicherbereich.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
variablenname = 2012;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{|{{Blaueschmaltabelle}}&lt;br /&gt;
|'''Merke:'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Deklaration''' ist nur die Vergabe eines Namens und eines Typs für die Variable.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Definition''' ist die Reservierung des Speicherplatzes.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Initialisierung''' ist die Zuweisung eines ersten Wertes.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Alles auf einmal ====&lt;br /&gt;
Die Deklaration und Initialisierung kann auch auf einmal geschehen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
int variablenname = 2012;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Variablen ausgeben ===&lt;br /&gt;
Mit printf werden auch die Werte von Berechnungen ausgegeben:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
//anderer Programmcode&lt;br /&gt;
printf(&amp;quot;Inhalt der Int-Variable: %d&amp;quot;, variablenname);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Bildschirmausgabe:&lt;br /&gt;
&lt;br /&gt;
{|{{Blauetabelle}}&lt;br /&gt;
|&lt;br /&gt;
Inhalt der Int-Variable: 2012&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''Erklärung:'''&lt;br /&gt;
%d ist ein ''Formatzeichen'', wird bei der Bildchirmausgabe durch den Variableninhalt ersetzt&lt;br /&gt;
Formatzeichen:&amp;lt;br/&amp;gt;&lt;br /&gt;
%d - Int und Long Variablen&amp;lt;br/&amp;gt;&lt;br /&gt;
%f - Float&amp;lt;br/&amp;gt;&lt;br /&gt;
%lf - double&amp;lt;br/&amp;gt;&lt;br /&gt;
%s - Zeichenkette (String)&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Mehrere Variablen ausgeben ====&lt;br /&gt;
Es können natürlich auch mehrere Variablen auf einmal ausgegeben werden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
zweite_variable=1.234;&lt;br /&gt;
printf(&amp;quot;Erste Variable: %d \n Die Zweite Variable steht in der nächsten Zeile: %f&amp;quot;, variablenname, zweite_variable);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Bildschirmausgabe:&lt;br /&gt;
&lt;br /&gt;
{|{{Blauetabelle}}&lt;br /&gt;
|&lt;br /&gt;
Erste Variable: 2012 &amp;lt;br/&amp;gt; Die Zweite Variable steht in der nächsten Zeile: 1.234&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{|{{Blaueschmaltabelle}}&lt;br /&gt;
|'''Merke:'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Wenn man mehrere Variablen ausgibt werden die gleichen Positionen verwendet, d.h. für das erste Formatzeichen wird auch die erste nachstehende Variable verwendet, für das zweite Formatzeichen dann die zweite Variable.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= µC - Programmierung =&lt;br /&gt;
== Über das Board ==&lt;br /&gt;
\\In Arbeit&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Begriffserklärungen =&lt;br /&gt;
'''C'''&lt;br /&gt;
* CPU = '''C'''entral'''P'''rocessing'''U'''nit, Hauptprozessor&lt;br /&gt;
'''I'''&lt;br /&gt;
* IDE = '''I'''ntegrated'''D'''evelopment'''E'''nvironment, integrierte Entwicklungsumgebung, bestehend aus: Texteditor, Präprozessor, Compiler, Linker, Debugger&lt;br /&gt;
'''M'''&lt;br /&gt;
* Mikrocontroller = IC (Krabbelkäfer) der aus einer CPU, RAM, Flash-Speicher, Timer usw. zusammensetzt ist&lt;br /&gt;
'''R'''&lt;br /&gt;
* RAM = '''R'''andom-'''A'''ccess '''M'''emory, Speicher auf den laufend direkt zugegriffen werden kann, Arbeitsspeicher&lt;br /&gt;
&lt;br /&gt;
'''Sonderzeichen'''&lt;br /&gt;
* µC = Mikrocontroller&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Über das Tutorial =&lt;br /&gt;
== Dauer ==&lt;br /&gt;
Eine Ende ist vorerst nicht in Sicht, es wird mehr oder weniger gleich wie in der Schule vorgegangen. Ich schätze aber, dass wir Ende des Schuljahres (Juli 2013) von den Grundzügen, über Timer/Interrupts bis hin zur seriellen Schnittstelle kommen sollten.&lt;br /&gt;
&lt;br /&gt;
== Projekte ==&lt;br /&gt;
Geplant ist ein schrittweiser Aufbau mit einem Mix aus Lernstoff und praktischen Beispielen/Projekten, wobei bei diesen Projekten meistens nur &amp;quot;Standarthardware&amp;quot; (LEDs, Transistoren, Relais, Schalter usw) verwendet wird. Es kann aber auch mal vorkommen, dass mehr Teile benötigt werden, dass wird dann (wenn möglich) aber eher als Zusatzbeispiel gemacht. Sollte es sich nicht vermeiden lassen externe Hardware anzuschaffen werd ich versuchen, dies so früh wie möglich anzukündigen.&lt;br /&gt;
&lt;br /&gt;
== Autor ==&lt;br /&gt;
* Thomas PAIL, Geb.: 1996, Schüler HTLuVA Pinkafeld - Elektronik und technische Informatik&lt;br /&gt;
* Für Infos und Kontakt:&lt;br /&gt;
[http://www.roboternetz.de/community/members/53900-robo_tom_24 robo_tom_24 RoboterNetz - Profil]&lt;br /&gt;
&lt;br /&gt;
== Diskussionen über das Tutorial ==&lt;br /&gt;
[http://www.roboternetz.de/community/threads/59197-Diskussionsthread-Arduino-Tutorial-RN-Wiki-Artikel?referrerid=53900 Diskussionsthread]&lt;br /&gt;
&lt;br /&gt;
= Schriften =&lt;br /&gt;
# Platzhalter&lt;br /&gt;
&lt;br /&gt;
 [[Kategorie:Microcontroller]]&lt;br /&gt;
 [[Kategorie:Software]]&lt;br /&gt;
 [[Kategorie:Grundlagen]]&lt;br /&gt;
 [[Kategorie:Quellcode C]]&lt;/div&gt;</summary>
		<author><name>Robo tom 24</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=Arduino_Tutorial&amp;diff=20990</id>
		<title>Arduino Tutorial</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=Arduino_Tutorial&amp;diff=20990"/>
				<updated>2012-09-12T19:11:56Z</updated>
		
		<summary type="html">&lt;p&gt;Robo tom 24: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dieses mehrwöchige/mehrmonatige Tutorial soll einem den Einstieg in die Welt der Mikrocontroller mit Hilfe des Arduino 2560 R3 Boards erleichtern. Angefangen wird natürlich bei den Grundlagen, also bei der Hochsprache &amp;quot;C&amp;quot;. Das Tutorial ist chronologisch aufgebaut und kann ohne jegliche Vorkenntnisse abgearbeitet und (hoffentlich) verstanden  werden&lt;br /&gt;
{{FarbigerRahmen|&lt;br /&gt;
'''In Bearbeitung''' - Tutorial wird dann regelmäßig geschrieben wenn die Basis da ist (in ca. 1 Woche *11.09.2012*)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
= Aller Anfang... =&lt;br /&gt;
..ist gar nicht mal so schwer.&lt;br /&gt;
Dieses Tutorial soll all jenen helfen, die gerade neu einsteigen und mit wenig Hardware viel erreichen wollen. Es wird keine vorherigen Kenntnisse benötigt, ein wenig Zeit und technisches Interesse sollte jedoch mitgebracht werden&lt;br /&gt;
&lt;br /&gt;
Aus eigener Erfahrung: Keine Angst vor neuem!&lt;br /&gt;
Das was wir hier machen ist (mehr oder weniger) ungefährlich und es kann nichts kaputt werden. Es sollte aber alles Punkt für Punkt beachtet und lieber zweimal gelesen werden, bevor man etwas falsch macht.&lt;br /&gt;
&lt;br /&gt;
== Grundlegendes ==&lt;br /&gt;
=== Ziele ===&lt;br /&gt;
* Verstehen und Anwenden von Mikrocontrollern&lt;br /&gt;
* Verstehen und Anwenden der Hochsprache &amp;quot;C&amp;quot;, genauer &amp;quot;AVR-GCC&amp;quot;&lt;br /&gt;
* Anwenden von Arduino-Bibliotheken ''(eher weniger)''&lt;br /&gt;
* Ansteuern von Peripheriegeräten im Zusammenhang mit µC:&lt;br /&gt;
** LED&lt;br /&gt;
** Relais&lt;br /&gt;
** usw.&lt;br /&gt;
* Auslesen von Sensoren mit µC:&lt;br /&gt;
** Temperatursensoren (PT1000, KTY81, etc)&lt;br /&gt;
** Lichtschranken (z.B. zu Drehzahlmessung)&lt;br /&gt;
** usw.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Was gebraucht wird ===&lt;br /&gt;
Für das Tutorial wird das '''Arduino 2560 R3''' Board verwendet, dazu wird noch eine externe Spannungsversorgung wenn man viel Peripherie angschlossen hat und ein USB Kabel benötigt.&lt;br /&gt;
Als integrierte Entwicklungsumgebung (IDE) verwenden wir die Freeware '''&amp;quot;Atmel Studio 6.0&amp;quot;''' und '''&amp;quot;WinAVR&amp;quot;''' zum übertragen auf den Controller. Für das C-Tutorial werden wir aber das '''&amp;quot;Microsoft Visual C++ Express&amp;quot;''' verwenden , das ebenso kostenlos ist.&lt;br /&gt;
&lt;br /&gt;
'''Zusammenfassung:'''&lt;br /&gt;
* Arduino 2560 R3 Mikrocontrollerboard&lt;br /&gt;
* USB A auf B Kabel (&amp;quot;Normaler&amp;quot; USB Anschluss auf den abgeschrägten Quadratischen)&lt;br /&gt;
* PC/Notebook mit USB-Anschluss zum Programmieren&lt;br /&gt;
* IDE: Atmel Studio 6.0&lt;br /&gt;
* Übertragungsprogramm: WinAVR&lt;br /&gt;
* C - IDE: Microsoft Visual C++ Express&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Wir starten mit C =&lt;br /&gt;
Für alle Neulinge die komplett neu in die Materie einsteigen gibts es am Anfang ein kleines C - Tutorial. Dies will ich aber nicht zu tief greifend machen, denn viele Funktionen wie Strings werden nur in Verbindung mit einem LCD bzw. einer Seriellen Schnittstelle gebraucht, solche Funktionen werde ich dann erklären, wenn sie gebraucht werden. Ebenso werden wir einige Bereiche nur überfliegen und nicht bis ins letzte Detail erklären, für das gibt es dann facheinschlägige Internetseiten und (ja man glaubt es kaum) Bücher.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Hello World und der Grundaufbau ==&lt;br /&gt;
Ein C Programm besteht grundsätzlich aus 2 Hauptteilen:&lt;br /&gt;
# Hauptprogramm&lt;br /&gt;
# Include-Datein&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;eine_datei.h&amp;gt; //Include Datei&lt;br /&gt;
#include &amp;quot;eine_andere_datei.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
void main() //Hier fängt das Hauptprogramm an&lt;br /&gt;
{&lt;br /&gt;
//Funktionsaufruf&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Diese paar Zeilen Code sind bereits ein lauffähiges, ausführbares Programm, unsere Konsolenanwendung bleibt aber leer, da wir keine Funktionen aufrufen.&lt;br /&gt;
&lt;br /&gt;
Gleich vorweg: &amp;quot;//&amp;quot; ist ein Kommentar -&amp;gt; Keine Auswirkung auf den Programmablauf - mehr dazu später&lt;br /&gt;
&lt;br /&gt;
=== Include Dateien ===&lt;br /&gt;
Die Inlcude Datein sind jene Datein, in denen Funktionen genauer definiert sind. Also wie die Funktion aufgerufen werden muss&lt;br /&gt;
&lt;br /&gt;
Dateien, die im Standart Include Verzeichniss sind werden in spitze Klammern geschrieben (&amp;lt;...&amp;gt;), Dateien welche im Projektverzeichniss sind werden in doppelte Hochkomma geschrieben (&amp;quot;...&amp;quot;), diese Dateien werden von uns selbst geschrieben, z.B. um große Unterprogramme auslagern zu können&lt;br /&gt;
&lt;br /&gt;
Häufig genutzte Dateien sind (im Windows-Bereich):&amp;lt;br/&amp;gt;&lt;br /&gt;
*conio.h - Character Funktionen (getch etc)&amp;lt;br/&amp;gt;&lt;br /&gt;
*stdio.h - Standart Ein-Ausgabe (printf, scanf etc)&amp;lt;br/&amp;gt;&lt;br /&gt;
*stdlib.h - Zufallsfunktionen, CMD-Funktion&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Hauptprogramm ===&lt;br /&gt;
Das Hauptprogramm wird bei jedem Programmaufruf aufgerufen und abgearbeitet, ist das Hauptprogramm zu Ende, beendet sich das ganze Programm (Konsolenanwendung)&lt;br /&gt;
Das Hauptprogramm selbst besteht ebenso aus mehreren Teilen:&lt;br /&gt;
# Der Funktionskopf:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
void main ()&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Hier steht der Name, bei einem Hauptprogramm immer ''main'', bei Unterprogrammen (dazu später) kann man diesen frei wählen&lt;br /&gt;
Das ''void'' sagt aus, dass das Programm nichts zurück liefert, Unterprogramme können aber auch etwas zurückliefern, dazu ebenso später. &lt;br /&gt;
&lt;br /&gt;
# Der Funktionsaufruf:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
//Funktionsaufruf&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Zwischen den geschwungenen Klammern wird das Programm abgearbeitet, also Berechnungen usw. ausgeführt &lt;br /&gt;
&lt;br /&gt;
=== Ausgabe am Bildschirm ===&lt;br /&gt;
Die Standartausgabe am Bildschirm erfolgt über die Funktion ''printf''&lt;br /&gt;
&lt;br /&gt;
Syntax:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
printf(&amp;quot;Ausgabetext unter doppeltem Hochkomma&amp;quot;, Variablen);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Für die Formatierung und einige Zusatzfunktionen gibt es sogenannte Escape Sequenzen. Diese werden einfach in den Text eingeaut, die wichtigsten sind:&amp;lt;br/&amp;gt;&lt;br /&gt;
* \n Nächste Zeile &amp;lt;br/&amp;gt;&lt;br /&gt;
* \t Tabulator (horizontal)&amp;lt;br/&amp;gt;&lt;br /&gt;
* \a Alarmton (Beep)&lt;br /&gt;
&lt;br /&gt;
=== Hello World ===&lt;br /&gt;
Mit diesen einfachen Funktionen können wir nun unser erstes &amp;quot;sinnvolles&amp;quot; Programm schreiben:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
void main ()&lt;br /&gt;
{&lt;br /&gt;
   printf(&amp;quot;Hello World!&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Bei Verwendung des Microsoft Visual Studios wird unser Programm einfach mit der Tastenkombination [Strg]+[F5] gestartet&lt;br /&gt;
&lt;br /&gt;
== Variablen ==&lt;br /&gt;
Variablen werden verwendet um veränderbare (variable) Werte zu speichern.&lt;br /&gt;
Diese Werte können unterschiedlich groß sein, deshalb gibt es unterschiedliche Datentypen:&lt;br /&gt;
&lt;br /&gt;
Ganzzahlige Variablen:&lt;br /&gt;
 NAME                   WERTEBEREICH                              SPEICHERBEDARF&lt;br /&gt;
 signed char 	        -128 bis 127 	                          1 Byte&lt;br /&gt;
 unsigned char 	        0 bis 255 	                          1 Byte&lt;br /&gt;
 short int 	        -32768 bis 32767                	  2 Byte&lt;br /&gt;
 unsigned short int 	0 bis 65535               	          2 Byte&lt;br /&gt;
 int 	                -32768 bis 32767                          2 Byte&lt;br /&gt;
 unsigned int 	        0 bis 65535 	                          2 Byte&lt;br /&gt;
 long int 	        -2147483648 bis 2147483647                4 Byte&lt;br /&gt;
 unsigned long int 	0 bis 4294967296                	  4 Byte&lt;br /&gt;
&lt;br /&gt;
Gleitkomma Variablen:&lt;br /&gt;
 NAME                   WERTEBEREICH                    GENAUIGKEIT     SPEICHERBEDARF&lt;br /&gt;
 float 	                1.2 * 10&amp;lt;sup&amp;gt;-38&amp;lt;/sup&amp;gt; bis 3.4 * 10&amp;lt;sup&amp;gt;38&amp;lt;/sup&amp;gt; 	6 Stellen 	4 Bytes&lt;br /&gt;
 double 	                2.3 * 10&amp;lt;sup&amp;gt;-308&amp;lt;/sup&amp;gt; bis 1.7 * 10&amp;lt;sup&amp;gt;308&amp;lt;/sup&amp;gt; 	15 Stellen 	8 Bytes&lt;br /&gt;
 long double 	        3.4 * 10&amp;lt;sup&amp;gt;-4932&amp;lt;/sup&amp;gt; bis 1.1 * 10&amp;lt;sup&amp;gt;4932&amp;lt;/sup&amp;gt; 	19 Stellen 	10 Bytes&lt;br /&gt;
&lt;br /&gt;
=== Variablen definieren/deklarieren/initialisieren ===&lt;br /&gt;
==== Definition - Deklaration ====&lt;br /&gt;
Als erster Schritt müssen Variblen definiert werden: es muss Name und Datentyp festgelegt werden, automatisch dazu wird ein gewisser Speicherplatz für die Variable reserviert.&lt;br /&gt;
&lt;br /&gt;
Eine Definition einer Integer Variable könnte zum Beispiel so aussehen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
int variablenname;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Somit haben wir für die Variable &amp;quot;variablenname&amp;quot; einen 2 Byte großen Speicherplatz ''reserviert''.&lt;br /&gt;
&lt;br /&gt;
==== Initialisierung ====&lt;br /&gt;
Nun schreiben wir ''erstmals'' Daten in unseren Speicherbereich.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
variablenname = 2012;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{|{{Blaueschmaltabelle}}&lt;br /&gt;
|'''Merke:'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Deklaration''' ist nur die Vergabe eines Namens und eines Typs für die Variable.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Definition''' ist die Reservierung des Speicherplatzes.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Initialisierung''' ist die Zuweisung eines ersten Wertes.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Alles auf einmal ====&lt;br /&gt;
Die Deklaration und Initialisierung kann auch auf einmal geschehen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
int variablenname = 2012;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Variablen ausgeben ===&lt;br /&gt;
Mit printf werden auch die Werte von Berechnungen ausgegeben:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
//anderer Programmcode&lt;br /&gt;
printf(&amp;quot;Inhalt der Int-Variable: %d&amp;quot;, variablenname);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Bildschirmausgabe:&lt;br /&gt;
&lt;br /&gt;
{|{{Blauetabelle}}&lt;br /&gt;
|&lt;br /&gt;
Inhalt der Int-Variable: 2012&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''Erklärung:'''&lt;br /&gt;
%d ist ein ''Formatzeichen'', wird bei der Bildchirmausgabe durch den Variableninhalt ersetzt&lt;br /&gt;
Formatzeichen:&lt;br /&gt;
%d - Int und Long Variablen&lt;br /&gt;
%f - Float&lt;br /&gt;
%lf - double&lt;br /&gt;
%s - Zeichenkette (String)&lt;br /&gt;
&lt;br /&gt;
==== Mehrere Variablen ausgeben ====&lt;br /&gt;
Es können natürlich auch mehrere Variablen auf einmal ausgegeben werden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
zweite_variable=1.234;&lt;br /&gt;
printf(&amp;quot;Erste Variable: %d \n Die Zweite Variable steht in der nächsten Zeile: %f&amp;quot;, variablenname, zweite_variable);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Bildschirmausgabe:&lt;br /&gt;
&lt;br /&gt;
{|{{Blauetabelle}}&lt;br /&gt;
|&lt;br /&gt;
Erste Variable: 2012 &amp;lt;br/&amp;gt; Die Zweite Variable steht in der nächsten Zeile: 1.234&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{|{{Blaueschmaltabelle}}&lt;br /&gt;
|'''Merke:'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Wenn man mehrere Variablen ausgibt werden die gleichen Positionen verwendet, d.h. für das erste Formatzeichen wird auch die erste nachstehende Variable verwendet, für das zweite Formatzeichen dann die zweite Variable.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= µC - Programmierung =&lt;br /&gt;
== Über das Board ==&lt;br /&gt;
\\In Arbeit&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Begriffserklärungen =&lt;br /&gt;
'''C'''&lt;br /&gt;
* CPU = '''C'''entral'''P'''rocessing'''U'''nit, Hauptprozessor&lt;br /&gt;
'''I'''&lt;br /&gt;
* IDE = '''I'''ntegrated'''D'''evelopment'''E'''nvironment, integrierte Entwicklungsumgebung, bestehend aus: Texteditor, Präprozessor, Compiler, Linker, Debugger&lt;br /&gt;
'''M'''&lt;br /&gt;
* Mikrocontroller = IC (Krabbelkäfer) der aus einer CPU, RAM, Flash-Speicher, Timer usw. zusammensetzt ist&lt;br /&gt;
'''R'''&lt;br /&gt;
* RAM = '''R'''andom-'''A'''ccess '''M'''emory, Speicher auf den laufend direkt zugegriffen werden kann, Arbeitsspeicher&lt;br /&gt;
&lt;br /&gt;
'''Sonderzeichen'''&lt;br /&gt;
* µC = Mikrocontroller&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Über das Tutorial =&lt;br /&gt;
== Dauer ==&lt;br /&gt;
Eine Ende ist vorerst nicht in Sicht, es wird mehr oder weniger gleich wie in der Schule vorgegangen. Ich schätze aber, dass wir Ende des Schuljahres (Juli 2013) von den Grundzügen, über Timer/Interrupts bis hin zur seriellen Schnittstelle kommen sollten.&lt;br /&gt;
&lt;br /&gt;
== Projekte ==&lt;br /&gt;
Geplant ist ein schrittweiser Aufbau mit einem Mix aus Lernstoff und praktischen Beispielen/Projekten, wobei bei diesen Projekten meistens nur &amp;quot;Standarthardware&amp;quot; (LEDs, Transistoren, Relais, Schalter usw) verwendet wird. Es kann aber auch mal vorkommen, dass mehr Teile benötigt werden, dass wird dann (wenn möglich) aber eher als Zusatzbeispiel gemacht. Sollte es sich nicht vermeiden lassen externe Hardware anzuschaffen werd ich versuchen, dies so früh wie möglich anzukündigen.&lt;br /&gt;
&lt;br /&gt;
== Autor ==&lt;br /&gt;
* Thomas PAIL, Geb.: 1996, Schüler HTLuVA Pinkafeld - Elektronik und technische Informatik&lt;br /&gt;
* Für Infos und Kontakt:&lt;br /&gt;
[http://www.roboternetz.de/community/members/53900-robo_tom_24 robo_tom_24 RoboterNetz - Profil]&lt;br /&gt;
&lt;br /&gt;
== Diskussionen über das Tutorial ==&lt;br /&gt;
Es wird noch ein Diskussions/Fragen/Antworten Thread im Roboternetz erstellt, Link folgt...&lt;br /&gt;
&lt;br /&gt;
= Schriften =&lt;br /&gt;
# Platzhalter&lt;br /&gt;
&lt;br /&gt;
 [[Kategorie:Microcontroller]]&lt;br /&gt;
 [[Kategorie:Software]]&lt;br /&gt;
 [[Kategorie:Grundlagen]]&lt;br /&gt;
 [[Kategorie:Quellcode C]]&lt;/div&gt;</summary>
		<author><name>Robo tom 24</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=Arduino_Tutorial&amp;diff=20969</id>
		<title>Arduino Tutorial</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=Arduino_Tutorial&amp;diff=20969"/>
				<updated>2012-09-12T16:31:09Z</updated>
		
		<summary type="html">&lt;p&gt;Robo tom 24: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dieses mehrwöchige/mehrmonatige Tutorial soll einem den Einstieg in die Welt der Mikrocontroller mit Hilfe des Arduino 2560 R3 Boards erleichtern. Angefangen wird natürlich bei den Grundlagen, also bei der Hochsprache &amp;quot;C&amp;quot;. Das Tutorial ist chronologisch aufgebaut und kann ohne jegliche Vorkenntnisse abgearbeitet und (hoffentlich) verstanden  werden&lt;br /&gt;
{{FarbigerRahmen|&lt;br /&gt;
'''In Bearbeitung''' - Tutorial wird dann regelmäßig geschrieben wenn die Basis da ist (in ca. 1 Woche *11.09.2012*)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
= Aller Anfang... =&lt;br /&gt;
..ist gar nicht mal so schwer.&lt;br /&gt;
Dieses Tutorial soll all jenen helfen, die gerade neu einsteigen und mit wenig Hardware viel erreichen wollen. Es wird keine vorherigen Kenntnisse benötigt, ein wenig Zeit und technisches Interesse sollte jedoch mitgebracht werden&lt;br /&gt;
&lt;br /&gt;
Aus eigener Erfahrung: Keine Angst vor neuem!&lt;br /&gt;
Das was wir hier machen ist (mehr oder weniger) ungefährlich und es kann nichts kaputt werden. Es sollte aber alles Punkt für Punkt beachtet und lieber zweimal gelesen werden, bevor man etwas falsch macht.&lt;br /&gt;
&lt;br /&gt;
== Grundlegendes ==&lt;br /&gt;
=== Ziele ===&lt;br /&gt;
* Verstehen und Anwenden von Mikrocontrollern&lt;br /&gt;
* Verstehen und Anwenden der Hochsprache &amp;quot;C&amp;quot;, genauer &amp;quot;AVR-GCC&amp;quot;&lt;br /&gt;
* Anwenden von Arduino-Bibliotheken ''(eher weniger)''&lt;br /&gt;
* Ansteuern von Peripheriegeräten im Zusammenhang mit µC:&lt;br /&gt;
** LED&lt;br /&gt;
** Relais&lt;br /&gt;
** usw.&lt;br /&gt;
* Auslesen von Sensoren mit µC:&lt;br /&gt;
** Temperatursensoren (PT1000, KTY81, etc)&lt;br /&gt;
** Lichtschranken (z.B. zu Drehzahlmessung)&lt;br /&gt;
** usw.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Was gebraucht wird ===&lt;br /&gt;
Für das Tutorial wird das '''Arduino 2560 R3''' Board verwendet, dazu wird noch eine externe Spannungsversorgung wenn man viel Peripherie angschlossen hat und ein USB Kabel benötigt.&lt;br /&gt;
Als integrierte Entwicklungsumgebung (IDE) verwenden wir die Freeware '''&amp;quot;Atmel Studio 6.0&amp;quot;''' und '''&amp;quot;WinAVR&amp;quot;''' zum übertragen auf den Controller. Für das C-Tutorial werden wir aber das '''&amp;quot;Microsoft Visual C++ Express&amp;quot;''' verwenden , das ebenso kostenlos ist.&lt;br /&gt;
&lt;br /&gt;
'''Zusammenfassung:'''&lt;br /&gt;
* Arduino 2560 R3 Mikrocontrollerboard&lt;br /&gt;
* USB A auf B Kabel (&amp;quot;Normaler&amp;quot; USB Anschluss auf den abgeschrägten Quadratischen)&lt;br /&gt;
* PC/Notebook mit USB-Anschluss zum Programmieren&lt;br /&gt;
* IDE: Atmel Studio 6.0&lt;br /&gt;
* Übertragungsprogramm: WinAVR&lt;br /&gt;
* C - IDE: Microsoft Visual C++ Express&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Wir starten mit C =&lt;br /&gt;
Für alle Neulinge die komplett neu in die Materie einsteigen gibts es am Anfang ein kleines C - Tutorial. Dies will ich aber nicht zu tief greifend machen, denn viele Funktionen wie Strings werden nur in Verbindung mit einem LCD bzw. einer Seriellen Schnittstelle gebraucht, solche Funktionen werde ich dann erklären, wenn sie gebraucht werden. Ebenso werden wir einige Bereiche nur überfliegen und nicht bis ins letzte Detail erklären, für das gibt es dann facheinschlägige Internetseiten und (ja man glaubt es kaum) Bücher.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Hello World und der Grundaufbau ==&lt;br /&gt;
Ein C Programm besteht grundsätzlich aus 2 Hauptteilen:&lt;br /&gt;
# Hauptprogramm&lt;br /&gt;
# Include-Datein&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;eine_datei.h&amp;gt; //Include Datei&lt;br /&gt;
#include &amp;quot;eine_andere_datei.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
void main() //Hier fängt das Hauptprogramm an&lt;br /&gt;
{&lt;br /&gt;
//Funktionsaufruf&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Diese paar Zeilen Code sind bereits ein lauffähiges, ausführbares Programm, unsere Konsolenanwendung bleibt aber leer, da wir keine Funktionen aufrufen.&lt;br /&gt;
&lt;br /&gt;
Gleich vorweg: &amp;quot;//&amp;quot; ist ein Kommentar -&amp;gt; Keine Auswirkung auf den Programmablauf - mehr dazu später&lt;br /&gt;
&lt;br /&gt;
=== Include Dateien ===&lt;br /&gt;
Die Inlcude Datein sind jene Datein, in denen Funktionen genauer definiert sind. Also wie die Funktion aufgerufen werden muss&lt;br /&gt;
&lt;br /&gt;
Dateien, die im Standart Include Verzeichniss sind werden in spitze Klammern geschrieben (&amp;lt;...&amp;gt;), Dateien welche im Projektverzeichniss sind werden in doppelte Hochkomma geschrieben (&amp;quot;...&amp;quot;), diese Dateien werden von uns selbst geschrieben, z.B. um große Unterprogramme auslagern zu können&lt;br /&gt;
&lt;br /&gt;
Häufig genutzte Dateien sind (im Windows-Bereich):&amp;lt;br/&amp;gt;&lt;br /&gt;
*conio.h - Character Funktionen (getch etc)&amp;lt;br/&amp;gt;&lt;br /&gt;
*stdio.h - Standart Ein-Ausgabe (printf, scanf etc)&amp;lt;br/&amp;gt;&lt;br /&gt;
*stdlib.h - Zufallsfunktionen, CMD-Funktion&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Hauptprogramm ===&lt;br /&gt;
Das Hauptprogramm wird bei jedem Programmaufruf aufgerufen und abgearbeitet, ist das Hauptprogramm zu Ende, beendet sich das ganze Programm (Konsolenanwendung)&lt;br /&gt;
Das Hauptprogramm selbst besteht ebenso aus mehreren Teilen:&lt;br /&gt;
# Der Funktionskopf:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
void main ()&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Hier steht der Name, bei einem Hauptprogramm immer ''main'', bei Unterprogrammen (dazu später) kann man diesen frei wählen&lt;br /&gt;
Das ''void'' sagt aus, dass das Programm nichts zurück liefert, Unterprogramme können aber auch etwas zurückliefern, dazu ebenso später. &lt;br /&gt;
&lt;br /&gt;
# Der Funktionsaufruf:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
//Funktionsaufruf&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Zwischen den geschwungenen Klammern wird das Programm abgearbeitet, also Berechnungen usw. ausgeführt &lt;br /&gt;
&lt;br /&gt;
=== Ausgabe am Bildschirm ===&lt;br /&gt;
Die Standartausgabe am Bildschirm erfolgt über die Funktion ''printf''&lt;br /&gt;
&lt;br /&gt;
Syntax:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
printf(&amp;quot;Ausgabetext unter doppeltem Hochkomma&amp;quot;, Variablen);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Für die Formatierung und einige Zusatzfunktionen gibt es sogenannte Escape Sequenzen. Diese werden einfach in den Text eingeaut, die wichtigsten sind:&amp;lt;br/&amp;gt;&lt;br /&gt;
* \n Nächste Zeile &amp;lt;br/&amp;gt;&lt;br /&gt;
* \t Tabulator (horizontal)&amp;lt;br/&amp;gt;&lt;br /&gt;
* \a Alarmton (Beep)&lt;br /&gt;
&lt;br /&gt;
=== Hello World ===&lt;br /&gt;
Mit diesen einfachen Funktionen können wir nun unser erstes &amp;quot;sinnvolles&amp;quot; Programm schreiben:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
void main ()&lt;br /&gt;
{&lt;br /&gt;
   printf(&amp;quot;Hello World!&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Bei Verwendung des Microsoft Visual Studios wird unser Programm einfach mit der Tastenkombination [Strg]+[F5] gestartet&lt;br /&gt;
&lt;br /&gt;
== Variablen ==&lt;br /&gt;
Variablen werden verwendet um veränderbare (variable) Werte zu speichern.&lt;br /&gt;
Diese Werte können unterschiedlich groß sein, deshalb gibt es unterschiedliche Datentypen:&lt;br /&gt;
&lt;br /&gt;
Ganzzahlige Variablen:&lt;br /&gt;
 NAME                   WERTEBEREICH                              SPEICHERBEDARF&lt;br /&gt;
 signed char 	        -128 bis 127 	                          1 Byte&lt;br /&gt;
 unsigned char 	        0 bis 255 	                          1 Byte&lt;br /&gt;
 short int 	        -32768 bis 32767                	  2 Byte&lt;br /&gt;
 unsigned short int 	0 bis 65535               	          2 Byte&lt;br /&gt;
 int 	                -32768 bis 32767                          2 Byte&lt;br /&gt;
 unsigned int 	        0 bis 65535 	                          2 Byte&lt;br /&gt;
 long int 	        -2147483648 bis 2147483647                4 Byte&lt;br /&gt;
 unsigned long int 	0 bis 4294967296                	  4 Byte&lt;br /&gt;
&lt;br /&gt;
Gleitkomma Variablen:&lt;br /&gt;
 NAME                   WERTEBEREICH                    GENAUIGKEIT     SPEICHERBEDARF&lt;br /&gt;
 float 	                1.2 * 10&amp;lt;sup&amp;gt;-38&amp;lt;/sup&amp;gt; bis 3.4 * 10&amp;lt;sup&amp;gt;38&amp;lt;/sup&amp;gt; 	6 Stellen 	4 Bytes&lt;br /&gt;
 double 	                2.3 * 10&amp;lt;sup&amp;gt;-308&amp;lt;/sup&amp;gt; bis 1.7 * 10&amp;lt;sup&amp;gt;308&amp;lt;/sup&amp;gt; 	15 Stellen 	8 Bytes&lt;br /&gt;
 long double 	        3.4 * 10&amp;lt;sup&amp;gt;-4932&amp;lt;/sup&amp;gt; bis 1.1 * 10&amp;lt;sup&amp;gt;4932&amp;lt;/sup&amp;gt; 	19 Stellen 	10 Bytes&lt;br /&gt;
&lt;br /&gt;
=== Variablen definieren/deklarieren/initialisieren ===&lt;br /&gt;
==== Definition - Deklaration ====&lt;br /&gt;
Als erster Schritt müssen Variblen definiert werden: es muss Name und Datentyp festgelegt werden, automatisch dazu wird ein gewisser Speicherplatz für die Variable reserviert.&lt;br /&gt;
&lt;br /&gt;
Eine Definition einer Integer Variable könnte zum Beispiel so aussehen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
int variablenname;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Somit haben wir für die Variable &amp;quot;variablenname&amp;quot; einen 2 Byte großen Speicherplatz ''reserviert''.&lt;br /&gt;
&lt;br /&gt;
==== Initialisierung ====&lt;br /&gt;
Nun schreiben wir ''erstmals'' Daten in unseren Speicherbereich.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
variablenname = 2012;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{|{{Blaueschmaltabelle}}&lt;br /&gt;
|'''Merke:'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Deklaration''' ist nur die Vergabe eines Namens und eines Typs für die Variable.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Definition''' ist die Reservierung des Speicherplatzes.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Initialisierung''' ist die Zuweisung eines ersten Wertes.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Alles auf einmal ====&lt;br /&gt;
Die Deklaration und Initialisierung kann auch auf einmal geschehen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
int variablenname = 2012;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Variablen ausgeben ===&lt;br /&gt;
Mit printf werden auch die Werte von Berechnungen ausgegeben:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
//anderer Programmcode&lt;br /&gt;
printf(&amp;quot;Inhalt der Int-Variable: %d&amp;quot;, variablenname);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Bildschirmausgabe:&lt;br /&gt;
&lt;br /&gt;
{|{{Blaueschmaltabelle}}&lt;br /&gt;
|'''Merke:'''&amp;lt;br/&amp;gt;&lt;br /&gt;
abjsdlfkjb&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''Erklärung:'''&lt;br /&gt;
%d ist ein ''Formatzeichen'', wird bei der Bildchirmausgabe durch den Variableninhalt ersetzt&lt;br /&gt;
Formatzeichen:&lt;br /&gt;
%d - Int und Long Variablen&lt;br /&gt;
%f - Float&lt;br /&gt;
%lf - double&lt;br /&gt;
%s - Zeichenkette (String)&lt;br /&gt;
&lt;br /&gt;
==== Mehrere Variablen ausgeben ====&lt;br /&gt;
Es können natürlich auch mehrere Variablen auf einmal ausgegeben werden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
zweite_variable=1.234;&lt;br /&gt;
printf(&amp;quot;Erste Variable: %d \n Die Zweite Variable steht in der nächsten Zeile: %f&amp;quot;, variablenname, zweite_variable);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Bildschirmausgabe:&lt;br /&gt;
{|{{Blaueschmaltabelle}}&lt;br /&gt;
|Erste Variable: 2012 &amp;lt;br/&amp;gt; Die Zweite Variable steht in der nächsten Zeile: 1.234|}&lt;br /&gt;
&lt;br /&gt;
{|{{Blaueschmaltabelle}}&lt;br /&gt;
|'''Merke:'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Wenn man mehrere Variablen ausgibt werden die gleichen Positionen verwendet, d.h. für das erste Formatzeichen wird auch die erste nachstehende Variable verwendet, für das zweite Formatzeichen dann die zweite Variable.|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= µC - Programmierung =&lt;br /&gt;
== Über das Board ==&lt;br /&gt;
\\In Arbeit&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Begriffserklärungen =&lt;br /&gt;
'''C'''&lt;br /&gt;
* CPU = '''C'''entral'''P'''rocessing'''U'''nit, Hauptprozessor&lt;br /&gt;
'''I'''&lt;br /&gt;
* IDE = '''I'''ntegrated'''D'''evelopment'''E'''nvironment, integrierte Entwicklungsumgebung, bestehend aus: Texteditor, Präprozessor, Compiler, Linker, Debugger&lt;br /&gt;
'''M'''&lt;br /&gt;
* Mikrocontroller = IC (Krabbelkäfer) der aus einer CPU, RAM, Flash-Speicher, Timer usw. zusammensetzt ist&lt;br /&gt;
'''R'''&lt;br /&gt;
* RAM = '''R'''andom-'''A'''ccess '''M'''emory, Speicher auf den laufend direkt zugegriffen werden kann, Arbeitsspeicher&lt;br /&gt;
&lt;br /&gt;
'''Sonderzeichen'''&lt;br /&gt;
* µC = Mikrocontroller&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Über das Tutorial =&lt;br /&gt;
== Dauer ==&lt;br /&gt;
Eine Ende ist vorerst nicht in Sicht, es wird mehr oder weniger gleich wie in der Schule vorgegangen. Ich schätze aber, dass wir Ende des Schuljahres (Juli 2013) von den Grundzügen, über Timer/Interrupts bis hin zur seriellen Schnittstelle kommen sollten.&lt;br /&gt;
&lt;br /&gt;
== Projekte ==&lt;br /&gt;
Geplant ist ein schrittweiser Aufbau mit einem Mix aus Lernstoff und praktischen Beispielen/Projekten, wobei bei diesen Projekten meistens nur &amp;quot;Standarthardware&amp;quot; (LEDs, Transistoren, Relais, Schalter usw) verwendet wird. Es kann aber auch mal vorkommen, dass mehr Teile benötigt werden, dass wird dann (wenn möglich) aber eher als Zusatzbeispiel gemacht. Sollte es sich nicht vermeiden lassen externe Hardware anzuschaffen werd ich versuchen, dies so früh wie möglich anzukündigen.&lt;br /&gt;
&lt;br /&gt;
== Autor ==&lt;br /&gt;
* Thomas PAIL, Geb.: 1996, Schüler HTLuVA Pinkafeld - Elektronik und technische Informatik&lt;br /&gt;
* Für Infos und Kontakt:&lt;br /&gt;
[http://www.roboternetz.de/community/members/53900-robo_tom_24 robo_tom_24 RoboterNetz - Profil]&lt;br /&gt;
&lt;br /&gt;
== Diskussionen über das Tutorial ==&lt;br /&gt;
Es wird noch ein Diskussions/Fragen/Antworten Thread im Roboternetz erstellt, Link folgt...&lt;br /&gt;
&lt;br /&gt;
= Schriften =&lt;br /&gt;
# Platzhalter&lt;br /&gt;
&lt;br /&gt;
 [[Kategorie:Microcontroller]]&lt;br /&gt;
 [[Kategorie:Software]]&lt;br /&gt;
 [[Kategorie:Grundlagen]]&lt;br /&gt;
 [[Kategorie:Quellcode C]]&lt;/div&gt;</summary>
		<author><name>Robo tom 24</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=Arduino_Tutorial&amp;diff=20963</id>
		<title>Arduino Tutorial</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=Arduino_Tutorial&amp;diff=20963"/>
				<updated>2012-09-11T21:02:38Z</updated>
		
		<summary type="html">&lt;p&gt;Robo tom 24: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dieses mehrwöchige/mehrmonatige Tutorial soll einem den Einstieg in die Welt der Mikrocontroller mit Hilfe des Arduino 2560 R3 Boards erleichtern. Angefangen wird natürlich bei den Grundlagen, also bei der Hochsprache &amp;quot;C&amp;quot;. Das Tutorial ist chronologisch aufgebaut und kann ohne jegliche Vorkenntnisse abgearbeitet und (hoffentlich) verstanden  werden&lt;br /&gt;
{{FarbigerRahmen|&lt;br /&gt;
'''In Bearbeitung''' - Tutorial wird dann regelmäßig geschrieben wenn die Basis da ist (in ca. 1 Woche *11.09.2012*)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
= Aller Anfang... =&lt;br /&gt;
..ist gar nicht mal so schwer.&lt;br /&gt;
Dieses Tutorial soll all jenen helfen, die gerade neu einsteigen und mit wenig Hardware viel erreichen wollen. Es wird keine vorherigen Kenntnisse benötigt, ein wenig Zeit und technisches Interesse sollte jedoch mitgebracht werden&lt;br /&gt;
&lt;br /&gt;
Aus eigener Erfahrung: Keine Angst vor neuem!&lt;br /&gt;
Das was wir hier machen ist (mehr oder weniger) ungefährlich und es kann nichts kaputt werden. Es sollte aber alles Punkt für Punkt beachtet und lieber zweimal gelesen werden, bevor man etwas falsch macht.&lt;br /&gt;
&lt;br /&gt;
== Grundlegendes ==&lt;br /&gt;
=== Ziele ===&lt;br /&gt;
* Verstehen und Anwenden von Mikrocontrollern&lt;br /&gt;
* Verstehen und Anwenden der Hochsprache &amp;quot;C&amp;quot;, genauer &amp;quot;AVR-GCC&amp;quot;&lt;br /&gt;
* Anwenden von Arduino-Bibliotheken ''(eher weniger)''&lt;br /&gt;
* Ansteuern von Peripheriegeräten im Zusammenhang mit µC:&lt;br /&gt;
** LED&lt;br /&gt;
** Relais&lt;br /&gt;
** usw.&lt;br /&gt;
* Auslesen von Sensoren mit µC:&lt;br /&gt;
** Temperatursensoren (PT1000, KTY81, etc)&lt;br /&gt;
** Lichtschranken (z.B. zu Drehzahlmessung)&lt;br /&gt;
** usw.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Was gebraucht wird ===&lt;br /&gt;
Für das Tutorial wird das '''Arduino 2560 R3''' Board verwendet, dazu wird noch eine externe Spannungsversorgung wenn man viel Peripherie angschlossen hat und ein USB Kabel benötigt.&lt;br /&gt;
Als integrierte Entwicklungsumgebung (IDE) verwenden wir die Freeware '''&amp;quot;Atmel Studio 6.0&amp;quot;''' und '''&amp;quot;WinAVR&amp;quot;''' zum übertragen auf den Controller. Für das C-Tutorial werden wir aber das '''&amp;quot;Microsoft Visual C++ Express&amp;quot;''' verwenden , das ebenso kostenlos ist.&lt;br /&gt;
&lt;br /&gt;
'''Zusammenfassung:'''&lt;br /&gt;
* Arduino 2560 R3 Mikrocontrollerboard&lt;br /&gt;
* USB A auf B Kabel (&amp;quot;Normaler&amp;quot; USB Anschluss auf den abgeschrägten Quadratischen)&lt;br /&gt;
* PC/Notebook mit USB-Anschluss zum Programmieren&lt;br /&gt;
* IDE: Atmel Studio 6.0&lt;br /&gt;
* Übertragungsprogramm: WinAVR&lt;br /&gt;
* C - IDE: Microsoft Visual C++ Express&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Wir starten mit C =&lt;br /&gt;
Für alle Neulinge die komplett neu in die Materie einsteigen gibts es am Anfang ein kleines C - Tutorial. Dies will ich aber nicht zu tief greifend machen, denn viele Funktionen wie Strings werden nur in Verbindung mit einem LCD bzw. einer Seriellen Schnittstelle gebraucht, solche Funktionen werde ich dann erklären, wenn sie gebraucht werden. Ebenso werden wir einige Bereiche nur überfliegen und nicht bis ins letzte Detail erklären, für das gibt es dann facheinschlägige Internetseiten und (ja man glaubt es kaum) Bücher.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Hello World und der Grundaufbau ==&lt;br /&gt;
Ein C Programm besteht grundsätzlich aus 2 Hauptteilen:&lt;br /&gt;
# Hauptprogramm&lt;br /&gt;
# Include-Datein&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;eine_datei.h&amp;gt; //Include Datei&lt;br /&gt;
#include &amp;quot;eine_andere_datei.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
void main() //Hier fängt das Hauptprogramm an&lt;br /&gt;
{&lt;br /&gt;
//Funktionsaufruf&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Diese paar Zeilen Code sind bereits ein lauffähiges, ausführbares Programm, unsere Konsolenanwendung bleibt aber leer, da wir keine Funktionen aufrufen.&lt;br /&gt;
&lt;br /&gt;
Gleich vorweg: &amp;quot;//&amp;quot; ist ein Kommentar -&amp;gt; Keine Auswirkung auf den Programmablauf - mehr dazu später&lt;br /&gt;
&lt;br /&gt;
=== Include Dateien ===&lt;br /&gt;
Die Inlcude Datein sind jene Datein, in denen Funktionen genauer definiert sind. Also wie die Funktion aufgerufen werden muss&lt;br /&gt;
&lt;br /&gt;
Dateien, die im Standart Include Verzeichniss sind werden in spitze Klammern geschrieben (&amp;lt;...&amp;gt;), Dateien welche im Projektverzeichniss sind werden in doppelte Hochkomma geschrieben (&amp;quot;...&amp;quot;), diese Dateien werden von uns selbst geschrieben, z.B. um große Unterprogramme auslagern zu können&lt;br /&gt;
&lt;br /&gt;
Häufig genutzte Dateien sind (im Windows-Bereich):&amp;lt;br/&amp;gt;&lt;br /&gt;
*conio.h - Character Funktionen (getch etc)&amp;lt;br/&amp;gt;&lt;br /&gt;
*stdio.h - Standart Ein-Ausgabe (printf, scanf etc)&amp;lt;br/&amp;gt;&lt;br /&gt;
*stdlib.h - Zufallsfunktionen, CMD-Funktion&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Hauptprogramm ===&lt;br /&gt;
Das Hauptprogramm wird bei jedem Programmaufruf aufgerufen und abgearbeitet, ist das Hauptprogramm zu Ende, beendet sich das ganze Programm (Konsolenanwendung)&lt;br /&gt;
Das Hauptprogramm selbst besteht ebenso aus mehreren Teilen:&lt;br /&gt;
# Der Funktionskopf:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
void main ()&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Hier steht der Name, bei einem Hauptprogramm immer ''main'', bei Unterprogrammen (dazu später) kann man diesen frei wählen&lt;br /&gt;
Das ''void'' sagt aus, dass das Programm nichts zurück liefert, Unterprogramme können aber auch etwas zurückliefern, dazu ebenso später. &lt;br /&gt;
&lt;br /&gt;
# Der Funktionsaufruf:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
//Funktionsaufruf&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Zwischen den geschwungenen Klammern wird das Programm abgearbeitet, also Berechnungen usw. ausgeführt &lt;br /&gt;
&lt;br /&gt;
=== Ausgabe am Bildschirm ===&lt;br /&gt;
Die Standartausgabe am Bildschirm erfolgt über die Funktion ''printf''&lt;br /&gt;
&lt;br /&gt;
Syntax:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
printf(&amp;quot;Ausgabetext unter doppeltem Hochkomma&amp;quot;, Variablen);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Für die Formatierung und einige Zusatzfunktionen gibt es sogenannte Escape Sequenzen. Diese werden einfach in den Text eingeaut, die wichtigsten sind:&amp;lt;br/&amp;gt;&lt;br /&gt;
* \n Nächste Zeile &amp;lt;br/&amp;gt;&lt;br /&gt;
* \t Tabulator (horizontal)&amp;lt;br/&amp;gt;&lt;br /&gt;
* \a Alarmton (Beep)&lt;br /&gt;
&lt;br /&gt;
=== Hello World ===&lt;br /&gt;
Mit diesen einfachen Funktionen können wir nun unser erstes &amp;quot;sinnvolles&amp;quot; Programm schreiben:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
void main ()&lt;br /&gt;
{&lt;br /&gt;
   printf(&amp;quot;Hello World!&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Bei Verwendung des Microsoft Visual Studios wird unser Programm einfach mit der Tastenkombination [Strg]+[F5] gestartet&lt;br /&gt;
&lt;br /&gt;
== Variablen ==&lt;br /&gt;
Variablen werden verwendet um veränderbare (variable) Werte zu speichern.&lt;br /&gt;
Diese Werte können unterschiedlich groß sein, deshalb gibt es unterschiedliche Datentypen:&lt;br /&gt;
&lt;br /&gt;
Ganzzahlige Variablen:&lt;br /&gt;
 NAME                   WERTEBEREICH                              SPEICHERBEDARF&lt;br /&gt;
 signed char 	        -128 bis 127 	                          1 Byte&lt;br /&gt;
 unsigned char 	        0 bis 255 	                          1 Byte&lt;br /&gt;
 short int 	        -32768 bis 32767                	  2 Byte&lt;br /&gt;
 unsigned short int 	0 bis 65535               	          2 Byte&lt;br /&gt;
 int 	                -32768 bis 32767                          2 Byte&lt;br /&gt;
 unsigned int 	        0 bis 65535 	                          2 Byte&lt;br /&gt;
 long int 	        -2147483648 bis 2147483647                4 Byte&lt;br /&gt;
 unsigned long int 	0 bis 4294967296                	  4 Byte&lt;br /&gt;
&lt;br /&gt;
Gleitkomma Variablen:&lt;br /&gt;
 NAME                   WERTEBEREICH                    GENAUIGKEIT     SPEICHERBEDARF&lt;br /&gt;
 float 	                1.2 * 10&amp;lt;sup&amp;gt;-38&amp;lt;/sup&amp;gt; bis 3.4 * 10&amp;lt;sup&amp;gt;38&amp;lt;/sup&amp;gt; 	6 Stellen 	4 Bytes&lt;br /&gt;
 double 	                2.3 * 10&amp;lt;sup&amp;gt;-308&amp;lt;/sup&amp;gt; bis 1.7 * 10&amp;lt;sup&amp;gt;308&amp;lt;/sup&amp;gt; 	15 Stellen 	8 Bytes&lt;br /&gt;
 long double 	        3.4 * 10&amp;lt;sup&amp;gt;-4932&amp;lt;/sup&amp;gt; bis 1.1 * 10&amp;lt;sup&amp;gt;4932&amp;lt;/sup&amp;gt; 	19 Stellen 	10 Bytes&lt;br /&gt;
&lt;br /&gt;
=== Variablen definieren/deklarieren/initialisieren ===&lt;br /&gt;
==== Definition - Deklaration ====&lt;br /&gt;
Als erster Schritt müssen Variblen definiert werden: es muss Name und Datentyp festgelegt werden, automatisch dazu wird ein gewisser Speicherplatz für die Variable reserviert.&lt;br /&gt;
&lt;br /&gt;
Eine Definition einer Integer Variable könnte zum Beispiel so aussehen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
int variablenname;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Somit haben wir für die Variable &amp;quot;variablenname&amp;quot; einen 2 Byte großen Speicherplatz ''reserviert''.&lt;br /&gt;
&lt;br /&gt;
==== Initialisierung ====&lt;br /&gt;
Nun schreiben wir ''erstmals'' Daten in unseren Speicherbereich.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
variablenname = 2012;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{|{{Blaueschmaltabelle}}&lt;br /&gt;
|'''Merke:'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Deklaration''' ist nur die Vergabe eines Namens und eines Typs für die Variable.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Definition''' ist die Reservierung des Speicherplatzes.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Initialisierung''' ist die Zuweisung eines ersten Wertes.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Alles auf einmal ====&lt;br /&gt;
Die Deklaration und Initialisierung kann auch auf einmal geschehen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
int variablenname = 2012;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Variablen ausgeben ===&lt;br /&gt;
Mit printf werden auch die Werte von Berechnungen ausgegeben:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
//anderer Programmcode&lt;br /&gt;
printf(&amp;quot;Inhalt der Int-Variable: %d&amp;quot;, variablenname);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= µC - Programmierung =&lt;br /&gt;
== Über das Board ==&lt;br /&gt;
\\In Arbeit&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Begriffserklärungen =&lt;br /&gt;
'''C'''&lt;br /&gt;
* CPU = '''C'''entral'''P'''rocessing'''U'''nit, Hauptprozessor&lt;br /&gt;
'''I'''&lt;br /&gt;
* IDE = '''I'''ntegrated'''D'''evelopment'''E'''nvironment, integrierte Entwicklungsumgebung, bestehend aus: Texteditor, Präprozessor, Compiler, Linker, Debugger&lt;br /&gt;
'''M'''&lt;br /&gt;
* Mikrocontroller = IC (Krabbelkäfer) der aus einer CPU, RAM, Flash-Speicher, Timer usw. zusammensetzt ist&lt;br /&gt;
'''R'''&lt;br /&gt;
* RAM = '''R'''andom-'''A'''ccess '''M'''emory, Speicher auf den laufend direkt zugegriffen werden kann, Arbeitsspeicher&lt;br /&gt;
&lt;br /&gt;
'''Sonderzeichen'''&lt;br /&gt;
* µC = Mikrocontroller&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Über das Tutorial =&lt;br /&gt;
== Dauer ==&lt;br /&gt;
Eine Ende ist vorerst nicht in Sicht, es wird mehr oder weniger gleich wie in der Schule vorgegangen. Ich schätze aber, dass wir Ende des Schuljahres (Juli 2013) von den Grundzügen, über Timer/Interrupts bis hin zur seriellen Schnittstelle kommen sollten.&lt;br /&gt;
&lt;br /&gt;
== Projekte ==&lt;br /&gt;
Geplant ist ein schrittweiser Aufbau mit einem Mix aus Lernstoff und praktischen Beispielen/Projekten, wobei bei diesen Projekten meistens nur &amp;quot;Standarthardware&amp;quot; (LEDs, Transistoren, Relais, Schalter usw) verwendet wird. Es kann aber auch mal vorkommen, dass mehr Teile benötigt werden, dass wird dann (wenn möglich) aber eher als Zusatzbeispiel gemacht. Sollte es sich nicht vermeiden lassen externe Hardware anzuschaffen werd ich versuchen, dies so früh wie möglich anzukündigen.&lt;br /&gt;
&lt;br /&gt;
== Autor ==&lt;br /&gt;
* Thomas PAIL, Geb.: 1996, Schüler HTLuVA Pinkafeld - Elektronik und technische Informatik&lt;br /&gt;
* Für Infos und Kontakt:&lt;br /&gt;
[http://www.roboternetz.de/community/members/53900-robo_tom_24 robo_tom_24 RoboterNetz - Profil]&lt;br /&gt;
&lt;br /&gt;
== Diskussionen über das Tutorial ==&lt;br /&gt;
Es wird noch ein Diskussions/Fragen/Antworten Thread im Roboternetz erstellt, Link folgt...&lt;br /&gt;
&lt;br /&gt;
= Schriften =&lt;br /&gt;
# Platzhalter&lt;br /&gt;
&lt;br /&gt;
 [[Kategorie:Microcontroller]]&lt;br /&gt;
 [[Kategorie:Software]]&lt;br /&gt;
 [[Kategorie:Grundlagen]]&lt;br /&gt;
 [[Kategorie:Quellcode C]]&lt;/div&gt;</summary>
		<author><name>Robo tom 24</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=Arduino_Tutorial&amp;diff=20962</id>
		<title>Arduino Tutorial</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=Arduino_Tutorial&amp;diff=20962"/>
				<updated>2012-09-11T20:59:08Z</updated>
		
		<summary type="html">&lt;p&gt;Robo tom 24: Erweiterung&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dieses mehrwöchige/mehrmonatige Tutorial soll einem den Einstieg in die Welt der Mikrocontroller mit Hilfe des Arduino 2560 R3 Boards erleichtern. Angefangen wird natürlich bei den Grundlagen, also bei der Hochsprache &amp;quot;C&amp;quot;. Das Tutorial ist chronologisch aufgebaut und kann ohne jegliche Vorkenntnisse abgearbeitet und (hoffentlich) verstanden  werden&lt;br /&gt;
{{FarbigerRahmen|&lt;br /&gt;
'''In Bearbeitung''' - Tutorial wird dann regelmäßig geschrieben wenn die Basis da ist (in ca. 1 Woche *11.09.2012*)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
= Aller Anfang... =&lt;br /&gt;
..ist gar nicht mal so schwer.&lt;br /&gt;
Dieses Tutorial soll all jenen helfen, die gerade neu einsteigen und mit wenig Hardware viel erreichen wollen. Es wird keine vorherigen Kenntnisse benötigt, ein wenig Zeit und technisches Interesse sollte jedoch mitgebracht werden&lt;br /&gt;
&lt;br /&gt;
Aus eigener Erfahrung: Keine Angst vor neuem!&lt;br /&gt;
Das was wir hier machen ist (mehr oder weniger) ungefährlich und es kann nichts kaputt werden. Es sollte aber alles Punkt für Punkt beachtet und lieber zweimal gelesen werden, bevor man etwas falsch macht.&lt;br /&gt;
&lt;br /&gt;
== Grundlegendes ==&lt;br /&gt;
=== Ziele ===&lt;br /&gt;
* Verstehen und Anwenden von Mikrocontrollern&lt;br /&gt;
* Verstehen und Anwenden der Hochsprache &amp;quot;C&amp;quot;, genauer &amp;quot;AVR-GCC&amp;quot;&lt;br /&gt;
* Anwenden von Arduino-Bibliotheken ''(eher weniger)''&lt;br /&gt;
* Ansteuern von Peripheriegeräten im Zusammenhang mit µC:&lt;br /&gt;
** LED&lt;br /&gt;
** Relais&lt;br /&gt;
** usw.&lt;br /&gt;
* Auslesen von Sensoren mit µC:&lt;br /&gt;
** Temperatursensoren (PT1000, KTY81, etc)&lt;br /&gt;
** Lichtschranken (z.B. zu Drehzahlmessung)&lt;br /&gt;
** usw.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Was gebraucht wird ===&lt;br /&gt;
Für das Tutorial wird das '''Arduino 2560 R3''' Board verwendet, dazu wird noch eine externe Spannungsversorgung wenn man viel Peripherie angschlossen hat und ein USB Kabel benötigt.&lt;br /&gt;
Als integrierte Entwicklungsumgebung (IDE) verwenden wir die Freeware '''&amp;quot;Atmel Studio 6.0&amp;quot;''' und '''&amp;quot;WinAVR&amp;quot;''' zum übertragen auf den Controller. Für das C-Tutorial werden wir aber das '''&amp;quot;Microsoft Visual C++ Express&amp;quot;''' verwenden , das ebenso kostenlos ist.&lt;br /&gt;
&lt;br /&gt;
'''Zusammenfassung:'''&lt;br /&gt;
* Arduino 2560 R3 Mikrocontrollerboard&lt;br /&gt;
* USB A auf B Kabel (&amp;quot;Normaler&amp;quot; USB Anschluss auf den abgeschrägten Quadratischen)&lt;br /&gt;
* PC/Notebook mit USB-Anschluss zum Programmieren&lt;br /&gt;
* IDE: Atmel Studio 6.0&lt;br /&gt;
* Übertragungsprogramm: WinAVR&lt;br /&gt;
* C - IDE: Microsoft Visual C++ Express&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Wir starten mit C =&lt;br /&gt;
Für alle Neulinge die komplett neu in die Materie einsteigen gibts es am Anfang ein kleines C - Tutorial. Dies will ich aber nicht zu tief greifend machen, denn viele Funktionen wie Strings werden nur in Verbindung mit einem LCD bzw. einer Seriellen Schnittstelle gebraucht, solche Funktionen werde ich dann erklären, wenn sie gebraucht werden. Ebenso werden wir einige Bereiche nur überfliegen und nicht bis ins letzte Detail erklären, für das gibt es dann facheinschlägige Internetseiten und (ja man glaubt es kaum) Bücher.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Hello World und der Grundaufbau ==&lt;br /&gt;
Ein C Programm besteht grundsätzlich aus 2 Hauptteilen:&lt;br /&gt;
# Hauptprogramm&lt;br /&gt;
# Include-Datein&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;eine_datei.h&amp;gt; //Include Datei&lt;br /&gt;
#include &amp;quot;eine_andere_datei.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
void main() //Hier fängt das Hauptprogramm an&lt;br /&gt;
{&lt;br /&gt;
//Funktionsaufruf&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Diese paar Zeilen Code sind bereits ein lauffähiges, ausführbares Programm, unsere Konsolenanwendung bleibt aber leer, da wir keine Funktionen aufrufen.&lt;br /&gt;
&lt;br /&gt;
Gleich vorweg: &amp;quot;//&amp;quot; ist ein Kommentar -&amp;gt; Keine Auswirkung auf den Programmablauf - mehr dazu später&lt;br /&gt;
&lt;br /&gt;
=== Include Dateien ===&lt;br /&gt;
Die Inlcude Datein sind jene Datein, in denen Funktionen genauer definiert sind. Also wie die Funktion aufgerufen werden muss&lt;br /&gt;
&lt;br /&gt;
Dateien, die im Standart Include Verzeichniss sind werden in spitze Klammern geschrieben (&amp;lt;...&amp;gt;), Dateien welche im Projektverzeichniss sind werden in doppelte Hochkomma geschrieben (&amp;quot;...&amp;quot;), diese Dateien werden von uns selbst geschrieben, z.B. um große Unterprogramme auslagern zu können&lt;br /&gt;
&lt;br /&gt;
Häufig genutzte Dateien sind (im Windows-Bereich):&amp;lt;br/&amp;gt;&lt;br /&gt;
*conio.h - Character Funktionen (getch etc)&amp;lt;br/&amp;gt;&lt;br /&gt;
*stdio.h - Standart Ein-Ausgabe (printf, scanf etc)&amp;lt;br/&amp;gt;&lt;br /&gt;
*stdlib.h - Zufallsfunktionen, CMD-Funktion&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Hauptprogramm ===&lt;br /&gt;
Das Hauptprogramm wird bei jedem Programmaufruf aufgerufen und abgearbeitet, ist das Hauptprogramm zu Ende, beendet sich das ganze Programm (Konsolenanwendung)&lt;br /&gt;
Das Hauptprogramm selbst besteht ebenso aus mehreren Teilen:&lt;br /&gt;
# Der Funktionskopf:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
void main ()&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Hier steht der Name, bei einem Hauptprogramm immer ''main'', bei Unterprogrammen (dazu später) kann man diesen frei wählen&lt;br /&gt;
Das ''void'' sagt aus, dass das Programm nichts zurück liefert, Unterprogramme können aber auch etwas zurückliefern, dazu ebenso später. &lt;br /&gt;
&lt;br /&gt;
# Der Funktionsaufruf:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
//Funktionsaufruf&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Zwischen den geschwungenen Klammern wird das Programm abgearbeitet, also Berechnungen usw. ausgeführt &lt;br /&gt;
&lt;br /&gt;
=== Ausgabe am Bildschirm ===&lt;br /&gt;
Die Standartausgabe am Bildschirm erfolgt über die Funktion ''printf''&lt;br /&gt;
&lt;br /&gt;
Syntax:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
printf(&amp;quot;Ausgabetext unter doppeltem Hochkomma&amp;quot;, Variablen);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Für die Formatierung und einige Zusatzfunktionen gibt es sogenannte Escape Sequenzen. Diese werden einfach in den Text eingeaut, die wichtigsten sind:&amp;lt;br/&amp;gt;&lt;br /&gt;
* \n Nächste Zeile &amp;lt;br/&amp;gt;&lt;br /&gt;
* \t Tabulator (horizontal)&amp;lt;br/&amp;gt;&lt;br /&gt;
* \a Alarmton (Beep)&lt;br /&gt;
&lt;br /&gt;
=== Hello World ===&lt;br /&gt;
Mit diesen einfachen Funktionen können wir nun unser erstes &amp;quot;sinnvolles&amp;quot; Programm schreiben:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
void main ()&lt;br /&gt;
{&lt;br /&gt;
   printf(&amp;quot;Hello World!&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Bei Verwendung des Microsoft Visual Studios wird unser Programm einfach mit der Tastenkombination [Strg]+[F5] gestartet&lt;br /&gt;
&lt;br /&gt;
== Variablen ==&lt;br /&gt;
Variablen werden verwendet um veränderbare (variable) Werte zu speichern.&lt;br /&gt;
Diese Werte können unterschiedlich groß sein, deshalb gibt es unterschiedliche Datentypen:&lt;br /&gt;
&lt;br /&gt;
Ganzzahlige Variablen:&lt;br /&gt;
 NAME                   WERTEBEREICH                              SPEICHERBEDARF&lt;br /&gt;
 signed char 	        -128 bis 127 	                          1 Byte&lt;br /&gt;
 unsigned char 	        0 bis 255 	                          1 Byte&lt;br /&gt;
 short int 	        -32768 bis 32767                	  2 Byte&lt;br /&gt;
 unsigned short int 	0 bis 65535               	          2 Byte&lt;br /&gt;
 int 	                -32768 bis 32767                          2 Byte&lt;br /&gt;
 unsigned int 	        0 bis 65535 	                          2 Byte&lt;br /&gt;
 long int 	        -2147483648 bis 2147483647                4 Byte&lt;br /&gt;
 unsigned long int 	0 bis 4294967296                	  4 Byte&lt;br /&gt;
&lt;br /&gt;
Gleitkomma Variablen:&lt;br /&gt;
 NAME                   WERTEBEREICH                    GENAUIGKEIT     SPEICHERBEDARF&lt;br /&gt;
 float 	                1.2 * 10&amp;lt;sup&amp;gt;-38&amp;lt;/sup&amp;gt; bis 3.4 * 10&amp;lt;sup&amp;gt;38&amp;lt;/sup&amp;gt; 	6 Stellen 	4 Bytes&lt;br /&gt;
 double 	                2.3 * 10&amp;lt;sup&amp;gt;-308&amp;lt;/sup&amp;gt; bis 1.7 * 10&amp;lt;sup&amp;gt;308&amp;lt;/sup&amp;gt; 	15 Stellen 	8 Bytes&lt;br /&gt;
 long double 	        3.4 * 10&amp;lt;sup&amp;gt;-4932&amp;lt;/sup&amp;gt; bis 1.1 * 10&amp;lt;sup&amp;gt;4932&amp;lt;/sup&amp;gt; 	19 Stellen 	10 Bytes&lt;br /&gt;
&lt;br /&gt;
=== Variablen definieren/deklarieren/initialisieren ===&lt;br /&gt;
==== Definition - Deklaration ====&lt;br /&gt;
Als erster Schritt müssen Variblen definiert werden: es muss Name und Datentyp festgelegt werden, automatisch dazu wird ein gewisser Speicherplatz für die Variable reserviert.&lt;br /&gt;
&lt;br /&gt;
Eine Definition einer Integer Variable könnte zum Beispiel so aussehen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
int variablenname;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Somit haben wir für die Variable &amp;quot;variablenname&amp;quot; einen 2 Byte großen Speicherplatz ''reserviert''.&lt;br /&gt;
&lt;br /&gt;
==== Initialisierung ====&lt;br /&gt;
Nun schreiben wir ''erstmals'' Daten in unseren Speicherbereich.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
variablenname = 2012;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{|{{Blaueschmaltabelle}}&lt;br /&gt;
|'''Merke:'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Deklaration''' ist nur die Vergabe eines Namens und eines Typs für die Variable.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Definition''' ist die Reservierung des Speicherplatzes.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Initialisierung''' ist die Zuweisung eines ersten Wertes.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Alles auf einmal ====&lt;br /&gt;
Die Deklaration und Initialisierung kann auch auf einmal geschehen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
int variablenname = 2012;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Variablen ausgeben ===&lt;br /&gt;
Mit printf werden auch die Werte von Berechnungen ausgegeben:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
//anderer Programmcode&lt;br /&gt;
printf(&amp;quot;Inhalt der Int-Variable: %d&amp;quot;, variablenname);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= µC - Programmierung =&lt;br /&gt;
== Über das Board ==&lt;br /&gt;
\\In Arbeit&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Begriffserklärungen =&lt;br /&gt;
'''C'''&lt;br /&gt;
* CPU = '''C'''entral'''P'''rocessing'''U'''nit, Hauptprozessor&lt;br /&gt;
'''I'''&lt;br /&gt;
* IDE = '''I'''ntegrated'''D'''evelopment'''E'''nvironment, integrierte Entwicklungsumgebung, bestehend aus: Texteditor, Präprozessor, Compiler, Linker, Debugger&lt;br /&gt;
'''M'''&lt;br /&gt;
* Mikrocontroller = IC (Krabbelkäfer) der aus einer CPU, RAM, Flash-Speicher, Timer usw. zusammensetzt ist&lt;br /&gt;
'''R'''&lt;br /&gt;
* RAM = '''R'''andom-'''A'''ccess '''M'''emory, Speicher auf den laufend direkt zugegriffen werden kann, Arbeitsspeicher&lt;br /&gt;
&lt;br /&gt;
'''Sonderzeichen'''&lt;br /&gt;
* µC = Mikrocontroller&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Über das Tutorial ==&lt;br /&gt;
=== Dauer ===&lt;br /&gt;
Eine Ende ist vorerst nicht in Sicht, es wird mehr oder weniger gleich wie in der Schule vorgegangen. Ich schätze aber, dass wir Ende des Schuljahres (Juli 2013) von den Grundzügen, über Timer/Interrupts bis hin zur seriellen Schnittstelle kommen sollten.&lt;br /&gt;
&lt;br /&gt;
=== Projekte ===&lt;br /&gt;
Geplant ist ein schrittweiser Aufbau mit einem Mix aus Lernstoff und praktischen Beispielen/Projekten, wobei bei diesen Projekten meistens nur &amp;quot;Standarthardware&amp;quot; (LEDs, Transistoren, Relais, Schalter usw) verwendet wird. Es kann aber auch mal vorkommen, dass mehr Teile benötigt werden, dass wird dann (wenn möglich) aber eher als Zusatzbeispiel gemacht. Sollte es sich nicht vermeiden lassen externe Hardware anzuschaffen werd ich versuchen, dies so früh wie möglich anzukündigen.&lt;br /&gt;
&lt;br /&gt;
=== Autor ===&lt;br /&gt;
* Thomas PAIL, Geb.: 1996, Schüler HTLuVA Pinkafeld - Elektronik und technische Informatik&lt;br /&gt;
* Für Infos und Kontakt:&lt;br /&gt;
[http://www.roboternetz.de/community/members/53900-robo_tom_24 robo_tom_24 RoboterNetz - Profil]&lt;br /&gt;
&lt;br /&gt;
=== Diskussionen über das Tutorial ===&lt;br /&gt;
Es wird noch ein Diskussions/Fragen/Antworten Thread im Roboternetz erstellt, Link folgt...&lt;br /&gt;
&lt;br /&gt;
= Schriften =&lt;br /&gt;
# Platzhalter&lt;br /&gt;
&lt;br /&gt;
 [[Kategorie:Microcontroller]]&lt;br /&gt;
 [[Kategorie:Software]]&lt;br /&gt;
 [[Kategorie:Grundlagen]]&lt;br /&gt;
 [[Kategorie:Quellcode C]]&lt;/div&gt;</summary>
		<author><name>Robo tom 24</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=Arduino_Tutorial&amp;diff=20958</id>
		<title>Arduino Tutorial</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=Arduino_Tutorial&amp;diff=20958"/>
				<updated>2012-09-11T19:46:52Z</updated>
		
		<summary type="html">&lt;p&gt;Robo tom 24: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dieses mehrwöchige/mehrmonatige Tutorial soll einem den Einstieg in die Welt der Mikrocontroller mit Hilfe des Arduino 2560 R3 Boards erleichtern. Angefangen wird natürlich bei den Grundlagen, also bei der Hochsprache &amp;quot;C&amp;quot;. Das Tutorial ist chronologisch aufgebaut und kann ohne jegliche Vorkenntnisse abgearbeitet und (hoffentlich) verstanden  werden&lt;br /&gt;
{{FarbigerRahmen|&lt;br /&gt;
'''In Bearbeitung''' - Tutorial wird dann regelmäßig geschrieben wenn die Basis da ist (in ca. 1 Woche *11.09.2012*)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
= Aller Anfang... =&lt;br /&gt;
..ist gar nicht mal so schwer.&lt;br /&gt;
Dieses Tutorial soll all jenen helfen, die gerade neu einsteigen und mit wenig Hardware viel erreichen wollen. Es wird keine vorherigen Kenntnisse benötigt, ein wenig Zeit und technisches Interesse sollte jedoch mitgebracht werden&lt;br /&gt;
&lt;br /&gt;
Aus eigener Erfahrung: Keine Angst vor neuem!&lt;br /&gt;
Das was wir hier machen ist (mehr oder weniger) ungefährlich und es kann nichts kaputt werden. Es sollte aber alles Punkt für Punkt beachtet und lieber zweimal gelesen werden, bevor man etwas falsch macht.&lt;br /&gt;
&lt;br /&gt;
== Grundlegendes ==&lt;br /&gt;
=== Ziele ===&lt;br /&gt;
* Verstehen und Anwenden von Mikrocontrollern&lt;br /&gt;
* Verstehen und Anwenden der Hochsprache &amp;quot;C&amp;quot;, genauer &amp;quot;AVR-GCC&amp;quot;&lt;br /&gt;
* Anwenden von Arduino-Bibliotheken ''(eher weniger)''&lt;br /&gt;
* Ansteuern von Peripheriegeräten im Zusammenhang mit µC:&lt;br /&gt;
** LED&lt;br /&gt;
** Relais&lt;br /&gt;
** usw.&lt;br /&gt;
* Auslesen von Sensoren mit µC:&lt;br /&gt;
** Temperatursensoren (PT1000, KTY81, etc)&lt;br /&gt;
** Lichtschranken (z.B. zu Drehzahlmessung)&lt;br /&gt;
** usw.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Was gebraucht wird ===&lt;br /&gt;
Für das Tutorial wird das '''Arduino 2560 R3''' Board verwendet, dazu wird noch eine externe Spannungsversorgung wenn man viel Peripherie angschlossen hat und ein USB Kabel benötigt.&lt;br /&gt;
Als integrierte Entwicklungsumgebung (IDE) verwenden wir die Freeware '''&amp;quot;Atmel Studio 6.0&amp;quot;''' und '''&amp;quot;WinAVR&amp;quot;''' zum übertragen auf den Controller. Für das C-Tutorial werden wir aber das '''&amp;quot;Microsoft Visual C++ Express&amp;quot;''' verwenden , das ebenso kostenlos ist.&lt;br /&gt;
&lt;br /&gt;
'''Zusammenfassung:'''&lt;br /&gt;
* Arduino 2560 R3 Mikrocontrollerboard&lt;br /&gt;
* USB A auf B Kabel (&amp;quot;Normaler&amp;quot; USB Anschluss auf den abgeschrägten Quadratischen)&lt;br /&gt;
* PC/Notebook mit USB-Anschluss zum Programmieren&lt;br /&gt;
* IDE: Atmel Studio 6.0&lt;br /&gt;
* Übertragungsprogramm: WinAVR&lt;br /&gt;
* C - IDE: Microsoft Visual C++ Express&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Wir starten mit C =&lt;br /&gt;
Für alle Neulinge die komplett neu in die Materie einsteigen gibts es am Anfang ein kleines C - Tutorial. Dies will ich aber nicht zu tief greifend machen, denn viele Funktionen wie Strings werden nur in Verbindung mit einem LCD bzw. einer Seriellen Schnittstelle gebraucht, solche Funktionen werde ich dann erklären, wenn sie gebraucht werden&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Hello World und der Grundaufbau ==&lt;br /&gt;
Ein C Programm besteht grundsätzlich aus 2 Hauptteilen:&lt;br /&gt;
# Hauptprogramm&lt;br /&gt;
# Include-Datein&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;eine_datei.h&amp;gt; //Include Datei&lt;br /&gt;
#include &amp;quot;eine_andere_datei.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
void main() //Hier fängt das Hauptprogramm an&lt;br /&gt;
{&lt;br /&gt;
//Funktionsaufruf&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Diese paar Zeilen Code sind bereits ein lauffähiges, ausführbares Programm, unsere Konsolenanwendung bleibt aber leer, da wir keine Funktionen aufrufen.&lt;br /&gt;
&lt;br /&gt;
Gleich vorweg: &amp;quot;//&amp;quot; ist ein Kommentar -&amp;gt; Keine Auswirkung auf den Programmablauf - mehr dazu später&lt;br /&gt;
&lt;br /&gt;
=== Include Dateien ===&lt;br /&gt;
Die Inlcude Datein sind jene Datein, in denen Funktionen genauer definiert sind. Also wie die Funktion aufgerufen werden muss&lt;br /&gt;
&lt;br /&gt;
Dateien, die im Standart Include Verzeichniss sind werden in spitze Klammern geschrieben (&amp;lt;...&amp;gt;), Dateien welche im Projektverzeichniss sind werden in doppelte Hochkomma geschrieben (&amp;quot;...&amp;quot;), diese Dateien werden von uns selbst geschrieben, z.B. um große Unterprogramme auslagern zu können&lt;br /&gt;
&lt;br /&gt;
Häufig genutzte Dateien sind (im Windows-Bereich):&amp;lt;br/&amp;gt;&lt;br /&gt;
*conio.h - Character Funktionen (getch etc)&amp;lt;br/&amp;gt;&lt;br /&gt;
*stdio.h - Standart Ein-Ausgabe (printf, scanf etc)&amp;lt;br/&amp;gt;&lt;br /&gt;
*stdlib.h - Zufallsfunktionen, CMD-Funktion&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Hauptprogramm ===&lt;br /&gt;
Das Hauptprogramm wird bei jedem Programmaufruf aufgerufen und abgearbeitet, ist das Hauptprogramm zu Ende, beendet sich das ganze Programm (Konsolenanwendung)&lt;br /&gt;
Das Hauptprogramm selbst besteht ebenso aus mehreren Teilen:&lt;br /&gt;
# Der Funktionskopf:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
void main ()&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Hier steht der Name, bei einem Hauptprogramm immer ''main''&lt;br /&gt;
&lt;br /&gt;
# Der Funktionsaufruf:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
//Funktionsaufruf&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Zwischen den geschwungenen Klammern wird das Programm abgearbeitet, also Berechnungen usw. ausgeführt &lt;br /&gt;
&lt;br /&gt;
=== Ausgabe am Bildschirm ===&lt;br /&gt;
Die Standartausgabe am Bildschirm erfolgt über die Funktion ''printf''&lt;br /&gt;
&lt;br /&gt;
Syntax:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
printf(&amp;quot;Ausgabetext unter doppeltem Hochkomma&amp;quot;, Variablen);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Für die Formatierung und einige Zusatzfunktionen gibt es sogenannte Escape Sequenzen. Diese werden einfach in den Text eingeaut, die wichtigsten sind:&amp;lt;br/&amp;gt;&lt;br /&gt;
* \n Nächste Zeile &amp;lt;br/&amp;gt;&lt;br /&gt;
* \t Tabulator (horizontal)&amp;lt;br/&amp;gt;&lt;br /&gt;
* \a Alarmton (Beep)&lt;br /&gt;
&lt;br /&gt;
=== Hello World ===&lt;br /&gt;
Mit diesen einfachen Funktionen können wir nun unser erstes &amp;quot;sinnvolles&amp;quot; Programm schreiben:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
void main ()&lt;br /&gt;
{&lt;br /&gt;
   printf(&amp;quot;Hello World!&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Bei Verwendung des Microsoft Visual Studios wird unser Programm einfach mit der Tastenkombination [Strg]+[F5] gestartet&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= µC - Programmierung =&lt;br /&gt;
== Über das Board ==&lt;br /&gt;
\\In Arbeit&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Begriffserklärungen =&lt;br /&gt;
'''C'''&lt;br /&gt;
* CPU = '''C'''entral'''P'''rocessing'''U'''nit, Hauptprozessor&lt;br /&gt;
'''I'''&lt;br /&gt;
* IDE = '''I'''ntegrated'''D'''evelopment'''E'''nvironment, integrierte Entwicklungsumgebung, bestehend aus: Texteditor, Präprozessor, Compiler, Linker, Debugger&lt;br /&gt;
'''M'''&lt;br /&gt;
* Mikrocontroller = IC (Krabbelkäfer) der aus einer CPU, RAM, Flash-Speicher, Timer usw. zusammensetzt ist&lt;br /&gt;
'''R'''&lt;br /&gt;
* RAM = '''R'''andom-'''A'''ccess '''M'''emory, Speicher auf den laufend direkt zugegriffen werden kann, Arbeitsspeicher&lt;br /&gt;
&lt;br /&gt;
'''Sonderzeichen'''&lt;br /&gt;
* µC = Mikrocontroller&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Über das Tutorial ==&lt;br /&gt;
=== Dauer ===&lt;br /&gt;
Eine Ende ist vorerst nicht in Sicht, es wird mehr oder weniger gleich wie in der Schule vorgegangen. Ich schätze aber, dass wir Ende des Schuljahres (Juli 2013) von den Grundzügen, über Timer/Interrupts bis hin zur seriellen Schnittstelle kommen sollten.&lt;br /&gt;
&lt;br /&gt;
=== Projekte ===&lt;br /&gt;
Geplant ist ein schrittweiser Aufbau mit einem Mix aus Lernstoff und praktischen Beispielen/Projekten, wobei bei diesen Projekten meistens nur &amp;quot;Standarthardware&amp;quot; (LEDs, Transistoren, Relais, Schalter usw) verwendet wird. Es kann aber auch mal vorkommen, dass mehr Teile benötigt werden, dass wird dann (wenn möglich) aber eher als Zusatzbeispiel gemacht. Sollte es sich nicht vermeiden lassen externe Hardware anzuschaffen werd ich versuchen, dies so früh wie möglich anzukündigen.&lt;br /&gt;
&lt;br /&gt;
=== Autor ===&lt;br /&gt;
* Thomas PAIL, Geb.: 1996, Schüler HTLuVA Pinkafeld - Elektronik und technische Informatik&lt;br /&gt;
* Für Infos und Kontakt:&lt;br /&gt;
[http://www.roboternetz.de/community/members/53900-robo_tom_24 robo_tom_24 RoboterNetz - Profil]&lt;br /&gt;
&lt;br /&gt;
=== Diskussionen über das Tutorial ===&lt;br /&gt;
Es wird noch ein Diskussions/Fragen/Antworten Thread im Roboternetz erstellt, Link folgt...&lt;br /&gt;
&lt;br /&gt;
= Schriften =&lt;br /&gt;
# Platzhalter&lt;br /&gt;
&lt;br /&gt;
 [[Kategorie:Microcontroller]]&lt;br /&gt;
 [[Kategorie:Software]]&lt;br /&gt;
 [[Kategorie:Grundlagen]]&lt;br /&gt;
 [[Kategorie:Quellcode C]]&lt;/div&gt;</summary>
		<author><name>Robo tom 24</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=Arduino_Tutorial&amp;diff=20957</id>
		<title>Arduino Tutorial</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=Arduino_Tutorial&amp;diff=20957"/>
				<updated>2012-09-11T19:25:45Z</updated>
		
		<summary type="html">&lt;p&gt;Robo tom 24: Erweiterung&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dieses mehrwöchige/mehrmonatige Tutorial soll einem den Einstieg in die Welt der Mikrocontroller mit Hilfe des Arduino 2560 R3 Boards erleichtern. Angefangen wird natürlich bei den Grundlagen, also bei der Hochsprache &amp;quot;C&amp;quot;. Das Tutorial ist chronologisch aufgebaut und kann ohne jegliche Vorkenntnisse abgearbeitet und (hoffentlich) verstanden  werden&lt;br /&gt;
{{FarbigerRahmen|&lt;br /&gt;
'''In Bearbeitung''' - Tutorial wird dann regelmäßig geschrieben wenn die Basis da ist (in ca. 1 Woche *11.09.2012*)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Aller Anfang... ==&lt;br /&gt;
..ist gar nicht mal so schwer.&lt;br /&gt;
Dieses Tutorial soll all jenen helfen, die gerade neu einsteigen und mit wenig Hardware viel erreichen wollen. Es wird keine vorherigen Kenntnisse benötigt, ein wenig Zeit und technisches Interesse sollte jedoch mitgebracht werden&lt;br /&gt;
&lt;br /&gt;
Aus eigener Erfahrung: Keine Angst vor neuem!&lt;br /&gt;
Das was wir hier machen ist (mehr oder weniger) ungefährlich und es kann nichts kaputt werden. Es sollte aber alles Punkt für Punkt beachtet und lieber zweimal gelesen werden, bevor man etwas falsch macht.&lt;br /&gt;
&lt;br /&gt;
== Grundlegendes ==&lt;br /&gt;
=== Ziele ===&lt;br /&gt;
* Verstehen und Anwenden von Mikrocontrollern&lt;br /&gt;
* Verstehen und Anwenden der Hochsprache &amp;quot;C&amp;quot;, genauer &amp;quot;AVR-GCC&amp;quot;&lt;br /&gt;
* Anwenden von Arduino-Bibliotheken ''(eher weniger)''&lt;br /&gt;
* Ansteuern von Peripheriegeräten im Zusammenhang mit µC:&lt;br /&gt;
** LED&lt;br /&gt;
** Relais&lt;br /&gt;
** usw.&lt;br /&gt;
* Auslesen von Sensoren mit µC:&lt;br /&gt;
** Temperatursensoren (PT1000, KTY81, etc)&lt;br /&gt;
** Lichtschranken (z.B. zu Drehzahlmessung)&lt;br /&gt;
** usw.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Was gebraucht wird ===&lt;br /&gt;
Für das Tutorial wird das '''Arduino 2560 R3''' Board verwendet, dazu wird noch eine externe Spannungsversorgung wenn man viel Peripherie angschlossen hat und ein USB Kabel benötigt.&lt;br /&gt;
Als integrierte Entwicklungsumgebung (IDE) verwenden wir die Freeware '''&amp;quot;Atmel Studio 6.0&amp;quot;''' und '''&amp;quot;WinAVR&amp;quot;''' zum übertragen auf den Controller. Für das C-Tutorial werden wir aber das '''&amp;quot;Microsoft Visual C++ Express&amp;quot;''' verwenden , das ebenso kostenlos ist.&lt;br /&gt;
&lt;br /&gt;
'''Zusammenfassung:'''&lt;br /&gt;
* Arduino 2560 R3 Mikrocontrollerboard&lt;br /&gt;
* USB A auf B Kabel (&amp;quot;Normaler&amp;quot; USB Anschluss auf den abgeschrägten Quadratischen)&lt;br /&gt;
* PC/Notebook mit USB-Anschluss zum Programmieren&lt;br /&gt;
* IDE: Atmel Studio 6.0&lt;br /&gt;
* Übertragungsprogramm: WinAVR&lt;br /&gt;
* C - IDE: Microsoft Visual C++ Express&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Wir starten mit C ==&lt;br /&gt;
Für alle Neulinge die komplett neu in die Materie einsteigen gibts es am Anfang ein kleines C - Tutorial. Dies will ich aber nicht zu tief greifend machen, denn viele Funktionen wie Strings werden nur in Verbindung mit einem LCD bzw. einer Seriellen Schnittstelle gebraucht, solche Funktionen werde ich dann erklären, wenn sie gebraucht werden&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Hello World und der Grundaufbau ===&lt;br /&gt;
Ein C Programm besteht grundsätzlich aus 2 Hauptteilen:&lt;br /&gt;
# Hauptprogramm&lt;br /&gt;
# Include-Datein&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;eine_datei.h&amp;gt; //Include Datei&lt;br /&gt;
#include &amp;quot;eine_andere_datei.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
void main() //Hier fängt das Hauptprogramm an&lt;br /&gt;
{&lt;br /&gt;
//Funktionsaufruf&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Gleich vorweg: &amp;quot;//&amp;quot; ist ein Kommentar -&amp;gt; Keine Auswirkung auf den Programmablauf - mehr dazu später&lt;br /&gt;
&lt;br /&gt;
==== Include Dateien ====&lt;br /&gt;
Die Inlcude Datein sind jene Datein, in denen Funktionen genauer definiert sind. Also wie die Funktion aufgerufen werden muss&lt;br /&gt;
&lt;br /&gt;
Dateien, die im Standart Include Verzeichniss sind werden in spitze Klammern geschrieben (&amp;lt;...&amp;gt;), Dateien welche im Projektverzeichniss sind werden in doppelte Hochkomma geschrieben (&amp;quot;...&amp;quot;), diese Dateien werden von uns selbst geschrieben, z.B. um große Unterprogramme auslagern zu können&lt;br /&gt;
&lt;br /&gt;
Häufig genutzte Dateien sind (im Windows-Bereich):&amp;lt;br/&amp;gt;&lt;br /&gt;
*conio.h&amp;lt;br/&amp;gt;&lt;br /&gt;
*stdio.h&amp;lt;br/&amp;gt;&lt;br /&gt;
*stdlib.h&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Hauptprogramm ====&lt;br /&gt;
Das Hauptprogramm wird bei jedem Programmaufruf aufgerufen und abgearbeitet, ist das Hauptprogramm zu Ende, beendet sich das ganze Programm (Konsolenanwendung)&lt;br /&gt;
Das Hauptprogramm selbst besteht ebenso aus mehreren Teilen:&lt;br /&gt;
# Der Funktionskopf:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
void main ()&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Hier steht der Name, bei einem Hauptprogramm immer ''main''&lt;br /&gt;
&lt;br /&gt;
# Der Funktionsaufruf:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
//Funktionsaufruf&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Zwischen den geschwungenen Klammern wird das Programm abgearbeitet, also Berechnungen usw. ausgeführt &lt;br /&gt;
&lt;br /&gt;
=== Ausgabe am Bildschirm ===&lt;br /&gt;
Die Standartausgabe am Bildschirm erfolgt über die Funktion ''printf''&lt;br /&gt;
&lt;br /&gt;
Syntax:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
printf(&amp;quot;Ausgabetext unter doppeltem Hochkomma&amp;quot;, Variablen);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== µC - Programmierung ==&lt;br /&gt;
=== Über das Board ===&lt;br /&gt;
\\In Arbeit&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Begriffserklärungen ==&lt;br /&gt;
'''C'''&lt;br /&gt;
* CPU = '''C'''entral'''P'''rocessing'''U'''nit, Hauptprozessor&lt;br /&gt;
'''I'''&lt;br /&gt;
* IDE = '''I'''ntegrated'''D'''evelopment'''E'''nvironment, integrierte Entwicklungsumgebung, bestehend aus: Texteditor, Präprozessor, Compiler, Linker, Debugger&lt;br /&gt;
'''M'''&lt;br /&gt;
* Mikrocontroller = IC (Krabbelkäfer) der aus einer CPU, RAM, Flash-Speicher, Timer usw. zusammensetzt ist&lt;br /&gt;
'''R'''&lt;br /&gt;
* RAM = '''R'''andom-'''A'''ccess '''M'''emory, Speicher auf den laufend direkt zugegriffen werden kann, Arbeitsspeicher&lt;br /&gt;
&lt;br /&gt;
'''Sonderzeichen'''&lt;br /&gt;
* µC = Mikrocontroller&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Über das Tutorial ==&lt;br /&gt;
=== Dauer ===&lt;br /&gt;
Eine Ende ist vorerst nicht in Sicht, es wird mehr oder weniger gleich wie in der Schule vorgegangen. Ich schätze aber, dass wir Ende des Schuljahres (Juli 2013) von den Grundzügen, über Timer/Interrupts bis hin zur seriellen Schnittstelle kommen sollten.&lt;br /&gt;
&lt;br /&gt;
=== Projekte ===&lt;br /&gt;
Geplant ist ein schrittweiser Aufbau mit einem Mix aus Lernstoff und praktischen Beispielen/Projekten, wobei bei diesen Projekten meistens nur &amp;quot;Standarthardware&amp;quot; (LEDs, Transistoren, Relais, Schalter usw) verwendet wird. Es kann aber auch mal vorkommen, dass mehr Teile benötigt werden, dass wird dann (wenn möglich) aber eher als Zusatzbeispiel gemacht. Sollte es sich nicht vermeiden lassen externe Hardware anzuschaffen werd ich versuchen, dies so früh wie möglich anzukündigen.&lt;br /&gt;
&lt;br /&gt;
=== Autor ===&lt;br /&gt;
* Thomas PAIL, 1996, Schüler HTLuVA Pinkafeld - Elektronik und technische Informatik&lt;br /&gt;
* Für Infos und Kontakt:&lt;br /&gt;
[http://www.roboternetz.de/community/members/53900-robo_tom_24 robo_tom_24 RoboterNetz - Profil]&lt;br /&gt;
&lt;br /&gt;
=== Diskussionen über das Tutorial ===&lt;br /&gt;
Es wird noch ein Diskussions/Fragen/Antworten Thread im Roboternetz erstellt, Link folgt...&lt;br /&gt;
&lt;br /&gt;
== Schriften ==&lt;br /&gt;
# Platzhalter&lt;br /&gt;
&lt;br /&gt;
 [[Kategorie:Microcontroller]]&lt;br /&gt;
 [[Kategorie:Software]]&lt;br /&gt;
 [[Kategorie:Grundlagen]]&lt;br /&gt;
 [[Kategorie:Quellcode C]]&lt;/div&gt;</summary>
		<author><name>Robo tom 24</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=Arduino_Tutorial&amp;diff=20956</id>
		<title>Arduino Tutorial</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=Arduino_Tutorial&amp;diff=20956"/>
				<updated>2012-09-11T18:03:19Z</updated>
		
		<summary type="html">&lt;p&gt;Robo tom 24: Erweiterung&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dieses mehrwöchige/mehrmonatige Tutorial soll einem den Einstieg in die Welt der Mikrocontroller mit Hilfe des Arduino 2560 R3 Boards erleichtern. Angefangen wird natürlich bei den Grundlagen, also bei der Hochsprache &amp;quot;C&amp;quot;. Das Tutorial ist chronologisch aufgebaut und kann ohne jegliche Vorkenntnisse abgearbeitet und (hoffentlich) verstanden  werden&lt;br /&gt;
{{FarbigerRahmen|&lt;br /&gt;
'''In Bearbeitung''' - Tutorial wird es dann regelmäßig geschrieben wenn die Basis da ist (in ca. 1 Woche *11.09.2012*)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Aller Anfang... ==&lt;br /&gt;
..ist gar nicht mal so schwer.&lt;br /&gt;
Dieses Tutorial soll all jenen helfen, die gerade neu einsteigen und mit wenig Hardware viel erreichen wollen. Es wird keine vorherigen Kenntnisse benötigt, ein wenig Zeit und technisches Interesse sollte jedoch mitgebracht werden&lt;br /&gt;
&lt;br /&gt;
Aus eigener Erfahrung: Keine Angst vor neuem!&lt;br /&gt;
Das was wir hier machen ist (mehr oder weniger) ungefährlich und es kann nichts kaputt werden. Es sollte aber alles Punkt für Punkt beachtet und lieber zweimal gelesen werden, bevor man etwas falsch macht.&lt;br /&gt;
&lt;br /&gt;
== Grundlegendes ==&lt;br /&gt;
=== Ziele ===&lt;br /&gt;
* Verstehen und Anwenden von Mikrocontrollern&lt;br /&gt;
* Verstehen und Anwenden der Hochsprache &amp;quot;C&amp;quot;, genauer &amp;quot;AVR-GCC&amp;quot;&lt;br /&gt;
* Anwenden von Arduino-Bibliotheken ''(eher weniger)''&lt;br /&gt;
* Ansteuern von Peripheriegeräten im Zusammenhang mit µC:&lt;br /&gt;
** LED&lt;br /&gt;
** Relais&lt;br /&gt;
** usw.&lt;br /&gt;
* Auslesen von Sensoren mit µC:&lt;br /&gt;
** Temperatursensoren (PT1000, KTY81, etc)&lt;br /&gt;
** Lichtschranken (z.B. zu Drehzahlmessung)&lt;br /&gt;
** usw.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Was gebraucht wird ===&lt;br /&gt;
Für das Tutorial wird das '''Arduino 2560 R3''' Board verwendet, dazu wird noch eine externe Spannungsversorgung wenn man viel Peripherie angschlossen hat und ein USB Kabel benötigt.&lt;br /&gt;
Als integrierte Entwicklungsumgebung (IDE) verwenden wir die Freeware '''&amp;quot;Atmel Studio 6.0&amp;quot;''' und '''&amp;quot;WinAVR&amp;quot;''' zum übertragen auf den Controller. Für das C-Tutorial werden wir aber das '''&amp;quot;Microsoft Visual C++ Express&amp;quot;''' verwenden , das ebenso kostenlos ist.&lt;br /&gt;
&lt;br /&gt;
'''Zusammenfassung:'''&lt;br /&gt;
* Arduino 2560 R3 Mikrocontrollerboard&lt;br /&gt;
* USB A auf B Kabel (&amp;quot;Normaler&amp;quot; USB Anschluss auf den abgeschrägten Quadratischen)&lt;br /&gt;
* PC/Notebook mit USB-Anschluss zum Programmieren&lt;br /&gt;
* IDE: Atmel Studio 6.0&lt;br /&gt;
* Übertragungsprogramm: WinAVR&lt;br /&gt;
* C - IDE: Microsoft Visual C++ Express&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Wir starten mit C ==&lt;br /&gt;
Für alle Neulinge die komplett neu in die Materie einsteigen gibts es am Anfang ein kleines C - Tutorial. Dies will ich aber nicht zu tief greifend machen, denn viele Funktionen wie Strings werden nur in Verbindung mit einem LCD bzw. einer Seriellen Schnittstelle gebraucht, solche Funktionen werde ich dann erklären, wenn sie gebraucht werden&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Hello World und der Grundaufbau ===&lt;br /&gt;
Ein C Programm besteht grundsätzlich aus 2 Hauptteilen:&lt;br /&gt;
# Hauptprogramm&lt;br /&gt;
# Include-Datein&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;eine.datei&amp;gt;&lt;br /&gt;
&lt;br /&gt;
void main()&lt;br /&gt;
{&lt;br /&gt;
//Funktionsaufruf&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Gleich vorweg: &amp;quot;//&amp;quot; ist ein Kommentar -&amp;gt; Keine Auswirkung auf den Programmablauf - mehr dazu später&lt;br /&gt;
&lt;br /&gt;
==== Include Dateien ====&lt;br /&gt;
Die Inlcude Datein sind jene Datein, in denen Funktionen genauer definiert sind. Also wie die Funktion aufgerufen werden muss&lt;br /&gt;
&lt;br /&gt;
Dateien, die im Standart Include Verzeichniss sind werden in spitze Klammern geschrieben (&amp;lt;...&amp;gt;), Dateien welche im Projektverzeichniss sind werden in doppelte Hochkomma geschrieben (&amp;quot;...&amp;quot;), diese Dateien werden von uns selbst geschrieben, z.B. um große Unterprogramme auslagern zu können&lt;br /&gt;
&lt;br /&gt;
Häufig genutzte Dateien sind (im Windows-Bereich):&lt;br /&gt;
conio.h&lt;br /&gt;
stdio.h&lt;br /&gt;
stdlib.h&lt;br /&gt;
&lt;br /&gt;
== µC - Programmierung ==&lt;br /&gt;
=== Über das Board ===&lt;br /&gt;
\\In Arbeit&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Begriffserklärungen ==&lt;br /&gt;
'''C'''&lt;br /&gt;
* CPU = '''C'''entral'''P'''rocessing'''U'''nit, Hauptprozessor&lt;br /&gt;
'''I'''&lt;br /&gt;
* IDE = '''I'''ntegrated'''D'''evelopment'''E'''nvironment, integrierte Entwicklungsumgebung, bestehend aus: Texteditor, Präprozessor, Compiler, Linker, Debugger&lt;br /&gt;
'''M'''&lt;br /&gt;
* Mikrocontroller = IC (Krabbelkäfer) der aus einer CPU, RAM, Flash-Speicher, Timer usw. zusammensetzt ist&lt;br /&gt;
'''R'''&lt;br /&gt;
* RAM = '''R'''andom-'''A'''ccess '''M'''emory, Speicher auf den laufend direkt zugegriffen werden kann, Arbeitsspeicher&lt;br /&gt;
&lt;br /&gt;
'''Sonderzeichen'''&lt;br /&gt;
* µC = Mikrocontroller&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Über das Tutorial ==&lt;br /&gt;
=== Dauer ===&lt;br /&gt;
Eine Ende ist vorerst nicht in Sicht, es wird mehr oder weniger gleich wie in der Schule vorgegangen. Ich schätze aber, dass wir Ende des Schuljahres (Juli 2013) von den Grundzügen, über Timer/Interrupts bis hin zur seriellen Schnittstelle kommen sollten.&lt;br /&gt;
&lt;br /&gt;
=== Projekte ===&lt;br /&gt;
Geplant ist ein schrittweiser Aufbau mit einem Mix aus Lernstoff und praktischen Beispielen/Projekten, wobei bei diesen Projekten meistens nur &amp;quot;Standarthardware&amp;quot; (LEDs, Transistoren, Relais, Schalter usw) verwendet wird. Es kann aber auch mal vorkommen, dass mehr Teile benötigt werden, dass wird dann (wenn möglich) aber eher als Zusatzbeispiel gemacht. Sollte es sich nicht vermeiden lassen externe Hardware anzuschaffen werd ich versuchen, dies so früh wie möglich anzukündigen.&lt;br /&gt;
&lt;br /&gt;
=== Autor ===&lt;br /&gt;
* Thomas PAIL, 1996, Schüler HTLuVA Pinkafeld - Elektronik und technische Informatik&lt;br /&gt;
* Für Infos und Kontakt:&lt;br /&gt;
[http://www.roboternetz.de/community/members/53900-robo_tom_24 robo_tom_24 RoboterNetz - Profil]&lt;br /&gt;
&lt;br /&gt;
=== Diskussionen über das Tutorial ===&lt;br /&gt;
Es wird noch ein Diskussions/Fragen/Antworten Thread im Roboternetz erstellt, Link folgt...&lt;br /&gt;
&lt;br /&gt;
== Schriften ==&lt;br /&gt;
# Platzhalter&lt;br /&gt;
&lt;br /&gt;
 [[Kategorie:Microcontroller]]&lt;br /&gt;
 [[Kategorie:Software]]&lt;br /&gt;
 [[Kategorie:Grundlagen]]&lt;br /&gt;
 [[Kategorie:Quellcode C]]&lt;/div&gt;</summary>
		<author><name>Robo tom 24</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=Arduino_Tutorial&amp;diff=20955</id>
		<title>Arduino Tutorial</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=Arduino_Tutorial&amp;diff=20955"/>
				<updated>2012-09-11T16:55:59Z</updated>
		
		<summary type="html">&lt;p&gt;Robo tom 24: Erweiterung&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dieses mehrwöchige/mehrmonatige Tutorial soll einem den Einstieg in die Welt der Mikrocontroller mit Hilfe des Arduino 2560 R3 Boards erleichtern. Angefangen wird natürlich bei den Grundlagen, also bei der Hochsprache &amp;quot;C&amp;quot;. Das Tutorial ist chronologisch aufgebaut und kann ohne jegliche Vorkenntnisse abgearbeitet und (hoffentlich) verstanden  werden&lt;br /&gt;
{{FarbigerRahmen|&lt;br /&gt;
In Bearbeitung - Tutorial wird es dann regelmäßig geschrieben wenn die Basis da ist (in ca. 1 Woche *11.09.2012*)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Aller Anfang... ==&lt;br /&gt;
..ist gar nicht mal so schwer.&lt;br /&gt;
Dieses Tutorial soll all jenen helfen, die gerade neu einsteigen und mit wenig Hardware viel erreichen wollen. Es wird keine vorherigen Kenntnisse benötigt, ein wenig Zeit und technisches Interesse sollte jedoch mitgebracht werden&lt;br /&gt;
&lt;br /&gt;
Aus eigener Erfahrung: Keine Angst vor neuem!&lt;br /&gt;
Das was wir hier machen ist (mehr oder weniger) ungefährlich und es kann nichts kaputt werden. Es sollte aber alles Punkt für Punkt beachtet und lieber zweimal gelesen werden, bevor man etwas falsch macht.&lt;br /&gt;
&lt;br /&gt;
== Grundlegendes ==&lt;br /&gt;
=== Ziele ===&lt;br /&gt;
* Verstehen und Anwenden von Mikrocontrollern&lt;br /&gt;
* Verstehen und Anwenden der Hochsprache &amp;quot;C&amp;quot;, genauer &amp;quot;AVR-GCC&amp;quot;&lt;br /&gt;
* Anwenden von Arduino-Bibliotheken ''(eher weniger)''&lt;br /&gt;
* Ansteuern von Peripheriegeräten im Zusammenhang mit µC:&lt;br /&gt;
** LED&lt;br /&gt;
** Relais&lt;br /&gt;
** usw.&lt;br /&gt;
* Auslesen von Sensoren mit µC:&lt;br /&gt;
** Temperatursensoren (PT1000, KTY81, etc)&lt;br /&gt;
** Lichtschranken (z.B. zu Drehzahlmessung)&lt;br /&gt;
** usw.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Was gebraucht wird ===&lt;br /&gt;
Für das Tutorial wird das '''Arduino 2560 R3''' Board verwendet, dazu wird noch eine externe Spannungsversorgung wenn man viel Peripherie angschlossen hat und ein USB Kabel benötigt.&lt;br /&gt;
Als integrierte Entwicklungsumgebung (IDE) verwenden wir die Freeware '''&amp;quot;Atmel Studio 6.0&amp;quot;''' und '''&amp;quot;WinAVR&amp;quot;''' zum übertragen auf den Controller. Für das C-Tutorial werden wir aber das '''&amp;quot;Microsoft Visual C++ Express&amp;quot;''' verwenden , das ebenso kostenlos ist.&lt;br /&gt;
&lt;br /&gt;
'''Zusammenfassung:'''&lt;br /&gt;
* Arduino 2560 R3 Mikrocontrollerboard&lt;br /&gt;
* USB A auf B Kabel (&amp;quot;Normaler&amp;quot; USB Anschluss auf den abgeschrägten Quadratischen)&lt;br /&gt;
* PC/Notebook mit USB-Anschluss zum Programmieren&lt;br /&gt;
* IDE: Atmel Studio 6.0&lt;br /&gt;
* Übertragungsprogramm: WinAVR&lt;br /&gt;
* C - IDE: Microsoft Visual C++ Express&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Wir starten mit C ==&lt;br /&gt;
Für alle Neulinge die komplett neu in die Materie einsteigen gibts es am Anfang ein kleines C - Tutorial. Dies will ich aber nicht zu tief greifend machen, denn viele Funktionen wie Strings werden nur in Verbindung mit einem LCD bzw. einer Seriellen Schnittstelle gebraucht, solche Funktionen werde ich dann erklären, wenn sie gebraucht werden&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== µC - Programmierung ==&lt;br /&gt;
=== Über das Board ===&lt;br /&gt;
\\In Arbeit&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Begriffserklärungen ==&lt;br /&gt;
'''C'''&lt;br /&gt;
* CPU = '''C'''entral'''P'''rocessing'''U'''nit, Hauptprozessor&lt;br /&gt;
'''I'''&lt;br /&gt;
* IDE = '''I'''ntegrated'''D'''evelopment'''E'''nvironment, integrierte Entwicklungsumgebung, bestehend aus: Texteditor, Präprozessor, Compiler, Linker, Debugger&lt;br /&gt;
'''M'''&lt;br /&gt;
* Mikrocontroller = IC (Krabbelkäfer) der aus einer CPU, RAM, Flash-Speicher, Timer usw. zusammensetzt ist&lt;br /&gt;
'''R'''&lt;br /&gt;
* RAM = '''R'''andom-'''A'''ccess '''M'''emory, Speicher auf den laufend direkt zugegriffen werden kann, Arbeitsspeicher&lt;br /&gt;
&lt;br /&gt;
'''Sonderzeichen'''&lt;br /&gt;
* µC = Mikrocontroller&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Über das Tutorial ==&lt;br /&gt;
=== Dauer ===&lt;br /&gt;
Eine Ende ist vorerst nicht in Sicht, es wird mehr oder weniger gleich wie in der Schule vorgegangen. Ich schätze aber, dass wir Ende des Schuljahres (Juli 2013) von den Grundzügen, über Timer/Interrupts bis hin zur seriellen Schnittstelle kommen sollten.&lt;br /&gt;
&lt;br /&gt;
=== Projekte ===&lt;br /&gt;
Geplant ist ein schrittweiser Aufbau mit einem Mix aus Lernstoff und praktischen Beispielen/Projekten, wobei bei diesen Projekten meistens nur &amp;quot;Standarthardware&amp;quot; (LEDs, Transistoren, Relais, Schalter usw) verwendet wird. Es kann aber auch mal vorkommen, dass mehr Teile benötigt werden, dass wird dann (wenn möglich) aber eher als Zusatzbeispiel gemacht. Sollte es sich nicht vermeiden lassen externe Hardware anzuschaffen werd ich versuchen, dies so früh wie möglich anzukündigen.&lt;br /&gt;
&lt;br /&gt;
=== Autor ===&lt;br /&gt;
* Thomas PAIL, 1996, Schüler HTLuVA Pinkafeld - Elektronik und technische Informatik&lt;br /&gt;
* Für Infos und Kontakt:&lt;br /&gt;
[http://www.roboternetz.de/community/members/53900-robo_tom_24 robo_tom_24 RoboterNetz - Profil]&lt;br /&gt;
&lt;br /&gt;
=== Diskussionen über das Tutorial ===&lt;br /&gt;
Es wird noch ein Diskussions/Fragen/Antworten Thread im Roboternetz erstellt, Link folgt...&lt;br /&gt;
&lt;br /&gt;
== Schriften ==&lt;br /&gt;
# Platzhalter&lt;br /&gt;
&lt;br /&gt;
 [[Kategorie:Microcontroller]]&lt;br /&gt;
 [[Kategorie:Software]]&lt;br /&gt;
 [[Kategorie:Grundlagen]]&lt;br /&gt;
 [[Kategorie:Quellcode C]]&lt;/div&gt;</summary>
		<author><name>Robo tom 24</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=Arduino_Tutorial&amp;diff=20954</id>
		<title>Arduino Tutorial</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=Arduino_Tutorial&amp;diff=20954"/>
				<updated>2012-09-11T16:47:35Z</updated>
		
		<summary type="html">&lt;p&gt;Robo tom 24: Erweiterung&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dieses mehrwöchige/mehrmonatige Tutorial soll einem den Einstieg in die Welt der Mikrocontroller mit Hilfe des Arduino 2560 R3 Boards erleichtern. Angefangen wird natürlich bei den Grundlagen, also bei der Hochsprache &amp;quot;C&amp;quot;. Das Tutorial ist chronologisch aufgebaut und kann ohne jegliche Vorkenntnisse abgearbeitet und (hoffentlich) verstanden  werden&lt;br /&gt;
&lt;br /&gt;
== Aller Anfang... ==&lt;br /&gt;
..ist gar nicht mal so schwer.&lt;br /&gt;
Dieses Tutorial soll all jenen helfen, die gerade neu einsteigen und mit wenig Hardware viel erreichen wollen. Es wird keine vorherigen Kenntnisse benötigt, ein wenig Zeit und technisches Interesse sollte jedoch mitgebracht werden&lt;br /&gt;
&lt;br /&gt;
Aus eigener Erfahrung: Keine Angst vor neuem!&lt;br /&gt;
Das was wir hier machen ist (mehr oder weniger) ungefährlich und es kann nichts kaputt werden. Es sollte aber alles Punkt für Punkt beachtet und lieber zweimal gelesen werden, bevor man etwas falsch macht.&lt;br /&gt;
&lt;br /&gt;
== Grundlegendes ==&lt;br /&gt;
=== Ziele ===&lt;br /&gt;
* Verstehen und Anwenden von Mikrocontrollern&lt;br /&gt;
* Verstehen und Anwenden der Hochsprache &amp;quot;C&amp;quot;, genauer &amp;quot;AVR-GCC&amp;quot;&lt;br /&gt;
* Anwenden von Arduino-Bibliotheken ''(eher weniger)''&lt;br /&gt;
* Ansteuern von Peripheriegeräten im Zusammenhang mit µC:&lt;br /&gt;
** LED&lt;br /&gt;
** Relais&lt;br /&gt;
** usw.&lt;br /&gt;
* Auslesen von Sensoren mit µC:&lt;br /&gt;
** Temperatursensoren (PT1000, KTY81, etc)&lt;br /&gt;
** Lichtschranken (z.B. zu Drehzahlmessung)&lt;br /&gt;
** usw.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Was gebraucht wird ===&lt;br /&gt;
Für das Tutorial wird das '''Arduino 2560 R3''' Board verwendet, dazu wird noch eine externe Spannungsversorgung wenn man viel Peripherie angschlossen hat und ein USB Kabel benötigt.&lt;br /&gt;
Als integrierte Entwicklungsumgebung (IDE) verwenden wir die Freeware '''&amp;quot;Atmel Studio 6.0&amp;quot;''' und '''&amp;quot;WinAVR&amp;quot;''' zum übertragen auf den Controller. Für das C-Tutorial werden wir aber das '''&amp;quot;Microsoft Visual C++ Express&amp;quot;''' verwenden , das ebenso kostenlos ist.&lt;br /&gt;
&lt;br /&gt;
'''Zusammenfassung:'''&lt;br /&gt;
* Arduino 2560 R3 Mikrocontrollerboard&lt;br /&gt;
* USB A auf B Kabel (&amp;quot;Normaler&amp;quot; USB Anschluss auf den abgeschrägten Quadratischen)&lt;br /&gt;
* PC/Notebook mit USB-Anschluss zum Programmieren&lt;br /&gt;
* IDE: Atmel Studio 6.0&lt;br /&gt;
* Übertragungsprogramm: WinAVR&lt;br /&gt;
* C - IDE: Microsoft Visual C++ Express&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Wir starten mit C ==&lt;br /&gt;
Für alle Neulinge die komplett neu in die Materie einsteigen gibts es am Anfang ein kleines C - Tutorial. Dies will ich aber nicht zu tief greifend machen, denn viele Funktionen wie Strings werden nur in Verbindung mit einem LCD bzw. einer Seriellen Schnittstelle gebraucht, solche Funktionen werde ich dann erklären, wenn sie gebraucht werden&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== µC - Programmierung ==&lt;br /&gt;
=== Über das Board ===&lt;br /&gt;
\\In Arbeit&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Begriffserklärungen ==&lt;br /&gt;
'''C'''&lt;br /&gt;
* CPU = '''C'''entral'''P'''rocessing'''U'''nit, Hauptprozessor&lt;br /&gt;
'''I'''&lt;br /&gt;
* IDE = '''I'''ntegrated'''D'''evelopment'''E'''nvironment, integrierte Entwicklungsumgebung, bestehend aus: Texteditor, Präprozessor, Compiler, Linker, Debugger&lt;br /&gt;
'''M'''&lt;br /&gt;
* Mikrocontroller = IC (Krabbelkäfer) der aus einer CPU, RAM, Flash-Speicher, Timer usw. zusammensetzt ist&lt;br /&gt;
'''R'''&lt;br /&gt;
* RAM = '''R'''andom-'''A'''ccess '''M'''emory, Speicher auf den laufend direkt zugegriffen werden kann, Arbeitsspeicher&lt;br /&gt;
&lt;br /&gt;
'''Sonderzeichen'''&lt;br /&gt;
* µC = Mikrocontroller&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Über das Tutorial ==&lt;br /&gt;
=== Dauer ===&lt;br /&gt;
Eine Ende ist vorerst nicht in Sicht, es wird mehr oder weniger gleich wie in der Schule vorgegangen. Ich schätze aber, dass wir Ende des Schuljahres (Juli 2013) von den Grundzügen, über Timer/Interrupts bis hin zur seriellen Schnittstelle kommen sollten.&lt;br /&gt;
&lt;br /&gt;
=== Projekte ===&lt;br /&gt;
Geplant ist ein schrittweiser Aufbau mit einem Mix aus Lernstoff und praktischen Beispielen/Projekten, wobei bei diesen Projekten meistens nur &amp;quot;Standarthardware&amp;quot; (LEDs, Transistoren, Relais, Schalter usw) verwendet wird. Es kann aber auch mal vorkommen, dass mehr Teile benötigt werden, dass wird dann (wenn möglich) aber eher als Zusatzbeispiel gemacht. Sollte es sich nicht vermeiden lassen externe Hardware anzuschaffen werd ich versuchen, dies so früh wie möglich anzukündigen.&lt;br /&gt;
&lt;br /&gt;
=== Autor ===&lt;br /&gt;
* Thomas PAIL, 1996, Schüler HTLuVA Pinkafeld - Elektronik und technische Informatik&lt;br /&gt;
* Für Infos und Kontakt:&lt;br /&gt;
[http://www.roboternetz.de/community/members/53900-robo_tom_24 robo_tom_24 RoboterNetz - Profil]&lt;br /&gt;
&lt;br /&gt;
=== Diskussionen über das Tutorial ===&lt;br /&gt;
Es wird noch ein Diskussions/Fragen/Antworten Thread im Roboternetz erstellt, Link folgt...&lt;br /&gt;
&lt;br /&gt;
== Schriften ==&lt;br /&gt;
# Platzhalter&lt;br /&gt;
&lt;br /&gt;
 [[Kategorie:Microcontroller]]&lt;br /&gt;
 [[Kategorie:Software]]&lt;br /&gt;
 [[Kategorie:Grundlagen]]&lt;br /&gt;
 [[Kategorie:Quellcode C]]&lt;/div&gt;</summary>
		<author><name>Robo tom 24</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=Arduino_Tutorial&amp;diff=20953</id>
		<title>Arduino Tutorial</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=Arduino_Tutorial&amp;diff=20953"/>
				<updated>2012-09-11T16:42:48Z</updated>
		
		<summary type="html">&lt;p&gt;Robo tom 24: Erweitern&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Aller Anfang... ==&lt;br /&gt;
..ist gar nicht mal so schwer.&lt;br /&gt;
Dieses Tutorial soll all jenen helfen, die gerade neu einsteigen und mit wenig Hardware viel erreichen wollen. Es wird keine vorherigen Kenntnisse benötigt, ein wenig Zeit und technisches Interesse sollte jedoch mitgebracht werden&lt;br /&gt;
Aus eigener Erfahrung: Keine Angst vor neuem!&lt;br /&gt;
Das was wir hier machen ist (mehr oder weniger) ungefährlich und es kann nichts kaputt werden. Es sollte aber alles Punkt für Punkt beachtet und lieber zweimal gelesen werden, bevor man etwas falsch macht.&lt;br /&gt;
&lt;br /&gt;
== Grundlegendes ==&lt;br /&gt;
=== Ziele ===&lt;br /&gt;
* Verstehen und Anwenden von Mikrocontrollern&lt;br /&gt;
* Verstehen und Anwenden der Hochsprache &amp;quot;C&amp;quot;, genauer &amp;quot;AVR-GCC&amp;quot;&lt;br /&gt;
* Anwenden von Arduino-Bibliotheken ''(eher weniger)''&lt;br /&gt;
* Ansteuern von Peripheriegeräten im Zusammenhang mit µC:&lt;br /&gt;
** LED&lt;br /&gt;
** Relais&lt;br /&gt;
** usw.&lt;br /&gt;
* Auslesen von Sensoren mit µC:&lt;br /&gt;
** Temperatursensoren (PT1000, KTY81, etc)&lt;br /&gt;
** Lichtschranken (z.B. zu Drehzahlmessung)&lt;br /&gt;
** usw.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Was gebraucht wird ===&lt;br /&gt;
Für das Tutorial wird das '''Arduino 2560 R3''' Board verwendet, dazu wird noch eine externe Spannungsversorgung wenn man viel Peripherie angschlossen hat und ein USB Kabel benötigt.&lt;br /&gt;
Als integrierte Entwicklungsumgebung (IDE) verwenden wir die Freeware '''&amp;quot;Atmel Studio 6.0&amp;quot;''' und '''&amp;quot;WinAVR&amp;quot;''' zum übertragen auf den Controller. Für das C-Tutorial werden wir aber das '''&amp;quot;Microsoft Visual C++ Express&amp;quot;''' verwenden , das ebenso kostenlos ist.&lt;br /&gt;
&lt;br /&gt;
'''Zusammenfassung:'''&lt;br /&gt;
* Arduino 2560 R3 Mikrocontrollerboard&lt;br /&gt;
* USB A auf B Kabel (&amp;quot;Normaler&amp;quot; USB Anschluss auf den abgeschrägten Quadratischen)&lt;br /&gt;
* PC/Notebook mit USB-Anschluss zum Programmieren&lt;br /&gt;
* IDE: Atmel Studio 6.0&lt;br /&gt;
* Übertragungsprogramm: WinAVR&lt;br /&gt;
* C - IDE: Microsoft Visual C++ Express&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Wir starten mit C ==&lt;br /&gt;
Für alle Neulinge die komplett neu in die Materie einsteigen gibts es am Anfang ein kleines C - Tutorial. Dies will ich aber nicht zu tief greifend machen, denn viele Funktionen wie Strings werden nur in Verbindung mit einem LCD bzw. einer Seriellen Schnittstelle gebraucht, solche Funktionen werde ich dann erklären, wenn sie gebraucht werden&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== µC - Programmierung ==&lt;br /&gt;
=== Über das Board ===&lt;br /&gt;
\\In Arbeit&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Begriffserklärungen ==&lt;br /&gt;
'''C'''&lt;br /&gt;
* CPU = '''C'''entral'''P'''rocessing'''U'''nit, Hauptprozessor&lt;br /&gt;
'''I'''&lt;br /&gt;
* IDE = '''I'''ntegrated'''D'''evelopment'''E'''nvironment, integrierte Entwicklungsumgebung, bestehend aus: Texteditor, Präprozessor, Compiler, Linker, Debugger&lt;br /&gt;
'''M'''&lt;br /&gt;
* Mikrocontroller = IC (Krabbelkäfer) der aus einer CPU, RAM, Flash-Speicher, Timer usw. zusammensetzt ist&lt;br /&gt;
'''R'''&lt;br /&gt;
* RAM = '''R'''andom-'''A'''ccess '''M'''emory, Speicher auf den laufend direkt zugegriffen werden kann, Arbeitsspeicher&lt;br /&gt;
&lt;br /&gt;
'''Sonderzeichen'''&lt;br /&gt;
* µC = Mikrocontroller&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Über das Tutorial ==&lt;br /&gt;
=== Dauer ===&lt;br /&gt;
Eine Ende ist vorerst nicht in Sicht, es wird mehr oder weniger gleich wie in der Schule vorgegangen. Ich schätze aber, dass wir Ende des Schuljahres (Juli 2013) von den Grundzügen, über Timer/Interrupts bis hin zur seriellen Schnittstelle kommen sollten.&lt;br /&gt;
&lt;br /&gt;
=== Projekte ===&lt;br /&gt;
Geplant ist ein schrittweiser Aufbau mit einem Mix aus Lernstoff und praktischen Beispielen/Projekten, wobei bei diesen Projekten meistens nur &amp;quot;Standarthardware&amp;quot; (LEDs, Transistoren, Relais, Schalter usw) verwendet wird. Es kann aber auch mal vorkommen, dass mehr Teile benötigt werden, dass wird dann (wenn möglich) aber eher als Zusatzbeispiel gemacht. Sollte es sich nicht vermeiden lassen externe Hardware anzuschaffen werd ich versuchen, dies so früh wie möglich anzukündigen.&lt;br /&gt;
&lt;br /&gt;
=== Autor ===&lt;br /&gt;
* Thomas PAIL, 1996, Schüler HTLuVA Pinkafeld - Elektronik und technische Informatik&lt;br /&gt;
* Für Infos und Kontakt:&lt;br /&gt;
[http://www.roboternetz.de/community/members/53900-robo_tom_24 robo_tom_24 RoboterNetz - Profil]&lt;br /&gt;
&lt;br /&gt;
=== Diskussionen über das Tutorial ===&lt;br /&gt;
Es wird noch ein Diskussions/Fragen/Antworten Thread im Roboternetz erstellt, Link folgt...&lt;br /&gt;
&lt;br /&gt;
== Schriften ==&lt;br /&gt;
# Platzhalter&lt;br /&gt;
&lt;br /&gt;
 [[Kategorie:Microcontroller]]&lt;br /&gt;
 [[Kategorie:Software]]&lt;br /&gt;
 [[Kategorie:Grundlagen]]&lt;br /&gt;
 [[Kategorie:Quellcode C]]&lt;/div&gt;</summary>
		<author><name>Robo tom 24</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=Arduino_Tutorial&amp;diff=20952</id>
		<title>Arduino Tutorial</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=Arduino_Tutorial&amp;diff=20952"/>
				<updated>2012-09-11T16:41:36Z</updated>
		
		<summary type="html">&lt;p&gt;Robo tom 24: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Aller Anfang... ==&lt;br /&gt;
..ist gar nicht mal so schwer.&lt;br /&gt;
Dieses Tutorial soll all jenen helfen, die gerade neu einsteigen und mit wenig Hardware viel erreichen wollen. Es wird keine vorherigen Kenntnisse benötigt, ein wenig Zeit und technisches Interesse sollte jedoch mitgebracht werden&lt;br /&gt;
Aus eigener Erfahrung: Keine Angst vor neuem!&lt;br /&gt;
Das was wir hier machen ist (mehr oder weniger) ungefährlich und es kann nichts kaputt werden. Es sollte aber alles Punkt für Punkt beachtet und lieber zweimal gelesen werden, bevor man etwas falsch macht.&lt;br /&gt;
&lt;br /&gt;
== Grundlegendes ==&lt;br /&gt;
=== Ziele ===&lt;br /&gt;
* Verstehen und Anwenden von Mikrocontrollern&lt;br /&gt;
* Verstehen und Anwenden der Hochsprache &amp;quot;C&amp;quot;, genauer &amp;quot;AVR-GCC&amp;quot;&lt;br /&gt;
* Anwenden von Arduino-Bibliotheken ''(eher weniger)''&lt;br /&gt;
* Ansteuern von Peripheriegeräten im Zusammenhang mit µC:&lt;br /&gt;
** LED&lt;br /&gt;
** Relais&lt;br /&gt;
** usw.&lt;br /&gt;
* Auslesen von Sensoren mit µC:&lt;br /&gt;
** Temperatursensoren (PT1000, KTY81, etc)&lt;br /&gt;
** Lichtschranken (z.B. zu Drehzahlmessung)&lt;br /&gt;
** usw.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Was gebraucht wird ===&lt;br /&gt;
Für das Tutorial wird das '''Arduino 2560 R3''' Board verwendet, dazu wird noch eine externe Spannungsversorgung wenn man viel Peripherie angschlossen hat und ein USB Kabel benötigt.&lt;br /&gt;
Als integrierte Entwicklungsumgebung (IDE) verwenden wir die Freeware '''&amp;quot;Atmel Studio 6.0&amp;quot;''' und '''&amp;quot;WinAVR&amp;quot;''' zum übertragen auf den Controller. Für das C-Tutorial werden wir aber das '''&amp;quot;Microsoft Visual C++ Express&amp;quot;''' verwenden , das ebenso kostenlos ist.&lt;br /&gt;
&lt;br /&gt;
'''Zusammenfassung:'''&lt;br /&gt;
* Arduino 2560 R3 Mikrocontrollerboard&lt;br /&gt;
* USB A auf B Kabel (&amp;quot;Normaler&amp;quot; USB Anschluss auf den abgeschrägten Quadratischen)&lt;br /&gt;
* PC/Notebook mit USB-Anschluss zum Programmieren&lt;br /&gt;
* IDE: Atmel Studio 6.0&lt;br /&gt;
* Übertragungsprogramm: WinAVR&lt;br /&gt;
* C - IDE: Microsoft Visual C++ Express&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Wir starten mit C ==&lt;br /&gt;
Für alle Neulinge die komplett neu in die Materie einsteigen gibts es am Anfang ein kleines C - Tutorial. Dies will ich aber nicht zu tief greifend machen, denn viele Funktionen wie Strings werden nur in Verbindung mit einem LCD bzw. einer Seriellen Schnittstelle gebraucht, solche Funktionen werde ich dann erklären, wenn sie gebraucht werden&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== µC - Programmierung ==&lt;br /&gt;
=== Über das Board ===&lt;br /&gt;
\\In Arbeit&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Begriffserklärungen ==&lt;br /&gt;
'''C'''&lt;br /&gt;
* CPU = '''C'''entral'''P'''rocessing'''U'''nit, Hauptprozessor&lt;br /&gt;
'''I'''&lt;br /&gt;
* IDE = '''I'''ntegrated'''D'''evelopment'''E'''nvironment, integrierte Entwicklungsumgebung, bestehend aus: Texteditor, Präprozessor, Compiler, Linker, Debugger&lt;br /&gt;
'''M'''&lt;br /&gt;
* Mikrocontroller = IC (Krabbelkäfer) der aus einer CPU, RAM, Flash-Speicher, Timer usw. zusammensetzt ist&lt;br /&gt;
'''R'''&lt;br /&gt;
* RAM = '''R'''andom-'''A'''ccess '''M'''emory, Speicher auf den laufend direkt zugegriffen werden kann, Arbeitsspeicher&lt;br /&gt;
&lt;br /&gt;
'''Sonderzeichen'''&lt;br /&gt;
* µC = Mikrocontroller&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Über das Tutorial ==&lt;br /&gt;
=== Dauer ===&lt;br /&gt;
Eine Ende ist vorerst nicht in Sicht, es wird mehr oder weniger gleich wie in der Schule vorgegangen. Ich schätze aber, dass wir Ende des Schuljahres (Juli 2013) von den Grundzügen, über Timer/Interrupts bis hin zur seriellen Schnittstelle kommen sollten.&lt;br /&gt;
&lt;br /&gt;
=== Projekte ===&lt;br /&gt;
Geplant ist ein schrittweiser Aufbau mit einem Mix aus Lernstoff und praktischen Beispielen/Projekten, wobei bei diesen Projekten meistens nur &amp;quot;Standarthardware&amp;quot; (LEDs, Transistoren, Relais, Schalter usw) verwendet wird. Es kann aber auch mal vorkommen, dass mehr Teile benötigt werden, dass wird dann (wenn möglich) aber eher als Zusatzbeispiel gemacht. Sollte es sich nicht vermeiden lassen externe Hardware anzuschaffen werd ich versuchen, dies so früh wie möglich anzukündigen.&lt;br /&gt;
&lt;br /&gt;
=== Autor ===&lt;br /&gt;
* Thomas PAIL, 1996, Schüler HTLuVA Pinkafeld - Elektronik und technische Informatik&lt;br /&gt;
* Für Infos und Kontakt:&lt;br /&gt;
[http://www.roboternetz.de/community/members/53900-robo_tom_24 robo_tom_24 RoboterNetz - Profil]&lt;br /&gt;
&lt;br /&gt;
=== Diskussionen über das Tutorial ===&lt;br /&gt;
Es wird noch ein Diskussions/Fragen/Antworten Thread im Roboternetz erstellt, Link folgt...&lt;br /&gt;
&lt;br /&gt;
== Schriften ==&lt;br /&gt;
# Platzhalter&lt;/div&gt;</summary>
		<author><name>Robo tom 24</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=Arduino_Tutorial&amp;diff=20951</id>
		<title>Arduino Tutorial</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=Arduino_Tutorial&amp;diff=20951"/>
				<updated>2012-09-11T16:37:25Z</updated>
		
		<summary type="html">&lt;p&gt;Robo tom 24: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Aller Anfang... ==&lt;br /&gt;
..ist gar nicht mal so schwer.&lt;br /&gt;
Dieses Tutorial soll all jenen helfen, die gerade neu einsteigen und mit wenig Hardware viel erreichen wollen. Es wird keine vorherigen Kenntnisse benötigt, ein wenig Zeit und technisches Interesse sollte jedoch mitgebracht werden&lt;br /&gt;
Aus eigener Erfahrung: Keine Angst vor neuem!&lt;br /&gt;
Das was wir hier machen ist (mehr oder weniger) ungefährlich und es kann nichts kaputt werden. Es sollte aber alles Punkt für Punkt beachtet und lieber zweimal gelesen werden, bevor man etwas falsch macht.&lt;br /&gt;
&lt;br /&gt;
== Grundlegendes ==&lt;br /&gt;
=== Ziele ===&lt;br /&gt;
* Verstehen und Anwenden von Mikrocontrollern&lt;br /&gt;
* Verstehen und Anwenden der Hochsprache &amp;quot;C&amp;quot;, genauer &amp;quot;AVR-GCC&amp;quot;&lt;br /&gt;
* Anwenden von Arduino-Bibliotheken ''(eher weniger)''&lt;br /&gt;
* Ansteuern von Peripheriegeräten im Zusammenhang mit µC:&lt;br /&gt;
** LED&lt;br /&gt;
** Relais&lt;br /&gt;
** usw.&lt;br /&gt;
* Auslesen von Sensoren mit µC:&lt;br /&gt;
** Temperatursensoren (PT1000, KTY81, etc)&lt;br /&gt;
** Lichtschranken (z.B. zu Drehzahlmessung)&lt;br /&gt;
** usw.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Was gebraucht wird ===&lt;br /&gt;
Für das Tutorial wird das '''Arduino 2560 R3''' Board verwendet, dazu wird noch eine externe Spannungsversorgung wenn man viel Peripherie angschlossen hat und ein USB Kabel benötigt.&lt;br /&gt;
Als integrierte Entwicklungsumgebung (IDE) verwenden wir die Freeware '''&amp;quot;Atmel Studio 6.0&amp;quot;''' und '''&amp;quot;WinAVR&amp;quot;''' zum übertragen auf den Controller. Für das C-Tutorial werden wir aber das '''&amp;quot;Microsoft Visual C++ Express&amp;quot;''' verwenden , das ebenso kostenlos ist.&lt;br /&gt;
&lt;br /&gt;
'''Zusammenfassung:'''&lt;br /&gt;
* Arduino 2560 R3 Mikrocontrollerboard&lt;br /&gt;
* USB A auf B Kabel (&amp;quot;Normaler&amp;quot; USB Anschluss auf den abgeschrägten Quadratischen)&lt;br /&gt;
* PC/Notebook mit USB-Anschluss zum Programmieren&lt;br /&gt;
* IDE: Atmel Studio 6.0&lt;br /&gt;
* Übertragungsprogramm: WinAVR&lt;br /&gt;
* C - IDE: Microsoft Visual C++ Express&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Wir starten mit C ==&lt;br /&gt;
Für alle Neulinge die komplett neu in die Materie einsteigen gibts es am Anfang ein kleines C - Tutorial. Dies will ich aber nicht zu tief greifend machen, denn viele Funktionen wie Strings werden nur in Verbindung mit einem LCD bzw. einer Seriellen Schnittstelle gebraucht, solche Funktionen werde ich dann erklären, wenn sie gebraucht werden&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== µC - Programmierung ==&lt;br /&gt;
=== Über das Board ===&lt;br /&gt;
\\In Arbeit&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Begriffserklärungen ==&lt;br /&gt;
'''C'''&lt;br /&gt;
* CPU = '''C'''entral'''P'''rocessing'''U'''nit, Hauptprozessor&lt;br /&gt;
'''I'''&lt;br /&gt;
* IDE = '''I'''ntegrated'''D'''evelopment'''E'''nvironment, integrierte Entwicklungsumgebung, bestehend aus: Texteditor, Präprozessor, Compiler, Linker, Debugger&lt;br /&gt;
'''M'''&lt;br /&gt;
* Mikrocontroller = IC (Krabbelkäfer) der aus einer CPU, RAM, Flash-Speicher, Timer usw. zusammensetzt ist&lt;br /&gt;
'''R'''&lt;br /&gt;
* RAM = '''R'''andom-'''A'''ccess '''M'''emory, Speicher auf den laufend direkt zugegriffen werden kann, Arbeitsspeicher&lt;br /&gt;
&lt;br /&gt;
'''Sonderzeichen'''&lt;br /&gt;
* µC = Mikrocontroller&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Über das Tutorial ==&lt;br /&gt;
=== Dauer ===&lt;br /&gt;
Eine Ende ist vorerst nicht in Sicht, es wird mehr oder weniger gleich wie in der Schule vorgegangen. Ich schätze aber, dass wir Ende des Schuljahres (Juli 2013) von den Grundzügen, über Timer/Interrupts bis hin zur seriellen Schnittstelle kommen sollten.&lt;br /&gt;
&lt;br /&gt;
=== Projekte ===&lt;br /&gt;
Geplant ist ein schrittweiser Aufbau mit einem Mix aus Lernstoff und praktischen Beispielen/Projekten, wobei bei diesen Projekten meistens nur &amp;quot;Standarthardware&amp;quot; (LEDs, Transistoren, Relais, Schalter usw) verwendet wird. Es kann aber auch mal vorkommen, dass mehr Teile benötigt werden, dass wird dann (wenn möglich) aber eher als Zusatzbeispiel gemacht. Sollte es sich nicht vermeiden lassen externe Hardware anzuschaffen werd ich versuchen, dies so früh wie möglich anzukündigen.&lt;br /&gt;
&lt;br /&gt;
=== Autor ===&lt;br /&gt;
Für Infos und Kontakt:&lt;br /&gt;
[http://www.roboternetz.de/community/members/53900-robo_tom_24 robo_tom_24 RoboterNetz - Profil]&lt;br /&gt;
&lt;br /&gt;
=== Diskussionen über das Tutorial ===&lt;br /&gt;
Es wird noch ein Diskussions/Fragen/Antworten Thread im Roboternetz erstellt, Link folgt...&lt;br /&gt;
&lt;br /&gt;
== Schriften ==&lt;br /&gt;
# Platzhalter&lt;/div&gt;</summary>
		<author><name>Robo tom 24</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=Arduino_Tutorial&amp;diff=20950</id>
		<title>Arduino Tutorial</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=Arduino_Tutorial&amp;diff=20950"/>
				<updated>2012-09-11T16:14:03Z</updated>
		
		<summary type="html">&lt;p&gt;Robo tom 24: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Aller Anfang... ==&lt;br /&gt;
..ist gar nicht mal so schwer.&lt;br /&gt;
Dieses Tutorial soll all jenen helfen, die gerade neu einsteigen und mit wenig Hardware viel erreichen wollen. Es wird keine vorherigen Kenntnisse benötigt, ein wenig Zeit und technisches Interesse sollte jedoch mitgebracht werden&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Grundlegendes ==&lt;br /&gt;
=== Ziele ===&lt;br /&gt;
* Verstehen und Anwenden von Mikrocontrollern&lt;br /&gt;
* Verstehen und Anwenden der Hochsprache &amp;quot;C&amp;quot;, genauer &amp;quot;AVR-GCC&amp;quot;&lt;br /&gt;
* Ansteuern von Peripheriegeräten im Zusammenhang mit µC:&lt;br /&gt;
** LED&lt;br /&gt;
** Relais&lt;br /&gt;
** usw.&lt;br /&gt;
* Auslesen von Sensoren mit µC:&lt;br /&gt;
** Temperatursensoren (PT1000, KTY81, etc)&lt;br /&gt;
** Lichtschranken (z.B. zu Drehzahlmessung)&lt;br /&gt;
** usw.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Was gebraucht wird:&lt;br /&gt;
Für das Tutorial wird das Arduino 2560 R3 Board verwendet, dazu wird noch eine externe Spannungsversorgung wenn man viel Peripherie angschlossen hat und ein USB Kabel benötigt.&lt;br /&gt;
Als integrierte Entwicklungsumgebung (IDE) verwende ich das &amp;quot;Atmel Studio 6.0&amp;quot; und &amp;quot;WinAVR&amp;quot; zum übertragen auf den Controller.&lt;br /&gt;
&lt;br /&gt;
== Wir starten mit C ==&lt;br /&gt;
Für alle Neulinge die komplett neu in die Materie einsteigen gibts es am Anfang ein kleines C - Tutorial. Dies will ich aber nicht zu tief greifend machen, denn viele Funktionen wie Strings werden nur in Verbindung mit einem LCD bzw. einer Seriellen Schnittstelle gebraucht, diese Funktionen werde ich dann erklären, wenn sie gebraucht werden&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Begriffserklärungen ==&lt;br /&gt;
'''C'''&lt;br /&gt;
* CPU = '''C'''entral'''P'''rocessing'''U'''nit, Hauptprozessor&lt;br /&gt;
'''I'''&lt;br /&gt;
* IDE = '''I'''ntegrated'''D'''evelopment'''E'''nvironment, integrierte Entwicklungsumgebung, bestehend aus: Texteditor, Präprozessor, Compiler, Linker, Debugger&lt;br /&gt;
'''M'''&lt;br /&gt;
* Mikrocontroller = IC (Krabbelkäfer) der aus einer CPU, RAM, Flash-Speicher, Timer usw. zusammensetzt ist&lt;br /&gt;
'''R'''&lt;br /&gt;
* RAM = '''R'''andom-'''A'''ccess '''M'''emory, Speicher auf den laufend direkt zugegriffen werden kann, Arbeitsspeicher&lt;br /&gt;
&lt;br /&gt;
'''Sonderzeichen'''&lt;br /&gt;
* µC = Mikrocontroller&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Über das Tutorial ==&lt;br /&gt;
=== Dauer ===&lt;br /&gt;
Eine Ende ist vorerst nicht in Sicht, es wird mehr oder weniger gleich wie in der Schule vorgegangen. Ich schätze aber, dass wir Ende des Schuljahres (Juli 2013) von den Grundzügen, über Timer/Interrupts bis hin zur seriellen Schnittstelle kommen sollten.&lt;br /&gt;
&lt;br /&gt;
=== Projekte ===&lt;br /&gt;
Geplant ist ein schrittweiser Aufbau mit einem Mix aus Lernstoff und praktischen Beispielen/Projekten, wobei bei diesen Projekten meistens nur &amp;quot;Standarthardware&amp;quot; (LEDs, Transistoren, Relais, Schalter usw) verwendet wird. Es kann aber auch mal vorkommen, dass mehr Teile benötigt werden, dass wird dann (wenn möglich) aber eher als Zusatzbeispiel gemacht. Sollte es sich nicht vermeiden lassen externe Hardware anzuschaffen werd ich versuchen, dies so früh wie möglich anzukündigen.&lt;br /&gt;
&lt;br /&gt;
=== Autor ===&lt;br /&gt;
Für Infos und Kontakt:&lt;br /&gt;
[http://www.roboternetz.de/community/members/53900-robo_tom_24 robo_tom_24 RoboterNetz - Profil]&lt;br /&gt;
&lt;br /&gt;
=== Diskussionen über das Tutorial ===&lt;br /&gt;
Es wird noch ein Diskussions/Fragen/Antworten Thread im Roboternetz erstellt, Link folgt...&lt;br /&gt;
&lt;br /&gt;
== Schriften ==&lt;br /&gt;
# Platzhalter&lt;/div&gt;</summary>
		<author><name>Robo tom 24</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=Arduino_Tutorial&amp;diff=20949</id>
		<title>Arduino Tutorial</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=Arduino_Tutorial&amp;diff=20949"/>
				<updated>2012-09-11T15:30:33Z</updated>
		
		<summary type="html">&lt;p&gt;Robo tom 24: Lernen und Verstehen eines µC mit dem Arduino 2560 Board&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Aller Anfang... ==&lt;br /&gt;
..ist gar nicht mal so schwer.&lt;br /&gt;
Dieses Tutorial soll all jenen helfen, die gerade einsteigen und mit wenig Hardware viel erreichen wollen&lt;br /&gt;
&lt;br /&gt;
=== Grundlegendes ===&lt;br /&gt;
Was gebraucht wird:&lt;br /&gt;
Für das Tutorial wird das Arduino 2560 R3 Board verwendet, dazu wird noch eine externe Spannungsversorgung wenn man viel Peripherie angschlossen hat und ein USB Kabel benötigt.&lt;br /&gt;
&lt;br /&gt;
== Über das Tutorial ==&lt;br /&gt;
=== Dauer ===&lt;br /&gt;
Eine Ende ist vorerst nicht in Sicht, es wird mehr oder weniger gleich wie in der Schule vorgegangen. Ich schätze daher, dass wir &lt;br /&gt;
=== Projekte ===&lt;br /&gt;
Geplant ist ein schrittweiser Aufbau mit einem Mix aus Lernstoff und praktischen Beispielen/Projekten, wobei bei diesen Projekten meistens nur &amp;quot;Standarthardware&amp;quot; (LEDs, Transistoren, Relais usw) verwendet wird. Es kann aber auch mal vorkommen, dass mehr Teile benötigt werden, dass wird dann (wenn möglich) aber eher als Zusatzbeispiel gemacht. Sollte es sich nicht vermeiden lassen externe Hardware anzuschaffen werd ich versuchen, dies so früh wie möglich anzukündigen.&lt;/div&gt;</summary>
		<author><name>Robo tom 24</name></author>	</entry>

	</feed>