Paso 8: Sketch de Arduino
Este bosquejo es para la estación entera con el datalogger de Adafruit. Tan puede tener que ser modificado para requisitos particulares para su aplicación.
Aquí está el código relevante pluviómetro.
#define RainPin 5
Variable de lluvia
bool RainHigh = false;
const float LowAmt = 5.0; Cuando la lluvia es baja, toma este ml para viaje
const float HiAmt = 5.0; Cuando la lluvia es alto, lleva este ml viaje
Float RainAccum = 0.0; Acumulador de lluvia desde el comienzo de la muestra
void setup(void) {}
Lluvia get Inicio estado
Si (digitalRead(RainPin)==HIGH)
{
RainHigh = true;
}
otra cosa
{
RainHigh = false;
}
En configuración, determinar si la RainPin es alta o baja. Sólo determina que cubo es ascendente y el punto de partida para iniciar la cuenta de viajes para el albergue del cubo.
void loop(void)
{
Calculadora de la lluvia, busca lluvia continuamente
Busque bajo a alto
Si ((RainHigh==false) & & (digitalRead(RainPin)==HIGH))
{
RainHigh = true;
RainAccum += LowAmt;
}
Si ((RainHigh==true) & & (digitalRead(RainPin)==LOW))
{
RainHigh = false;
RainAccum += HiAmt;
}
En el bucle principal, buscar una transición del estado actual. Si se produce, entonces añadir la cantidad correcta de agua. Ahora en mi caso, tengo tanto fijado en 5 mL.
Mi bosquejo envía RainAccum al puerto serial y escribe en la SD cada 10 segundos. Me doy cuenta que 5 mL no significa mucho ni hace la cantidad cada 10 segundos pero para mis propósitos funciona.
Aquí están algunos cálculos para el pluviómetro.
2,54 cm = 1 pulgada (exactamente)
Diámetro del embudo de recogida es 5.5" o 13,97 cm.
Área es Pi * R2 o Pi * D24 o 23.762 o 153,28 cm2
Estados Unidos medidas lluvia en pulgadas por lo que sería en 23,763 o cm 389,333
Cm3 es igual a mL
1 pulgada de lluvia sería 389.33 mL.
5mL es aproximadamente 0,0128 pulgadas de lluvia
Ahora, puede utilizar la estación con sólo el software de Arduino usando al monitor serie. También el registrador de datos registra los mismos datos y un sello de fecha y hora a un archivo CSV.