Stap 4: Stappenteller theorie en ontwerp van Software
Theorie van de operatie:
De spanning van de stappenteller gaat naar de Arduino analoge 3 is ongeveer 1.2VDC. Wanneer de stappen van de gebruiker, de spanning daalt tot dicht bij nul. De Arduino software zal dit detecteren en telt dit als een stap.
Het ontwerp van de software:
De software moet de gegevens van de temperatuur en vochtigheid sonde en de stappenteller leest, dan Meld u het op de SD-kaart. De software zal bepalen hoe vaak gegevens registreren op de SD-kaart. Deze software is ingesteld voor 10 tweede monsters. Dit kan worden gewijzigd door de waarde van LOG_INTERVAL (10.000 middelen 10.000 milliseconden die 10 seconden) te wijzigen.
Het lezen van de temperatuur en vochtigheid kan worden gedaan eenmaal voor elke logboekvermelding.
Probleem: De stappenteller moet worden gecontroleerd vrij voortdurend als een stap op elk gewenst moment kan optreden. (Dit heet een asynchrone event).
Oplossing: Ik moest het steekproefprogramma te herschrijven zodat de stappenteller is voortdurend bemonsterd en gegevens worden verzameld totdat de LOG_INTERVAL (10 seconden) is bereikt, dan de sensoren voor temperatuur en vochtigheid worden bemonsterd en al de gegevens plus de tijd wordt weggeschreven naar de SD-kaart.
Hier is de grote delen van de software-lus.
StartTime=millis();
}
void loop(void)
{
MTS stappenteller leest over 1.2V open = 245 graven
Als (analogRead(PedoPin) < 50) / / over .245V
{
StepCnt += 1;
TotalCnt += 1;
delay(300); .3 sec vertragen
}
Als ((millis()-StartTime)>long(LOG_INTERVAL))
{
Code die naar het logboekbestand geschreven
StepCnt = 0;
StartTime = millis();
}
Theorie: Voordat de lus wordt gestart, leest StartTime in millis() die het aantal milliseconden sinds de Arduino was ingeschakeld of op beginstand zetten.
De stappenteller is lezen, als het is dicht bij nul, dan StepCnt en TotalCnt zijn verhoogd.
Dit wordt herhaald totdat millis() 10 seconden is of meer dan StartTime.
Wanneer de 10 seconden is verstreken, de real-time, temperatuur, vochtigheid, worden StepCnt en TotalCnt geschreven naar het logboekbestand.
De StepCnt is ingesteld op nul (zodat alleen graven tussen de monsters worden vastgelegd)
StartTime is ingesteld op millis(), zodat de volgende 10 tweede interval kan worden gemeten.
Het hele proces wordt herhaald.
Het bestand gemaakt op de SD card heet loggerxx.csv waarbij xx staat voor een nummer beginnend met 00, bijvoorbeeld de eerste zal worden logger00.csv.
CSV betekent dat het bestand is geschreven en door komma's gescheiden waarden rechtstreeks in Excel software kan worden gelezen. Deze kan ook worden gelezen door Google docs (gratis) en Open Office (gratis).