Das folgende Beispiel lässt eine LED blinken. Dies ist quasi das 'Hello World' Programm im Arduino Style.
Zum Anschluss einer LED an ein Arduino Board wird folgendes benötigt:
Hinweis: In einigen Tutorials, die man im Internet findet, fehlt der Vorwiderstand für die LED. Mit dem lapidaren Hnweis: auf dem Arduino Board befindet sich bereits ein Widerstand. Das kann man so pauschal nicht sagen, in früheren Boards gab es wirklich einen Widerstand, aber in den aktuellen Boards nicht. Deshalb ist ein Vorwiderstand für LEDs immer notwendig.
Vom Arduino GND Pin wird ein schwarzes Jumperkabel zur Masse Reihe (blau) gesteckt. Die LED wird wie in der Abbildung auf das Steckbrett gesteckt. Das zweite Jumperkabel geht vom Arduino Pin 11 zur Anode der LED (längerer Draht). Der 220 Ohm Widerstand wird zwischen der Kathode der LED (abgeflachte Seite des Gehäuses) und der GND Reihe gesteckt.
Steckbrett Ansicht:
Schaltplan:
Neue Funktionen sind setup(), loop(), pinMode() und digitalWrite()
Die Funktionen setup() und die loop() sind die beiden Grundfunktionen von jedem Arduino Programm und müssen immer vorhanden sein.
setup() wird beim Start des Programmes einmalig aufgerufen. Nach jedem Einschalten oder Reset des Boards wird diese Funktion aufgerufen. Hier werden Variablen und Pin Funktionen initialisiert.
loop() wird nach dem Aufruf der **setup() Funktion aufgerfen. Allerdings nicht nur einmal, sondern wie der Name vermuten lässt immer wieder, solange das Programm läuft.
Anders als in C oder C++ gibt es in einem Arduino Sketch keine main() Funktion. Die main() Funktion wird erst beim Übersetzen des Arduino Sketch in C/C++ Code gebaut. Diese main() Funktion sieht ungefähr so aus:
#include <Arduino.h>
void setup();
vpoid loop();
int main() {
/* Initialisierung */
setup();
/* Haupschleife */
while(1) {
loop();
return 0;
Konfiguriert den Pin als Input oder Output.
Syntax
pinMode(pin, mode)
Parameter
pin: Die Arduino-Pinnummer, auf der der Pinmodus gesetzt werden soll.
mode: INPUT, OUTPUT oder INPUT_PULLUP
Schreibt einen HIGH - oder LOW -Wert auf einen Digitalpin.
Syntax
digitalWrite(pin, value)
Parameter
pin: Die Arduino-Pinnummer
value: HIGH oder LOW
Um den Pin, an dem die LED angeschlossen wird, nicht ständig als Zahl angeben zu müssen, wird eine Konstante namens ledPin global erzeugt und mit dem Wert 11 (der Pin an dem die LED angeschlossen wird) initialisiert. Falls wir die LED später an einem anderen Pin anschliessen wollen, brauchen wir nur den Wert der Konstanten ändern und nicht überall im Programm
const int ledPin = 11;
In der Setup Funktion des Arduino Programms wird der Pin für die LED als Ausgang mit dem pinMode() Befehl gesetzt.
pinMode(ledPin, OUTPUT);
In der Loop Funktion wird die LED zunächst mit digitalWrite() auf HIGH Pegel gesetzt. Anschliessend wird mit der delay() Funktion eine Sekunde (1000ms) gewartet.
digitalWrite(ledPin, HIGH);
delay(1000);
Anschliessend wird die LED auf LOW Pegel gesetzt und wiederum 1 Sekunde gewartet.
digitalWrite(ledPin, LOW);
delay(1000);
Die Loop Funktion wird ständig aufgerufen, solange der Arduino läuft.
Das Programm lässt die LED im 1 Sekunden Rhythmus blinken.
So sieht das komplette Programm aus:
/*
Blink
Schaltet eine LED im Rythmus von einer Sekunde an und aus
*/
const int ledPin = 11; // Konstante ledPin wird deklariert
void setup() { // die setup()-Methode wird einmal ausgeführt
pinMode(ledPin, OUTPUT);
}
void loop() { // die loop()-Methode wird immer wiederholt
digitalWrite(ledPin, HIGH); // schaltet die LED ein
delay(1000); // hält das Programm für 1000 Millisekunden an
digitalWrite(ledPin, LOW); // schaltet die LED aus
delay(1000); // hält das Programm für 1000 Millisekunden an
}
Es gibt eine Simulation für TinkerCAD Circuits. Hier kann die blinkende LED
simuliert werden, inklusive des Arduino Programm in Blocks bzw C++.
Hier das Programm in Blocks:
Und so sieht die Simulation der Schaltung aus.
Der Link zur TinkerCAD Circuits Simulation. Ein Klick auf Start Simulation startet die Simulation.
Tinkercad Circuits - Arduino Blink