Grove - Light Sensor
Version från den 4 februari 2021 kl. 07.28 av Christian (diskussion | bidrag)
Ljussensorn integrerar ett fotomotstånd (ljusberoende motstånd) för att detektera ljusets intensitet. Bildmotståndets motstånd minskar när ljusintensiteten ökar. Utsignalen är analogt värde, ju ljusare ljuset är desto större är värdet. Den här modulen kan exempelvis användas för att bygga en ljusstyrd strömbrytare, dvs. stäng av lampor under dagtid och slå på lampor under natten.
Kompatibilitet
- Arduino
- Raspberry Pi
Port
- Analog
Exempelkod
Arduino
const int pinLight = A0;
const int pinLed = 7;
int thresholdvalue=400; //the threshold to turn on or off the LED
void setup()
{
pinMode(pinLed, OUTPUT); //set the LED on Digital 12 as an OUTPUT
}
void loop()
{
int sensorValue = analogRead(pinLight); //the light sensor is attached to analog 0
if(sensorValue<thresholdvalue)
{
digitalWrite(pinLed, HIGH);
}
else
{
digitalWrite(pinLed, LOW);
}
}
Raspberry Pi
import time
import grovepi
# Connect the Grove Light Sensor to analog port A0
# SIG,NC,VCC,GND
light_sensor = 0
# Connect the LED to digital port D4
# SIG,NC,VCC,GND
led = 4
# Turn on LED once sensor exceeds threshold resistance
threshold = 10
grovepi.pinMode(light_sensor,"INPUT")
grovepi.pinMode(led,"OUTPUT")
while True:
try:
# Get sensor value
sensor_value = grovepi.analogRead(light_sensor)
# Calculate resistance of sensor in K
resistance = (float)(1023 - sensor_value) * 10 / sensor_value
if resistance > threshold:
# Send HIGH to switch on LED
grovepi.digitalWrite(led,1)
else:
# Send LOW to switch off LED
grovepi.digitalWrite(led,0)
print("sensor_value = %d resistance = %.2f" %(sensor_value, resistance))
time.sleep(.5)
except IOError:
print ("Error")