Banner Ausblenden
Kleines Logo

Willkommen auf PSI-Online

Niklas Wirth

Alarmanlage mit Ultraschallsensor

 

Material: 1x Arduino UNO

                2x LED

                1x  Buzzer

                1x  Ultraschallsensor (HC-SR04)

                1x  Breadboard

              12x  Kabel

                2x Wiederstände

 

IdeeDer Ultraschallsensor soll der Auslöser für den Alarm sein. Zudem soll eine LED leuchten um mitzuteilen                        das die Alarmanlage scharfgestellt ist. Eine weitere soll leuchten wenn ein Alarm signalisiert wird.                                    Außerdem soll der Buzzer einen Alarm von sich geben. die Alarmanlage soll sich darauf hin nach ca 15                            Sekunden erneut scharfstellen und der Alarm ausgehen.

 

Befehle:

delay(x):                             Legt eine Pause für millisekunden (x) fest

digitalWrite:                      Digitalen Zustand von Pins festlegen

digitalRead:                       Digitalen Zustand von Pins lesen

loop:                                   Wiederholung aller Ausführungen

continue:                           Überspringt ausführbare Quelltexte in Schleifen

break:                                 Schleife vorzeitig verlassen

input:                                  Legt den Pin ab Eingang fest

output:                               Legt Pin als Ausgang fest

pinMode:                           Legt fest, ob ein Pin In- oder Output ist

 

Programm:


int trigger = 7;                          //Ausgabe der Schallwellen
int echo = 6;                            //Input der Schallwellen
int buzzerpin = 9;                    //Buzzer Anschluss
int statusled = 13;                  //Led die angibt ob die Alarmanlage an ist
int alarmled = 8;                     //Led die angeht wenn das Signal unterbrochen wurde (Alarm)
long dauer = 0;                       //Dauer der Schallwellen hin und zurück
long entfernung = 0;              //Entfernung der Körpers vom Ultraschallsensor


void setup()                           //Die folgenden Befehle werden chronologisch einmal ausgeführt

{
 
  pinMode(trigger, OUTPUT);              //Der Pin trigger soll Informationen ausgeben (Strom bzw Schallwellen)
  pinMode(echo, INPUT);                     //Der Pin echo soll Informationen einhohlen (Schallwellen)
  pinMode(statusled, OUTPUT);        //Die StatusLED soll Informationen ausgeben (Strom)
  pinMode(alarmled, OUTPUT);         //Die AlarmLED soll Informationen ausgeben (Strom)
  digitalWrite(statusled, HIGH);          //Die StatusLED soll Strom erhalten und leuchten
 
}


void loop()                                     // void setup endet und void loop startet die nun folgenden Befehele werden                                                                                 chronologisch in einer schleife durchgeführt

{
 
  digitalWrite(trigger, LOW);         //Der Trigger soll noch keine Schallwellen ausgeben er ist aus


  delay(5);                                        //Bis das Programm weiterläuft sollen 0,005s gewartet werden um den trigger eine                                                                  bestimmte Zeit anzumachen


  digitalWrite(trigger, HIGH);        //Der Trigger soll Schallwellen ausgeben er ist an


  delay(10);                                     //Bis das Programm weiterläuft sollen 0,01s gewartet werden um den trigger eine                                                                      bestimmte Zeit anzumachen


  digitalWrite(trigger, LOW);               //Der Trigger soll keine Schallwellen ausgeben er ist aus


  dauer = pulseIn(echo, HIGH);        //Der Echo Pin soll die Informationen einhohlen


  entfernung = (dauer / 2) * 0.03432;      //Die Entfernung des Gegenstandes wird ausgerechnet:Dauer der Schallwellen                                                                          hin zurück :2 und mal Schallgeschwindigkeit
                                      

  if (entfernung <= 120 )             //Falls die Entfernung unter 120cm liegt soll alles in der folgenden geschweiften                                                                        Klammer durchgeführt werden
 

{
 
  tone(buzzerpin, 2000);                        //Buzzer soll einen Ton in der Frequenz 2000 ausgeben


    digitalWrite(alarmled, HIGH);          //Die AlarmLED soll an gehen
    

}

  else                                //Falls die Entfernung über 120cm liegt soll alles in der folgenden geschweiften Klammer                                                       durchgeführt werden  
 
{
 
  noTone(buzzerpin);                            //Buzzer soll einen Ton in der Frequenz 2000 ausgeben


    digitalWrite(alarmled, LOW);         //Die AlarmLED soll aus gehen
    

}

  delay(250);              //Bis das Programm wiederhohlt wird sollen 0,5s gewartet werden um den Ultraschallsensor nicht                                        zu überlasten
 

}

Aufbau:

 

 

 


Fazit: Die Alarmanlage funktioniert sehr flüssig und gut, jedoch ist der Ultraschallsensor ziehmlich ungenau.

 

Erstellt: Martin Pörschmann (15.01.2020) Letzte Änderung: Martin Pörschmann (15.01.2020)