こんばんは!
今回はマップ関数についてです。
map(value, fromLow, fromHigh, toLow, toHigh)
map関数はある範囲から別の範囲に再マッピングをします。
<パラメーター>
value:マップする数
fromLow:値の元の範囲の下限
fromHigh:値の元の範囲の上限
toLow:値の再マッピング後の範囲の下限
toHigh:値の再マッピング後の範囲の上限
全てのfromLowとfromHighの間の数値はtoLowとtoHighの間の数値に対応づけられます。
例えば1~100の値で返ってくるものを1~50に再マッピングしたい場合
1 | int z = map(x,1,100,1,50) |
のように記述します。
もしも50という値が返ってきた場合、xが再マッピングされてx=25となります。
また、map関数を使用して数値の範囲を逆にすることもできます。
例えば
1 | int z = map(x, 1, 50, 50, 1); |
のように記述すると、10という値が返ってきた場合、再マッピングされx=40となります。
使用例
Arduinoのアナログ入力の範囲は0~1023、アナログ出力の範囲は0~255なので、アナログ入力で得た値をそのままアナログ出力で使用したい場合、次のようなプログラムとなります。
1 2 3 4 5 6 7 8 | void setup() { } void loop(){ int val = analogRead(A0); val = map(val, 0, 1023, 0, 255); analogWrite(3, val); } |