Titelbild zum Artikel Lichtschranke

Lichtschranke mit PicAxe 08M2

Allgemeines

Im folgenden Beispiel wird beschrieben, wie eine Lichtschranke an einer PicAxe 08M2 angeschlossen und betrieben werden kann. Beim Ansprechen der Lichtschranke (Lichtschranke wurde unterbrochen) wird der Sender einer handelsüblichen Funkklingel eingeschaltet. Dieser sendet nun ein Funksignal an den Empfänger der Klingel, welcher dann ein akustisches Signal ertönen lässt. Selbstverständlich kann beim Ansprechen der Lichtschranke auch ein Relais o.ä. geschaltet werden.

Funktionsweise

Der Sender gibt alle 50 ms die Bitfolge 01101101 über die IR-LED SFH4550 aus. Der Empfänger prüft in einer Endlosschleife ob die o.g. Bitfolge vom IR-Receiver TSOP 31238 empfangen wurde. Wird diese Bitfolge NICHT innerhalb von 200 ms empfangen, kann man davon ausgehen, dass die Lichtschranke unterbrochen wurde. Bei einer unterbrochenen Lichtschranke wird die Funkklingel kurz eingeschaltet, d.h. es wird ein betätigen der Funkklingel simuliert. Anschließend wird die Endlosschleife wieder fortgesetzt.
Die LEDs 3 und 4 dienen der Statusanzeige der Lichtschranke und erfüllen sonst keinen bestimmten Zweck. LED3 wird eingeschaltet, wenn ein IR-Signal empfangen wurde (Lichtschranke ist nicht unterbrochen) und wird ausgeschaltet wenn kein Signal empfangen wurde (Lichtschranke ist unterbrochen). LED4 wird eingeschaltet, wenn zwar ein IR-Signal empfangen wurde, dieses aber nicht der Bitfolge 01101101 entspricht.

Schaltpläne und Listings

Sender

Schaltplan Sender
Schaltplan Sender

; Programm für den Sender
; **********************
main:
irout C.1,1,%01101101
pause 50
goto main

Empfänger

Schaltplan Empfänger
Schaltplan Empfänger
; Programm für den Empfänger
; *************************
symbol IR_COMMAND     = b0

main:

IR_COMMAND = 0
irin [200, ring],c.3, IR_COMMAND
; LED_IRIN einschalten
high c.2
if IR_COMMAND = %01101101 then
   ; LED IRIN_Error ausschalten
   low c.4
else
   ; LED IRIN_Error einschalten
   high c.4
end if
goto main

ring:
    ; LED_IRIN ausschalten
    low c.2
    ; Klingel einschalten
    high C.1
    pause 2000
    ; Klingel ausschalten
    low C.1
goto main