Blink – Start mit Arduino

Dieses Tutorial zeigt Dir, wie Du mit Arduino eine LED blinken lassen kannst. Also: Los geht es!

Lade die Arduino-Software von https://www.arduino.cc/en/Main/Software herunter. Wähle dazu einfach Dein Betriebssystem in der Sektion Download the Arduino IDE aus.

Arduino Download Page
Arduino Software Download

Installiere und starte die Arduino-IDE. Schließe das Arduino-Board an den Computer an und klicke im Hauptmenü auf Werkzeuge>Board und wähle Dein Arduino-Board aus (in 99% der Fälle wird das das Arduino/Genuino UNO sein).  

Arduino Board auswählen
Arduino Board auswählen

Nun klicke erneut im Hauptmenü auf Werkzeuge>Port und wähle den Port aus, an dem das Arduino angeschlossen ist.

Arduino Port auswählen
Arduino Port auswählen

Jetzt ist die Arduino-Software für unseren ersten Sketch vorbereitet. 

Programmiert wird das Arduino-Board in der Sprache C. Im Sketch-Fenster stehen bereits zwei Methoden:

void setup() {
  // put your setup code here, to run once:
}

void loop() {
  // put your main code here, to run repeatedly:
}

In der Setup()-Methode werden einmalige Einstellungen vorgenommen. Sie wird automatisch beim Start des Arduino-Boards aufgerufen. Die Loop()-Methode wird kontinuierlich wiederholt.

Das Arduino-Board

Zentrales Element des Arduino-Boards ist der Mikrocontroller, auf dem die Programme ausgeführt werden. Über einen USB-Port kann er mit dem Computer verbunden und programmiert werden. Das Arduino-Board hat 14 digitale Pins (GPIOs), sechs analoge Input-Pins und diverse Pins für Kommunikation und Stromversorgung. Sechs der digitalen Pins können zur analogen Ausgabe, z.B. zum Dimmen von LEDs verwendet werden (PWM). 

Arduino Überblick
Arduino Überblick

Das Arduino-Board verfügt des Weiteren über eine, bereits auf dem Board integrierte LED am Pin 13. Diese werden wir nun blinken lassen.

Code

Um die LED am Pin 13 blinken zu lassen, müssen wir dem Arduino in der Setup()-Methode mitteilen, dass wir den Pin 13 als digitalen Output verwenden möchten. Das geht mit dem Befehl:

pinMode(13, OUTPUT);

In der Loop()-Methode schalten wir die LED nun ein und aus:

digitalWrite(13, HIGH);
digitalWrite(13, LOW);

Dazwischen fügen wir ein paar Pausen ein, damit wir die Änderung sehen können.

delay(1000);

Dieser Befehl verzögert das Programm um 1000 Millisekunden. 

Das gesamte Programm sieht so aus:

void setup() {
  // put your setup code here, to run once:
  pinMode(13, OUTPUT);
}

void loop() {
  // put your main code here, to run repeatedly:
  digitalWrite(13, HIGH);
  delay(1000);
  digitalWrite(13, LOW);
  delay(1000);
}
Arduino LED Blink Schaltung
Kurzes Beinchen der LED links, also am Kabel zum GND-Pin

Um das Programm auf das Arduino-Board zu laden, kann man im Hauptmenü auf Sketch>Hochladen klicken. Voilà, es blinkt :-)

Anzeige: Böse Shirts für Menschen mit Humor

Findest Du die Möglichkeiten mit Arduino auch so faszinierend? Blickst Du auch gern hinter die Kulissen um zu verstehen, wie die Welt funktioniert? Dann empfehle ich Dir das Buch: Arduino: Kompendium: Elektronik, Programmierung und Projekte* – Damit wirst Du zum Arduino-Profi!

