パーセントに変換する
CoddyのArduinoジャーニー「入力」セクションの一部。レッスン 10/22。
0から1023までの読み取り値は、人にはわかりにくいものです。0から100までのパーセントのほうがわかりやすいでしょう。map()は、ある範囲の数値を別の範囲に変換します。
int percent = map(reading, 0, 1023, 0, 100);この関数は5つの数値を受け取ります。値、その範囲の下限と上限、そして新しい範囲の下限と上限です。0は0になり、1023は100になり、範囲の4分の1の位置にある値は、新しい範囲でも4分の1の位置になります。つまり、256は25になります。
map()は整数を扱い、小数部分を切り捨てます。パーセントの場合はこれで問題ありません。
チャレンジ
簡単つまみは A0 に接続されています。どれだけ回したかをパーセントで出力します。
- A0 を読み取る
map()を使って読み取り値を 0 から 100 に変換する- パーセントを出力し、その後 100 ms 待つ
Run を押し、つまみを回してから、Check を押します。
自分で試してみよう
void setup() {
Serial.begin(9600);
}
void loop() {
int reading = analogRead(A0);
// map() で reading をパーセントに変換し、表示してから 100 ms 待つ
}
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
入力のすべてのレッスン
自分で練習してみよう: Arduinoプレイグラウンド