Solar-georiënteerd, Arduino-Powered Klok (3 / 10 stap)

Stap 3: Software - menusysteem


Het eerste ding dat ik ontwikkelde met het systeem menu en instelling. Maken van de menu's is eenvoudig - gewoon verhogen of verlagen van een matrixindex en lees vervolgens de tekenreeks uit flash met de PROGMEM-richtlijn. Ik veronderstel er waren genoeg paar snaren kon je zet ze gewoon in RAM, maar het gebruik van FLASH indien mogelijk is een goede gewoonte.

Het echte werk was het systeem van de instelling. Ik wilde zitten kundig voor elke waarde per teken. Sommige van de nummers, zoals lengte- en breedtegraad 5-6 cijfers (het negeren van het decimaalteken) zijn - ik wilde niet te gebruiken een pers en change, methode, zelfs met een toename van de sprong op knop houden. Spreken van knoppen, dit project maakt gebruik van Button.h, die ik in eerste instantie gedacht had behandeld debouncing maar eigenlijk niet. Een betere keuze zou zijn Bounce.h. Het was genoeg om te gooien in een kleine vertraging in de knop polling lussen, aangezien de CPU zelf is niet iets anders te doen - de RTC tijd op zijn eigen houdt.

Dus hoe dan ook, is het eerste probleem van een teken instelling-systeem te weten waar de cursor is toegestaan om te gaan, dit wordt afgehandeld door een twee-dimensie array die slaat een 1 of een 0 voor elke positie op de VFD om aan te geven als de cursor er of niet is toegestaan. Zo niet, de cursor springt naar de volgende beschikbare plek of blijft op de laatste plek. Ik maakte liberale gebruik van gedefinieerde constanten zodat ik niet hoef te onthouden welke indexwaarde met met instelling matrix gaat.

Het tweede probleem van een teken instelling-systeem is het verwerken van gegevensvalidatie. Je zou denken dat het is zo simpel als opnieuw monteren van uw cijfers terug in de waarde en vervolgens doen een vergelijking tegen de max waarde, maar als u wilt blokkeren van de gebruiker uit te gaan naar de volgende waarde die u hebt om te zien wat die waarde + 1 om het getal als een geheel doen zou. Dat is niet slecht voor een paar cijfers, maar het is een puinhoop voor 5-6. Ik vond het gemakkelijker om een tweedimensionale matrix als de matrix positie om de max toelaatbare waarde per teken te houden. Dit kunt u controleren op basis van de index telkens als de gebruiker probeert te verhogen, en in combinatie met een cheque voor de max waarde als een geheel, dit de schendingen van de grenzen van de meeste vangt hetzelfde. Het zal nog steeds mogelijk voor de gebruiker soms het instellen van een ongeldige waarde. Het was ofwel dat, of veel meer code.

Langs dezelfde lijnen schelen kan me niet als de gebruiker heeft geprobeerd in te stellen op zoiets als 30 februari. U kunt toevoegen die soorten grenzen controleren als u wilt. Ik zal toegeven dat ik heb "project vermoeidheid" en dat soort dingen uit links.

Gerelateerde Artikelen

Arduino-powered LED klok

Arduino-powered LED klok

Een leuke, eenvoudige LED klok, die krijgt u de tijd tot de dichtstbijzijnde half uur met één kleur LED's. Onderdelen nodig zijn als volgt:Arduino Nano400 stropdas-punt BreadboardLintkabelDS1307 RTC IC32.768 kHz kristal(12) 10mm LEDs(12) 180 Ohm weer
Arduino Powered Nixie buizen: ArduiNIX Nixie stuurprogramma schild assemblage

Arduino Powered Nixie buizen: ArduiNIX Nixie stuurprogramma schild assemblage

www.ArduiNIX.com presenteert: ArduiNIX Nixie stuurprogramma schild assemblageHet schild van de ArduiNIX is een gebruiker programmeerbare platform voor het rijden multiplexed Nixie-buis of andere hoogspanning displays **. De ArduiNIX is opensource har
Arduino Powered Gainclone (versterker)

Arduino Powered Gainclone (versterker)

