2

analogReadポテンショメータの値を 0 ~ 1 にマッピングしようとしています。私もです:

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

しかし、ポテンショメータの analogRead が 0 の場合、逆数は 0 (これは正しい) ですがanalogRead、1023 の場合、逆数は になり0.0009775170ます。

私は除算を正しく行っていますか、それとも何ですか?

すべての回路が正しく接続されています。Arduino は正常に動作しています (アップロード時にエラーは発生しません)。

4

1 に答える 1

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、おそらくあなたが手に入れたいものについてです。

于 2012-10-13T06:53:50.250 に答える