Arduino - Lichtsensor

In deze tutorial leert u:

Hardware Benodigd

1×Arduino Uno R3
1×USB 2.0 kabel type A/B
1×Lichtsensor
1×10 kΩ weerstand
1×Breadboard (experimenteerprint)
1×Jumper wires (verbindingsdraden)
1×(Aanbevolen) Schroefklem Block Shield voor Arduino Uno
1×(Aanbevolen) Breadboard-Shield voor Arduino Uno
1×(Aanbevolen) Behuizing voor Arduino Uno
1×(Aanbevolen) Prototyping Basisplaat & Breadboard Kit voor Arduino Uno

Of u kunt de volgende kits kopen:

1×DIYables STEM V3 Starterskit (Arduino inbegrepen)
1×DIYables Sensorkit (30 sensoren/displays)
1×DIYables Sensorkit (18 sensoren/displays)
Openbaarmaking: Sommige van de links in deze sectie zijn Amazon-affiliate links. We kunnen een commissie ontvangen voor aankopen die via deze links worden gedaan, zonder extra kosten voor u. We waarderen uw steun.

De LDR lichtsensor is zeer betaalbaar, maar vereist een weerstand voor de bedrading, wat de opstelling complexer kan maken. Om de bedrading eenvoudiger te maken, kunt u als alternatief een LDR lichtsensor module gebruiken.

Over de Lichtsensor

De lichtsensor die in deze tutorial wordt gebruikt is een photoresistor, ook wel lichtafhankelijke weerstand (LDR) of photocell genoemd.

Deze sensor wordt niet alleen gebruikt om licht te detecteren, maar ook om de helderheid/illuminantie van het omgevingslicht te meten.

Pinout

Een photoresistor heeft twee pinnen. Omdat het een soort weerstand is, hoeft u deze pinnen niet te onderscheiden. Ze zijn symmetrisch.

Light Sensor Pinout

Hoe Het Werkt

Hoe meer licht het oppervlak van de photoresistor ontvangt, hoe lager de weerstand wordt. Door de weerstand van de photoresistor te meten, kunnen we dus relatief bepalen hoe helder het omgevingslicht is.

How Light Sensor Works

WARNING

De waarde van de lichtsensor geeft slechts een benaderende trend van de lichtintensiteit weer; het vertegenwoordigt NIET de exacte lichtstroom (luminous flux). Daarom is het alleen geschikt voor toepassingen waar geen hoge nauwkeurigheid vereist is.

Arduino - Lichtsensor

De analoge ingangen A0 tot A5 van de Arduino Uno kunnen een analoog signaal lezen. De analoge ingang zet de spanning (tussen 0V en VCC) om in een geheel getal tussen 0 en 1023, genaamd ADC waarde of analoge waarde.

Door een pin van de photoresistor aan te sluiten op een analoge ingang, kunnen we met de functie analogRead() de analoge waarde uitlezen en zo relatief het lichtniveau bepalen.

Aansluitschema

Arduino Light Sensor Wiring Diagram

This image is created using Fritzing. Click to enlarge image

Arduino Code

De onderstaande code leest de waarde van de photocell uit en bepaalt kwalitatief het lichtniveau.

/* * Deze Arduino code is ontwikkeld door newbiely.nl * Deze Arduino code wordt zonder enige beperking aan het publiek beschikbaar gesteld. * Voor volledige instructies en schema's, bezoek: * https://newbiely.nl/tutorials/arduino/arduino-light-sensor */ void setup() { // initialize serial communication at 9600 bits per second: Serial.begin(9600); } void loop() { // reads the input on analog pin A0 (value between 0 and 1023) int analogValue = analogRead(A0); Serial.print("Analog reading: "); Serial.print(analogValue); // the raw analog reading // We'll have a few threshholds, qualitatively determined if (analogValue < 10) { Serial.println(" - Dark"); } else if (analogValue < 200) { Serial.println(" - Dim"); } else if (analogValue < 500) { Serial.println(" - Light"); } else if (analogValue < 800) { Serial.println(" - Bright"); } else { Serial.println(" - Very bright"); } delay(500); }

Snelle Stappen

  • Kopieer de bovenstaande code en open deze met de Arduino IDE
  • Klik op de Upload knop in Arduino IDE om de code naar de Arduino te uploaden
  • Open de Seriële Monitor
  • Richt licht op de sensor
  • Bekijk het resultaat in de Seriële Monitor:
COM6
Send
Analog reading: 163 - Dim Analog reading: 152 - Dim Analog reading: 187 - Dim Analog reading: 188 - Dim Analog reading: 957 - Very bright Analog reading: 972 - Very bright Analog reading: 981 - Very bright
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Lichtsensor en LED

  • De onderstaande code schakelt de LED AAN wanneer het donker is, en schakelt de LED UIT wanneer er licht is.
/* * Deze Arduino code is ontwikkeld door newbiely.nl * Deze Arduino code wordt zonder enige beperking aan het publiek beschikbaar gesteld. * Voor volledige instructies en schema's, bezoek: * https://newbiely.nl/tutorials/arduino/arduino-light-sensor */ // constants won't change const int LIGHT_SENSOR_PIN = A0; // Arduino pin connected to light sensor's pin const int LED_PIN = 3; // Arduino pin connected to LED's pin const int ANALOG_THRESHOLD = 500; // variables will change: int analogValue; void setup() { pinMode(LED_PIN, OUTPUT); // set arduino pin to output mode } void loop() { analogValue = analogRead(LIGHT_SENSOR_PIN); // read the input on analog pin if(analogValue < ANALOG_THRESHOLD) digitalWrite(LED_PIN, HIGH); // turn on LED else digitalWrite(LED_PIN, LOW); // turn off LED }
  • Aansluitschema voor bovenstaande code:
Arduino Light Sensor LED Wiring Diagram

This image is created using Fritzing. Click to enlarge image

Video Tutorial

We overwegen het maken van videotutorials. Als u videotutorials belangrijk vindt, abonneer u dan op ons YouTube-kanaal om ons te motiveren de video's te maken.

Bekijk onze video-tutorial voor een visuele begeleiding bij dit project! De video biedt extra inzichten en helpt u stap voor stap.

Daag uzelf uit

  • Zet automatisch het licht aan wanneer uw kamer donker wordt. Tip: Zie ook Arduino - Relay.

Reacties

※ ONZE BERICHTEN

  • U bent welkom om de link naar deze tutorial te delen. Gebruik onze inhoud echter niet op andere websites. We hebben veel moeite en tijd gestoken in het maken van de inhoud, respecteer alstublieft ons werk!