LaserClock mit durchschnitts Helligkeit
This commit is contained in:
parent
c4fdec48f5
commit
5dbc3eb983
|
@ -12,9 +12,16 @@
|
|||
DS3231 clock;
|
||||
|
||||
#define pressed digitalRead(12) == LOW
|
||||
#define lightsens 1
|
||||
#if lightsens
|
||||
#define lightsensorpin A0
|
||||
#define lightoff 1010
|
||||
#define lighton 970
|
||||
const unsigned char lightSensPin;
|
||||
#define lighton 980
|
||||
const size_t messure_size = 20;
|
||||
unsigned short messure[messure_size];
|
||||
size_t messure_pos = 0;
|
||||
unsigned long messure_add = 0;
|
||||
#endif
|
||||
|
||||
//pins for hour display
|
||||
const unsigned char H[] = {8,9,10,11};
|
||||
|
@ -80,6 +87,15 @@ void setup() {
|
|||
}
|
||||
pinMode(12, INPUT_PULLUP);
|
||||
write();
|
||||
|
||||
//setup messure array
|
||||
int brightness = analogRead(lightsensorpin);
|
||||
//memset(messure, brightness, messure_size); //does only work for integers!
|
||||
for(int i = 0; i < messure_size; i++) {
|
||||
messure[i] = brightness;
|
||||
}
|
||||
messure_add = brightness * messure_size;
|
||||
|
||||
while(!pressed) delay(5);//wait for press
|
||||
|
||||
//setup time
|
||||
|
@ -133,10 +149,24 @@ void loop() {
|
|||
digitalWrite(13, millis()/1000 % 2 == 0);
|
||||
|
||||
delay(500);
|
||||
int brightness = analogRead(A0);
|
||||
if(brightness < lighton) {
|
||||
|
||||
//update lighting values
|
||||
#if lightsens
|
||||
unsigned short brightness = analogRead(lightsensorpin);//messure
|
||||
|
||||
messure_add -= messure[messure_pos]; //remove old value from avg
|
||||
messure[messure_pos] = brightness; //add to array
|
||||
messure_add += brightness; //add to avg
|
||||
|
||||
if((++messure_pos) == messure_size)//increment pos, check range
|
||||
messure_pos = 0; //reset
|
||||
|
||||
unsigned short bavg = messure_add / messure_size;
|
||||
|
||||
if(bavg < lighton) {
|
||||
brightmode = true;
|
||||
} else if(brightness > lightoff) {
|
||||
} else if(bavg > lightoff) {
|
||||
brightmode = false;
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue