Stap 8: Arduino code
De Memsic 2125 uitgangen pulsen die in lengte op basis van de versnelling variëren. Deze pulsen worden ingelezen met behulp van de functie van "pulseIn()", die als resultaat van de impulslengte in microseconden. Het gegevensblad Memsic levert een formule voor het omzetten van deze pulslengte tot versnelling (zie afbeelding uit gegevensblad).
Om te bepalen wat de drager doet, berekent de Arduino het bereik versnelling voor de verticale as (de as uitgelijnd met de zwaartekracht – deze as ziet de grootste verandering wanneer de drager beweegt) over een periode van ongeveer één seconde. Het doet dit door het vinden van de maximale en minimale waarden gedurende die tijd, dan neemt het verschil. De marges voor hardlopen, wandelen, en permanent nog zijn vrij verschillend; dus ik kan het instellen van drempels vast te stellen van de activiteiten (deze drempels zullen waarschijnlijk variëren van persoon tot persoon). In mijn geval, staande had nog steeds een aantal 0-0,15 g, lopen had een bereik van 0,15-0,30 g en lopen had een aantal > 0.30 g. Merk op dat ik in de code een factor 100 toegevoegd aan mijn waarden van de versnellingsmeter om te voorkomen dat met behulp van de praalwagens.
Nadat de code heeft vastgesteld de activiteit, de controle over de draad van GR dienovereenkomstig. Als de drager is stil, blijft de draad van GR uit; Als de drager is wandelen, het flitsen; en als de drager het draait brandt.