Arduino programmieren und oder ist gleich


Diese fünfteilige Serie richtet sich an diejenigen, die gerne Arduino Projekte umsetzen möchten, jedoch mit der Programmiersprache und der Arduino IDE nicht so sehr vertraut sind.

Oft ist es so, dass sich Bastler mit Elektronik sehr gut auskennen, Programmieren aber noch ein Problem darstellt. Zahlreiche Tutorials bieten fertigen Quellcode, den man nur auf den Mikrocontroller laden muss. Man lernt durch try-and-error, versteht aber oft nicht, was in dem Programm geschieht. Möchte man dann ein umfangreicheres Projekt umsetzen, landet man auch mal in einer Sackgasse. Die folgenden Grundlagen sollen dazu dienen, den Zugang zum Programmieren etwas zu erleichtern.

Ein eigenes Programm auf einen Arduino Mikrocontroller zu übertragen, kann auf verschiedene Art und Weise geschehen. In unseren Blogbeiträgen gibt es bereits eine Anleitung für die Installation und Verwendung der Entwicklungsumgebung PlatformIO. Wir richten das Hauptaugenmerk in dieser Beitragsserie auf die Arduino IDE, die sich gut für Einsteiger eignet.

Was wird benötigt?

• Computer (Windows, Linux, MacOS)
• Arduino Mikrocontroller
• Mini-USB Kabel

Auf der Webseite Arduino.cc steht die Arduino IDE (Integrated Development Environment, deutsch:


Integrierte Entwicklungsumgebung) zum Download bereit. Unterstützt werden die Plattformen Windows (ab Win XP aufwärts), MAC OS X (ab 10.8), Linux 32 und 64 Bit sowie Linux on ARM 32 und 64 Bit.
Eine dieser Plattformen müsste also zwangsläufig vorhanden sein. Auf der genannten Webseite wird in Arduino Create ein Webeditor zur Verfügung gestellt, auf den hier nicht weiter eingegangen wird.


Natürlich möchten wir einen Arduino kompatiblen Mikrocontroller programmieren. Wir nutzen dafür den Arduino Nano V3, den Sie als Neukunde kostenlos von uns erhalten. Er besitzt eine integrierte LED, die wir später für den ersten Test nutzen können. Mit einem Mini-USB Kabel wird der Nano an den Computer angeschlossen. Damit wird er mit Strom versorgt und auch unser Programm wird
dadurch übertragen.

Tipp: Arduino.cc ist ein guter Anlaufpunkt, wenn man nicht mehr weiter weiß. Vieles, das hier genannt wird, ist dort noch ausführlicher beschrieben.

Erste Schritte - Installation

Zunächst sollte natürlich die Arduino IDE installiert werden. Dafür führt man am besten den Windows Installer aus und befolgt die Anweisungen des Installationsprogramms.

Als Option steht auch eine portable Version zur Verfügung. Für Linux lädt man eine gepackte .tar.xz-Datei herunter und entpackt sie anschließend. Das kann aus dem Kontextmenü über die rechte Maustaste geschehen. Hier wählt man „Hier entpacken“. In dem Ordner, der dann angelegt wird, befindet sich eine Datei namens install.sh, die ebenfalls über die rechte Maustaste und den Befehl „Im Terminal ausführen“ gestartet wird. Es handelt sich dabei um ein shell script.

Hat man bereits ein Terminalfenster geöffnet, wechselt man in den eben entpackten Ordner und startet als Alternative die Installation mit der Kommandozeile ./install.sh. Sollte es Probleme mit der Berechtigung geben,
kann an den Anfang der Zeile ein sudo hinzugefügt werden. Ist die Datei dann noch nicht ausführbar, muss sie mit der Kommandozeile sudo chmod +x install.sh ausführbar gemacht werden. Für den Fall, dass es auch dann noch Probleme gibt mit der Installation, hat der User patrickthecreator auf der Webseite instructables.com einen Workaround für die Arduino IDE Version 1.82 unter Linux
veröffentlicht.

 

Arduino programmieren und oder ist gleich

Abbildung 1: Installation Arduino IDE - Treiber

 

Arduino programmieren und oder ist gleich

