Elektor
1/99
Der Einsatz
einer Alarm-
anlage ist
nicht mehr
länger eine
Pflicht oder
gar ein Privi-
leg der Rei-
chen. In die-
sem Artikel
zeigen wir,
daß eine
Alarmanlage
sehr kom-
pakt und
dennoch
äußerst wirkungsvoll
sein kann. Die wich-
tigsten Parameter der
Alarmanlage werden
mit dem PC program-
miert.
24
Entwurf von Han Sommen
PIC-Alarm
Einbruchsicherung
mit PC-Anschluß
Eigenschaften
Mikrocontroller
PIC16F84
Übertragungsrate PC
19200 Baud
Eingänge
direkt und verzögert
Einschaltverzögerung
einstellbar 1...99 s
Kontaktart
Ruhekontakt
Ausgänge
Relais für Sirene/Blinklicht
Telefonwählgerät
Anzeige
Summer
Alarmzeit
einstellbar 1...255 s
Alarm-“scharf
”-Indikator
Hilfsversorgung über Akku
Aktivierung über Schlüsselschalter
HAUS & HOF
PIC-Mikrocontroller und Hausalarm-
anlagen sind Projekte, die in Elektor
recht oft auftauchen. Bei diesem Pro-
jekt, einer programmierbaren Haus-
alarmanlage, sind diese all time favori-
tes miteinander kombiniert. Der PIC-
Controller übernimmt hier die
Aufgabe, die verschiedenen Kontakte
(Alarmgeber) logisch zu verbinden
und die Signalgeber anzusteuert.
Außerdem kümmert sich der Control-
ler auch um die Kommunikation mit
einem (optionalen) PC. Über eine
RS232-Verbindung und einem Stan-
dard-Terminalprogramm können die
wichtigsten Parameter der Alarm-
anlage (darunter die Alarmzeit) einge-
stellt werden.
Die Hausalarmanlage läßt sich mit
einem Telefonwählgerät kombinieren,
das eine “stille” Alarmmeldung erlaubt.
Die hierfür notwendige Hardware fällt
aus dem Rahmen dieses Artikels, bleibt
aber für ein zukünftiges Projekt in
Elektor vorgemerkt. Es kann aber auch
ein kommerzieller Nummerngeber
direkt an dem dafür reservierten
potentialfreien Ausgang angeschlossen
werden. Im Alarmfall leitet der Aus-
gangstransistor für eine Sekunde, aus-
reichend, um einen solchen Num-
merngeber zu aktivieren.
G
E P L A N T E R
A
L A R M
Der Aufbau der Schaltung ist in Bild 1
zu sehen. Die Anschlüsse für die ver-
schiedenen Signalgeber sind einfach
und universell verwendbar ausgeführt.
Die Kontakte müssen einen Ruhekon-
takt aufweisen und die an K3, K6...K8
angeschlossenen Puffer (IC3a...d) auf
Low ziehen. Ein Pull-up-Widerstand
und ein Kondensator
von 470 nF sorgen an
jedem Eingang für eine
angemessene Ent-
störung. Der Anschluß
des Hauptschalters K3
verfügt außerdem über eine LED als
Indikator, ob die Alarmanlage scharf
geschaltet ist. Es liegt auf der Hand, an
diesem Eingang einen Schlüsselschal-
ter anzuschließen.
Der Signalgeber an K8 wird mit einer
einstellbaren Verzögerung von bei-
spielsweise 20 Sekunden ausgewertet.
Der Summer der Alarmschaltung wird
aktiv, wenn ein an K8 angeschlossener
Kontakt innerhalb der Verzögerungs-
zeit nach dem Einschalten des Alarms
geöffnet wird. Der Anwender hat
dann den Rest der Verzögerungszeit
Zeit, das Gebäude durch die Tür zu
verlassen. Das bedeutet, daß die Haus-
oder Wohnungseingangstür mit einem
verzögerten Kontakt ausgestattet wer-
den muß. Beim Betreten des Gebäudes
ist die Verzögerungszeit nötig, um die
alarmierte Anlage zu deaktivieren. In
diesem Fall schweigt der Summer, um
einem potentiellen Einbrecher nicht zu
verraten, wo die
Alarmanlage instal-
liert ist.
Die Alarmgeber, die an K7 angeschlos-
sen sind, lösen einen unmittelbaren
Alarm aus. Alle Kontakte müssen in
Reihe geschaltet sein.
Die letzte Anschlußmöglichkeit ist für
einen Sabotagekontakt vorgesehen.
Damit ist das Gehäuse der Alarm-
anlage selbst gesichert. Öffnet jemand
das Gehäuse, während die Alarm-
anlage scharf ist, so geschieht dies
nicht unbemerkt, sondern löst eben-
falls einen Alarm aus.
Der Signalgeber, zum Beispiel eine
Sirene, wird über das Relais Re1
geschaltet. Re1 bleibt im Alarmfall für
eine bestimmte (programmierbare)
Zeit aktiv. Voreingestellt ist eine Zeit
von 180 s, über den PC kann die
Alarmzeit zwischen 1 s und 255 s vari-
iert werden. Im Falle eines Alarms
leuchtet die LED D8 auch dann noch,
wenn der Alarm schon abgeschaltet ist.
So kann man schon beim Betreten der
Wohnung/des Hauses erkennen, daß
etwas passiert ist. Mit dem Reset-Taster
S1 setzt man die Alarmanlage in den
Urzustand zurück, so daß auch D8
wieder verlischt.
Die serielle Kommunikation mit dem
PC verläuft über den 9poligen Sub-D-
Verbinder K5. Auf der Platine sind alle
relevanten Handshake-Signale mitein-
ander verbunden, so daß man ein
Standard-RS232-Kabel verwenden
kann. Widerstand R2 und die Dioden
D3 und D4 setzen die RS232- auf TTL-
Pegel um.
Was noch fehlt, ist der Anschluß eines
Netzteils und eines Bleigelakkus. Das
Netzteil muß etwa 13 V liefern und
wird an Verbinder K1, der 12-V-Bleigel-
akku an K2 angeschlossen werden.
Über Widerstand R3 wird der Akku
kontinuierlich nachgeladen, solange
Netzspannung vorhanden ist. Die
Kontakte arbeiten genau wie das Relais
mit ungeregelten 12 V, die Elektronik
selbst mit durch den Festspannungs-
regler stabilisierten 5 V.
25
Elektor
1/99
PIC16C84
OSC2
IC2
OSC1
MCLR
RA4
RA1
RA0
RA2
RA3
RB0
RB1
RB2
RB3
RB4
RB5
RB6
RB7
17
18
13
12
11
10
16
15
14
1
3
9
8
7
6
2
4
5
C5
100n
X1
8MHz
C7
22p
C6
22p
K5
1
2
3
4
5
6
7
8
9
R2
1k
D3
BAT85
D4
BAT85
13
12
1
IC3f
R1
1k
R3
1k
D7
ON/OFF
C8
470n
K3
3
4
1
IC3b
R9
12k
C10
470n
K7
R10
100k
IMMEDIATE
1
2
1
IC3a
R11
12k
C11
470n
K8
R12
100k
DELAYED
T3
BC547
RE1
D5
1N4148
K9
R13
10k
T2
BC547
R5
10k
R6
47
Ω
BZ1
T1
BC547
R4
10k
K4
DIALER
5
6
1
IC3c
R7
12k
C9
470n
K6
R8
100k
TAMPER
K1
K2
D1
1N4001
D2
1N4001
C4
100
µ
63V
C3
10
µ
63V
C1
100n
C2
100n
7805
IC1
IC3
14
7
5V
5V
5V
IC3 = 4069
12V
12V
5V
5V
12V
12V
12V
5V
980091 - 11
D8
R14
1k
R15
10k
S1
9
8
1
IC3d
11
10
1
IC3e
5V
Bt1
1
Bild 1. Ein PIC-Prozes-
sor in der Schaltung
erspart das Bauteilgrab!
26
Elektor
1/99
980091-1
(C) ELEKTOR
C1
C2
C3
C4
C5
C6
C7
C8
C9
C10
C11
D1
D2
D3
D4
D5
D7
D8
IC1
IC2
IC3
K1
K2
K3
K4
K5
K6
K7
K8
K9
R1
R2
R3
R4
R5
R6
R7
R8
R9
R10
R11
R12
R13
R14
R15
RE1
S1
T1
T2
T3
X1
DELAY
IMM
TAMPER
ON/OFF
DIAL
0
+
-
+
BT1
+
-
BZ1
980091-1
RS232on_off = OFF
On_off = OFF
Dial = OFF
Dial = OFF
Is
loopcnt
> 250
?
Loopcnt +1
Wait 1 sec
Siren = OFF
Repeat = 180
Alarmbit = ON
Siren = ON
Dial = ON
Repeat = 1
Siren = OFF
Repeat -1
Dial = ON
Repeat -1
Bit on_off = OFF
Alarmbit = OFF
Siren = OFF
Del_rep2 = 20
Del_rep = 20
Del_rep -1
Beep 1 second
Bit on_off = OFF
Bit on_off = OFF
Loopcnt = 0
Alarmbit = OFF
Del_rep2 -1
Bit on_off = OFF
Loopcnt = 0
Del_rep2 = 20
Del_rep = 20
Repeat = 180
START
Is
contact
ON
?
Is
RS232on_off
ON
?
Is
alarmbit
ON
?
Is
tamper
ON
?
Is
loopcnt
< 21
?
Is
repeat
0
?
Is
repeat
10
?
Is
del_rep2
0
?
Is
group1
ON
?
Is
group2
ON
?
Is
del_rep
0
?
Is
bit on_off
ON
?
Loopcnt = 249
Bit on_off = ON
Y
N
Y
N
Y
N
Y
N
Y
N
Y
N
Y
N
Y
N
Y
N
Y
N
980091 - 12
Y
N
Y
N
Y
N
Stückliste
Widerstände
R1...R3,R14 = 1 k
R4,R5,R13,R15 = 10 k
R6 = 47
Ω
R7,R9,R11 = 12 k
R8,R10,R12 = 100 k
Kondensatoren
C1,C2,C5 = 100 n
C3 = 10
µ/63 V stehend
C4 = 100
µ/63 V stehend
C6,C7 = 22 p
C8...C11 = 470 n
Halbleiter
D1,D2 = 1N4001
D3,D4 = BAT85
D5 = 1N4148
D6,D7 = LED, high. eff., rot
3
2
Bild 2. Platinenlayout und Bestückungs-
plan der Platine der Alarmanlage.
Bild 3. Das Flußdia-
gramm zeigt den Auf-
bau des PIC-Pro-
gramms. Der Quell-
kode ist auf Diskette
lieferbar.
Der Bleigelakku sollte ausreichend
dimensioniert sein, um die Schaltung
(das ist das mindeste) sowie den Signal-
geber (Sirene und/oder Rundumlicht)
sowie ein Telefonwählgerät über einen
längeren Zeitraum zu versorgen. Nur
so ist sichergestellt, daß auch bei einem
(beabsichtigten oder versehentlichen)
Abschalten der Netzspannung die
Alarmanlage weiterhin funktioniert.
Der Aufbau der Schaltung ist dank des
Platinenlayouts in Bild 2 kein Problem.
Die leere Platine, deren Bestückungs-
plan ebenfalls abgedruckt ist, kann
genau wie der Sourcekode auf Diskette
und einen fertig programmierten PIC
im EPS bestellt werden.
H
E A R T O F
S
I L I C O N E
Mikrocontroller sorgen dafür, daß eine
Schaltung trotz vieler Funktionen in
einem kompakten Gehäuse unterge-
bracht werden kann. Der hier einge-
setzte PIC-Prozessor macht da keine
Ausnahme. Er arbeitet bei einer Takt-
frequenz von 8 MHz.
Die Software des PICs, deren logischer
Aufbau im Flußdiagramm (Bild 3) dar-
gestellt ist, besteht im wesentlichen aus
einer großen Schleife, die sich im Sekun-
dentakt wiederholt. Dabei werden sukk-
zessive die Status der Eingänge und ein-
zelner Bits abgefragt. Je nach Lage der
Dinge bestimmt der Controller schließ-
lich, ob das Alarmsignal freigegeben
wird oder nicht. Da der Kode in seiner
Struktur ziemlich einfach ist, kann man
auch dann Programm-Modifikationen
mit neuen oder geänderten Features
vornehmen, wenn man sich nicht
gerade als Programmierprofi sieht.
Die serielle Kommunikation zwischen
PC und Alarmschaltung ist nur im
Standby-Modus möglich, wenn der
Kontakt an K3 (also der Schlüsselschal-
ter) geöffnet ist. Das Terminal (zum
Beispiel HyperTerminal) wird auf
19200 Baud, gerade Parität, acht Daten-
, ein Stoppbit, kein Protokoll einge-
stellt. Bei manchen Terminalprogram-
men muß man Local echo on wählen.
Nach dem Ein/Ausschalten der Alarm-
anlage sind sämtliche vorgegebenen
Parameter gültig. Bild 4 schließlich
zeigt einen Screendump des Hyper-
Terminals mit der Parametereingabe.
(980091)rg
27
Elektor
1/99
980091-1
(C) ELEKTOR
T1...T3 = BC547
IC1 = PIC 16F84 (EPS 986519-1)
IC2 = 7805
IC3 = 4069
Außerdem
K1...K4,K6...K9 = 2polige Platinenan-
schlußklemme
K5 = 9poliger Sub-D-Verbinder,
female, gewinkelt, für Platinenmon-
tage
Bz1 = Piezosummer 5 VDC
X1 = Quarz 8 MHz
S1 = Drucktaster 1
⋅an
Re1 = 12-V-Relais, 1
⋅um (Siemens
V23057-B1-A2)
Platine: EPS 980091-1
Progr. PIC: EPS 986519-1
Diskette mit Quellkode: EPS 986028-1
Kombipaket (Platine, PIC und Disk):
EPS 986519-C
Bild 4. Über ein Terminalprogramm wie HyperTerminal ist
die Alarmanlage leicht zu programmieren.