Nun wird die Alarmausgabe programmiert, wobei hier lediglich eine Anleitung für "Arduino IDE" gegeben wird.

Arduino IDE

Als erstes muss der Pin für die LED sowie für den Lautsprecher bei der Variablendeklaration definiert werden.

int alarmLED = 5;
int alarmBuzzer = 2;


In der Funktion "setup()" müssen die erstellten Variablen als Output definiert werden. Dies kann analog wie bei der Variable "bewegungsStatus" umgesetzt werden.


Die folgende if-Anweisung kann optional benutzt werden, da mit dieser eine Toleranzgrenze von +1 und -1 programmiert wird, die schließlich verhindert, dass der Alarm bereits bei minimalsten Veränderung der gemessenen Werte auslöst. Somit führen minimale Messunsicherheiten nicht direkt zu einem Alarm. 

  if (abs(distance-distance2)>=1) //Um einen Fehlerbereich zu erstellen. Eine Aenderung kann bis zu 1 Laengeneinheiten betragen, bis der Sensor ausloest.
  {
    bewegungsStatus = HIGH;
  }
  else
  {
    bewegungsStatus = LOW;
  }


In der selbst erstellten Funktion "alarm()" muss nun eingefügt werden, dass bei Bewegungserkennung die LED und der Lautsprecher ausgelöst werden. Da die Alarmausgabe durch Piepen beziehungsweise blinken erfolgen soll, muss der Alarm mehrmals ein- und wieder ausgeschaltet werden. Dazu kann eine for-Schleife verwendet werden. In den Klammern der for-Schleife wird erst eine Laufvariable definiert und auf 0 gesetzt. Als zweites wird die Ausführbedingung mit "i < 3" definiert, also bei welcher Zahl der Laufvariablen die Schleife ausgeführt werden soll. Als drittes wird die Laufvariable mit " i++" bei jedem Durchlauf hochgezählt. Die Schleife wird somit genau drei mal ausgeführt.

for (int i = 0; i<3; i++)
   {

   }


Innerhalb der for-Schleife müssen die Alarmpins auf "High" gesetzt werden und dort für eine bestimmte Zeit gehalten werden. Mit dem Funktionsaufruf "delay()" wird das Programm im aktuellen Zustand für die angegebene Zeit gehalten. Beispielsweise würde bei "delay(500)" das Programm für 500 ms gehalten werden. Mit der Funktion "digitalWrite(alarmLED,HIGH);" wird der Alarmpin der LED auf "High" gesetzt.

digitalWrite(alarmLED, HIGH); 
digitalWrite(alarmBuzzer, HIGH); 
delay(1000);
digitalWrite(alarmLED, LOW); 
digitalWrite(alarmBuzzer, LOW); 
delay(500);


Genauso wie oben gezeigt, müssen die Alarmpins auf gleiche Weise für 500 ms auf "Low" gesetzt werden. Damit ist die Funktion des Programmes vollständig gegeben.

Zuletzt geändert: Montag, 5. Februar 2024, 10:30