Abbildung 2:Installation Arduino IDE - weitere Treiber

War die Installation erfolgreich, wird der Arduino Nano per Mini-USB Kabel an den Computer angeschlossen und die IDE gestartet. Die Startreihenfolge ist dabei unerheblich. Eventuell muss man im Programm unter dem Menüpunkt „Werkzeuge“ manuell den Port auswählen, schließt man den Arduino erst nach dem Programmstart an.
Unter Umständen wird ein Treiber unter Windows benötigt, damit der Arduino erkannt wird. USB (Universal Serial Bus) ist eine Form der seriellen Schnittstellen. Wird ein Arduino angeschlossen, wird er dem COM-Port zugeordnet. Nutzt man den Windows Installer, werden die benötigten Treiber in der Regel gleich mit installiert. Es ist möglich, dass der Nano trotzdem noch nicht erkannt wird. Eventuell liegt ein Arduino Nano mit CH340/CH341 Chip vor. Gibt man das in die Internetsuche des Vertrauens ein, wird man schnell fündig. Das Problem ist bekannt. Auch unter Linux oder Mac OS können besagte Problem auftreten. Wird der Arduino erkannt, erscheint er unter Windows als /COMx (anstelle des x erscheint dann eine Zahl) und unter Linux und Mac OS als /dev/tty bzw. /dev/usb.

 

Arduino programmieren und oder ist gleich

Abbildung 3: Arduino IDE - Portauswahl

Bibliothekenverwaltung

Es stehen zahlreiche Bibliotheken zur Verfügung. Das bedeutet, dass fertige Programmfunktionen eingebunden und genutzt werden können. Die Arduino IDE bietet das auf verschiedenen Wegen an. Zum einen kann man im Menüpunkt „Werkzeuge“ unter „Bibliotheken verwalten…“ bzw. STRG+UMSCH+I aus dem Online Repository zahlreiche Bibliotheken zu installieren. Möchte man z.B. ein LCD-Display nutzen, kann man die LiquidChrystal Library installieren und hat so auf einfache Weise passende Funktionen zur Verfügung sowie Beispielcode, der anschließend über das Menü „Datei“ und anschließend „Beispiele“ erreichbar ist. In der Arduino IDE ist bereits eine solche Bibliothek installiert. Das erkennen wir auch in der Verwaltung.

 

Arduino programmieren und oder ist gleich

Abbildung 4: Arduino IDE - Bibliothekverwalter

Andere Onlinequellen kann man unter „Datei“ und dann „Voreinstellungen“ unter dem Punkt „Zusätzliche Boardverwalter-URLs“ einbinden. In unserem Beispiel die Bibliothek für den ESP8266, einem Arduino kompatiblen Mikrocontroller mit WLAN-Schnittstelle.

 

Arduino programmieren und oder ist gleich

Abbildung 5: Arduino IDE - Voreinstellungen

Hat man Bibliotheken aus einer anderen Quelle bezogen, kann man sie als ZIP-Datei auch direkt über das Menü „Sketch“, dann „Bibliothek einbinden“ und anschließend „.ZIP-Bibliothek hinzufügen…“ hinzuladen.

Es ist auch möglich, Bibliotheken in den Sketchebooks-Ordner unter „libraries“ abzulegen. Nach einem Neustart der IDE sind diese dann verfügbar.

Möchte man nun die Funktionen der Bibliotheken nutzen, kann man sie über das Menü „Sketch“ und dann „Bibliothek einbinden“ einfach auswählen. Hier ein kurzes Beispiel:

Es wird dann eine Zeile hinzugefügt die z.B. lautet:

#include <LiquidCrystal.h>

#include ist eine Präprozessordirektive und bindet an dieser Stelle die Headerdatei für die zuvor installierte LCD-Bibliothek ein. Durch diese Datei werden dem Compiler Klassen, Funktionen und Variablen bekannt gemacht, die in der Bibliothek verwendet werden. Diese können nun genutzt werden. Tipp: Ist der Pfad zur Bibliothek bekannt, werden eckige Klammern verwendet. Sollten Fehler auftreten, kann es sein, dass der Pfad zur Bibliothek nicht gefunden wird. Dann kann man ihn mit angeben und muss dann aber statt der eckigen Klammern doppelte Anführungszeichen verwenden.

