project 08 board

mijn schets is zonder de led aangesloten op digital pin 7

 

 

 

 

project 08 componenten

 De switch is eigenlijk de tilt sensor

 

 

project 08 circuit

 

tilt sensor

 

De beweging- of tilt sensor

 

Project 08 Digital Hourglass blz 87.          terug naar de inleiding
 
De schets aangepast ipv 6 leds 5 leds die na elkaar om de 10 minuten gaan branden
na een uur doven de leds weer en begint het proces  opnieuw.
 
De schets maakt gebruik van for lussenunsigned long , millis(); en een bewegingsensor
 
 

const int schakelPin = 8;
unsigned long vorigeTijd = 0;  
 int schakeltoestand; 
 int vorigeSchakeltoestand = 1; 
  
// variabele met het pinnummer van de eerste led 
 int led = 2;
// 600000 = 10 minuten in milliseconds 
long interval = 600000;
void setup() { 
 // De for lus maakt van pinnen 2 t/m 6 output pinnen 
 for (int x = 2; x < 7; x++) { 
 pinMode(x, OUTPUT); 
 } 
 // Op pin 8 is de bewegingsensor aangesloten 
 pinMode(schakelPin, INPUT); 
}
void loop() { 
// De stand van de millis timer wordt,  
// telkens als de loop wordt doorlopen wordt de tijd in "huidigeTijd" opgeslagen.
// datatype van millis(); is unsigned long 
 unsigned long huidigeTijd = millis();

// De eerste 10 minuten: vorigeTijd = 0; 
// Zodra de 10 minuten (is de interval) om zijn 
// komt huidigeTijd in vorigeTijd (wordt dus 10 minuten 
// Led op pin 2 wordt ingeschakeld 
// Led 2 wordt led 3 en de volgende cyclus van 10 minuten zal beginnen (vorigeTijd = 10 minuten)
if (huidigeTijd - vorigeTijd > interval) { 
 vorigeTijd = huidigeTijd; 
 digitalWrite(led, HIGH);  
 led++; 
 }
//Let op! zodra led 6 is ingeschakeld wordt de variable led = 7;  led 6 moet nog 10 minuten branden
//na deze 10 minuten wordt de variabele led = 8; en worden alle leds uitgeschakeld

if (led == 8) { 
 // alle leds uitschakelen 
 for (int x = 2; x < 7; x++) { 
 digitalWrite(x, LOW); 
 } 
 //variabele led en time resetten 
 led = 2;  
 vorigeTijd = huidigeTijd; 
 }
 
// De toestand van de bewegingsensor wordt uitgelezen 
 schakeltoestand = digitalRead(schakelPin);
 
// Als de toestand van de bewegingsensor is verandert  
// worden alle 6 leds uitgeschakeld en begint alles weer opnieuw 
  
 if (schakeltoestand != vorigeSchakeltoestand) { 
 for (int x = 2; x < 7; x++) { 
 digitalWrite(x, LOW); 
 } 
 // led en timer resetten en de schakeltoestand opslaan 
 led = 2; 
 vorigeTijd = huidigeTijd; 
 vorigeSchakeltoestand = schakeltoestand; 
 } 
}