dinsdag 10 april 2018

Verslag AutiMakerCafé 9 april

Vandaag was Jeffrey gekomen en we hebben samen een terugtelklok geprogrammeerd in C++.

Ik ben namelijk bezig met het maken van een escaperoom en één onderdeel daarvan is de klok die terugtelt van 60 minuten naar 0.

Hiervoor had ik een nixie tube shield aangeschaft. Dat is een Arduino shield met zes buisjes met cijfers er in.

Nixie tube shield

Wanneer je de firmware (Arduino C++) er in laadt, dan heb je een prima GPS-gesynchroniseerde  klok met datum, alarm en temperatuurweergave. Maar dat heb ik allemaal niet nodig, de klok moet alleen terugtellen.

Jeffrey en ik hebben dus alles in de hoofd-loop geschrapt en dit programma gemaakt:

void loop() {
mySeconds = (3600000 - millis()) / 1000;
myDisplayMinutes = mySeconds / 60;
myDisplaySeconds = mySeconds % 60;
myHundredsOfASecond = ((3600000 - millis()) / 10) % 100;
if(myDisplayMinutes <= 9){
  myDisplayMinutesString = "0"+ String (myDisplayMinutes);
}

else {
  myDisplayMinutesString = String (myDisplayMinutes);
}
if(myDisplaySeconds <= 9){
  myDisplaySecondsString = "0"+ String (myDisplaySeconds);
}
else {
  myDisplaySecondsString = String (myDisplaySeconds);
}
if(myHundredsOfASecond <= 9){
  myDisplayHundredsOfASecond = "0"+ String (myHundredsOfASecond);
}

else {
  myDisplayHundredsOfASecond = String (myHundredsOfASecond);
}
Serial.print("sec = ");
Serial.println(myDisplaySecondsString);
stringToDisplay =  (myDisplayMinutesString) +  (myDisplaySecondsString)+myDisplayHundredsOfASecond;
doIndication();
delay(10);


Dit maakt gebruik van de functie millis() die het aantal milliseconden bijhoudt sinds het starten van het programma. Door dit af te trekken van 3.600.000 (1 uur in milliseconden) ontstaat de tijdsaanduiding van de klok.

Jeffrey programmeert de Arduino

Ik blij met mijn klokje
In de video zie je hoe de klok opstart en aftelt.