Elektroniska TattleTale / kylskåp Monitor (8 / 13 steg)
Steg 8: Väsnas
När du har ljus/mörk sensorn fungerar hur du vill ha det kan du skapa två funktioner för att göra arbetet som summern. Funktionen playTone() hanterar av ljudet. Funktionen warningTone() anropar funktionen playTone() för att mata de specifika ljud för vår krets. Sedan för att testa ljud funktioner kan vi ändra funktionen loop() att mata olika toner för ljus och mörka förhållanden.
void playTone (uint8_t nPin, uint16_t nFreq, uint16_t nDuration)
{
Om frekvens och varaktighet är noll, stoppa alla toner
om ((nFreq == 0) || (nDuration == 0))
{
noTone(nPin);
}
annat
{
Output angivna tonen för den angivna tid
tonar (nPin, nFreq, nDuration);
Eftersom vi behöver tonen ska ske synkront vänta vi den till slut
Delay(nDuration);
}
}
void warningTone (uint16_t nFreq, uint16_t nDuration, uint8_t nCount)
{
Ställer in en loop räknare
int n = 0;
Medan loop räknaren är lägre än det angivna antalet...
medan (n ++ < nCount)
{
... spelar angivna tonen.
playTone (BUZZER_PIN, nFreq, nDuration);
om vi kommer att upprepa, gör en kort paus så tonar inte köra tillsammans.
om (n < nCount)
{
Delay(250);
}
}
}
void loop()
{
om (lightCheck() == "Ljus")
{
warningTone (OPEN_WARNING_TONE, OPEN_WARNING_DURATION_MS, 1);
}
annat
{
warningTone (TEMP_WARNING_TONE, TEMP_WARNING_DURATION_MS, TEMP_WARNING_REPEAT);
}
Bean.Sleep(500);
}