Als Beispiel kann man nun ein Objekt vom Typ LiquidCrystal erzeugen und ihm einen Namen, sowie die digitalen Pins geben. Die Zeile sieht dann ungefähr so aus:

LiquidCrystal lcd(rs, en, d4, d5, d6, d7);

Es ist nun möglich, mit lcd.begin(16, 2); das Display zu initialisieren (16, 2 steht für 16 Spalten und 2 Zeilen. Für größere oder kleinere Displays muss man diese Werte ändern) und anschließend mit lcd.print("hello, world!"); Text darauf auszugeben. Es sind noch einige andere Funktionen in dieser Klasse verfügbar. Es soll nur verdeutlicht werden, wie man fertige Programmmodule einbinden kann.

Das erste Programm - Sketches

Die Arduino IDE speichert Programme als sogenannte Sketches. Es wird dafür ein Ordner „Sketchbooks“ angelegt. Dort werden auch Hardwareinformationen und Bibliotheken gespeichert, die man manuell der IDE hinzufügt. Man kann selbstverständlich auch eigene Speicherorte wählen. Sketches werden als .ino-Datei abgelegt.

Tipp: Es ist darauf zu achten, dass der Name der Datei identisch ist mit dem Namen des Ordners, in dem sich die Datei befindet. Ist das nicht der Fall, wird man beim Speichern freundlich darauf hingewiesen oder es wird eigenständig ein Ordner mit dem Namen angelegt.

In den Voreinstellungen kann man den Ort des Sketchbooks und weitere Optionen wählen.

Wir wollen nun das erste Programm auf den Arduino Nano laden und ihn damit testen. Zuerst überprüfen wir, ob der Arduino Nano als Zielgerät ordnungsgemäß eingestellt ist. Dafür wählen wir das Menü Werkzeuge. Dort Findet man die Einstellungen für Board, Prozessor und Port. standardmäßig ist hier der Nano eingestellt. Wie bereits vorher erwähnt, kann es vorkommen, dass man den Port noch einmal manuell einstellen muss.

 

Arduino programmieren und oder ist gleich

Abbildung 6: Arduino IDE - Boardauswahl

Es werden zahlreiche Beispielprogramme mitgeliefert. Sie beinhalten unter anderem das Blink-Programm. In Programmierkreisen wird für erste Tests oft „Hello World!“ benutzt. Blink ist das hello world für LEDs.

 

Arduino programmieren und oder ist gleich

Abbildung 7: Arduino IDE - Beispiele

Öffnen wir die Beispieldatei, können wir sie entweder zuerst kompilieren oder direkt hochladen. Das Kompilieren wird trotzdem automatisch ausgeführt. Man spart sich hier den ersten Schritt. Kompilieren nennt man den Vorgang, der das Programm in Maschinencode umwandelt, der vom Mikroprozessor ausgeführt werden kann. Mit STRG+R auf der Tastatur, aus dem Menü Sketch -> Überprüfen/Kompilieren, oder mit dem Häkchen-Button im Programm wird das Kompilieren gestartet.

So geht's weiter:

Welche Programmiersprache benutzt man bei Arduino?

Die Elemente der Arduino (C++) Programmiersprache.

Was bedeutet == Arduino?

Beschreibung. Vergleicht die linke Variable mit dem Wert oder der Variablen rechts vom Operator. Gibt true zurück, wenn die beiden Operanden gleich sind.

Ist Arduino C oder C++?

Arduino-Boards werden oft in C programmiert. Es ist nur wenig bekannt, dass für die Arduino-Programmierung auch zahlreiche Sprachelemente von C++ zur Verfügung stehen. So können Arduino-Programme auch mit Klassen und Vererbung geschrieben werden und die Vorteile der objektorientierten Programmierung nutzen.

Wie oft kann ein Arduino programmiert werden?

Der Hersteller garantiert 10000 Überschreiben des Flash-Speichers wobei auch noch beim 10000 mal die Daten 100 Jahre halten müssen. Um 10000 Updates zu erreichen mußt Du Dich schon mächtig anstrengen.