Stap 4: Upload de Software
De software heeft drie hoofdfuncties:A. presenteren de gebruiker met een fundamentele UI om te selecteren of u wilt:
- Display de X, Y, Z lezingen
- Record de X, Y, Z lezingen
- Wissen van de flash-chip
- Weergeven hoeveel 256-byte-pagina's zijn geschreven naar de flash-chip
B. Lees de versnellingsmeter zo snel mogelijk
C. de gegevens schrijven naar Flash
Het grootste deel van de code is gewijd aan de UI. Het was een leuk proces leren hoe te gebruiken LCD-bibliotheek die wordt geleverd met de bovenste schild. De zes knoppen op het schild Stuur een analoge spanning naar de analoge 0 pin van de Uno. Dit is een mooie gladde alternatief voor debouncing van drukknoppen (als u niet waarom dat is uitdagend weet, zult u sommige dag!). Code van het besturingselement is niet zo moeilijk om je hoofd rond. Omhoog/omlaag bladeren door de menuopties, rechts selecteert, en Reset net herstart de Arduino. Heel eenvoudig.
Weergavemodus
In de weergavemodus, wordt een tekenreeks verzonden naar de LCD met de X-, Y- en Z-lezingen in milli-gs. De convert() functie schaalt de lezingen van 0-5V aan gs. Aangezien 0g wordt gedefinieerd als 1.65V door de vervaardiging, en de totale Arduino analoge trouw van 0-5V wordt gemeten in 1024 stappen, de vergelijking is 5V/1024 * X - 1.65V = g.
Opnamemodus
In opname mode is de weergave niet bijgewerkt. In plaats daarvan, is de ruwe analoge gegevens geschreven naar het flash-geheugen met behulp van een pagebuffer-klasse. Elke keer als 256 bytes worden verzonden naar de klasse, het branden uit een pagina schrijven naar de flash-apparaat en swaps in een nieuwe buffer. Deze klasse is een verbetering ten opzichte mijn vorige code in mijn anemometer instructable.
Modus wissen
Modus Wissen wist gewoon de flash-chip.
Display's gebruikt modus
Pagina's gebruikt laat zien hoeveel pagina's zijn ingevuld in de flash-apparaat. Omdat de eerste byte van elke pagina is altijd ingesteld op 0, kan de code naar een nieuwe verse pagina vooruit na reset. Dit kunt u het apparaat aan en uit zetten en nog steeds blijven schrijven waar deze was gebleven.
* Opmerking: naast de Arduino core library (voor dingen zoals SPI en digitalWrite()), je moet het toetsenblok LCD-bibliotheek. Het is beschikbaar op de website van de DFRobot.
** Opmerking #2: Ik heb niet uitgelegd hoe te downloaden van de gegevens af van de flash-chip. Dat komt in een ander instructable. Ik heb een speciale bord met een USB-aansluiting die gegevens uit deze chips leest. Een dag ik Verplaats naar SD-kaarten en mijn leven gemakkelijker te maken.