QG-ITG

Das alte QG-Wiki

Benutzer-Werkzeuge

Webseiten-Werkzeuge


nwt:arduino:erstes_programm:start

Ein erstes Programm

Was passiert hier…


  • Neue Bauelemente: LED, Steckplatine
  • Neue Befehle: Variablendeklaration und Variablentypen, pinMode(), digitalWrite(),delay()
  • Ziel: Eine bzw. mehrere LED zum Leuchten bringen

Grundstruktur eines Sketches

Ein Programm wird allgemein als "Sketch" bezeichnet. Alle Sketches haben den gleichen Aufbau:

  • Jedes Arduino-Programm besteht aus drei Bereichen: Ein globaler Bereich am Beginn der Datei, setup und loop.
  • Der globale und der setup-Bereich werden einmal durchlaufen, der loop-Bereich anschließend sehr schnell nacheinander unendlich oft.
  • Das eigentlich Programm befindet sich im loop-Bereich.
struktur.ino
/*
  Das ist ein 
  mehrzeiliger Kommentar
  der von Kommentarstart- und
  Kommentarende-Markierungen begrenzt wird
*/
 
// Das ist ein einzeiliger Kommentar 
int led=13; // das ist eine Anweisung, die etwas macht, was später in beiden Blöcken gilt
 
// the setup routine runs once when you press reset:
void setup() {                
  // Hier kommen die Anweisungen für den setup-Block hinein
  // der setup Block wird einmal durchlaufen     
}
 
// the loop routine runs over and over again forever:
void loop() {
  // Hier kommen die Anweisungen für den loop-Block hinein
  // der loop-Block wird unendlich oft durchlaufen    
}

Das ganze hier nochmal als Bildchen:

Beispielprogramm für eine blinkende LED

/*
  Blink
  Turns on an LED on for one second, then off for one second, repeatedly.
 
  This example code is in the public domain.
 */
 
// Pin 13 has an LED connected on most Arduino boards.
// give it a name:
int led = 13;
 
// the setup routine runs once when you press reset:
void setup() {                
  // initialize the digital pin as an output.
  pinMode(led, OUTPUT);     
}
 
