INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Lichtschranke Auslöseschwelle
26.07.2015, 18:08
Beitrag #1
Lichtschranke Auslöseschwelle
Hallo Leute,

Ich habe folgendes Problem.
Ich habe für meinen Vater eine Alarmanlage für seinen Garten gebaut, welche mit einem Arduino gesteuert wird.
Der Alarm wird durch eine Lichtschranke ausgelöst.
Das Problem ist aber wenn z.B ein Vogel durch die Schranke fliegt bekommen wir auf unsere Handys die SMS, dass die Anlage ausgelöst hat, außerdem geht dann noch eine Sirene und Lichter an.
Die Anlage hat diese Woche schon 5-mal ausgelöst, ich habe keine Lust, dass es stress mit den Nachbarn gibt.

Ich habe den Code mal eingefügt.
ausloeser_status soll/digitalRead(ausloeser) z.B. 2sec HIGH sein und dann sollte der Alarm erst auslösen.
Würde das mit den Beiden if's im void loop gehen?

Code:
const int power_led = 13;     //Rote LED
const int call_led = 12;      // Grüne LED


int ausloeser = 9;            // Signal eingang /Auslöser
int ausloeser_status = 0;

void setup()

{
  Serial.begin(9600);
  
  
  
  pinMode (13, OUTPUT);    // LED
  pinMode (12, OUTPUT);    // LED
  pinMode (9, INPUT);    // Signal eingang
  pinMode (7,OUTPUT);    // Relay Modul IN1
  pinMode (6,OUTPUT);    // Relay Modul IN2
  
  

  digitalWrite (7,HIGH);
  digitalWrite (6,HIGH);
  digitalWrite (power_led, HIGH);
  digitalWrite (call_led, LOW);
delay(1000);
   pinMode(8, INPUT);
  digitalWrite(8, LOW);
  pinMode(8, OUTPUT);
  delay(1000);
  pinMode(8, INPUT);
  
  
}


void loop()
{
  ausloeser_status = digitalRead(ausloeser);
  
  
   if (digitalRead(ausloeser)==HIGH)
     {delay(2000);
     }
  
   if (digitalRead(ausloeser)==HIGH)
    {
          
   digitalWrite(12,HIGH);

    Serial.println("AT+CMGF=1");
    delay(500);
    Serial.println("AT+CMGS=015734409161");
    delay(1000);
    Serial.print("Garten Alarm");
    delay(500);
    Serial.print(char(26));

        digitalWrite(7,LOW);
        digitalWrite(6,LOW);
        delay(30000);               // Zeit,wie lang das Licht usw. an ist
        digitalWrite(7,HIGH);
        digitalWrite(6,HIGH);
          
        digitalWrite(12,HIGH) ;
        digitalWrite(13,HIGH);

        
      
    }
}

gruß Dominik
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
27.07.2015, 07:39
Beitrag #2
RE: Lichtschranke Auslöseschwelle
(26.07.2015 18:08)DerBastler97 schrieb:  Das Problem ist aber wenn z.B ein Vogel durch die Schranke fliegt....
.......ausloeser_status soll/digitalRead(ausloeser) z.B. 2sec HIGH sein u

Mit der Funktion PulseIN kannst du die Zeit messen wie lange ein HIGH anliegt. Evtl hilft dir das ein Flattern des Eigangs zu verhindern.
2 Sekunden als LOWpass? Ist das nicht sehr lange? Bleibt dein ungebetener BEsuch so lange in der Schranke stehen damit die auslöst? Sehr unwahrscheinlich.
Nachbars Katze sollte auch drunter durchlaufen können, ohne Alarm auszulösen.
Du solltest dir hier Gedanken über die Harware machen. Evtl eine 2. SChranke 30cm höher..UND verknüpft zB. Bin nicht so der Alarmexperte. Aber es wäre ein Ansatz.

Daumen drück... Ralf
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Interrupt-Programmierung für Lichtschranke Cray-1 3 2.673 05.12.2013 11:17
Letzter Beitrag: Cray-1

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste