#include <timeObj.h>
#define LED_PIN 4
#define TONE_PIN 3
#define TONE_HZ 2500
#define TONE_START 1000
#define TONE_STEP 15
#define TONE_CUTOFF 45
#define LED_MS 100
timeObj LEDTimer(LED_MS);
timeObj toneTimer(TONE_START);
float timeMs;
void setup() {
Serial.begin(TONE_HZ);
pinMode(LED_PIN,OUTPUT);
}
void loop() {
if (toneTimer.ding()) {
timeMs = toneTimer.getTime();
timeMs = timeMs - TONE_STEP;
if (timeMs<=TONE_CUTOFF) {
timeMs = TONE_START;
}
toneTimer.setTime(timeMs);
tone(TONE_PIN, TONE_HZ);
digitalWrite(LED_PIN,HIGH);
LEDTimer.start();
Serial.println(timeMs);
} else if (LEDTimer.ding()) {
noTone(TONE_PIN);
digitalWrite(LED_PIN,LOW);
LEDTimer.reset();
}
}