diff --git a/arduino/Mic/Mic.ino b/arduino/Mic/Mic.ino new file mode 100644 index 0000000..d4dfadb --- /dev/null +++ b/arduino/Mic/Mic.ino @@ -0,0 +1,41 @@ +const int sampleWindow = 50; // Sample window width in mS (50 mS = 20Hz) +int const AMP_PIN = 7; // Preamp output pin connected to A0 +unsigned int sample; + +void setup() +{ + Serial.begin(9600); +} + +void loop() +{ + unsigned long startMillis = millis(); // Start of sample window + unsigned int peakToPeak = 0; // peak-to-peak level + + unsigned int signalMax = 0; + unsigned int signalMin = 1024; + + // collect data for 50 mS and then plot data + while (millis() - startMillis < sampleWindow) + { + sample = analogRead(AMP_PIN); + if (sample < 1024) // toss out spurious readings + { + if (sample > signalMax) + { + signalMax = sample; // save just the max levels + } + else if (sample < signalMin) + { + signalMin = sample; // save just the min levels + } + } + } + peakToPeak = signalMax - signalMin; // max - min = peak-peak amplitude + if (peakToPeak == 4294966272){ + peakToPeak = 0; + } + Serial.println(peakToPeak); + //double volts = (peakToPeak * 5.0) / 1024; // convert to volts + //Serial.println(volts); +} \ No newline at end of file