/* Name: Garrett Haldrup Problem: Measure the output of a photo sensor and control leds based on light level Certification of Authenticity: I certify that this assignment is entirely my own work. */ const int lightSensorPin = A0; const int START_LED = 2; const int END_LED = 8; int pinValue; float pinValueVolt; void setup() { // put your setup code here, to run once: Serial.begin(9600); for (int i = START_LED; i <= END_LED; i++) { pinMode(i, OUTPUT); digitalWrite(i, LOW); } } void loop() { // put your main code here, to run repeatedly: pinValue = analogRead(lightSensorPin); pinValueVolt = (5.0 / 1023) * pinValue; Serial.print("Pin Value: "); Serial.print(pinValue); Serial.print(" Voltage: "); Serial.print(pinValueVolt, 2); Serial.println("V"); switch (pinValue) { case 0 ... 99: for (int i = START_LED; i <= END_LED; i++) { digitalWrite(i, HIGH); } break; case 100 ... 399: for (int i = START_LED; i <= END_LED - 3; i++) { digitalWrite(i, HIGH); } for (int i = END_LED - 2; i <= END_LED; i++) { digitalWrite(i, LOW); } break; case 400 ... 799: for (int i = START_LED; i <= END_LED - 5; i++) { digitalWrite(i, HIGH); } for (int i = END_LED - 4; i <= END_LED; i++) { digitalWrite(i, LOW); } break; default: for (int i = START_LED; i <= END_LED; i++) { digitalWrite(i, LOW); } break; } }