arduino_guitar_repeater/guitar.ino

35 lines
523 B
C++

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