- LiFePO4 Speicher Test         
Ergebnis 1 bis 2 von 2

Thema: Raumüberwachungsanlage

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    04.10.2008
    Beiträge
    234

    Raumüberwachungsanlage

    Hallo,
    da ich mein Projekt "einfaches Codeschloss" eine zeitlang nicht mehr weiterführen konnte und es dadurch ein wenig in Vergessenheit geraten ist, starte ich ein neues, in das ich es miteinbinde.

    Meine Idee:
    Ein Bedienterminal an das mehrere Sensoren angschlossen werden:
    -Tür Öffnungsmelder
    -Fenster Öffnungsmelder
    -Temperatur Innen/Aussen

    Hätte jmd. eine Idee für weitere sinvolle Sensoren?

    Wenn aktiviert melden die Öffnungsmelder Alarm sobald die Tür/Fenster geöffnet wird. Dies aktiviert einen Piezosummer und eine rote LED am Bedienpanel. Wenn nicht zurückgesetzt dauert der Alarm ca. 5 Minuten an. Danach blinkt die rote LED immer noch weiter bis zum zurücksetzen.

    Die Öffnungsmelder können auch von aussen über das Codeschloss aktiviert bzw deaktiviert werden.
    Eine Türverriegelung ist bis jetzt noch nicht geplant.

    Da dies mein erstes "richtiges" Projekt in Bascom ist habe ich noch einige Probleme.
    Undzwar habe ich folgenden Code versucht:


    "Sensor" aktivert den Alarm.
    "Halt" deaktiviert ihn.

    Meine Probleme sind folgende:
    Wenn ich das Board anschalte schaltet er den Alarm für einen 10er Intervall an.
    Nach einem Reset auch.
    Allerdings ist mir aufgefallen das wenn ich den Resettaster betätige mein Board anscheinen keinen Strom mehr bekommt da die StatusLED erlischt.
    Habe den Taster von PortB.3 nach GND gezogen, was bei dem andren ja auch funktioniert.
    Code:
    $regfile = "m8def.dat"
     $crystal = 4000000
    
     Config Lcd = 16 * 2
     Config Lcdpin = Pin , Db4 = Portd.0 , Db5 = Portd.1 , Db6 = Portd.2 , Db7 = Portd.3 , E = Portd.5 , Rs = Portd.4
     Config Lcdbus = 4
    
     Cls
     Locate 1 , 4
     Lcd "***Test***"
    
    
    
     Config Portc.0 = Output
     Config Pinb.0 = Input
     Sensor Alias Pinb.0
     Portb.0 = 1
     Config Pinb.3 = Input
     Halt Alias Pinb.3
     Portb.3 = 1
    
    
     Dim A As Word
     A = 0
    
    
    
     Alarm:
          Do
          A = A + 1
          Sound Portc.0 , 200 , 80
          Waitms 30 .
          Sound Portc.0 , 200 , 110
          Waitms 30
          If Halt = 0 Then
          Return
          End If
          Loop Until A = 10
    
    
    
    
    
      do
         If Sensor = 0 Then
           Gosub Alarm
         else
           Portc.0 = 0
         endif
         Waitms 100
      Loop

  2. #2
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    04.10.2008
    Beiträge
    234
    So, habe ein wenig rumprobiert und nun das ganze Programm umgeschrieben.
    Funktioniert soweit gut, habe nur noch ein Problem. Die Übersicht wiederholt sich nicht. Die Anzeige bleibt also bei "Aussentmp...." hängen. Wie kann ich das ändern? Habe schon ein wenig rumprobiert aber wenn ich es in deine Do-Loop Schleife setze kann der Alarm nichtmehr auslösen.

    Kann jemand helfen? Weiß grade echt nicht weiter, bin was Programmierung angeht echt noch Anfänger.

    Code:
    $regfile = "m8def.dat"
     $crystal = 4000000
    
     Config Lcd = 16 * 2
     Config Lcdpin = Pin , Db4 = Portd.0 , Db5 = Portd.1 , Db6 = Portd.2 , Db7 = Portd.3 , E = Portd.5 , Rs = Portd.4
     Config Lcdbus = 4
     Initlcd
     Cursor Off
    
    
    
     Config Portc.0 = Output                                    'Ausgang für Piezo Summer definiert
     Config Pinb.0 = Input                                      'Eingang für Öffnungsmelder definiert
     Sensor Alias Pinb.0                                        'Eingang für Resettaster definiert
     Portb.0 = 1
     Config Pinb.1 = Input
     Taster Alias Pinb.1
     Portb.1 = 1
    
    Dim A As Byte                                               'Zählervariable "A" definiert                                            '
    A = 0
    
     Do
    
    
    
    
      If Sensor = 0 Then                                        'IF-Abfrage Sensor:
     A = A + 1                                                  'Zählervariable + 1
     Else
     A = A + 0
     End If
    
     If A > 0 Then                                              'Wenn A=1 oder höher ist
    
       Sound Portc.0 , 200 , 80                                 'Alarm geben
       Waitms 30 .
       Sound Portc.0 , 200 , 110
       Waitms 30
    
       Cls                                                      'Und auf dem Display Warnmeldung anzeigen
       Locate 1 , 2
       Lcd "***Achtung!***"
       Locate 2 , 1
       Lcd "Tuer geoeffnet"
    
     Else
    
     Portc.0 = 0
     End If
    
    
    
     If Taster = 0 Then                                         'IF-Abrfrage Reset:
       A = 0                                                    'Variable "A" zurücksetzen
    
       Cls                                                      'Und die Übersicht anzeigen
       Locate 1 , 1
       Lcd "***Uebersicht***"
       Locate 2 , 1
       Lcd "Tür: geschlossen"
    
       Wait 1
    
       Cls
       Locate 1 , 1
       Lcd "***Uebersicht***"
       Locate 2 , 1
       Lcd "InnenTmp: 19,5C"
    
       Wait 1
    
       Cls
       Locate 1 , 1
       Lcd "***Uebersicht***"
       Locate 2 , 1
       Lcd "AussenTmp: 4,5C"
    
       Wait 1
    
     Else
    
       A = A
    
     End If
    
    
    
     Loop
    LG Fabian

    Edit:
    Ich merke gerade das der Alarm nur auslösen kann wenn die Anzeige bereits bei Aussentmp. hängt.

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Labornetzteil AliExpress