つまみの値を電圧に変換する
CoddyのArduinoジャーニー「入力」セクションの一部。レッスン 9/22。
読み取り値が1023なら5Vなので、1ステップは5 / 1023ボルトです。読み取り値をボルトに変換するには、次のように掛け算します。
int reading = analogRead(A0);
float volts = reading * 5.0 / 1023.0;
Serial.println(volts);小数点は重要です。reading * 5 / 1023では整数だけが使われるため、整数除算となり、小数部分が切り捨てられます。読み取り値が512の場合、2.5ではなく2になります。5.0を使うと、小数を含めた計算になります。
計算の順序も重要です。reading / 1023 * 5.0では、まず2つの整数を割るため、1023未満の読み取り値ではすべて0になります。
Serial.println()は、floatを2.50のように小数点以下2桁で表示します。
チャレンジ
簡単つまみは A0 に接続されています。ピンの電圧を出力します:
- A0 を
intに読み込む floatで電圧に変換する:reading * 5.0 / 1023.0- 電圧を出力し、その後 100 ms 待つ
Run を押し、つまみを回してから、Check を押します。
自分で試してみよう
void setup() {
Serial.begin(9600);
}
void loop() {
int reading = analogRead(A0);
// readingをボルト単位の電圧に変換して出力し、100 ms待つ
}
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
入力のすべてのレッスン
自分で練習してみよう: Arduinoプレイグラウンド