// the loop routine runs over and over again forever:
void loop() {
  digitalWrite(led, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(1000);               // wait for a second
  digitalWrite(led, LOW);    // turn the LED off by making the voltage LOW
  delay(1000);               // wait for a second
}

Neue Befehle

  • int led = 13; Die Variable led wird mit dem (Integer-) Wert 13 belegt.
  • pinMode(led, OUTPUT); Da die Variable led mit dem Wert 13 belegt wurde, wird PIN13 als OUTPUT deklariert. D.h. er kann die Werte HIGH (5V) und LOW (0V) annehmen und damit eine Leuchtdiode ansteuern.
  • digitalWrite(led, HIGH); PIN13 wird HIGH (5V) gesetzt.
  • delay(1000); Bis zur Verarbeitung des nächsten Befehls wartet der Arduino 1000 ms.

Variablentypen für Zahlenwerte

Eine Variable ist eine Zeichenkette, die als Platzhalter für einen Wert dient. Dieser kann während des Programmablaufs unter Umständen verändert werden.

byte

Byte speichert einen 8-bit numerischen, ganzzahligen Wert ohne Dezimalkomma. Der Wert kann zwischen 0 und 255 sein.

byte y = 180; // deklariert y als einen 'byte' Datentyp

int

Integer ist der meist verwendete Datentyp für die Speicherung von ganzzahligen Werten ohne Dezimalkomma. Sein Wert hat 16 Bit und reicht von -32.767 bis 32.768.

int x = 1500; // deklariert y als einen 'integer' Datentyp

Bemerkung: Integer Variablen werden bei Überschreiten der Limits 'überrollen'. Zum Beispiel wenn x = 32767 und eine Anweisung addiert 1 zu x, x = x + 1 oder x++, wird 'x' dabei 'überrollen' und den Wert -32,768 annehmen.

long

Datentyp für lange Integer mit erweiterer Größe, ohne Dezimalkomma, gespeichert in einem 32-bit Wert in einem Spektrum von -2,147,483,648 bis 2,147,483,647.

long z = 9000; // deklariert z als einen 'long' Datentyp

float

Ein Datentyp für Fliesskomma Werte oder Nummern mit Nachkommastelle. Fliesskomma Nummern haben eine bessere Auflösung als Integer und werden als 32-bit Wert mit einem Spektrum von -3.4028235E+38 bis 3.4028235E+38.

float pi = 3.14; // deklariert pi als einen 'float' Datentyp

Info: LED

Informationen Leuchtdioden


  • Jede Diode, also auch eine Leuchtdiode (LED → Light Emitting Diode) wirkt wie ein "Stromventil". Dieses elektronische Bauteil lässt den Strom nur in eine Richtung durch.
  • Das längere Beinchen der LED muss eine positivere Spannung erhalten als das kürzere Beinchen, damit die LED Strom fließen lässt.
  • Die Spannung zwischen dem langen und dem kurzen Beinchen darf nicht über dem vom Hersteller angegebenen wert liegen.
  • Der Strom, der durch die LED hindurchfließt, darf nicht über dem vom hersteller angegebenen Wert liegen.

:!: Eine LED muss, um die letzten beiden Punkte zu erfüllen, (fast) immer mit einem Vorwiderstand betrieben werden! :!:

  • Auf dem Arduinoboard befindet sich an Pin 13 eine eingebaute LED (mit passendem Vorwiderstand).
  • Wird an einem anderen Pin eine LED angeschlossen muss ein Vorwiderstand von 220 Ohm verwendet werden – dieser ist bei Pin 13 bereits mit eingebaut, darum kann man an Pin 13 eine LED direkt anschießen.

Eine LED hat in Schaltplänen das folgende Schaltzeichen:

Info: Widerstand

Informationen Wiederstand


Das grundlegendste Bauteil elektronischer Schaltungen sind Widerstände. Widerstände hemmen den Stromfluß und ermöglichen es, die zur Verfügung stehende Spannung "aufzuteilen".

Es gibt zwei Möglichkeiten, der Widerstandswert (in Ohm) eines Widerstands herauszufinden:

  • Du kannst die Farbcodierungen entschlüsseln. (Infos, Rechner)
  • Du kannst den Wert des Widerstands mit einem Multimeter messen.

Die zweite Möglichkeit geht für gewöhnlich schneller und man kann schnell sicherstellen, dass man den korrekten Widerstand in seine Schaltung verbaut.

Arbeitssicherheit

Die Spannungen, mit denen wir am Arduino arbeiten, sind für uns ungefährlich, können aber bei Kurzschlüssen oder anderen Fehlschaltungen den Computer über den USB-Port schädigen - das ist dann teuer. Darum gelten die folgenden eisernen Regeln beim Arbeiten mit dem Experimentierbrett.

Regeln für den Umgang mit dem Arduino


  1. Elektronische Bauteile werden nur angeschlossen oder verändert, wenn der Arduino nicht mit dem Computer verbunden ist.
  2. Der Arduino wird stets nur über den USB-HUB mit dem Computer verbunden, niemals direkt - so geht im Fehlerfall vielleicht nur der USB Hub kaputt und nicht der Computer… (10EUR ↔ 400EUR)
Wichtiger Hinweis: Die Digitalpins 0 und 1 dürfen nicht angeschlossen sein, während das Programm auf den Arduino hochgeladen wird - sonst schlägt der Upload fehl. Man kann die Pins verwenden, muss dann aber vor jedem Upload des Programms die entsprechenden Drähte ausstecken.

Empfehlung: Solange man nicht wirklich alle Pins benötigt, sollte man die Pins 0 und 1 nicht verwenden.

Sketch 01.1

  • Schließe eine rote LED am Pin 13 Achte auf die korrekte Polung - auf dem Arduino Board bezeichnet GND die Pins mit Nullspannung oder "Erde". Alle anderen Pins sind (zunächst) positiver geladen als GND.
  • Öffne den Sketch a011_blink.ino.
  • Übertrage den Sketch auf den Arduino.
  • Beobachte die aufgesteckte und die eingebaute LED.

Sketch 01.2

  • Ändere den Sketch Blink so ab, dass die LED 3 Sekunden lang leuchtet und 1 Sekunde lang dunkel bleibt.
  • Speichere den neuen Sketch in eine Ordner auf deinem Homelaufwerk auf dem Server als "s012_blink_lang" ab.

Sketch 01.3

  • Baue auf dem Breadboard eine Schaltung auf, bei der abwechselnd eine rote und gelbe LED blinkt. Vorwiderstände nicht vergessen!
  • Ändere den Sketch "Blink" entsprechend ab, speichere deinen neuen Sketch als "s013_blink_2led" ab.
  • Zeichne (selbst) einen Schaltplan (wie den dargestellten) für diese Aufgabe.

Informationen:Schaltpläne zeichenen


  • Es gibt zahlreiche Programme zum Zeichnen von Schaltplänen.
  • Eine einfache Möglichkeit ist die freie Bibliothek Freie-Schaltzeichen für LibreOffice.
  • Einfach die oxt-datei herunterladen und als Add-On installieren, raster-Einstellungen wie auf der Projektseite vorgeschlagen vornehmen. Dann kann man unter Extras → Gallery die Schaltzeichen Bibliotheken verwenden und einsetzen.
  • Eine Vorlage zum starten: arduino_vorlage_schaltplan.odg

Sketch 01.4

  • Baue eine Ampelschaltung aus einer roten, gelben und grünen LED auf.
  • Schreibe einen Sketch, der die Ampel in der in Deutschland üblichen Farbfolge zum Leben erweckt.
  • Übertrage das Programm und teste es.
  • Speichere den Sketch unter dem Namen „s014_ampel“ ab.
  • Zeichne einen Schaltplan.

search?q=106902861&btnI=lucky

nwt/arduino/erstes_programm/start.txt · Zuletzt geändert: 26.09.2014 12:26 von sbel