Grove soundsensor lib

soundsensor.cpp

Committer:
math991e
Date:
2019-01-23
Revision:
7:6f0c583b4f54
Parent:
6:fb51a4b71646
Child:
8:5b4b258eb1da

File content as of revision 7:6f0c583b4f54:

#include "soundsensor.h"

soundsensor::soundsensor(PinName pin){
    soundsensor::setPin(pin);
}

void soundsensor::setPin(PinName pin){
    this->_pin=pin;
}

PinName soundsensor::getPin(){
    return this->_pin;
}

float soundsensor::convertToDb(float value){
    return 16.801 * log(value/65535) + 9.872;
}

float soundsensor::revertFromDb(float value){
/**
*CODE NEEDS TO BE IMPLEMENTED
**/
    return 0;
}

float soundsensor::listen(bool toDb){
    AnalogIn sensor(this->getPin());
    int values[] = {};
    float sum;
    float average;
    
    for(int i=0;i<100;i++){
        values[i] = soundSensor.read() * 3.3;
        wait(0.0001);
    }
 
    for(int j=0;j<100;j++){
        sum += values[j];   
        }
    average = sum/100;

    if(toDb){
        return this->convertToDb(average);
    }else{
        return average;
    }
}