Werken met sensoren Aan het einde van dit hoofdstuk kun je: Verschillende soorten sensoren identificeren en begrijpen hoe ze werken. Sensorwaarden uitlezen met de Arduino. Een programma schrijven dat reageert op sensordata. 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.