Zum Inhalt springen
Arduino digitalWrite

Lektion 7 – Digital Out: Endlich geht es los!

Hast du die Schaltung aus Lektion 6 aufgebaut? Sehr gut! Wenn du das Arduino-Board schon mit deinem Computer verbunden hast, dann ziehe es noch einmal heraus. Öffne die Arduino-Software auf deinem Computer und lass uns zwei kleine Einstellungen machen.

1

Klicke im Menü auf Tools > Board und wähle »Arduino/Genuino UNO« aus.

Arduino Board auswählen

2

Nun klicke auf Tools und dann auf Port. Merke dir die Informationen zu den Ports. Du kannst sie dir auch auf einen Zettel schreiben. Jetzt schließe das Arduino-Board an und klicke in der Software noch einmal auf Tools > Port. Mindestens ein Port ist jetzt neu dazu gekommen (Auf dem Mac ist es »/dev/tty.usbmodem….«, unter Windows meistens »COM…«). Wähle den neuen Eintrag aus. Fertig.

Arduino Port auswählen

Jetzt weiß die Arduino-Software, was für ein Arduino-Board wir haben und wo es angeschlossen ist.


Sieh dir jetzt meinen neuen Arduino-Videokurs an: Jetzt ansehen!


Programmieren

Der weiße Bereich der Arduino-Software ist das Programmierfenster. Hier schreiben wir alles hinein. Schreiben? Ja, Programmieren ist nichts weiter, als Befehle hintereinander zu schreiben.

Arduino Software

Auch beim Programmieren gibt es Regeln für Rechtschreibung und Grammatik. Diese Regeln nennt man Syntax. Das lernst du aber ganz schnell.

Wenn man ein Arduino-Board programmieren möchte, muss man erst einmal Folgendes in das Programmfenster schreiben. Es ist die Grundkonstruktion eines jeden Arduino-Programms:

void setup(){
  
}

void loop(){

}

Sieht komisch aus? Also das hier sind zwei Methodenblöcke. In eine Methode kann man Befehle reinschreiben, die das Programm dann ausführt. Ein Befehl könnte sein: Schalte eine LED an!

Die geschweiften Klammern öffnen und schließen den Methodenblock. Alles, was zwischen den Klammern steht, gehört zur Methode. Das Wort void sagt dem Arduino-Board, dass nun eine Methode folgt. Nach dem Wort void kommt der Methodenname. In diesem Fall sind es setup und loop. Hinter dem Methodennamen schreibt man Klammer auf und Klammer zu.

Aber mach dir um die Schreibweise keine Sorgen. Das lernst du automatisch und außerdem zeige ich dir hier, wie es richtig geschrieben wird.

Auf der Tastatur findest du die geschweiften Klammern beim PC mit Alt-Gr + 7 und Alt-Gr + 0, am Mac mit Alt + 8 und Alt + 9.

Setup und Loop

Stell dir vor, du bekommst ein neues Fahrrad. Als Erstes stellst du den Sattel und vielleicht den Lenker auf deine Größe ein. Du machst also die Einstellungen. Auf Englisch heißt das Setup. Das machst du nur einmal. Und dann? Na dann setzt du dich auf den Sattel und trittst in die Pedale. Und das wiederholst du immer und immer wieder. Wiederholung nennt man in der Programmierung Schleife und im Englischen heißt Schleife loop.

void setup(){

}

Dieser Teil wird nur einmal ausgeführt, so wie das Einstellen der Sattelhöhe auch nur einmal gemacht wird. Es ist die Setup-Methode.

void loop(){

}

Dieser Teil wird ständig wiederholt, so wie das Treten in die Pedale. Es handelt sich um eine Endlosschleife. Das ist die Loop-Methode.

Befehle

Na gut. Und wie hilft uns das jetzt weiter? Reden wir kurz darüber, was unser Programm tun soll. Es soll die LED einschalten.

Dazu müssen wir dem Arduino-Board sagen, dass wir einen digitalen Pin benutzen wollen, um etwas zu schalten, nämlich unsere LED. Das macht den digitalen Pin zu einem Ausgabe-Pin, englisch: Output. Das müssen wir nur einmal machen. Demnach können wir das in der Setup-Methode erledigen. Wir benutzen dafür einen Befehl, der dem Arduino-Board sagt, was es machen soll:

pinMode(9, OUTPUT);

Das ist ein schöner Befehl. Er besteht aus dem Schlüsselwort pinMode gefolgt von zwei runden Klammern, in denen wir sogenannte Parameter übergeben. Der erste Parameter ist die Nummer des Pins. Wir haben das Kabel in Pin 9 gesteckt, also muss hier auch eine 9 stehen. Der zweite Parameter ist die Funktion unseres Pins: OUTPUT – das bedeutet Ausgabe. Jede Befehlszeile muss mit einem Semikolon (;) beendet werden.

