unsigned long previousMicros;
const unsigned long interval = 12500;
bool active = false;
const int ledPin = 13;
const int outputPin = 2;
void setup()
{
pinMode( ledPin, OUTPUT);
pinMode( outputPin, OUTPUT); // not required for 'tone()'
}
void loop()
{
unsigned long currentMicros = micros(); // 4 microseconds accuracy on Arduino Uno
if( currentMicros - previousMicros >= interval)
{
previousMicros += interval; // special code to keep in sync with time
if( active)
{
digitalWrite( ledPin, LOW);
noTone( outputPin);
}
else
{
digitalWrite( ledPin, HIGH);
tone( outputPin, 8000);
}
active = !active;
}
}