LDR sensor Module

De Light Dependent Resistor, ook wel LDR-sensormodule wordt gebruikt om de aanwezigheid van licht te detecteren door de intensiteit van het licht te meten. De uitvoer van de module wordt LAAG in de aanwezigheid van licht en wordt HOOG bij afwezigheid van licht. De gevoeligheid van de signaaldetectie kan worden aangepast met behulp van een potentiometer.

De LDR sensor module is beschikbaar in een 3 of 4 pins uitvoering. Pin 4 is dan de analoge uitgang die de waarden van de intensiteit van het licht weergeeft. In dit project maken we hier geen gebruik van.

De Lichtgevoelige Weerstand (LDR)

Specificaties van de module
– Voeding (Vcc) : 3,3V – 5V
– Uitgang Type : Digitaal – Logica Hoog of Laag.
– Indicatoren : Voeding (groene LED) en uitgangsindicator (groen LED)
– De gevoeligheid van het schakelmoment kan worden aangepast met behulp van de potentiometer.
– LM393-chip (comparator) aanwezig op module

3 pins module

Afstellen drempelwaarde
Om de sensor te kunnen gebruiken zullen we hem af moeten stellen. We doen dit op het licht dat momenteel in de ruimte is.

• Verbind de Vcc en de GND van de sensor module respectievelijk met de 3,3V en de GND (ground) van de headerpinnen van de Raspberry Pi. Als het goed is brand ten minste een van de twee LED’s. Het kan ook zijn dat beide LED’s branden.
• Neem een kleine schroevendraaier en draai de potmeter zo dat de indicator LED net aanblijft. Met de klok mee draaien vergroot de gevoeligheid van de drempelwaarde.

Digitaal uit (D0)
LED uit = HOOG
LED aan = LAAG

Je kunt controleren of de sensor module goed ingesteld is door de LDR sensor te bedekken. Als het goed is gaat nu de indicator LED uit. Haal je je hand weg, dan gaat de LED weer aan.

Python script
Om de GPIO poort uit te lezen is maar een klein python script nodig.

Je kunt de code ook van hieronder overnemen. Open de editor nano en zet de code er in. Sla de code op onder de naam ldr.py.

import RPi.GPIO as GPIO
import time

#We gebruiken de fysieke pin 16
GPIO.setmode(GPIO.BOARD)

#Pin 16 wordt gebruikt als ingang. Een interne pull-up weerstand is aangezet
GPIO.setup(16, GPIO.IN, pull_up_down=GPIO.PUD_UP)

while True:
    input_state = GPIO.input(16)
    if input_state == False:
	print ("\033[1;32m"),
        print ('Sensor detecteert activiteit!')
        time.sleep(0.1)
    else:
	print ("\033[1;31m"),
	print ("Sensor detecteert geen activiteit!")
	time.sleep (0.1)

Je kunt in de terminal de code opstarten met:

python ldr.py

Met de toetscombinatie [Ctrl]-c stopt het script.

Het bestand ziet er als volgt uit:

Na het start van het script zie je de volgende uitkomst. Bij het bedekken van de LDR geeft het de melding: Sensor detecteert geen activiteit!

Have A Nice Day!