Antwoord op mijn eigen recentste bijdrage.
Ben je al wat verder, of ben je nu aan het genieten van het lekkere weer (eindelijk de BBQ tevoorschijn halen) ?
Ik antwoord op vragen onder anderen op dit board, omdat die mij ook tot nadenken aanzetten.
En dat ervaar ik dan meestal als ontspanning.
Zo ben ik er gisteravond laat nog even voor gaan zitten en heb voor mezelf wat in elkaar gefrutseld dat wel ongeveer doet waar jij naar vroeg en wat ik in mijn eerdere antwoorden bedoelde.
Een paar weken geleden heb ik voor iemand hier op het board een sketchje in elkaar gedraaid dat alle mogelijke tekens van het LCD van mijn LCD keypad shield laat zien.
Dat gebeurt door op de pijltjes toetsen te drukken, waarna het volgende of vorige teken getoond word samen met zijn decimale waarde.
Zo kwam ik er achter dat waarde 126 een pijltje naar rechts is, en waarde 127 een pijltje naar links.
Je kunt dus een pijltje op je scherm zetten door de waarde 126 naar de LCD te sturen i.p.v. de tekst ">" (dat is een pijltje zonder steeltje, 126 heeft wel een steeltje.
Aan de hand van de sketch waarmee ik die tekens opzocht, heb ik een indeling van 2 x 2 gemaakt op het 1602 scherm.
Omdat dit dus minder regels met minder tekens zijn, kan bij mij de tekst niet groter zijn dan 6 tekens (7 als het moet), en heb ik dus maar 2 regels.
Daarom zijn er 4 menu items.
Dat zijn Item1, Item2, Item3 en Exit.
Het kostte me ongeveer een uur om het navigeren onder controle te krijgen.
Daarbij kwam het pijltje op de juiste plaats terecht, en werd het oude pijltje verwijderd.
Met de toetsen pijltje op/neer navigeer ik nu naar de menu items.
Item2 staat onder Item1 en Item3 staat naast Item1.
Als ik voorbij Item4 (Exit) kom, kom ik terug bij Item1.
Het heeft me ongeveer anderhalf uur gekost om dat te maken.
Ik ben erg gecharmeerd van switch...case en dat kwam mooi van pas bij dat navigeren.
Vandaag heb ik een functie bedacht die ik met dat menu moest kunnen bedienen.
Item3 is nu gepromoveerd naar Dim.
Wanneer ik naar Dim ben gegaan (en alleen dan), kan ik met de pijltjes links / rechts het nivo van de LCD verlichting regelen in stapjes van 8.
Dat laatste omdat anders het verschil tussen de stappen veel te klein is.
De waarde van het Dim signaal kan niet lager worden dan 0 en niet hoger dan 255, want anders raakt het een en ander in de war.
Vanwege de beperkte ruimte is niet te zien welke Dim waarde er geldig is.
Het koste me iets meer moeite en de hulp van serial.print en de serial monitor om dat goed te krijgen, omdat er meerdere zaken gecontroleerd moeten worden voor je de dimmer gaat bedienen en een if... statement met 2 voorwaarden heb ik ook niet eerder in de praktijk gebracht.
Aangezien ik zelf ook een beginner ben (iets meer dan een half jaar bezig met Arduino en met "echt" programmeren), zijn dit ook leuke en leerzame oefeningen voor mij.
En dit ga ik zeker ook eens in een projectje gebruiken.
Volgende dat ik ga proberen is de Exit functie, waarbij ik dan op Exit moet gaan staan om dan op Select te drukken.
Na dat Select dient er iets anders op mijn scherm te verschijnen en pas als ik weer op Select druk zou dan het menu weer tevoorschijn moeten komen.
Er zijn nog wel wat dingen die ik hier kan uitproberen, zoals het gaan naar een tweede menu en zo.
En het menu dat ik nu gemaakt heb, moet eigenlijk in void.Menu dat dan op zijn beurt weer aangeroepen moet worden enzovoorts.
Maar eerst moet ik deze sketch een beetje opruimen omdat er nu al allerlei zaken uit vorige experimenten door mekaar staan.
Zo zie je maar dat jouw vragen ook anderen helpen, zelfs terwijl zij jou helpen.