Código Microfono Arduino
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 | const int sampleWindow = 50; // Sample window width in mS (50 mS = 20Hz) unsigned int sample; #define SENSOR_PIN A0 void setup () { pinMode (SENSOR_PIN, INPUT); // Set the signal pin as input Serial.begin(115200); } void loop () { unsigned long startMillis= millis(); // Start of sample window float peakToPeak = 0; // peak-to-peak level unsigned int signalMax = 0; //minimum value unsigned int signalMin = 1024; //maximum value // collect data for 50 mS while (millis() - startMillis < sampleWindow) { sample = analogRead(SENSOR_PIN); //get reading from microphone 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 int db = map(peakToPeak,20,900,49.5,90); //calibrate for deciBels Serial.print("Loudness: "); Serial.print(db); Serial.println("dB"); delay(100); } |
No hay comentarios.:
Publicar un comentario