Benutzer-Werkzeuge

Webseiten-Werkzeuge


projekte:arduino_programmierung

Dies ist eine alte Version des Dokuments!


Arduino Programmierung ganz einfach

—- datatemplateentry project —- template : templates:project name : Arduino Programmierung ganz einfach shortdesc : Wendeschützschaltung mit dem Arduino imgname_img90 : none.png person_pages : ulrich start_dt : 2017-12-07 end_dt : 2017-12-14 status_ : fertig


Bei dem Programmieren einer Wendeschützschaltung auf dem Arduino unter Verwendung von Fischertechnik kam mir eine Idee.
Objekte zu erstellen und die Angabe der Pinrichtung, zum Beispiel pinMode(4,OUTPUT) oder pinMode(5,INPUT) in den Konstruktor des Objektes zu legen
so dass beim Anlegen und Initialisieren des Objektes die Pinrichtung automatisch festgelegt wird und man dies nicht mehr selbst zu tun braucht.
Die Funktion void Setup() kann somit leer bleiben weil sie dafür nicht mehr gebraucht wird.

Insgesamt habe ich drei C++ - Klassen erstellt. Eine zur Rechts- und Linkslaufsteuerung eines Gleichtrommotors mit den Dateinamen motor.h und motor.cpp
bei der Rechtslauf- und Linkslaugstatusuf gegeneinander verriegelt sind, eine um einen Schalter oder Taster einzulesen mit den Dateinamen schalter.h und schalter.cpp
bei der auch das Kontaktprellen des Schalters berücksichtigt wird, sowie eine um ein einzelnes Pin des Arduino an- oder aus zu schalten
mit den Dateinamen ausgangspin.h und ausgangspin.cpp.

Direkt nach dem Einleitungskommentar was das Programm tut, kommen die #Include – Anweisungen, zum Beispiel #include<schalter.h>, #include<motor.h> und
#include<ausgangspin.h> danach erfolgt das Erstellen der Objekte, zum Beispiel Motor Motor_1 (4,5). Das bedeutet das der Motortreiber-IC L298
unter dem Namen Motor_1 an Pin 4 und Pin 5 des Arduino angeschlossen ist. Danach können bei Bedarf weitere Objekte erstellt werden,
wie Schalter TasterRechtslauf (8), das bedeutet das der Taster für den Motorrechtslauf unter dem Namen TasterRechtslauf an Pin 8 des Arduino angeschlossen ist.
Danach erst kommt die leere Funktion void Setup(). Die Objekterstellung erfolgt also außerhalb dieser Funktion.
Verwenden kann man die Objekte im Programm wie folgt:

<HTML> Motor_1.Rechtslauf(); Der Motor_1 läuft rechtsherum. Motor_1.Linkslauf(); Der Motor_1 läuft linksherum. Motor_1.Aus(); Der Motor_1 wird ausgeschaltet. if (TasterRechtslauf.Zustand()) Ist der Taster für den Rechtslauf betätigt?

Motor_1.Rechtslauf(); // Motor_1 rechtsherum laufen lassen.

</HTML>

Die Bibliotheken befinden sich in den Zip-Dateien motor.zip, schalter.zip, und ausgangspin.zip,
so dass man sie über den Menüpunkt Sketch → library → add library der Arduino-Entwickungsumgebung importieren kann.
Zum besseren Verständnis folgen hier zwei Beispiele:
<HTML> /* Dieses Programm ist eine Wendeschützschaltung mit dem Arduino. */

#include <schalter.h> Meine selbstgeschriebene Bibliothek. #include <motor.h> Meine selbstgeschriebene Bibliothek.

Motor Motor1 (4,5); Motor1 an Pin 4 und Pin 5 des Arduino. Schalter TasterRechtslauf (8); Taster für den Motorrechtslauf an Pin 8. Schalter TasterStop (9); Stoptaster an Pin 9. Schalter TasterLinkslauf (10); Taster für den Motorlinkslauf an Pin 10.

void setup () {} Kann leer bleiben. void loop () { if (TasterRechtslauf.Zustand()) Motor1.Rechtslauf(); else if (TasterStop.Zustand()) Motor1.Aus(); else if (TasterLinkslauf.Zustand()) Motor1.Linkslauf(); } </HTML> Und hier das zweite Beispiel:
<HTML> /* Dies ist ein Beispielprogramm um * die Funktion der Klasse ausgangspin * am Arduino zu demonstrieren. /* #include <schalter.h>
Meine selbstgeschriebene Bibliothek. #include <ausgangspin.h> Meine selbstgeschriebene Bibliothek. Schalter Einschalttaster (8); Der Einschalttaster ist an Pin 8 des Arduino. Schalter Ausschalttaster (9); Der Ausschalttaster ist an Pin 9. Ausgangspin LED (4); Die Leuchtdiode ist an Pin 4.

void setup () {} Kann leer bleiben. void loop () { if (Einschalttaster.Zustand()) LED.Ein(); else if (Ausschalttaster.Zustand()) LED.Aus(); } </HTML>

projekte/arduino_programmierung.1513884003.txt.gz · Zuletzt geändert: 2021/01/17 01:07 (Externe Bearbeitung)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki