2012-10-13 59 views
2

我試圖從0-1之間的電位計映射analogRead的值。所以,我做的:使用Arduino Uno r3查找int值的反函數

float inverse_value = 1.0f/(float)analogRead(pot_pin) 

但是當電位器的analogRead爲0,反爲0(這是正確的),但是當analogRead是在1023,逆變成0.0009775170

我正在做正確的劃分還是什麼?

所有電路連接正確。 Arduino正常運行(上傳時沒有錯誤)。

回答

2

你想要做什麼,大概是這樣的:

float inverse_value = (float)analogRead(pot_pin)/1023.0f; 

假設最高位置1023

這樣的話,0到1023將被映射爲0到1

例如,當電位器處於中間位置(512)時,它變爲:

float inverse_value = 512.0f/1023.0f; 

其中大約是0.5,並且可能是你想得到的。

+0

謝謝,工作! –