Mikrophone Sensor

Dependencies:   mbed

Mikrophone Sensor für Geräuscherkennung

Tip: zum Testen Finger auf Mikrophone halten und Abfrage umkehren.

Anwendungen

  • Klatschschalter z.B. zum Einschalten des Lichtes
  • Überwachung Hund (Bellen)
Committer:
marcel1691
Date:
Thu Oct 15 16:20:09 2015 +0000
Revision:
2:f6a133deaa02
Parent:
0:f5b93072ca28
Neu implementiert mit Zeitfenster

Who changed what in which revision?

UserRevisionLine numberNew contents of line
stefan1691 0:f5b93072ca28 1 /** Mikrophone Sensor
stefan1691 0:f5b93072ca28 2 */
stefan1691 0:f5b93072ca28 3 #include "mbed.h"
stefan1691 0:f5b93072ca28 4
stefan1691 0:f5b93072ca28 5 // Mikrophone
stefan1691 0:f5b93072ca28 6 AnalogIn mikrophone( A3 );
marcel1691 2:f6a133deaa02 7 // Zeitfenster wo Mikrophone ausgewertert wird
marcel1691 2:f6a133deaa02 8 int sampleWindow = 1;
marcel1691 2:f6a133deaa02 9 DigitalOut led( D10 );
stefan1691 0:f5b93072ca28 10
stefan1691 0:f5b93072ca28 11 int main()
stefan1691 0:f5b93072ca28 12 {
stefan1691 0:f5b93072ca28 13 while(1)
stefan1691 0:f5b93072ca28 14 {
marcel1691 2:f6a133deaa02 15 // Initialisierung: clock() liefert Zeit seit Einschalten oder Reset des Boards
marcel1691 2:f6a133deaa02 16 int startSec = clock() / CLOCKS_PER_SEC;
marcel1691 2:f6a133deaa02 17 float max = 0.0f;
stefan1691 0:f5b93072ca28 18
marcel1691 2:f6a133deaa02 19 // Zeitfenster um groessten Wert zu finden
marcel1691 2:f6a133deaa02 20 while ( (clock() / CLOCKS_PER_SEC) - startSec < sampleWindow )
marcel1691 2:f6a133deaa02 21 {
marcel1691 2:f6a133deaa02 22 float m = mikrophone.read();
marcel1691 2:f6a133deaa02 23 if ( m > max )
marcel1691 2:f6a133deaa02 24 max = m;
marcel1691 2:f6a133deaa02 25 }
marcel1691 2:f6a133deaa02 26
marcel1691 2:f6a133deaa02 27 // Auswertung
marcel1691 2:f6a133deaa02 28 printf( "Maximaler Wert %f\n", max );
marcel1691 2:f6a133deaa02 29 if ( max > 0.4f )
marcel1691 2:f6a133deaa02 30 led = 1;
marcel1691 2:f6a133deaa02 31 else
marcel1691 2:f6a133deaa02 32 led = 0;
stefan1691 0:f5b93072ca28 33 }
stefan1691 0:f5b93072ca28 34 }