In dit project laat je met een LDR lampjes aan of uit laten gaan, afhankelijk of er meer of minder licht schijnt.
Voor dit project gebruiken we een LDR. LDR is een afkorting voor light depending resistor. Wat betekent dat de weerstand afhankelijk is van de hoeveelheid licht erop schijnt. Hoe meer licht er op de LDR schijnt hoe lager de weerstand wordt.
We kunnen met de Arduino een waarde van de LDR uitlezen. In dit project hangen we verschillende waardes aan de LED lampjes. We doen dit op zo’n manier dat als er meer licht op schijnt er meer LED lampjes gaan branden. Dit doen we met if else logic gates en de analogread functie. In het programmeer gedeelte leg ik uit wat deze functies inhouden.
ammeren.
- Niveau – Beginner 30%
- Tijdsduur – 10/15 Min 30%
- Kosten – €31,24 euro compleet 30%
Stap 1: Benodigdheden
1X Arduino UNO
1X breadboard
15X Jumper wires
5X LED lampje
1X LDR
6X 220 ohm weerstand
Stap 2: Bouwen en Bedraden
Stap 3: Programmeren
Op het moment dat je alles goed hebt aangesloten kan je beginnen met programmeren.
De code voor dit project is vrij kort. In de code maken we gebruik van de analogread functie en if else logic gates.
We gebruiken de analogread functie om de waarde van de analoge pin af te lezen. Dit is de waarde van de LDR. Vervolgens gebruiken we de if else logic gates.
Op het moment dat de waarde overeenkomt (dus if is) gaat bij ons het lampje branden. Als de waarde niet overeenkomt (dus else is) brandt het lampje niet.
//hier zetten we alle componenten op een pin
int sensor = A0;
int led1 = 2;
int led2 = 3;
int led3 = 4;
int led4 = 5;
int led5 = 6;
int Value = 0;
void setup(){
//hier zorgen we dat die pinnen een puls geven
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
pinMode(led4, OUTPUT);
pinMode(led5, OUTPUT);
}
void loop(){
//nu zorgen we ervoor dat hij A0 leest
Value = analogRead(sensor);
delay(100);
//nu laten we het lampje aangaan
//als de waarde 110 of hoger is
if(Value >= 110){
digitalWrite(led1, HIGH);
}else{
//anders gaat hij uit
digitalWrite(led1, LOW);
}
if(Value >= 125){
digitalWrite(led2, HIGH);
}else{
digitalWrite(led2, LOW);
}
if(Value >= 140){
digitalWrite(led3, HIGH);
}else{
digitalWrite(led3, LOW);
}
if(Value >= 155){
digitalWrite(led4, HIGH);
}else{
digitalWrite(led4, LOW);
}
if(Value >= 170){
digitalWrite(led5, HIGH);
}else{
digitalWrite(led5, LOW);
}
}