#define micPin A0
const int sampleWindow = 10;
unsigned int sample;
void setup() {
Serial.begin(115200);
}
void loop() {
unsigned long startMillis = millis(); // Start of sample window
int peakToPeak = 0; // peak-to-peak level
unsigned int signalMax = 0;
unsigned int signalMin = 1024;
// collect data for 50 mS
while (millis() - startMillis < sampleWindow) {
sample = analogRead(micPin);
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
Serial.println(peakToPeak);
if (peakToPeak > 300) {
for (int i = 1; i < peakToPeak / 10; i++)
Serial.print("=");
Serial.println();
}
}