E-Feld-Bewegungsmelder mit Tiny13
von B. Kainka

Die Aufgabe: Eine Lampe soll bei Annäherung einer Person für 10 Sekunden eingeschaltet werden. Die Zeit verlängert sich entsprechend, wenn die Bewegung in der Nähe des Sensors anhält.
Ganzen Artikel lesen...
Hier wird die E-Feld-Messung mit einem Feldsensor am offenen AD-Eingang verwendet (siehe E-Feld-Plotter mit Tiny13). Das Programm misst laufend die Spannung an AD2 (Pin PB4) in einem Intervall von 41 ms. Da so die doppelte Periode der 50-Hz-Netzspannung gerade leicht verfehlt wird, erscheint ein Störsignal deutlich in der Messung. Seine Spitzenwerte werden in Mini und Maxi erfasst. In der eigentlichen Sensorschleife wird überwacht, ob ein Messwert um mehr als 20 außerhalb dieser Spitzenwerte liegt. In diesem Fall wird ein Timer auf 10 Sekunden gesetzt und die LED an PB3 eingeschaltet. Die Methode erlaubt eine Nachtriggerung. Wenn also innerhalb der laufenden Einschaltzeit erneut ein Grenzwert überschritten wird, wird der Timer auf 10 Sekunden zurückgesetzt. Bei Bedarf lässt sich die Zeit leicht auf einige Minuten verlängern.
'E-Feld-Bewegungsmelder
'Einschaltzeit

10

s
$regfile

=

"attiny13.dat"
$crystal

=

1200000
Baud

=

9600
Dim

D

As

Integer
Dim

N

As

Byte
Dim

Mini

As

Byte
Dim

Maxi

As

Byte
Dim

T

As

Integer
'Baud

=

9600
Config

Adc

=

Single

,

Prescaler

=

Auto
Start

Adc
'Open

"comb.1:9600,8,n,1,INVERTED"

For

Output

As

#1
Ddrb.3

=

1
'Einschwingen
For

N

=

1

To

250

D

=

Getadc(2)

D

=

D

/

4

Waitms

41
Next

N
'Spitzenwerte

50

Hz
Mini

=

255
Maxi

=

0
For

N

=

1

To

50

D

=

Getadc(2)

D

=

D

/

4

Waitms

41

If

D

>

Maxi

Then

Maxi

=

D

If

D

< Mini

Then

Mini

=

D
Next

N
Maxi

=

Maxi

+

20
Mini

=

Mini

-

20
Do

Waitms

41

D

=

Getadc(2)

D

=

D

/

4

'Triggern

10

Sekunden

AN

If

D

>

Maxi

Then

T

=

250

If

D

< Mini

Then

T

=

250

'AN-Zeit

läuft

ab

T

=

T

-

1

If

T

< 0

Then

T

=

0

If

T

>

0

Then

Portb.3

=

1

If

T

=

0

Then

Portb.3

=

0
Loop
End
Download: MelderTiny13
Siehe auch: Elektrostatischer Bewegungsmelder mit drei Transistoren
Literatur: Lernpaket Mikrocontroller

Lernen Sie die ganze Vielfalt vom Franzis Buch- und Softwareverlag kennen