int PIR=3;
int led=13;


void setup()
{ pinMode(PIR, INPUT);
pinMode(led, OUTPUT);
Serial.begin(9600);

}

void loop()
{ if(digitalRead(5) == HIGH)

 {

digitalWrite(13, HIGH);
Serial.println("motion detected");

}

else {

digitalWrite(13, LOW); // setng led to low Serial.println("scanning");

}
}

Abfrage der Daten auf einem Mikrocontroller


Zum Anschluss können Sie jeden beliebigen Digital-Pin nutzen, in unserem Beispiel verwenden wir Pin 3

Wir verbinden VCC mit 5V, GND mit GND und S mit D3 am ATmega328p.


Der Beispiel-Code sieht so aus:

#define PIN_LED   2

#define PIN_SR505 10


#define BUFFER_TIME 1000


unsigned long lastMeasure = 0;


void setup()

{

    pinMode(PIN_LED, OUTPUT);

    pinMode(PIN_SR505, INPUT);

    Serial.begin(9600);

}


void loop()

{

    if ((millis() - lastMeasure) > BUFFER_TIME) {

        lastMeasure += BUFFER_TIME;

        if (digitalRead(PIN_SR505) == HIGH) {

            Serial.println("Motion detected!");

            digitalWrite(PIN_LED, HIGH);

        } else {

            Serial.println("No motion.");

            digitalWrite(PIN_LED, LOW);

        }

    }

}

Programm-Code:  „sketch“

int LED=5; //Das Wort „LED“ steht jetzt für den Wert 5.

int bewegung=7; //Das Wort „bewegung“ steht jetzt für den Wert 7.

int bewegungsstatus=0; //Das Wort „bewegungsstatus“ steht jetzt zunächst für den Wert 0. Später wird unter dieser Variable gespeichert, ob eine Bewegung erkannt wird oder nicht.


void setup() //Hier beginnt das Setup.

{

pinMode(LED, OUTPUT); //Der Pin mit der LED (Pin 5) ist jetzt ein Ausgang.

pinMode(bewegung, INPUT); //Der Pin mit dem Bewegungsmelder (Pin 7) ist jetzt ein Eingang.

}


void loop() //Der Loop-Teil beginnt

{            //Mit dieser Klammer wird der Loop-Teil geöffnet.

  

bewegungsstatus=digitalRead(bewegung); /Hier wird der Pin7 ausgelesen. Das Ergebnis wird unter der Variablen „bewegungsstatus“ mit dem Wert „HIGH“ für 5Volt oder „LOW“ für 0Volt gespeichert.

if (bewegungsstatus == HIGH) //Verarbeitung: Wenn eine Bewegung detektiert wird (Das Spannungssignal ist hoch)

{ //Programmabschnitt des IF-Befehls öffnen.

digitalWrite(LED, HIGH); //LED leuchtet

delay(5000); //...und zwar für für 5 Sekunden.

digitalWrite(LED, LOW); //...danach soll die LED nicht mehr leuchten

} //Programmabschnitt des IF-Befehls schließen.

else //ansonsten...

{ //Programmabschnitt des else-Befehls öffnen.

digitalWrite(LED, LOW); // LED aus

} //Programmabschnitt des else-Befehls schließen.

} //Mit dieser letzten Klammer wird der Loop-Teil geschlossen.


Ersetze die LED durch einen Motor!

Infrarot-Sensor       (PIR-Sensor)

Diese Website verwendet Cookies. 


Bei Zustimmung klicken Sie auf 

OK

Bitte lesen Sie unsere Datenschutzerklärung für Details.

Verweigern

Setzt ein technisches Cookie, das aufzeichnet, dass Sie die Zustimmung verweigern. Es wird nicht nochmals nachgefragt werden.

Entfernen

Entfernt das Zustimmungscookie aus Ihrem Browser.