35 lines
543 B
C++
35 lines
543 B
C++
const int edge = 10;
|
|
const long d = 10;
|
|
const int analogInPin = A0;
|
|
const int audioOutPin = 12;
|
|
|
|
void setup() {
|
|
//Serial.begin(115200);
|
|
}
|
|
|
|
void loop() {
|
|
long freq = measureFrequency();
|
|
if (freq != 0)
|
|
tone(audioOutPin, freq);
|
|
else
|
|
noTone(audioOutPin);
|
|
//Serial.println(freq);
|
|
}
|
|
|
|
long measureFrequency() {
|
|
long t = millis();
|
|
long n = 0;
|
|
boolean o = analogRead(analogInPin) <= edge;
|
|
|
|
while(millis() - t <= d)
|
|
if ((analogRead(analogInPin) <= edge) != o) {
|
|
o = !o;
|
|
n++;
|
|
}
|
|
return n * 1000 / d;
|
|
}
|
|
|
|
|
|
|
|
|