Program to control Electret Microphone Amplifier - MAX9814 from adafruit. Allows: To sample analogue voltage to transform into rough sound level. Transfer sound level to visual indicator, volume bar such as 4 LEDs on LPC11U24.

Dependencies:   MAX9814_Electret_Microphone_LED_Volume_Indicator mbed

Revision:
0:d096ca2ffef0
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Hammer_MicrophoneSensor.c	Sun Nov 02 17:00:16 2014 +0000
@@ -0,0 +1,103 @@
+//#include "mbed.h"
+//#include "Hammer_MicrophoneSensor.h"
+//
+//MAX9814::MAX9814(PinName pin): _pin(pin), _led1(LED1), _led2(LED2), _led3(LED3), _led4(LED4) {
+//}
+//
+//
+//void MAX9814::led_array(float x ) {
+//
+//    if (_value<x+0.05) {
+//            _led1=0;
+//            _led2=0;
+//            _led3=0;
+//            _led4=0;
+//    }
+//    if (_value>x+0.05&&_value<0.5+x) {
+//            _led1=1;
+//            _led2=0;
+//            _led3=0;
+//            _led4=0;
+//    }
+//    if (_value>0.5+x&&_value<1+x) {
+//            _led1=1;
+//            _led2=1;
+//            _led3=0;
+//            _led4=0;
+//    }
+//    if (_value>1+x&&_value<1.2+x) {
+//            _led1=1;
+//            _led2=1;
+//            _led3=1;
+//            _led4=0;
+//    }
+//    if (_value>1.2+x&&_value<2.8+x) {
+//            _led1=1;
+//            _led2=1;
+//            _led3=1;
+//            _led4=1;
+//    }
+//}
+//
+//float MAX9814::calibration() {
+//    
+//    _t.start();
+//    _t1.start();
+//    float peakToPeak=0, signalMax=0, signalMin=1024;
+//
+//    while (_t1.read()<1) {
+//        while (_t.read_ms()<50) {
+//            _sample=_pin.read();
+//
+//            if (_sample<1024) {
+//                if (_sample>signalMax)
+//                    signalMax=_sample;
+//
+//                else if (_sample<signalMin)
+//                    signalMin=_sample;
+//            }
+//        }
+//     _t.reset();
+//     peakToPeak=signalMax-signalMin;
+//     _value= (peakToPeak*3.3);
+//     _value = floor(_value * 100) / 100;
+//     _sum+=_value;
+//     _count++;
+//    }
+//    _average=_sum/_count;
+//    _t1.reset();
+//
+//    return _average;
+//}
+//
+//float MAX9814::sound_level() {
+//
+//    _t.start();
+//    float peakToPeak=0, signalMax=0, signalMin=1024;
+//
+//    while (_t.read_ms()<50) {
+//        _sample=_pin.read();
+//
+//        if (_sample<1024) {
+//            if (_sample>signalMax)
+//                signalMax=_sample;
+//
+//            else if (_sample<signalMin)
+//                signalMin=_sample;
+//        }
+//    }
+//    _t.reset();
+//    peakToPeak=signalMax-signalMin;
+//    _value= (peakToPeak*3.3);
+//    _value = floor(_value * 100) / 100;
+//    _sum+=_value;
+//    _count++;
+//
+//    return _value;
+//}
+//
+//
+//void MAX9814::volume_indicator() {
+//        led_array(_average);
+//        sound_level();
+//}