timesetup not in void setup()
This commit is contained in:
parent
f2120f4df1
commit
499b944173
|
@ -11,7 +11,6 @@
|
|||
|
||||
DS3231 clock;
|
||||
|
||||
#define pressed digitalRead(12) == LOW
|
||||
#define lightsens 1
|
||||
#if lightsens
|
||||
#define lightsensorpin A0
|
||||
|
@ -39,6 +38,10 @@ bool brightmode = true;
|
|||
|
||||
bool houtremp;
|
||||
|
||||
inline bool pressed() {
|
||||
return digitalRead(12) == LOW;
|
||||
}
|
||||
|
||||
void set(const unsigned char pin, bool on) {
|
||||
if(on) {
|
||||
if(brightmode) {
|
||||
|
@ -56,12 +59,10 @@ void write(unsigned char m = 255, unsigned char h = 255) {
|
|||
//write minutes
|
||||
for(unsigned char i = 0; i < 6; i++) {
|
||||
set(M[i], m & (1 << i));
|
||||
// analogWrite(M[i], (m & (1 << i)) ? 255 : offtime);
|
||||
}
|
||||
//write hour
|
||||
for(unsigned char i = 0; i < 4; i++) {
|
||||
set(H[i], h & (1 << i));
|
||||
// analogWrite(H[i], (h & (1 << i)) ? 255 : offtime);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -70,7 +71,7 @@ inline void writeTime() {
|
|||
}
|
||||
|
||||
void setup() {
|
||||
pinMode(13, OUTPUT);
|
||||
pinMode(13, OUTPUT); // Pin 13 LED
|
||||
|
||||
//setup clock modul
|
||||
Wire.begin();
|
||||
|
@ -85,18 +86,31 @@ void setup() {
|
|||
for(unsigned char h = 0; h < 4; h++) {
|
||||
pinMode(H[h], OUTPUT);
|
||||
}
|
||||
pinMode(12, INPUT_PULLUP);
|
||||
write();
|
||||
pinMode(12, INPUT_PULLUP); // button
|
||||
|
||||
//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
|
||||
void blink() {
|
||||
for(int i = 0; i < 6; i++) {
|
||||
write(0, 0); // full off
|
||||
delay(300);
|
||||
write(); // full on
|
||||
delay(300);
|
||||
}
|
||||
}
|
||||
|
||||
void setTime() {
|
||||
while(pressed()) delay(5); // wait for not pressed anymore
|
||||
|
||||
write(); // full on
|
||||
|
||||
while(!pressed()) delay(5); //wait for press
|
||||
|
||||
//setup time
|
||||
char mode = 0;//mode = 0-> set hour, mode = 1 -> set min, mode = 2 -> exit setup
|
||||
|
@ -104,9 +118,9 @@ void setup() {
|
|||
unsigned long timeout = millis();
|
||||
writeTime();
|
||||
while(mode < 2) {
|
||||
if(pressed) {//button is pressed
|
||||
if(!pres) {//button was not pressed before
|
||||
timeout = millis();//reset timeout
|
||||
if(pressed()) { //button is pressed
|
||||
if(!pres) { //button was not pressed before
|
||||
timeout = millis(); //reset timeout
|
||||
pres = true;
|
||||
if(mode == 0) {//count hour
|
||||
byte hour = clock.getHour(houtremp, houtremp)+1;
|
||||
|
@ -120,14 +134,8 @@ void setup() {
|
|||
} else {
|
||||
pres = false;
|
||||
}
|
||||
if(millis() - timeout > 10000) {//timed out
|
||||
//blink 6 times
|
||||
for(int i = 0; i < 6; i++) {
|
||||
write(0,0);
|
||||
delay(300);
|
||||
write();
|
||||
delay(300);
|
||||
}
|
||||
if(millis() - timeout > 10000) { //timed out (button not pressed for 10s)
|
||||
blink();
|
||||
writeTime();
|
||||
++mode;//next mode
|
||||
//reset timeout
|
||||
|
@ -150,8 +158,12 @@ void loop() {
|
|||
|
||||
delay(500);
|
||||
|
||||
if(pressed()) {
|
||||
setTime();
|
||||
}
|
||||
|
||||
//update lighting values
|
||||
#if lightsens
|
||||
#if lightsens
|
||||
unsigned short brightness = analogRead(lightsensorpin);//messure
|
||||
|
||||
messure_add -= messure[messure_pos]; //remove old value from avg
|
||||
|
@ -168,5 +180,5 @@ void loop() {
|
|||
} else if(bavg > lightoff) {
|
||||
brightmode = false;
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue