Anfänger bittet um Hilfe

Hallo zusammen,

ich versuche mich gerade an einer Einparkampel für unsere Garage mit Hilfe eines Arduino Uno.
Als Hardware nutze ich:

1x Arduino Uno
1x PIR-Sensor
1x Ultraschallsensor HC-SR04
4x Relay 5V 1 Kanal Arduino Low Power PNP SRD-05VDC

Die Pins des Uno sind wie folgt belegt:

Pin 3 - Control-LED für Beleuchtung
Pin 4 - Relais für Beleuchtung

Pin 5 - Control-LED für grüne Ampel
Pin 6 - Control-LED für gelbe Ampel
Pin 7 - Control-LED für rote Ampel

Pin 8 - Relais für grüne Ampel
Pin 9 - Relais für gelbe Ampel
Pin 10 - Relais für rote Ampel

Pin 11 - Signal-PIR Sensor

Pin 12 - Trigger Pin Ultraschallsensor
Pin 13 - Echo Pin Ultraschallsensor

Grundlegend soll bei erkannter Bewegung die Ampelroutine gestartet werden und gleichzeitig im Hintergrund für eine bestimmte Zeit das Licht eingeschaltet werden.

Im anhägenden Sketch, welcher aus im Netz zu findenden Sketchen zusammengesetzt ist, funktioniert das insoweit schon ganz gut, dass die Entfernung gemessen wird und entsprechend der Abstände die entsprechenden Farben aufleuchten.
Lästig ist jedoch die Lichtthematik.
Da der PIR nach kurzer Zeit immermal wieder abfällt würde das Licht immer mal zwischendurch kurz ausgehen.

Hat von Euch eventuell jemand eine Idee, wie ich das lösen könnte?
Ich hatte mich schon versucht mit Interupts zu beschäftigen, aber diese Thematik ist in meinem Stadium noch etwas zu fortgeschritten für ein "Learning by Doing"

Danke & Gruss
Silvio

Parkampel.ino (7.96 KB)

Ohne Deinen Sketch anzuschauen würde ich das Licht für einen gewisse Dauer einschalten und bei einen wiederholten PIR-Signal die Zeit von vorne starten.
Die Abschaltverzögerung machst Du am besten mit millis(): siehe "wait witout delay" in den Beispielen der IDE.
Grüße Uwe

Pins 8-10 haben dieselbe Funktion wie 5-7 , was ist der Sinn ?
Gilt auch für ledPinLamp1 und ledPinLampControl.

Du kannst bestimmt die Kontroll-LED parallel zum Relais-Modul ansteuern ( 10 mA für die LED, 10mA für den Relais-Ansteuerungstransistor. ( Oder die Kontroll-LED auf der Ausgangsseite des Relais anschliessen )
Aber da du genug Pins hast, warum nicht so...

Lästig ist jedoch die Lichtthematik.
Da der PIR nach kurzer Zeit immermal wieder abfällt würde das Licht immer mal zwischendurch kurz ausgehen.

Ich vermute, du hast in der Garage, zusätzlich zur Einparkhilfe mit Ampel, eine Beleuchtung und einen Bewegungsmelder.
Erkennt der PIR-Sensor das ein/aus-parkende Auto nicht ?
Warum koppelst du die Beleuchtung direkt an den PIR-Pin, wenn du einen Arduino für "größere Intelligenz" hast ?
Ist allerdings die Frage, was du genau willst.
Z.B.
Wenn gar keine LED an ist, (> 2m) : Beleuchtung ganz aus oder nur PIR - Zeit.
Wenn Endposition nicht erreicht ist (grün/gelb), Beleuchtung an, unabhängig von PIR ( oder maximale Extra-Zeit )
Sonst (rot=Parkpos.erreicht) eine Zeit, die üblicherweise reicht, das Auto zu verlassen, bis der PIR den Fahrer erkennt.

Die Abschaltverzögerung machst Du am besten mit millis()

So wie du es schon in "deinem" Sketch für die Parkhilfe drin hast ...

P.S. Interrupts brauchst du nicht.

Die bei mir in verbauten PIRs wollen sämtlichst externe Pullup-Widerstände bekommen, sonst melden sie Unsinn...
Wenn es dich interessiert könnte ich meinen Sketch hochladen - vll findest du da etwas was dich weiterbring...??
Ich habe hochgezählt statt millis zu verwenden...bin halt selbst nur Anfänger...