10 thoughts on “Blink – Start mit Arduino

  1. Hallo,
    ich probiere gerade zum 1. mal. Soll die Schaltung auf dem Bild wirklich funktionieren? PIN 13 ist doch mit dem Widerstand (und LED) gar nicht verbunden. Oder?

    1. Wow. Ich möchte nicht wissen, wie viele Leute an dem Beispiel verzweifelt sind, bis endlich jemand gefragt hat. Die Schaltung war natürlich total falsch. Ich habe sie geändert und hoffe, jetzt passt alles. Hab lieben Dank Alex! Viele Grüße

  2. Nachtrag zu meinem vorherigen Post:

    Da ich die Schuld an Problemen grundsätzlich erstmal Windows gebe, habe ich die Software auf meinem Laptop unter LinuxMint 19.1 installiert. Entpacken, install.sh, alles ok. Dann der Start, Doppelklick auf dem Desktop – NICHTS. Aus dem Terminalfenster gestartet gibt die Fehlermeldung: ….arduino-1.8.10/java/bin/java Datei oder Verzeichnis nicht gefunden.

    Kann jemand helfen?

  3. HILFE! Tutorials gelesen, erster Tag mit Arduino Nano. Alles so gemacht, wie hier beschrieben. Windows meldet „neues Gerät“, kann nicht installiert werden. Sketch kopiert, kompiliert,

    Fehler beim Kompilieren für das Board Arduino Nano.
    Arduino: 1.8.10 (Windows XP), Board: „Arduino Nano, ATmega328P“

    panic: Failed to find GetFileInformationByHandleEx procedure in kernel32.dll: Die angegebene Prozedur wurde nicht gefunden.

    goroutine 1 [running]:
    syscall.(*LazyProc).mustFind(0x11c37a00)
    /home/jenkins/go1.12.5/src/syscall/dll_windows.go:311 +0x42
    syscall.(*LazyProc).Addr(0x11c37a00, 0xdda500)
    /home/jenkins/go1.12.5/src/syscall/dll_windows.go:318 +0x21
    internal/syscall/windows.GetFileInformationByHandleEx(0xf70, 0x9, 0x11c5da04, 0x8, 0x3, 0x11c1c048)
    /home/jenkins/go1.12.5/src/internal/syscall/windows/zsyscall_windows.go:353 +0x27
    os.newFileStatFromGetFileInformationByHandle(0x11cec880, 0x38, 0xf70, 0x0, 0x11cec880, 0x38)
    /home/jenkins/go1.12.5/src/os/types_windows.go:52 +0x135
    os.(*File).Stat(0x11c06ed8, 0x984490, 0x11c06ed8, 0x0, 0x11c06ed8)
    /home/jenkins/go1.12.5/src/os/stat_windows.go:55 +0x133
    io/ioutil.ReadFile(0x11cec880, 0x38, 0x0, 0x0, 0x0, 0x0, 0x0)
    /home/jenkins/go1.12.5/src/io/ioutil/ioutil.go:62 +0xac
    github.com/arduino/go-paths-helper.(*Path).ReadFile(…)
    /home/jenkins/workspace/arduino-builder-all-cross-cli-inception/src/github.com/arduino/go-paths-helper/paths.go:407
    github.com/arduino/arduino-cli/arduino/cores/packageindex.LoadIndex(0x11c06ed0, 0xa29e60, 0x11c43da0, 0x0)
    /home/jenkins/workspace/arduino-builder-all-cross-cli-inception/src/github.com/arduino/arduino-cli/arduino/cores/packageindex/index.go:205 +0x2f
    github.com/arduino/arduino-cli/arduino/cores/packagemanager.(*PackageManager).LoadPackageIndexFromFile(0x11cd2c20, 0x11c06ed0, 0x0, 0x0, 0x11c06ed0)
    /home/jenkins/workspace/arduino-builder-all-cross-cli-inception/src/github.com/arduino/arduino-cli/arduino/cores/packagemanager/package_manager.go:202 +0x25
    github.com/arduino/arduino-cli/arduino/cores/packagemanager.(*PackageManager).loadPlatforms(0x11cd2c20, 0x11c69650, 0x11c06e10, 0x7, 0x11c3eb38)
    /home/jenkins/workspace/arduino-builder-all-cross-cli-inception/src/github.com/arduino/arduino-cli/arduino/cores/packagemanager/loader.go:186 +0xf4d
    github.com/arduino/arduino-cli/arduino/cores/packagemanager.(*PackageManager).LoadHardwareFromDirectory(0x11cd2c20, 0x11c06c10, 0xdda500, 0x703815)
    /home/jenkins/workspace/arduino-builder-all-cross-cli-inception/src/github.com/arduino/arduino-cli/arduino/cores/packagemanager/loader.go:116 +0x43f
    github.com/arduino/arduino-cli/arduino/cores/packagemanager.(*PackageManager).LoadHardwareFromDirectories(0x11cd2c20, 0x11c06c18, 0x1, 0x2, 0x1, 0x1)
    /home/jenkins/workspace/arduino-builder-all-cross-cli-inception/src/github.com/arduino/arduino-cli/arduino/cores/packagemanager/loader.go:52 +0x4f
    github.com/arduino/arduino-cli/legacy/builder.(*HardwareLoader).Run(0xdebc68, 0x11cb25a0, 0xdebc68, 0x0)
    /home/jenkins/workspace/arduino-builder-all-cross-cli-inception/src/github.com/arduino/arduino-cli/legacy/builder/hardware_loader.go:43 +0xe4
    github.com/arduino/arduino-cli/legacy/builder.(*ContainerSetupHardwareToolsLibsSketchAndProps).Run(0xdebc68, 0x11cb25a0, 0xdebc68, 0xdda500)
    /home/jenkins/workspace/arduino-builder-all-cross-cli-inception/src/github.com/arduino/arduino-cli/legacy/builder/container_setup.go:60 +0x266
    github.com/arduino/arduino-cli/legacy/builder.runCommands(0x11cb25a0, 0x11c5df0c, 0x2, 0x2, 0xffffff01, 0x0, 0x4)
    /home/jenkins/workspace/arduino-builder-all-cross-cli-inception/src/github.com/arduino/arduino-cli/legacy/builder/builder.go:210 +0xbd
    github.com/arduino/arduino-cli/legacy/builder.(*ParseHardwareAndDumpBuildProperties).Run(0x11c5df40, 0x11cb25a0, 0xdebbb4, 0x11c06c98)
    /home/jenkins/workspace/arduino-builder-all-cross-cli-inception/src/github.com/arduino/arduino-cli/legacy/builder/builder.go:198 +0xbc
    github.com/arduino/arduino-cli/legacy/builder.RunParseHardwareAndDumpBuildProperties(…)
    /home/jenkins/workspace/arduino-builder-all-cross-cli-inception/src/github.com/arduino/arduino-cli/legacy/builder/builder.go:231
    main.main()
    /home/jenkins/workspace/arduino-builder-all-cross-cli-inception/src/github.com/arduino/arduino-builder/main.go:388 +0x772
    C:\Programme\Arduino\arduino-builder gab 2 zurück

    Fehler beim Kompilieren für das Board Arduino Nano.

    Dieser Bericht wäre detaillierter, wenn die Option
    „Ausführliche Ausgabe während der Kompilierung“
    in Datei -> Voreinstellungen aktiviert wäre.

    Kann mir jemand helfen, bitte?
    Gruß, Hajo.

  4. Hallo.
    Weiß ich gerade nicht. Könnte sogar einer dort sein. Aber meine Schüler sehen das so, wissen kaum, was ein Widerstand ist und stecken die LEDs dann auch in die anderen Pins ohne Widerstand rein.

  5. Hallo.

    Die LED ohne Vorwiderstand zu betreiben ist aber nicht das, was Kinder lernen sollten.
    Wenn sie im 1s-Intervall blinkt, dann überlebt sie das vielleicht. Aber Dauerlicht ist nicht zu empfehlen, denke ich. Und überhaupt macht man so etwas nicht.

    Gruß
    Andreas

    1. Hallo Andreas, guter Punkt. Da bin ich wohl auf eine alte Binsenweisheit hereingefallen, die besagt, dass das Arduino-Board am Pin 13 einen eingebauten Widerstand hätte. Dem ist nicht so und deshalb habe ich die Schaltung korrigiert. Vielen Dank und liebe Grüße Stefan

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

 

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