Also: Befehlsname, runde Klammer auf, Pinnummer, Funktion, runde Klammer zu, Semikolon → fertig ist der Befehl.

Jetzt weiß das Arduino-Board also, dass wir einen Pin als Output verwenden wollen. Nun müssen wir ihm noch sagen, dass es den Pin auch einschalten soll.

digitalWrite(9, HIGH);

Na der sieht doch dem anderen Befehl sehr ähnlich, oder? Der Befehl heißt digitalWrite. Auch dieser Befehl bekommt Parameter übergeben. Es handelt sich wieder um die Pin-Nummer (9) und die Information, was damit passieren soll. HIGH bedeutet, schalte den Kanal an. LOW würde bedeuten, schalte ihn aus. Wir wollen das jetzt nur einmal machen und somit kannst du diesen Befehl auch ins Setup schreiben.

Das Programm sollte jetzt so aussehen:

void setup(){
  pinMode(9, OUTPUT);
  digitalWrite(9, HIGH);
}

void loop(){

}

Wenn du vor den Befehlen einmal auf die Tabulatortaste drückst, rücken die Zeilen etwas nach rechts. Dann ist das Programm einfacher zu lesen. Alternativ kannst du im Menü einfach auf Tools > Automatisch Formatieren klicken. Dann erledigt die Arduino-Software das für dich.

 

Übertragen

Jetzt hast du schon ein schönes Programm, aber die LED leuchtet immer noch nicht, oder? Dazu müssen wir es nämlich noch auf das Arduino-Board übertragen. Klicke dazu im Menü auf Datei > Upload. Jetzt blinken ein paar LEDs auf dem Arduino-Board selbst und nach einigen Sekunden geht die LED an.

Leuchtet die LED nicht? Prüfe noch einmal, ob alle Kabel richtig angeschlossen sind. Manchmal hat man auch einen Schreibfehler im Programm und es zeigt in dem schwarzen Bereich unter dem Programmfenster rote Schrift.

Leuchtet die LED? Herzlichen Glückwunsch!!! Du hast dein erstes Programm geschrieben.

3 2 votes
Article Rating
Abonnieren
Benachrichtige mich bei

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre, wie deine Kommentardaten verarbeitet werden.

31 Comments
Newest
Oldest Most Voted
Inline Feedbacks
Alle Kommentare anzeigen
Michael Hausler
3 Jahre zuvor

Hi
Habe ein ATmega328P Unter Arduino Uno registriert an Port com4
Die Software geschrieben und kann sie aber nicht hochladen
Habe unter Datei keinen Upload Button
Über Hilfe würde ich mich freuen
Gruß Michael

luca
7 Jahre zuvor

danke ich probiere es aus

luca
7 Jahre zuvor

bei mir wird arduino uno nich angezeigt

Gattermann
Antworte an  Stefan Hermann
5 Jahre zuvor

Hallo H.Stefan wie kann ich die Programmcode für Arduino von
Eisenbahn runterladen.

Werner Haegebarth
8 Jahre zuvor

Habe die SW unter MAC geladen. Die Einstellung des Boards hat eine andere Auswahl, auch der PORT ist kein usb sondern Bluetooth,
was soll ich machen?
Habe als Board auch nur einen „UNO“

Werner Haegebarth
8 Jahre zuvor

Habe die SW unter MAC geladen. Die Einstellung des Boards hat eine andere Auswahl, auch der PORT ist kein usb sondern Bluetooth,
was soll ich machen?

Kralle(c)
Antworte an  Werner Haegebarth
4 Jahre zuvor

Einen anderen Port auswählen.
Der Bluetooth Port wird nicht der vom Computer verwendete Anschluss für den Arduino sein, würde ich behaupten.

Thorsten Papendorff
8 Jahre zuvor

Hab alles genauso gemacht und meine led leuchtet auch nach mehreren Versuchen nicht, was hab ich da falsch gemacht.,….

Ewenn
10 Jahre zuvor

ich hab alles richtig gemacht da schtet hochgeladen abgeschlossen und die led get nicht an.

Ewenn
Antworte an  Stefan Hermann
10 Jahre zuvor

ich habe alles wieder aufgebaut und es hat geklappt.
danke für die hilfe

malte
Antworte an  Stefan Hermann
7 Jahre zuvor

dnke stefan für die tolle hilfe

malte
Antworte an  Stefan Hermann
7 Jahre zuvor

danke stefan für die tolle hilfe

Ingo
10 Jahre zuvor

Hallo Eberhard,

könnte es sein, dass Du nicht als Administrator angemeldet bist?

Ingo

