Arduino Numitron Cigar Box personlighet testare (7 / 15 steg)
Steg 7: Arduino kod: genomsnitt tryck sensordata
Den nästa bit kod jag skulle vilja förklara är hur vi fånga sensor tryckmätning och konvertera dem till 1-9 värden. Denna kod är ändrade från Arduino utjämning handledning som du kan läsa direkt.
Upp i början av koden (som förhoppningsvis du hämtat i det sista steget och tittar på i Arduino IDE), finns det några rader definierar saker vi behöver hålla reda på för våra enkla matematiska. De omfattar:
- CONST int numReadings = 10; det blir 10 avläsningar av trycksensorn
- int avläsningar [numReadings]; avläsningar från analog ingång kommer att lagras här
- heltal index = 0; index för den aktuella behandlingen
- int totala = 0; den löpande summan av avläsningarna som sensor
- int medelvärde = 0; genomsnittet av sensormätningar
- int inputPin = A0; Detta är fsr sensorn på analoga pin A0
Den kod som tar trycket sensormätningar och butiker och medelvärden dem har att vara blandat med lite kod som gör att numitron räkna ner från 9 till 0 och göra lysdioder Stäng av en i taget. Det är koden i bilden ovan. Jag försökte kommentera den väl, rad för rad. I grund och botten mikrokontroller håller 10 avläsningar i en matris och subtraherar den äldsta behandlingen och lägger sedan till en ny i. Sedan det genomsnitt alla 10 avläsningar och lagrar detta nummer i ett ställe som heter "genomsnittliga". Detta är viktigt eftersom vi behöver det nummer du tilldelar ett värde från 1-9. Det gör detta en gång sedan går vidare till nästa del av koden.
Nästa del av koden skickar sekvenser 1 och 2 till de två SKIFT register. Numitron räknar ner och lysdioderna tänds och sedan skilja sig själv en i taget (se föregående steg om sekvenser). Efter att skicka ut en del av händelseförloppet, det väntar några belopp av tid (jag sätta den till 600 millisekunder) sedan gör det igen - vilket betyder att den subtraherar värdet äldsta tryck, tar tag i en ny, beräknar en ny medel och visar nästa del av sekvensen. Det gör detta 10 gånger och då finns denna del av programmet eftersom det blev tillsagd att göra det 10 gånger med denna kodrad i början av detta avsnitt:
för (int n = 0; n < 10; n ++)
Om detta är förvirrande, eftersom det var till mig först, bara inse att det för uttalandet ovan har en {efter det som börjar den lilla slingan och sedan finns en} i slutet av slingan och slingan innehåller både tryck sensor grejer och numitron countdown grejer.