Stap 3: LED / detector circuit en code
Dit is het eenvoudigste deel van het project. De LED wordt verlicht door de Arduino te maken van een lezing. Het licht wordt gedetecteerd door een eenvoudige photoresistor. Wij brengen de LED en de fotoweerstand eenvoudige houders gemaakt van marker pen caps. We vullen deze met blu tack houden de onderdelen op hun plaats te zetten van kunststof mouwen over de leads te voorkomen dat ze kortsluiting. We dachten dat we zouden moeten een klein objectief te concentreren het licht, maar de dop van de pen heeft een geweldige job. We begonnen met een goedkope blauwe LED, maar het vervolgens geruild voor een LED 470nm. Dit was afgestemd op de golflengte die wij wilden en hadden een vrij smalle emissiespectrum (getoond in het gegevensblad). Als u een andere samengestelde meten wilt, moet u enkel met een LED met de juiste golflengte te ruilen.
Code:
LDRValue = analogRead(LDR); LDRValue2 = LDRValue - 4; Transmittance = (LDRValue2 / LDRValueMax) *100 ; Absorbance = (2 - (log10(Transmittance))) * 7; total= total + Absorbance; readIndex = readIndex + 1; delay(200); if (readIndex ==5){ average = total / 5;
De lezing van de fotoweerstand wordt opgeslagen als de waarde LDRValue.
De basislijn lezen (4 in dit geval) wordt afgetrokken. De lezing van de basislijn is de lezing wanneer de LED is uitgeschakeld en vertegenwoordigt de achtergrond licht raken van de detector. U moet vindt deze waarde voor uw machine. De eenvoudigste manier om dit te doen is om de LED en neem een lezing. We waren verbaasd hoe laag de waarde was.
De Arduino berekent vervolgens de lichtdoorlatendheid waarde - de uitgedrukt als een percentage van de maximale licht lezing. Om dit te doen vergelijkt het de lezing op het vaste gehele getal LDRValuemax, die voor ons werd 650. Opnieuw, moet u de waarde voor uw machine, die u doen kunt door middel van een lezing met gewoon lucht tussen de LED en de detector berekend.
De Arduino vervolgens omgezet in de lichtdoorlatendheid waarde de waarde van een ware absorptie . Het vergroot ook door een schaalfactor van 7. We hebben geen idee waarom we deze schaalfactor nodig.
De machine neemt voor de nauwkeurigheid, 5 lezingen van elk monster; ze samen in de 'totaal' toevoegen en vervolgens delen door 5 te verkrijgen van het gemiddelde.