/* Les9 LDR test sketch.
Een draad van de LDR verbinden met 5V. De andere kant via een 10 kohm
'pull-down' weerstand verbinden met ground. Deze andere kant wordt ook
rechtstreeks verbonden met de analoge pin 0. Een rode led verbinden we met
pin 11 (+kant) en via een 330 ohm weerstand met de ground.
Op de serial monitor kunnen we de ruwe waardes op pin 0 aflezen. Deze
waardes zijn tussen 0 en 1023: De LDR veroorzaakt op pin 0 een spanning
tussen 0 en 5 volt en de Arduino zet dit om in een getal tussen 0 en 1023.
De helderheid van de rode led is afhankelijk van de waarde van pin 0. De
led is verbonden met een PMW-pin (puls width modulation). Deze pin kan een
waarde hebben tussen 0 (0 volt, led uit) en 255 (5 volt, led brandt maximaal).
We moeten de uitgelezen waarde (tussen 0 en 1023) dus omzetten naar een getal
tussen 0 en 255. Dit doen we met: map(ldrWaarde, 0, 1023, 0, 255).
Als er veel licht is, dan is de weerstand van de LDR laag en zou de spanning
op pin 0 hoog moeten zijn. Door te werken met de 10kohm pull-down weerstand
(en spanningsdeler) werkt het eigenlijk net andersom. Daarom is de regel
toegevoegd: ldrwaarde = 1023 - ldrwaarde. Daarmee draaen we de zaak weer om
(van 0-1023 naar 1023-0).
Meer uitleg: www.ladyada.net/learn/sensors/cds.html
Les9 LDR test sketch.
*/
int ldrPin = 0; // de LDR is verbonden met analoge pin 0
int ldrWaarde; // De uitgeleZen waarde op de analoge pin 0
int LEDpin = 11; // Rode led verbonden met pin 11 (PWM pin)
int LEDhelderheid; // Helderheid van de led (tussen 0 en 255)
void setup(void) {
Serial.begin(9600); // Start de serial mmonitor
}
void loop(void) {
ldrWaarde = analogRead(ldrPin);
Serial.print("Analog reading = ");
Serial.println(ldrWaarde); // print de ruwe analoge waarde op de monitor
ldrWaarde = 1023 - ldrWaarde; // zie toelichting boven
LEDhelderheid = map(ldrWaarde, 0, 1023, 0, 255); // zie toelichting boven
analogWrite(LEDpin, LEDhelderheid);
delay(100);
}