Eberhard Blaum
10 Jahre zuvor

sorry, aber bei mir ist (unter Windows XP professional) das Feld „serial ports“ nicht schwarz, sondern nur grau, d.h. ich kann diesen Menüpunkt nicht öffnen. Nun steht zwar auf der Arduino-Seite unten „Arduino Uno an COM1“, aber wenn ich das Programm hochlade, meldet er, daß er nicht mit dem Arduino kommunizieren kann (was kein Wunder ist, wenn ich den Port nicht auswählen kann, oderrrr?)
Also: wie kriege ich den Port aktiviert?

alternativ habe ich es unter Ubuntu-Linux probiert, Arduino-software runtergeladen und entpackt, kriege sie aber nicht installiert / aktiviert. Wie gehts?

Vielen Dank für einen oder zwei Tipps!
Und schöne Ostern!
E. Blaum

Eberhard Blaum
Antworte an  Stefan Hermann
10 Jahre zuvor

Hurra, I´ve got it!

also, das mit den anderen USB/Anschlüssen hatte ich auch schon probiert, war es leider nicht.
Nach längerem Suchen habe ich die Arduino/software nochmal runtergeladen, diesmal NICHT die Version „Windows ZIP file“, sondern die Version „Windows installer“.
Und das wars, jetzt gehts prima und über ewihnachten kann ich dann anfangen, meine Heizungsregelung (mit Solaranlage) dem kleinen Wunder beizubringen.
Hurra!
Und vielen Dank und schöne Weihnachten und einen guten Rutsch!

Ingo
Antworte an  Eberhard Blaum
10 Jahre zuvor

Glückwunsch!

Viel Spaß und Erfolg!

Antworte an  Eberhard Blaum
10 Jahre zuvor

Super! Das freut mich, dass Du die Lösung gefunden hast. Dann viel Spaß und frohe Weihnachten.

Liebe Grüße

Stefan

bac
Antworte an  Eberhard Blaum
10 Jahre zuvor

Unter Ubuntu und Linux Mint war bei mir auch das Item Port grau, also nicht wählbar.

Lösung: mit Administrator-Rechten im Terminal starten, also zuerst ins Verzeichnis, in dem arduino gespeichert ist, wechseln, dann Befehl

sudo sh arduino

eingeben, dann klappt’s.

bac

andreas
Antworte an  bac
7 Jahre zuvor

Auch wenn der letzte Kommentar hier schon älter ist, aus gegebenem Anlass …

Unter Ubuntu haben nicht-root user per default oft nicht die Rechte um auf entsprechende USB Geräte (devices) zuzugreifen. Sollte das der Fall sein bekommt man beim „Hochladen“ des Programms aber eine „Permission denied“ Fehlermeldung.

Die Lösung dafür ist, den jeweiligen Nutzer in die Gruppe „dialout“ hinzuzufügen, z.B. folgenden Befehl in einem Terminal Fenster ausführen:
$ sudo adduser USERNAME dialout
Danach ist ein logout/login erforderlich für den USER.

Die Installation der Arduino Software und das starten des Programms erfordern keine root-Rechte!
D.h. nach dem herunterladen der .tar.xz Datei, diese entpacken und als normaler user das ./install.sh script (im Terminal) aufrufen. Damit sollten dann auch Desktop und Startmenu Einträge generiert werden.

p/s: zumindest unter Ubuntu hatte das gerade erst sehr gut funktioniert.
pp/s: Vielen Dank fuer die tolle Seite starthardware.org

David Schmid
10 Jahre zuvor

Bei mir kommt beim Upload immer dieser Fehler
This report would have more information with
„Show verbose output during compilation“
enabled in File > Preferences.
Arduino: 1.0.6 (Windows NT (unknown)), Board: „Arduino Uno“
sketch_dec06a.ino: In function ‚void setup()‘:
sketch_dec06a:4: error: a function-definition is not allowed here before ‚{‚ token
sketch_dec06a:4: error: expected `}‘ at end of input

David Schmid
Antworte an  David Schmid
10 Jahre zuvor

Habe es auch mit kopieren aus diesem Tutorial heraus versucht, es erscheint der selbe Fehler.

Krallec(c)
Antworte an  David Schmid
4 Jahre zuvor

Klingt aber danach, dass die Klammern falsch gesetzt sind.
Das Programm erwartet in „void setup“ eine „{„ , bevor eine Funktion definiert wird.
Also steht der Befehl evtl. Nicht sauber in den { }.
Vielleicht hast Du auch Ausversehen vorher oder nachher eine Klammer Zuviel gesetzt. Von den offenen und geschlossenen muss immer die selbe Anzahl vorhanden sein.

31
0
Ich würde mich über deine Meinung freuen.x