9. LDR¶
Alleen Arduino aansluiten¶
Eerst sluiten we alleen een Arduino aan:

Ik denk dat dit wel moet lukken :-)
Code: seriele monitor¶
![]() |
Vergeten wat dit is? Ga naar les 4 'FSR' |
|---|---|
Opdrachten 1¶
- Upload het programma. In de Arduino IDE, klik rechtsboven op 'Seriele Monitor'. Wat zie je?
- Kun je de tekst veranderen naar 'Hallo Richel' (of je eigen naam?)
- Verander
Serial.printlnnaarSerial.print. Wat zie je? - Verander de tekst
Serial.begin(9600)naarSerial.begin(4800). Wat zie je? Waarom?
Oplossingen 1¶
- De seriele monitor laat elke second een extra regel zien, met de tekst 'Hallo'
- Verander de regel
Serial.println("Hallo");naarSerial.println("Hallo Richel"); - De woorden komen na elkaar, in plaats van onder elkaar
- Nu laat de seriele monitor onleesbare tekst zien. Dit komt omdat de Arduino langzamer tekst stuur naar je computer (4800), dan je computer de tekst leest (9600)
Aansluiten LDR zonder LED¶
![]() |
LDR betekent 'Light Dependent Resistance' |
|---|---|
Eerst sluiten we alleen een LDR aan:

Code: lezen FSR met seriele monitor¶
Met deze code meten we de waarde van de LDR:
void setup()
{
pinMode(A0, INPUT);
Serial.begin(9600);
}
void loop()
{
Serial.println(analogRead(A0));
delay(100);
}
![]() |
Vergeten wat dit is? Ga naar les 4 'FSR' |
|---|---|
Opdrachten 2¶
- Upload het programma. In de Arduino IDE, klik rechtsboven op 'Seriele Monitor'. Wat zie je?
- Houd je vinger boven de LDR terwijl je de seriele monitor bekijkt. Wat zie je?
- Verander
Serial.printlnnaarSerial.print. Wat zie je? - Verander de tekst
Serial.begin(9600)naarSerial.begin(4800). Wat zie je? Waarom? - Haal de draad naar
A0weg. Ja, haal de draad tussenA0en de LDR weg. Kijk op de seriele monitor. Wat zie je?
Oplossingen 2¶
- Je ziet een getal van nul tot 1024, afhankelijk van de waarde van de LDR
- Je zit de getallen veranderen
- Alle getallen komen na elkaar
- Nu laat de seriele monitor onleesbare tekst zien. Dit komt omdat de Arduino langzamer tekst stuur naar je computer (4800), dan je computer de tekst leest (9600)
- Nu zie je het getal willekeurig veranderen. Dit wordt een zwevende input genoemd
![]() |
Heb je een zwevende input? Dan heb je vaak iets fout aangesloten |
|---|---|
Aansluiten LDR met LED¶
![]() |
'Light Dependent Resistance' betekent 'lichtafhankelijke weerstand' |
|---|---|
Nu sluiten we ook een LED aan:

Reageren op LDR¶
Nu gaan we het LEDje laten reageren op de LDR:
void setup()
{
pinMode(A0, INPUT);
pinMode(13, OUTPUT);
}
void loop()
{
if (analogRead(A0) < 512)
{
digitalWrite(13, HIGH);
}
else
{
digitalWrite(13, LOW);
}
delay(100);
}
![]() |
Vergeten wat dit is? Ga naar les 4 'FSR' |
|---|---|
Opdracht 3¶
- Wat gebeurt er als je
512hoger zet? Wat gebeurt er als je512lager zet? - Zorg dat de seriele monitor ook
A0meet en laat zien. Welk getal meet de FSR in rust? - Zorg dat de seriele monitor het woord
AANlaat zien als de LED aan gaat, en het woordUITals de LED uit wordt gezet
Oplossingen 3¶
- Als
512wordt veranderd naar een te hoog getal, is het lampje altijd aan, hoe hard/zacht je ook drukt. Als512wordt veranderd naar een te hoog getal, is het lampje altijd uit, hoe hard/zacht je ook drukt - Hiervoor gebruik je de code van de vorige opdracht: voeg in de
setupfunction toeSerial.begin(9600);, in deloopfunctie voeg jeSerial.println(analogRead(A0));toe. De waarde die je gaat zien is afhankelijk van de weerstand, LDR en hoeveelheid licht - Dit kan door
Serial.println("AAN");in het eerste gedeelte van hetifstatement te zetten. ZetSerial.println("UIT");in het tweede gedeelte van hetifstatement.
void setup()
{
pinMode(A0, INPUT);
pinMode(13, OUTPUT);
Serial.begin(9600);
}
void loop()
{
Serial.println(analogRead(A0));
if (analogRead(A0) < 512)
{
digitalWrite(13, HIGH);
Serial.println("AAN");
}
else
{
digitalWrite(13, LOW);
Serial.println("UIT");
}
delay(100);
}
Opdracht 4¶
Sluit een extra LEDje aan. Als de LDR in normaal licht is, moet er geen LEDje branden. Als je de LDR een beetje donkerder maakt met je hand, gaat er een LEDje branden. Als je de LDR helemaal donker maakt twee.
![]() |
Tip: gebruik twee if statements |
|---|---|
Oplossing 4¶
De getallen in de if statement moeten goed ingesteld worden.
void setup()
{
pinMode(A0, INPUT);
pinMode(12, OUTPUT);
pinMode(13, OUTPUT);
Serial.begin(9600);
}
void loop()
{
Serial.println(analogRead(A0));
if (analogRead(A0) < 256)
{
digitalWrite(13, HIGH);
}
if (analogRead(A0) < 512)
{
digitalWrite(12, HIGH);
}
delay(100);
}
Eindopdracht¶
- Sluit drie LEDjes aan: een rode, gele en groene
- Als de LDR in het licht is, moet er geen LEDje branden.
- Als je de LDR een beetje verduisterd wordt, gaat het groene LEDje branden
- Als je de LDR meer verduisterd wordt, gaan de groene en gele LEDjes branden
- Als je de LDR helemaal verduisterd wordt, gaan alle LEDjes branden

![]() |
Tip: gebruik drie of vier keer if |
|---|---|

