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.

Last modified: Friday, 19 January 2024, 1:36 PM