Grundlagen

PIRs (Passiv-Infrarot-Sensoren) reagieren auf Temperaturänderungen im Infrarotbereich, die z.B. durch Bewegung von Menschen oder Tieren (leider auch manchmal durch Wind usw.) im Erfassungsbereich der Sensoren erfaßt werden.

Allgemeine Informationen: Wiki Bewegungsmelder.

Der Zilog ePIR-Sensor

Übersicht

Der ePIR (Passiv Infrarot)-Sensor von Zilog ist ein preiswerter und vergleichsweise einfach zu nutzender, dennoch sehr leistungsfähiger Sensor. Die kleine Platine besteht aus einem Single-Board-Computer, dem eigentlicher Sensor mit Fresnel-Linse und ist im Rasterabstand für Steckbretter (Breadboards) ausgeführt.

In Verbindung mit einem Mikroprozessor wie dem Arduino werden so gut wie keine weiteren externen Komponenten benötigt, die Anwendungsmöglichkeiten hingegen übertreffen die von Standard-PIR-Sensoren bei weitem.

Technische Daten

  • Erfassungsbereich bis zu 5 x5 Meter (Erkennungswinkel 60 Grad)
  • SBC (Single Board Computer) Fresnel-Linse]
  • Gute Erkennungssoftware
  • Geringe Größe(25,5 x 16,7 mm)
  • Konfiguration per Hardware oder serielle Schnittstelle
  • Empfindlichkeit und Verzögerung einstellbar
  • Stromsparender Schlafmodus (2,3 mA gegenüber 8,9 mA "wach")
  • Keine Temperatur-Kompensation nötig
  • Anschluß für Fotozelle (Umgebungslicht).

Ein ausführliches Datenblatt (englisch): Sparkfun ePIR.

Pin-Belegung des ePIR (Quelle: o.a. Datenblatt):

ePIR-Pinbelegung

Der ePIR läßt sich in zwei unterschiedlichen Modi betreiben: Hardwaregesteuert oder über die serielle Schnittstelle. Standardmäßig arbeitet der ePIR im Hardware-Modus, mit dem wir uns also erst einmal beschäftigen. Der Serial Interface Modus bietet eine Reihe von erweiterten Funktionen wie z.B. Richtungserkennung usw.

Beispiel 1 (Hardware-Beschaltung)

In diesem Beispiel begnügen wir uns mit der einfacheren Hardware-Variante und belegen die PINs wie folgt:

  1. GND (vom Arduino)
  2. VDD (3,3 Volt vom Arduino)
  3. RXD/DLY (nicht beschaltet = Verzögerung 2 Sekunden)
  4. TXD/SNS (nicht beschaltet = höchste Empfindlichkeit)
  5. MD/RST (Arduino digital Pin 2 über 10K Pullup-Widerstand. Schaltet auf LOW, wenn Bewegung erkannt wird)
  6. LG (3,3 Volt vom Arduino, kein Fotowiderstand für Umgebungslicht)
  7. SLP (nicht beschaltet = kein "Schlafmodus")
  8. GND (vom Arduino).

Achtung: Für den ePIR unbedingt den 3,3 Volt-Ausgang benutzen bzw. einen entsprechenden Vorwiderstand einsetzen.

Schematische Darstellung

Hier erst einmal ein Standardaufbau:

Image

Code:

/* Arduino mit Zilog ePir(Passiv-Infrarot-Sender)
   Hardware-Ansteuerung

   copyleft by fribbe@macherzin.net 2012-10-26
   unter Lizenz
   http://creativecommons.org/licenses/by-nc-sa/3.0/de/

*/

int ledPin = 13; //LED liegt an digital Pin 13
int sensorPin = 7; //Sensor liegt an digital Pin 7
int bewegung = 0; //Bewegung wird erst einmal mit 0 initalisiert

void setup()
{
   pinMode(ledPin, OUTPUT); //Pin D13 als Ausgang
   pinMode(sensorPin, INPUT); // Pin D7 als Eingang
}

void loop() // und immer wieder
{
   bewegung = digitalRead(sensorPin); //Sensordaten lesen
    
   if (bewegung == LOW) //LOW = Bewegung, HIGH = keine Bewegung
   {
      digitalWrite(ledPin, HIGH); //LED an
   }
   else
   {
      digitalWrite(ledPin, LOW); //LED aus
   }
}
   
