Wie machen Subroutinen in Arduino

Schreibe eine Bibliothek für Arduino

Dieses Dokument wird erklärt, wie eine Bibliothek für Arduino erstellen. Es beginnt mit einer Skizze für Morse-Code zu blinken, und erklärt, wie seine Funktionen in eine Bibliothek konvertieren. Auf diese Weise können andere Leute den Code leicht verwenden, die Sie geschrieben haben und leicht zu aktualisieren, wie Sie die Bibliothek zu verbessern.







Weitere Informationen finden Sie in der API-Style Guide für Informationen über einen guten Arduino-Stil API für Ihre Bibliothek zu machen.

Wir beginnen mit einer Skizze, die tut einfach Morse-Code:

Leere Setup # 40; # 41;
# 123;
pinMode # 40; Stift. AUSGABE # 41; ;
# 125;

Leere Schleife # 40; # 41;
# 123;
Punkt # 40; # 41; ; Punkt # 40; # 41; ; Punkt # 40; # 41; ;
Strich # 40; # 41; ; Strich # 40; # 41; ; Strich # 40; # 41; ;
Punkt # 40; # 41; ; Punkt # 40; # 41; ; Punkt # 40; # 41; ;
verzögern # 40; 3000 # 41; ;
# 125;

Leere dot # 40; # 41;
# 123;
digital # 40; Stift. HOCH # 41; ;
verzögern # 40; 250 # 41; ;
digital # 40; Stift. NIEDRIG # 41; ;
verzögern # 40; 250 # 41; ;
# 125;

Leere dash # 40; # 41;
# 123;
digital # 40; Stift. HOCH # 41; ;
verzögern # 40; 1000 # 41; ;
digital # 40; Stift. NIEDRIG # 41; ;
verzögern # 40; 250 # 41; ;
# 125;

Wenn Sie diese Skizze ausführen, wird es den Code für SOS (ein Notruf) an Pin 13 blitzen.







Die Skizze hat ein paar verschiedene Teile, die wir brauchen in unserer Bibliothek zu bringen. Erstens, natürlich haben wir den Punkt () und Strich () Funktionen, die die tatsächlichen Blinzeln tun. Zweitens gibt es die ledPin Variable, die die Funktionen verwenden, um festzustellen, welchen Stift zu verwenden. Schließlich gibt es den Anruf an pinMode (), daß der Stift als Ausgang initialisiert.

Beginnen wir die Skizze in eine Bibliothek zu drehen!

Sie müssen mindestens zwei Dateien für eine Bibliothek: eine Header-Datei (w / die Erweiterung .h) und die Quelldatei (w / Erweiterung CPP). Die Header-Datei hat Definitionen für die Bibliothek: im Grunde eine Liste von allem, was drin ist; während die Quelldatei hat den eigentlichen Code. Wir werden unsere Bibliothek „Morse“ nennen, so dass unsere Header-Datei Morse.h sein wird. Werfen wir einen Blick darauf werfen, was in ihm geht. Es mag auf den ersten ein wenig seltsam erscheinen, aber es wird mehr Sinn machen, wenn Sie die Quelle-Datei, die mit ihm geht.

Der Kern der Header-Datei besteht aus einer Zeile für jede Funktion in der Bibliothek zusammen mit allen Variablen in einer Klasse eingewickelt benötigen Sie:

Klasse Morse
# 123;
Öffentlichkeit.
Morse # 40; int pin # 41; ;
Leere dot # 40; # 41; ;
Leere dash # 40; # 41; ;
Privatgelände.
int _pin;
# 125; ;

Eine Klasse ist einfach eine Sammlung von Funktionen und Variablen, die alle zusammengehalten werden an einem Ort. Diese Funktionen und Variablen können öffentlich sein. was bedeutet, dass sie von Menschen mit Ihrer Bibliothek oder privat zugegriffen werden kann. sie bedeutet, kann nur innerhalb der Klasse selbst zugegriffen werden. Jede Klasse hat eine besondere Funktion als Konstrukteur bekannt. die dazu verwendet wird, eine Instanz der Klasse zu erstellen. Der Konstruktor hat die gleichen Namen wie die Klasse, und keinen Rückgabetyp.

Sie benötigen ein paar andere Dinge in der Header-Datei. Eine davon ist eine # include-Anweisung, die Sie Zugriff auf die Standard-Typen und Konstanten der Arduino Sprache gibt (diese automatisch in den normalen Skizzen hinzugefügt werden, aber nicht beschränkt auf Bibliotheken). Es sieht wie folgt aus (und geht oberhalb der Klassendefinition gegeben vorher):

Schließlich ist es üblich, die ganzen Header in einem seltsam aussehenden Konstrukt Datei bis zu wickeln:







In Verbindung stehende Artikel