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