Programmierung Ultraschallsensor Erfassung einer Bewegung
In diesem Abschnitt wird der Ultraschallsensor programmiert. An dieser Stelle kannst du lediglich mit "Arduino IDE" programmieren. Die bausteinorientierte Programmierung mit "Ardublockly" ist lediglich in der Anleitung des Infrarotsensors dargestellt.
Arduino IDE
- Öffnen Sie das Programm "Arduino IDE".
Das Programm besitzt zwei Funktionen "setup()" und "loop()".
Bei Programmstart wird die Funktion "setup()" aufgerufen. Anschließend wird die Funktion "loop()" als Endlosschleife ausgeführt.
void setup() {}
void loop() {}
Zu beginn müssen oberhalb der beiden Programmfunktionen die benötigten Variablen deklariert werden. Dazu gehören zwei integer Variablen, die den Status den Echo- und Trig-Pins , sowie boolesche Variable eine die den aktuellen Status der Bewegung speichert.
int echoPIN = 15;
int trigPIN = 16;
bool bewegungsStatus = LOW;
Als
nächstes wird die Funktion "setup()" programmiert. Dazu muss innerhalb
der geschweiften Klammern definiert werden, dass die Variable
"echoPIN" ein Input ist. Außerdem soll später der Status der
Bewegung auf dem seriellen Monitor ausgegeben werden. Der Monitor muss
somit an dieser Stelle gestartet werden.
pinMode(echoPin, INPUT);
Serial.begin(9600);
Als nächstes wird das Hauptprogramm geschrieben. Dazu muss in der Funktion "loop()" die Funktion aufgerufen werden, die im Anschluss noch erstellt wird.
alarm();
Nun wir die Funktion "alarm()" unterhalb der Funktion "loop()" erstellt. Da die Funktion nur ausgeführt werden muss und nichts zurück geben muss, wird als Rückgabetyp "void" gewählt. Der Methodenkopf sieht somit folgendermaßen aus.
void alarm() {}
Innerhalb der Methode, also in den geschweiften Klammern der Funktion, wird als erstes der Status der Bewegung von dem Sensor ausgelesen. Dies erfolgt durch den Funktionsaufruf "digitalRead()". Bei dem Funktionsaufruf muss jedoch noch der auszulesende Pin übergeben werden, sodass innerhalb der Klammern der Datenpin eingefügt werden muss. Die Funktion gibt den Inhalt des Datenpins zurück, der anschließend in der Variable "bewegungsStatus" gespeichert werden soll.
bewegungsStatus = digitalRead(echoPIN);
Nun wird mithilfe einer if-Schleife die Ausgabe auf dem seriellen Monitor programmiert. Wenn eine Bewegung erkannt wird, also wenn die Variable "bewegungsStatus" auf dem Wert "High" ist, soll eine Ausgabe auf dem Monitor getätigt werden. Wenn die Variable aber auf "Low" ist, wird die Schleife nicht ausgeführt.
if (bewegungsStatus = HIGH)
{
Serial.println("Alarm");
}
Das
Programm gibt nun auf dem Monitor "Alarm" aus, wenn eine Bewegung
erkannt wird. Dies kann nun durch klicken auf "Hochladen" überprüft
werden. Um den seriellen Monitor sehen zu können, muss nach dem Starten
des Programmes auf die Lupe oben rechts im Programmfenster geklickt
werden.