Niklas Wirth
Alarmanlage mit Ultraschallsensor
Material: 1x Arduino UNO
2x LED
1x Buzzer
1x Ultraschallsensor (HC-SR04)
1x Breadboard
12x Kabel
2x Wiederstände
Idee: Der 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.