Paso 4: Podómetro teoría y diseño de Software
Teoría de la operación:
El voltaje del podómetro que van al Arduino analógico 3 es aproximadamente 1.2VDC. Cuando los pasos del usuario, el voltaje cae a cerca de cero. El software de Arduino detectará esto y contar esto como un paso.
Diseño de software:
El software debe leer los datos de la temperatura y humedad sonda y el podómetro, luego ingresar a la tarjeta SD. El software determinará la frecuencia de datos de registro en la tarjeta SD. Este software está programado para 10 muestras segundo. Esto puede modificarse cambiando el valor de LOG_INTERVAL (10.000 significa 10.000 milisegundos que es de 10 segundos).
Lectura de temperatura y humedad se puede hacer una vez para cada registro.
Problema: El podómetro tiene que vigilarse muy continuamente como un paso puede ocurrir en cualquier momento. (Esto se llama un evento asíncrono).
Solución: Tuve que reescribir el programa de ejemplo para que el podómetro se muestrea constantemente y se recopilan los datos hasta llegar a la LOG_INTERVAL (10 segundos), luego los sensores de temperatura y humedad son muestreados y todos los datos y el tiempo escrito en la tarjeta SD.
Aquí le damos las partes importantes del lazo de software.
StartTime=millis();
}
void loop(void)
{
Podómetro MTS lee acerca de 1.2V abierto = 245 puntos
Si (analogRead(PedoPin) < 50) / / .245V
{
StepCnt += 1;
TotalCnt += 1;
Delay(300); .3 seg de retraso
}
Si ((millis()-StartTime)>long(LOG_INTERVAL))
{
Código que escribe en el archivo de registro
StepCnt = 0;
StartTime = millis();
}
Teoría: Antes de inicia el bucle, StartTime Lee millis() que es el número de milisegundos desde el Arduino fue encendido o reset.
El podómetro se lee, si está cerca de cero, entonces StepCnt y TotalCnt se incrementan.
Esto se repite hasta que millis() es 10 segundos o mayor que StartTime.
Transcurrido los 10 segundos, el tiempo real, temperatura, humedad, StepCnt y TotalCnt se escriben en el archivo de registro.
La StepCnt se establece en cero (para que se registran cuentas sólo entre muestras)
StartTime se establece en millis(), por lo que puede medirse el intervalo siguiente 10 segundo.
Se repite todo el proceso.
El archivo creado en la tarjeta SD está etiquetado como loggerxx.csv donde xx es un número a partir de 00, p. ej., la primera será logger00.csv.
CSV significa que el archivo está escrito como comas valores separaron y pueden leerse directamente en el software Excel. También se puede leer por Google docs (libre) y Open Office (gratis).