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.

    1 1 vote
    Article Rating
    Abonnieren
    Benachrichtige mich bei

    Diese Seite 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
    7 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
    7 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
    6 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