I do not understand why the volume defined frequency is not as expected.
I send sounds to my microphone with a few specified frequencies in turn. I then do FFT of my mic
Are you applying a window function prior to the FFT ? If not then you will see the effects of spectral leakage, and the magnitude at any given FFT bin will only be correct if the original frequency is an exact sub-multiple of the sample rate.