Arduino väderstation Del3, regn (8 / 9 steg)
Steg 8: Arduino skiss
Denna skiss är för hela Väderstationen med Adafruit datalogger. Så kan det ha att anpassas till dina egna program.
Här är den relevanta REGNMÄTARE koden.
#define RainPin 5
Regn variabel
bool RainHigh = false;
CONST float LowAmt = 5.0; när regnet är låg, tar denna ml till resa
CONST float HiAmt = 5.0; när regnet är hög, tar denna ml att resa
flyta RainAccum = 0,0; Regn ackumulator sedan början av provet
void setup(void) {
Regn få start staten
om (digitalRead(RainPin)==HIGH)
{
RainHigh = sant;
}
annat
{
RainHigh = false;
}
I setup avgöra jag om RainPin är hög eller låg. Detta anger bara vilken hink är upp och utgångspunkten för att börja räkna tips av skopan.
void loop(void)
{
Regn kalkylator, ser för regn kontinuerligt
Leta efter låg till hög
om ((RainHigh==false) & & (digitalRead(RainPin)==HIGH))
{
RainHigh = sant;
RainAccum += LowAmt;
}
om ((RainHigh==true) & & (digitalRead(RainPin)==LOW))
{
RainHigh = false;
RainAccum += HiAmt;
}
I de viktigaste loop ser jag en övergång från det nuvarande läget. Om det förekommer, lägger jag rätt mängd vatten. Nu i mitt fall har jag dem båda är inställda på 5 mL.
Min skiss skickar RainAccum till den seriella porten och skriver det till SD var 10 sekunder. Jag inser 5 mL inte betyder mycket och varken gör beloppet som var 10 sekunder men för mina syften fungerar.
Här är några beräkningar för regnmätaren.
2,54 cm = 1 tum (exakt)
Diameter samlar tratt är 5,5" eller 13.97cm.
Området är Pi * R2 eller Pi * D2/4 eller 23,76 i2 eller 153.28 cm2
USA: s åtgärder regn i tum så det vore 23.76 i3 eller 389.33 cm3
Cm3 är samma som mL
Så 1 tum regn vore 389.33 mL.
5mL är ungefär 0.0128 inches regn
Nu kan du använda Väderstationen med bara Arduino programvaran använda följetong monitor. Datalogger registrerar också samma data plus en datum- och tidstämpel till en CSV-fil.