Donnerstag, 25. Juni 2015

Eigene Bibliothek für den Arduino erstellen

In diesem Artikel geht es darum, wie man eine Bibliothek für den Arduino erstellen kann. Eine Bibliothek ist eine Art Sammlung von Befehlsdefinitionen, die ausgelagert wurden. Ein Beispiel ist die LiquidCrystal Bibliothek, durch die man ohne große Fachkenntnisse ein LCD Display verwenden. Durch eine Bibliothek kann man dann viele Befehle mit nur einer Zeile Code im Sketch definieren.


Aufbau einer Bibliothek für die Arduino IDE

Eine Bibliothek besteht aus drei Teilen. Einerseits dem Ordner, und andererseits die im Ordner enthaltenen Dateien, die Header Datei, und die C++ Datei. In der Headerdatei, eine Textdatei mit der Endung ".h", werden die Funktionen einer Klasse benannt und die nötigen Variablen definiert. In der CPP Datei wird der Inhalt der Funktionen angegeben, also die, von der Arduino IDE bekannten, Befehle.

Um das Erstellen einer Bibliothek an einem Beispiel zu veranschaulichen, erstelle ich eine Bibliothek, über die man eine LED zum Blinken bringen kann. Der Pin kann vom User angegeben werden.

Die Headerdatei

Eine gute Headerdatei beginnt immer mit einer if Schleife. Diese fragt ab, ob der Programmierer versehentlich die Bibliothek zum zweiten Mal nachlädt. Wenn dem nicht so ist, wird eine Klasse mit dem Namen der Bibliothek erzeugt. Diese Klasse hat diverse Methoden, also Befehle. Diese werden in public angegeben. Wenn eine Funktion Werte benötigt gibt man diese, wie in der Arduino IDE, in den Klammern, samt Datentyp an. Wenn eine Funktion keine Argumente hat, schreibt man void vor den Funktionsnamen. Diese Funktionen kann dann der User, sobald er die Bibliotehk importiert hat, verwenden. Auf Alles, was im Bereich private steht, hat nur die Bibliothek/die Klasse selbst Zugriff. Dort würde beispielsweise Variablen, die später Zwischenergebnisse enthalten, definiert werden. Das #include "Arduino.h" am Anfang ist immer notwendig und gibt einige Standardeinstellungen und Definitionen vor. Unsere Klasse/Bibliothek soll eine Funktion Blinken haben, auf die wir zugreifen können, und bei der wir den Pin angeben können. Deshalb kommt die Funktion in den public Bereich. Die gesamte Headerdatei sieht dann so aus:
Um eine Headerdatei zu erstellen öffnet ihr euren ganz normalen Windows Editor und tippt dort den Text ein. Anschließend klickt ihr auch Datei > Speichern unter. Dort wählt ihr den Namen Blinken.h und als Dateityp "Alle Dateien". Wenn ihr das nicht tut, interpretiert euer PC das ganze als eine Textdatei mit dem Namen "Blinken.h.txt".

Die C++ Datei

In der C++ Datei werden die einzelnen Befehle, die ihr erstellt habt, mit Leben gefüllt. Das bedeutet, dass ihr, ähnlich wie bei der Funktionsdefinition in der IDE selbst, sagt welche Befehle eure neue Methode enthält. Dazu müsst ihr zunächst wieder die Arduino.h und eure Bibliotheksheaderdatei, die ihr gerade erstellt habt, nachladen. Danach könnt ihr schon mit der Definition der Methoden beginnen. Dort verwendet man die ganz normalen Befehle, die aus der Arduino IDE bekannt sind.
Auch diese Datei kann, wie die Headerdatei, mit einem normalen Texteditor erstellt werden.

Die Bibliothek im Arduino Sketch verwenden

Um nun den Befehl Blinken aus der Bibliothek zu verwenden, muss man diese Bibliothek ganz normal nachladen. Also entweder über das schreiben der Zeile #include <Blinken.h> oder über Sketch > IncludeLibrary > Blinken. Nun müssen wir nur noch die Methode Blinken(Pinnummer); im Loopteil angeben, und schon blinkt die gewählte LED.

Das ist ein einfaches Beispiel, wie man eine Bibliothek für die Arduino IDE erstellt und verwendet.

Wenn dir der Post gefallen, gib ihm doch bitte einen Daumen hoch.

2 Kommentare:

  1. This takes me back to my Ads module days. I can't believe I was so nervous about building libraries! Another good writeup.

    AntwortenLöschen
  2. Bei mir kommt immer eine Fehlermeldung, dass etwas in der C++ Datei nicht Funktioniert bei dem Blinken::Blinken

    AntwortenLöschen

Mit dem Veröffentlichen eines Kommentars erklären Sie sich mit unserer Datenschutzerklärung einverstanden.
https://michaelsarduino.blogspot.de/p/datenschutzerklarung.html