Question about magnitude

It is the magnitude of the results of the FFT.

Then magnitude per bin is equal to sin_fft

Yes.

About ADC reference voltage,
I use arduino uno and i want to use 5 volt pin
How much is v_ref?

Then V_ref is 5V.

After calculating correct_fft, the value of correct_fft will be in terms of voltage in per bin?

Yes. But because of windowing and discretization, you'll get non-zero values in neighboring bins.

PieterP:
Yes. But because of windowing and discretization, you'll get non-zero values in neighboring bins.

I didnt understand you

Take a look at the image I posted earlier. You start with a 64 Hz sine wave of 1.25 V peak. The corrected FFT shows an amplitude of 1.25 in the 64 Hz bin, as you would expect, but the 62 Hz and 66 Hz bins are not zero.

Understood your means
What is reason of it?

Because of the windowing, in this case. But you get the same problem if your input frequency is not an integer multiple of the bin frequency. There's not much you can do about it.

Are you still trying to do A-weighting?

Maybe because of a slight oscillation in the main frequency. If the distance between frequencies increases, this problem can be solved

I try to analize sound and then caculated dB flat in per bin if it be corrected by a reffrence sound level meter,I can convert dB flat to A weighting and test it.but the hardest part of this project make a amplifire microphon and messurment adc and convert to voltage in per bin by fft.
I try and show my code to you to help me about it
Thanks a lot

A-weighting is normally done in the time-domain, using analog filters. Newer devices use digital filters. I couldn't find any online references on using FFT for A-weighting.
If your goal is to create a working A-weighting system, I'd use digital filters.
If you want to learn about DSP and the Fourier transform, to try a new approach to A-weighting, I think you'll have to study the maths behind it first.

I find a circuit for a weighting
Is it your means?

p17_fig3.gif

If you see some sound level meter aplication that analized sound in dBA like audiotools , i think it a-weighting by fft cuz there are no any circuit to do a_weighting in mobile

I'm pretty sure that it uses digital filters. You can "convert" analog filters to digital filters. The bilinear transform does exactly that, for example. It's a first-order approximation, but it should do the trick.

How a android mobile do digital filter?

Probably using cascaded digital BiQuad filters.
You factor the discrete-time transfer function into second-order polynomials (both the numerator and the denominator), and then you use the coefficients of these polynomials as the coefficients of the BiQuad filters.

Or you could calculate the convolution of the difference equation explicitly. But I think that could result in numeric instability.

Either way, it's going to be much easier than using an FFT.

Can do it by aurdino?
How can i find sample of it in arduino code?