Arduino baserat dörr Minder för dragiga hus. (2 / 5 steg)
Steg 2: programvara
Koden är inte komplicerat. Det finns de vanliga funktionerna Funna i någon Arduino skiss. Det finns också vissa förprocessordirektiv att förklara några magiska siffror och möjliggör en debug vs operativa kompilera koden.
Funktionen setup() initialises förnuft och produktionen stift samt de globala variablerna.
Funktionen loop() utför operativa arbete. Huvuddelen av loop funktion utförs endast varje 50 ms för att ge en stabil tid bas för resten av koden. På den 50 ms tidsperioder reed switch staten är prov med hjälp av den definierade SENSE_PIN digitala ingången. (digital pin 2). Om växeln reed visar att dörren är stängd sedan inga andra betydande åtgärder vidtas än att återställa tidsperioden.
Vid tillfälle om växeln reed anger att dörren är öppen då indata är de studsade. Det vill säga, har dörren till registren så öppen för 5 eller fler på varandra följande prover innan några åtgärder vidtas.
När sensorn indata har varit de studsade sedan den totala tiden dörren har varit öppen registreras.
Med en rad tester för olika tidsperioder utförs en sekvens av signaler av olika längder och siffror.
Den första beep uppstår när dörren öppnas. En annan på 15 sekunder och sedan igen på 30 sekunder. Då var 30 sekunder efter det till 3 minuter har passerat. Det finns ett pip på 4 minuter. På fem minuter finns ett pip och sedan dörren bildskärmen ger upp och går tyst eftersom det är uppenbart att förövaren inte längre finns eller bryr sig inte.
Piper produceras av en funktion som kallas buzz(), vilket genererar ett set 1000Hz tonen i en viss tid och ett visst antal gånger. Tonen skickas ut på BUZZER_PIN som i detta fall att digital utgång 7.
Någon beep cykel önskas verkligen kan programmeras. En smärre ändring av koden kan också producera olika pipsignaler.
Att hålla i denna programvara är ungefärliga. Det finns förseningar i drift varje gång ett pip uppstår. Projektet följer en dörr snarare än tiden för 100m freestyle simning i olympiska spelen så approximerar är emellertid tillräcklig för ändamålet.