Ik was van plan niet meer te reageren, omdat cartoonist en ik het nooit eens zullen worden wat dit betreft.
Maar gezien Koen_P_Belgium's reactie kan ik het toch niet laten.
Koen is zo te zien inderdaad wel op de hoogte van elektronica, maar dat programmeren is toch wel erg nieuw allemaal.
Hij verklapt dat ie weet wat debounce is, en dat hij daar ook wel hardware oplossingen voor kent.
Maar ook dat ie geen idee heeft hoe dat dan in software opgelost kan worden.
Ik heb geen concrete oplossingen of code gegeven, alleen verteld dat zaken ook op een andere, maar mijn idee veel eenvoudiger manier bereikt kunnen worden.
Met name over het gebruik van interrupt heb ik een en ander vermeld, in relatie tot beginners (in programmeren).
Daar sta ik nog steeds achter en cartoonists laatste toelichting overtuigt mij niet.
@Koen_P_Belgium:
Ik bedoel dat jij nog niet toe bent aan het gebruik van interrupts.
In de eerder (niet door mij) geplaatste code word gebruik gemaakt van een interrupt om de hartslag te monitoren.
Op het moment dat je klok ic een hartslag puls geeft, moet je Arduino alles laten stoppen wat ie op dat moment aan het doen is, om te registreren dat het hart zojuist geklopt heeft.
Als dat eenmaal geregistreerd is, dan gaat de Arduino weer verder met waar ie mee bezig was.
Ergens in de code word dan gekeken of die hartslag al gezien is, en alleen in dat geval word er gekeken en afgebeeld hoe het er met de klok voor staat.
Daarmee word voorkomen dat de klok een groot aantal malen word uitgelezen en afgebeeld, terwijl er helemaal niets veranderd is in wat er uitgelezen en afgebeeld moet worden (alles inclusief de secondes zijn nog niet veranderd).
Het is een heel goed idee om niet veranderde gegevens niet voor niets uit te lezen en ook niet voor niets opnieuw af te beelden, wantr dan ben je eigenlijk alleen maar druk bezig met niets.
Het commentaar dat ik in jouw, deze thread gaf was niet aan jou gericht maar aan mensen die je proberen te helpen.
Ik heb hele grote vraagtekens en moeite bij hulp door aanleveren van een code, met de mededeling "probeer dit eens, dat moet werken".
Die hulp gebeurt zonder twijfel met de beste bedoeling, maar als degene die geholpen word het met dank aanneemt, maar ondertussen geen idee heeft wat ie nu heeft en hoe het werkt, is die dan wel geholpen ?
In de aangeleverde code zitten stukken die in meer of mindere mate discutabel zijn.
Daar is wel een opmerking over gemaakt dat het even snel gemaakt is, maar daarmee is de kans op verwarring en moeite om het te begrijpen groot, en er worden dingen aangeleerd die beter anders kunnen.
Hier heb ik het met name over het toepassen van delay() en de mededeling dat dat mede als doel heeft te debouncen.
Dat is gewoon niet wat daar gebeurt, want als je wil weten of een schakelaar op twee momenten dezelfde stand heeft, dan moet je er ook twee keer naar kijken (en dat gebeurt dus niet).
Het mooie van Arduino is nou juist dat je heel veel kunt doen zonder extra externe componenten.
Dat je weet hoe je het hardwarematig kunt oplossen kan je ook helpen begrijpen hoe het in software op te lossen, en das mooi meegenomen voor jou.
Je kunt op een andere manier dingen een tijdje wel of niet doen, dus zonder gebruik te maken van delay().
Daarvoor moet je meer dingen bijhouden, en een ding daarvan is zeg maar de systeemtijd.
De delay() functie maakt ook gebruik van die systeemtijd, maar doet ondertussen bijna niets anders dan wachten en kijken of de opgegeven tijd al verstreken is.
Je kunt ook doorgaan met het verwerken van code en dan regelmatig kijken of de tijd al verstreken is.
Hoe dat gaat, is beschreven in het voorbeeld "blink without delay", en als je goed kijkt zie je dat ik daar onder aan iedere post ook naar verwijs, en das niet voor niets.
Ik heb in mijn eerdere commentaren verteld dat je daarom beter geen delay gebruikt, maar ook geen while.
En dat zit wel in de aangeleverde code.
Als je dit niet wist, dan ben je in mijn ogen een beginner.
Sterker nog, nu na 2 jaar sinds ik begon met spelen met de Arduino vind ik mezelf ook nog een beginner, of in ieder geval zeker geen routinier.
Omdat ik in de vorige eeuw ook wel eens een beetje gesnuffeld heb aan programmeren, en daarbij ook interrupts ben tegengekomen, weet ik wel wat dat is, en waar het voor gebruikt kan worden.
Maar ik heb ze nog niet hoeven toepassen in mijn Arduino experimenten tot nog toe.
Ik ben nu zelf op het punt waar ik probeer om functies (zoals die bij C++ bekend zijn) goed te begrijpen, maar ik heb ook geen haast met het leerproces.
Het meeste leer ik nog van de vragen die ik lees en regelmatig probeer te beantwoorden hier op het forum.
Maar genoeg over mij.
Als je cartoonists code begrijpt en daarmee verder wil gaan dan is dat prima.
Als je het niet begrijpt maar dat wel wil, dan moet je dat aangeven en proberen aan te geven waar je het kwijtraakt.
Als je hulp wil die een andere richting op gaat dan moet je dat ook aangeven en ik zal je daar ook bij proberen te ondersteunen.
Maar ik zal je geen kant en klare code aanreiken.
Wel zal ik jouw code bekijken en er op of aanmerkingen op maken en eventueel een stukje voorbeeld of aanpassingen bij geven.
Maar als het je eigen werk is, zul je er ook zelf het beste van leren en daar is het mij om te doen.
Anders zien we je bij een volgend maar vergelijkbaar project weer en dan waarschijnlijk een beetje meer gefrustreerd.
Ik hoop dat anderen je daarbij ook ondersteunen, want de kracht van zo'n forum als dit is nou juist dat er meerdere mensen en dus meningen en ervaringen kunnen helpen.
Als je de DHT sensor ook in je klok gaat gebruiken, kun je er ook een extra nixie buis bij plaatsen die de symbolen voor de afgebeelde grootheden kan weergeven, zoals dit bijvoorbeeld (gewoon ff opgezocht met Google).
Veel succes met je verdere Arduino avonturen, inderdaad houd ons op de hoogte.