voor degenen onder u die niet weten (en ik heb niet tot voor kort), een Gainclone is een versterker die is een 'kloon' van het oorspronkelijke ontwerp van een versterker gemaakt door 47 Labs genaamd een Gaincard en zijn gebaseerd op één chip versterk
Arduino Powered Binary Clock

Arduino Powered Binary Clock

dit instructable zal u helpen bij het bouwen van een Arduino Binary Clock.  De orignial idee voor dit instructable werd ontworpen door Daniel Andrade.  Mijn instructable surface mount componenten gebruikt, maar kan gemakkelijk aangepast worden door h
Arduino Schaken klok - multi spel vak

Arduino Schaken klok - multi spel vak

CHECK OUT mijn andere projecten >>Wekker met infrarood- en Bluetooth-luidsprekersArduino stappenteller horloge, met temperatuur, hoogte en kompas!Hey mensen! Na het maken van een Arduino smartwatch net vorige week, kreeg ik veel klachten of tips, ee
3 channel arduino Powered Christmas verlichtingssturing!

3 channel arduino Powered Christmas verlichtingssturing!

Voor kerst dit jaar, die ik wilde maken van een echt cool project maar niet goed weet wat te maken. Zoals mij watertje getting de Christmas lights out om te versieren, was er een oude kapotte Kerstmis licht timer. Ik nam het uit elkaar en keek rond o
Arduino-Powered binaire Thermometer

Arduino-Powered binaire Thermometer

ik heb onlangs verworven een Arduino Uno en was op zoek naar een cool "getting started"-project. Heb ik besloten om een thermometer, als de kit heb ik alle nodige onderdelen (thermistor, draden, weerstanden, LEDs). Door middel van een paar itera
Nachtelijke emissies: Mijn Arduino Powered Internet ingeschakeld droom Generator

Nachtelijke emissies: Mijn Arduino Powered Internet ingeschakeld droom Generator

We moeten allemaal dromen meer dus ik deze Arduino Powered gemaakt heb "dream generator" om te helpen plant de zaden voor sommige grote denken-gekte.  Wanneer u nadert de generator een ultrasone sensor Maxbotix triggers lichten en muziek die tek
Analoge VU-meter en de klok (Arduino Powered)

Analoge VU-meter en de klok (Arduino Powered)

dit project brengt terug de oude tijd Analoge VU-Meter, met de toegevoegde functionaliteit van een nette uitziende klok! Wanneer u zwenking vandoor uw muziek swing de meter automatisch in op de klok. Achter is dit alles de populaire en makkelijk te g
Arduino powered Solar Battery Charger

Arduino powered Solar Battery Charger

Het volgende ontwerp is voor een zonne-acculader liep door een Arduino Nano. Het kan een standaard lood-zuur 12V batterij, zoals behandelen voor een scooter of een auto. Bovendien het ontwerp is getest en uitgevoerd met 90% efficiëntie onder 70ᵒC (15
Lithium accu Solar USB / iPhone / Arduino lader

Lithium accu Solar USB / iPhone / Arduino lader

Een van de meest leuke en nuttige projecten op instructables is het creëren van uw zeer eigen zonne-USB / iPhone-lader. Ze zijn niet al te moeilijk te maken, noch zijn de onderdelen overdreven duur of moeilijk te vinden. Voor het grootste deel doen z
Arduino Powered Home

Arduino Powered Home

Ik heb een paar updates in dit instructable sinds Aug 2014 ***Heb ik besloten om deze informatie te delen, zodat het anderen die hebben moeite helpen misschien om soortgelijke dingen met hun Arduino doen. Ik heb pas onlangs gekregen die betrokken zij
Interactieve Arduino Powered LED Ski's

Interactieve Arduino Powered LED Ski's

Ziek van de saaie duisternis van de nacht skiën? Vrees niet! Arduino programmeerbare interactieve LED Ski's zullen uw avond fleuren.Dit huis gebouwd van ski's hebben LEDs ingesloten onder de p-tex en bovenste blad. Een Arduino en versnellingsmeter co
Arduino binaire klok

Arduino binaire klok

Ik heb eindelijk het, de binaire klok de mensen om me heen hoorde me gesproken over voor zo lang. Ik probeerde om dit te maken tijdens de afgelopen kerstvakantie, maar tijd ontbrak, veranderde ik banen 2 keer in de afgelopen 6 maanden... dus dingen e