Bewegingsdetector

Doel:

  • detecteren van beweging
  • van signaal naar event

nodig:

  • PIR bewegingsdetector
  • LED (ingebouwd)

De PIR (passief-infrarood) bewegingsdetector geeft een positief (HIGH) signaal als deze beweging detecteert; geen beweging geeft LOW.

Je kunt de gevoeligheid en de vertraging van de sensor aanpassen met de instelpotmeters, zoals in de figuur hiernaast te zien.

De vertraging is de tijd voordat het signaal LOW wordt, na de laatst gedetecteerde beweging.

Voor een uitgebreide uitleg van PIR-sensoren:

https://learn.adafruit.com/pir-passive-infrared-proximity-motion-sensor

Schakeling

Verbind de bewegingsdetector:

  • signal met Arduino D6
  • VCC met Arduino 5V
  • GND met Arduino GND

Aansluitingen: achterzijde, pinnen aan de onderkant, van links naar rechts:

  • VCC
  • signal
  • GND

int ledPin = LED_BUILTIN;                

int sensorPin = 6;  // PIR signal

int prevSensor = LOW;

 

void setup() {

  pinMode(ledPin, OUTPUT);

  pinMode(sensorPin, INPUT);

  Serial.begin(9600);

}

void loop(){

  int sensor = digitalRead(sensorPin);

  if (prevSensor == LOW && sensor == HIGH) {

    digitalWrite(ledPin, HIGH);

    Serial.println("Motion detected");

  }

  if (prevSensor == HIGH && sensor == LOW) {

    digitalWrite(ledPin, LOW);

    Serial.println("Motion ended");

  }

  prevSensor = sensor;

}

Programma

We verbinden de PIR-sensor met pin D6.

De variabele prevSensor houdt de vorige waarde van de sensor-input bij. Daarmee kunnen we L->H en H->L overgangen in de input detecteren.

Bij een L->H overgang (event) schakelen we de LED aan, en sturen een bericht naar de Serial Monitor.

Bij een H->L overgang  (event) schakelen we de LED uit.

Aan het eind van de  loop bewaren we de waarde van de sensor-input in prevSensor.

Opdracht 1

Bouw en test deze schakeling en het bijbehorende programma.

Experimenteer met verschillende bewegingen: waar detecteert de sensor beweging, waar niet meer?

Wat gebeurt er als de beweging langer duurt?

Na afloop van het detecteren van een beweging ("Motion ended") duurt het even voordat de volgende beweging gedetecteerd kan worden. Hoe lang duurt dit in jouw geval?

Opdracht 2

Bedenk één of meer toepassingen voor deze bewegingsdetector.

Arduino lessen - Bewegingsdetector      --