Stap 7: Arduino code: gemiddeld de druk sensor data
Het volgende stukje code die ik wil uitleggen is hoe we vangen de druk sensor lezingen en hen omzetten in 1-9-waarden. Deze code wordt gewijzigd van de Arduino Smoothing tutorial die u direct kunt lezen.
Tot in het begin van de code (die hopelijk u gedownload in de laatste stap en bekijkt in de Arduino IDE), zijn er enkele regels definiëren van dingen die we nodig om bij te houden voor onze eenvoudige wiskunde. Zij omvatten:
- Const int numReadings = 10; Er zullen 10 lezingen van de druksensor
- int lezingen [numReadings]; de lezingen van de analoge ingang zal hier worden opgeslagen
- int index = 0; de index van de huidige lezing
- int totaal = 0; het lopend totaal van de sensor lezingen
- int gemiddelde = 0; het gemiddelde van de sensor lezingen
- int inputPin = A0; Dit is de sensor van de fsr op analoge pin A0
De code die neemt de druk sensor lezingen en de winkels en de gemiddelden hen heeft worden vermengd met wat code die de numitron zal tellen naar beneden van 9 tot 0 en de LEDs uitschakelen één filter tegelijk maken. Dat is de code in de afbeelding hierboven. Ik heb geprobeerd om aantekeningen maken het goed, lijn door lijn. Kortom, de microcontroller houdt 10 lezingen in een array en het trekt de oudste lezing en voegt een nieuwe in. Vervolgens berekent het gemiddelde van alle 10 lezingen en dat getal wordt opgeslagen in een plaats genaamd 'gemiddeld'. Dit is belangrijk omdat we dat nummer moeten toewijzen van een waarde van 1-9. Het doet dit keer dan wordt verplaatst naar het volgende deel van de code.
Het volgende deel van de code stuurt sequenties 1 en 2 naar de twee shift-registers. De numitron telt naar beneden en de LEDs oplichten en dan onderscheiden zich op een moment (zie vorige stap over sequenties). Na het verzenden van een deel van de reeks, het één of andere hoeveelheid tijd (ik stel het op 600 milliseconden) wacht dan doet het weer - wat betekent dat het trekt de oudste waarde van de druk af, pakt een nieuwe transactie, wordt een nieuwe gemiddelde berekend en toont het volgende deel van de reeks. Het doet dit 10 keer en dan bestaat dit deel van het programma, omdat het werd verteld om dit te doen 10 keer gebruiken deze regel code aan het begin van deze sectie:
voor (int n = 0; n < 10; n ++)
Als dit verwarrend aan u, zoals het was voor mij op het eerste, gewoon erkennen dat de verklaring hierboven heeft een {erachter dat de kleine lus begint en dan is er een} aan het eind van de lus en de lus bevat zowel de druk sensor spul en het spul van de countdown numitron.