Sensoren
Introductie tot Sensoren
- Wat zijn sensoren?: Apparaten die fysieke grootheden (zoals licht, temperatuur, afstand) meten en deze omzetten in elektrische signalen.
- Veelgebruikte sensoren:
- LDR (Lichtgevoelige Weerstand): Meet lichtintensiteit.
- Temperatuursensor (bijv. LM35, DHT11): Meet temperatuur (en soms luchtvochtigheid).
- Ultrasone sensor (HC-SR04): Meet afstand tot een object.
Werken met een Lichtsensor (LDR)
Hoe werkt een LDR?
- De weerstand van een LDR verandert met de hoeveelheid licht die erop valt.
- Meer licht = lagere weerstand; minder licht = hogere weerstand.
Aansluiten van een LDR:
- Componenten: LDR, 10kΩ weerstand, breadboard, jumper wires.
- Aansluiting:
- Verbind één kant van de LDR met 5V.
- Verbind de andere kant van de LDR met analoge pin A0 en met een 10kΩ weerstand naar GND (vormt een spanningsdeler).
Code om de LDR uit te lezen
Stap-voor-stap uitleg:
-
Lees de waarde van de LDR:
int sensorValue = analogRead(A0); - Toon de waarde op de seriële monitor:
Serial.println(sensorValue);
Volledige code:
void setup() {
Serial.begin(9600); // Start seriële communicatie
}
void loop() {
int sensorValue = analogRead(A0); // Lees de LDR
Serial.println(sensorValue); // Toon de waarde
delay(500); // Wacht een halve seconde
}
Gebruik van de Seriële Monitor:
- Open de seriële monitor in de Arduino IDE via Hulpmiddelen > Seriële Monitor.
- Stel de baudrate in op 9600 baud.
LED automatisch aanzetten bij weinig licht
Uitbreiding van de code:
-
Stel een drempelwaarde in:
int drempel = 500; // Pas deze waarde aan op basis van je metingen - Gebruik een if-else statement om de LED te sturen:
if (sensorValue < drempel) { digitalWrite(9, HIGH); // Zet LED aan } else { digitalWrite(9, LOW); // Zet LED uit }
Volledige code met LED-besturing:
void setup() {
Serial.begin(9600);
pinMode(9, OUTPUT); // Zet pin 9 als output voor de LED
}
void loop() {
int sensorValue = analogRead(A0);
Serial.println(sensorValue);
int drempel = 500; // Stel je eigen drempelwaarde in
if (sensorValue < drempel) {
digitalWrite(9, HIGH); // LED aan
} else {
digitalWrite(9, LOW); // LED uit
}
delay(500);
}
Uitleg van de Code
- Serial.begin(9600): Start seriële communicatie op 9600 baud.
- Serial.println(): Stuurt data naar de seriële monitor.
- if (sensorValue < drempel): Controleert of de gemeten waarde onder de drempel ligt.
Opdracht
Doel: Laat een LED automatisch aangaan wanneer het donker wordt.
Instructies:
- Bouw de schakeling met de LDR en LED zoals hierboven beschreven.
- Schrijf of kopieer de code in de Arduino IDE.
- Upload de code naar je Arduino.
- Gebruik je hand of een voorwerp om licht op de LDR te blokkeren en observeer hoe de LED reageert.
- Pas indien nodig de drempelwaarde aan voor optimale werking.
Extra Uitdagingen
-
Uitbreiding 1: Voeg een buzzer toe die een geluid maakt wanneer het volledig donker is.
- Hint: Gebruik een extra if-statement met een lagere drempelwaarde.
-
Uitbreiding 2: Gebruik een RGB LED om verschillende kleuren weer te geven op basis van de lichtintensiteit.
Veelgemaakte Fouten
- Verkeerde aansluiting van de LDR: Zorg ervoor dat de spanningsdeler correct is aangesloten.
- Drempelwaarde niet aanpassen: De standaard drempelwaarde werkt mogelijk niet in alle lichtomstandigheden; pas deze aan op basis van je metingen.
- Seriële monitor niet geopend: Vergeet niet de seriële monitor te openen om de sensorwaarden te zien.
Veiligheidstips
- Wees voorzichtig met het aansluiten van de componenten om kortsluiting te voorkomen.
- Gebruik de juiste weerstanden om je componenten te beschermen.
- Werk in een goed verlichte omgeving om fouten te voorkomen.