Hallo Leute,
da ich erst seit einigen Wochen mit dem Arduino arbeite komme ich nun an meine Grenzen :
Der Plan war eigentlich eine Hausalermanlage mit Hilfe von dem Arduino MEGA zu programmieren.
Dazu habe ich mir ein kleines Modell aus Holz gebaut (so eine Art kleine Wohnung mit drei Türen).
Der Plan war drei mechanische Kontaktsensoren an die Türen zu bauen um ein Öffnen der Tür zu registrieren.
Bei meinem Aufbau habe ich mich an folgenden Projekt orientiert:[
Das Einzige was ich in seinem Programmcode ändern müsste (so dachte ich), wäre ja nur den Ultraschallsensor mit meinen drei Kontaktsensoren zu ersetzen.
Ich habe bereits einen Sketch geschrieben in dem ich nur die drei Sensoren abfrage. Alles funktioniert wie geplant ... der sieht dann so aus:
#include <LiquidCrystal.h>
LiquidCrystal lcd(1, 2, 4, 5, 6, 7); // Creates an LC object. Parameters: (rs, enable, d4, d5, d6, d7)
const byte switchPin1 = 46;
const byte switchPin2 = 47;
const byte switchPin3 = 48;
const int buzzer = 49;
const int LedRed = 44;
const int LedGreen = 45;
void setup ()
{
lcd.begin(16,2);
// Serial.begin (9600);
pinMode (switchPin1, INPUT);
pinMode (switchPin2, INPUT);
pinMode (switchPin3, INPUT);
pinMode (buzzer, OUTPUT);
pinMode (LedRed, OUTPUT);
pinMode (LedGreen, OUTPUT);
}
void loop ()
{
if ((digitalRead (switchPin1) == LOW) && (digitalRead (switchPin2) == LOW) && (digitalRead (switchPin3) == LOW))
{
lcd.setCursor(0,0);
lcd.print("Alle Schalter");
lcd.setCursor(0,1);
lcd.print("geschlossen!");
Serial.println ("Alle Schalter geschlossen!");
noTone (buzzer);
digitalWrite(LedGreen,HIGH);
digitalWrite(LedRed,LOW);
}
else if ((digitalRead (switchPin1) == HIGH) && (digitalRead (switchPin2) == LOW) && (digitalRead (switchPin3) == LOW))
{
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Alarm");
lcd.setCursor(0,1);
lcd.print("Schalter 1!");
Serial.println ("Alarm an Schalter 1!");
tone (buzzer,200);
digitalWrite(LedGreen,LOW);
digitalWrite(LedRed,HIGH);
delay (500);
digitalWrite(LedRed,LOW);
delay (500);
}
else if ((digitalRead (switchPin1) == LOW) && (digitalRead (switchPin2) == HIGH) && (digitalRead (switchPin3) == LOW))
{
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Alarm");
lcd.setCursor(0,1);
lcd.print("Schalter 2!");
Serial.println ("Alarm an Schalter 2!");
tone (buzzer,200);
digitalWrite(LedGreen,LOW);
digitalWrite(LedRed,HIGH);
delay (500);
digitalWrite(LedRed,LOW);
delay (500);
}
else if ((digitalRead (switchPin1) == LOW) && (digitalRead (switchPin2) == LOW) && (digitalRead (switchPin3) == HIGH))
{
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Alarm");
lcd.setCursor(0,1);
lcd.print("Schalter 3!");
Serial.println ("Alarm an Schalter 3!");
tone (buzzer,200);
digitalWrite(LedGreen,LOW);
digitalWrite(LedRed,HIGH);
delay (500);
digitalWrite(LedRed,LOW);
delay (500);
}
else if ((digitalRead (switchPin1) == HIGH) && (digitalRead (switchPin2) == HIGH) && (digitalRead (switchPin3) == LOW))
{
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Alarm");
lcd.setCursor(0,1);
lcd.print("Schalter 1+2!");
Serial.println ("Alarm an Schalter 1+2!");
tone (buzzer,200);
digitalWrite(LedGreen,LOW);
digitalWrite(LedRed,HIGH);
delay (500);
digitalWrite(LedRed,LOW);
delay (500);
}
else if ((digitalRead (switchPin1) == LOW) && (digitalRead (switchPin2) == HIGH) && (digitalRead (switchPin3) == HIGH))
{
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Alarm");
lcd.setCursor(0,1);
lcd.print("Schalter 2+3!");
Serial.println ("Alarm an Schalter 2+3!");
tone (buzzer,200);
digitalWrite(LedGreen,LOW);
digitalWrite(LedRed,HIGH);
delay (500);
digitalWrite(LedRed,LOW);
delay (500);
}
else if ((digitalRead (switchPin1) == HIGH) && (digitalRead (switchPin2) == LOW) && (digitalRead (switchPin3) == HIGH))
{
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Alarm");
lcd.setCursor(0,1);
lcd.print("Schalter 1+3!");
Serial.println ("Alarm an Schalter 1+3!");
tone (buzzer,200);
digitalWrite(LedGreen,LOW);
digitalWrite(LedRed,HIGH);
delay (500);
digitalWrite(LedRed,LOW);
delay (500);
}
else if ((digitalRead (switchPin1) == HIGH) && (digitalRead (switchPin2) == HIGH) && (digitalRead (switchPin3) == HIGH))
{
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Alarm");
lcd.setCursor(0,1);
lcd.print("Schalter 1+2+3!");
Serial.println ("Alarm an Schalter 1+2+3");
tone (buzzer,200);
digitalWrite(LedGreen,LOW);
digitalWrite(LedRed,HIGH);
delay (500);
digitalWrite(LedRed,LOW);
delay (500);
}
}
Da gibt es bestimmt noch Optimierungsbedarf, aber wie gesagt ... Ich bin noch nicht soo lange im Geschäft.
](http://https://howtomechatronics.com/projects/arduino-security-alarm-system-project/)