//wir haben fertig

Natürlich können wir an Stelle der LED auch z.B. einen Piezo-Summer oder anderen Signalgeber ansschließen, sofern dieser nicht mehr als 20 mA zieht und für eine Spannung von 5 Volt ausgelegt ist.

Ergänzungen im Hardware-Modus

In diesem Beispiel haben wir nicht alle Möglichkeiten des Hardware-Modus genutzt. Werfen wir also einen Blick auf die bisher nicht genutzten Pins:

Dauer der "Alarmauslösung" im Hardware-Modus (Pin 3/DLY)

Ohne externe Beschaltung bleibt MD (Bewegung erkannt/Pin 5) nach erkannter Bewegung für 2 Sekunden aktiv. Durch Beschaltung des Pins 3 mit einem Festwiderstand bzw. durch ein Potentiometer läßt sich dieser Wert nach oben hin verändern.

Einige Beispielswerte:

VerzögerungV an DLYVerzögerungV an DLYVerzögerungV an DLY
5 sec0,210 sec 0,4 30 sec0,5
1 min 0,82 min1,0 3 min 1,2
5 min 1,4 10 min1,6 15 1,8

Umgebungslicht-Erkennung im Hardware-Modus (Pin 6/LG)

Das an diesem Eingang anliegende Signal deaktiviert - entsprechendes Umgebungslicht vorausgesetzt - die Bewegungserkennung. Ein klassisches Anwendungsbeispiel: Bei ausreichendem Tageslicht wird eine Lampe trotz Bewegung nicht eingeschaltet. Hierzu eignet sich jeder handelsübliche lichtempfindliche Widerstand. Als zweiten Widerstand im Spannungsteiler empfiehlt sich ein Trimmer/Potentiometer, um die Lichtempfindlichkeit den örtlichen Bedürfnissen anzupassen.

SpannungBewegungserkennung
GND bis 1,0 Voltdeaktiviert
1,0 Volt bis VDDaktiviert

Wenn der Pin/LG direkt an VDD liegt (wie in unserem o.a. Beispiel), ist diese Funktion nicht aktiv. Eine Bewegung wird dann also - unabhängig vom Umgebungslicht - erkannt. Dieser Modus eignet sich besonders für die Einbruchserkennung (nicht alle Diebe kommen in der Nacht!).

Der folgende Aufbau berücksichtigt das einfallende Umgebungslicht. Der Wert des 2. Widerstandes hängt von den konkreten Anforderungen (wie dunkel ist dunkel?) und dem verwendeten Widerstand ab. Es ist sinnvoll, erst einmal mit einem Potentiometer zu arbeiten, um den notwendigen Widerstandswert zu ermitteln. Ich habe z.B. R2 =100K ermittelt, aber ... !? Die Schaltung eignet sich z.B. für die Ansteuerung von Lampen. Bei Dunkelheit/Dämmerung UND Bewegung wird der Ausgang aktiviert:

Image

Code: s.o.

Sleep/Stromsparmodus im Hardware-Modus (Pin 7/SLP)

Im Beispiel haben wir den Pin 7 nicht beschaltet, welcher zur Steuerung des Sleep/Stromsparmodus dient.

Welchen praktischen Nutzen hat dieser Modus überhaupt, und warum machen wir es uns nicht leichter und entfernen einfach die Stromversorgung des Sensors?

Der Anwort ist - wie so oft - einfach: Die Stabilisierungszeit ("aufheizen") des ePIR ist wesentlich kürzer als die üblichen 20 mS (ich bevorzuge 40 ms). Wer es also braucht ... :

Um den Sleep-Modus zu aktivieren, wird Pin 7 des Sensors über einen digitalen Pin des Arduino oder über einen simplen Schalter auf LOW gebracht. Digital HIGH weckt ihn (den ePIR) wieder auf.

Beispiel 2 (Software-Beschaltung)

Die für Software-Beschaltung des Sensors notwendigen Informationen finden sich in der 60-seitigen Dokumentation für Entwickler. Hat sich zwar etwas versteckt, bekommt ihr aber hier.

Bezugsquellen