67 lines
1.5 KiB
C++
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;
|
|
|
|
}
|
|
}
|