Hi,
ich habe in meinem Flur einen selbstgebauten LED Spiegel mit Bewegungsmelder. War sündhaft teuer.
Mein Problem ist, seit dem ich meinen Wlan Router und mein Telefon im Flur habe, schaltet sich der Spiegel schonmal öfters kurz ein.

Die Zeitschaltung funktioniert mit einem Schmitt Trigger und nem Kondensator. Der Bewegungsmelder hat einen 5 V TTl Ausgang.

Jetzt soll er wieder richtig funktionieren und bekommt einen Microcontroller.

Ich möchte das er bei Bewegungserkennung 3- 5 Minuten einschaltet und danach aus. Werden in einer bestimmten Zeit zu viele Bewegungen registriert, soll er für ca 20 Minuten ausgeschaltet bleiben.

Irgendwie finde ich nicht den richtigen Ansatz.
Hier mal mein Programm. Ich bin sicher es gibt eine ganz einfache Lösung.

Wie
Wenn in 5 Minuten 20 x einschalten kommt, dann für 20 Minuten aus.

Ich danke euch.
Code:
$regfile = "attiny13.dat"
$crystal = 1000000

Ddrb = &B11101111                                           'Pin PB4 Eingang Rest Ausgang

Dim Stufe1 As Byte
Dim Zaehler As Word
Dim Tilt As Word
Declare Sub Unterprogramm
Config Adc = Single , Prescaler = Auto
Start Adc

                                               'schalte den Timer1 ein
Config Timer0 = Timer , Prescale = 256                      'timer 1 0 bis 65535  Zählen Taktfrequenz durch 256 =1000000/256=3906,25 Hz
Enable Timer0                                               ' 65536 - 3906 = 61630
On Timer0 Isr_von_timer1                                    'verzweige bei Timer1 überlauf zu   Isr_von_Timer0
Enable Interrupts
Timer0 = 0                                                  'Leider Nur 8 Bit Timer Bis 255 Ca 15 X Interrupt = 1 Sekunde       '61630





Do


   If Stufe1 = 2000000 And Portb.4 = 1 Then                 'nach 2000000 bewegungsmeldungen/Programmdurchläufen und eingang eingeschaltet Ausgang aus
   Portb.3 = 0
   Stufe1 = 0
   Zaehler = 61                                             'Zähler auf 61 Setzen um Auszeit zu zählen
   End If
If Portb.4 = 1 Then                                         'wenn Eingang auf 1 Pin B4 auf 1
   Portb.3 = 1
   Stufe1 = Stufe1 + 1                                       'Einschalthäufigkeit zählen
   Gosub Unterprogramm
   End If

Loop


Sub Unterprogramm

If Zaehler = 900 Then                                       ' nach 60 sekunden ausschalten
   Portb.3 = 0
   Zaehler = 0
   End If



If Zaehler = 4500 Then                                      'nach 5 Minuten ausgeschaltet auch wenn eine Bewegung erfasst wird
   Zaehler = 0                                              'wieder in den normalen Modus
   End If







End Sub




End

Isr_von_timer1:                                             'ISR von Timer1
Timer0 = 0
Zaehler = Zaehler + 1

Return