## Ronde 1

Doelstelling ontwerp:

Ik wil een wake-up light maken. Dat wil zeggen een wekker waarbij als de ingestelde tijd is aangebroken er een lamp steeds feller en steeds witter gaat branden. Als het goed is wordt de persoon die slaapt dan ook wakker daardoor. Ik wil kunnen meten of dit ook zo is.

Pakket van eisen

- Er moet een tijd lopen op een klok
- Er moet een alarmtijd ingesteld kunnen worden
- Er moet een lamp aan kunnen gaan met een variabele felheid en kleur
- De persoon die wakker wordt moet ergens op kunnen drukken om aan te geven dat hij/zij wakker is.
- Dit moet door het systeem opgeslagen worden op een SD-kaart, zodat ik de prestaties van de lamp kan onderzoeken.

Deeluitwerkingen

Ik begin met de klok die moet lopen. Ik wil de uren en minuten laten zien, en een uur moet ook echt een uur duren, anders is de klok niet lang 'houdbaar'. Ik start met de code en check deze in de seriele monitor van arduino. Daardoor hoef ik me nog even niet druk te maken over de display.

Ontwerp:

long int mins = 0;
long int hrs = 0;
long int seconds = 0;

void setup() {
// put your setup code here, to run once:
Serial.begin(9600);

}
void loop() {
delay(1000); //hier verstrijkt 1000ms, dat is dus 1 seconde
//long int t1 = millis(); //deze regel staat nu even uit
seconds = seconds +1;
if(seconds==60){
seconds = 0; // als het aantal seconde 60 wordt, reset hem naar 0 en doe de minuten +1
mins = mins+1;
}
if(mins==60){
mins = 0; // als het aantal minuten 60 wordt, reset hem naar 0 en doe de uren +1
hrs = hrs+1;
}
if(hrs==24){
hrs=0; //als het aantal uren 24 wordt, reset hem naar 0
}
//long int t2 = millis(); //deze regel staat nu even uit
//long int calctime= t2-t1; //deze regel kan ik aanzetten als ik wil weten wat de tijd is die verstrijkt tussen deze regel en de regel onderaan de code. Stel dat dat te lang is, dan moet ik de delay aanpassen
Serial.print (hrs);
Serial.print(" ");
Serial.print(mins);
Serial.print(" ");
Serial.print(seconds);
Serial.print(" ");
//Serial.println(calctime);
}

De klok in werking https://youtu.be/nmrz2QJYan4

Evaluatie

De klok doet het. Ik wilde eerst iets doen met het vastleggen van een tijd, en dan als die tijd een minuut geleden was, de minuten +1 doen, maar dat bleek veel te veel geklooi op te leveren. Daarom heb ik gekozen voor een delay. Mocht de code later nou zo ingewikkeld worden dat het uitvoeren van de code lang duurt (waardoor de tijd van 1 seconde op de klok dus 1000ms PLUS de verwerkingstijd van de code zou duren) heb ik twee regels ingebouwd waarmee ik kan meten hoe lang de code duurt. Als het dan nodig is kan ik de delay verkleinen om voor de verwerkingstijd van de code te corrigeren. Op naar de display en de knopjes!