Classes/csci218/Labs/Lab7/autoNightlight/autoNightlight.ino

67 lines
1.5 KiB
C++

/* Name: Garrett Haldrup
<autoNightLight.ino>
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;
}
}