Menu
CoddyTech

つまみ式調光器

CoddyのArduinoジャーニー「出力」セクションの一部。レッスン 5/24。

つまみを回すと、analogRead()は0から1023までの数値を返しますが、analogWrite()が受け取るのは0から255までです。この2つの範囲は一致しないため、map()を使って一方をもう一方に変換します。

int reading = analogRead(A0);
int brightness = map(reading, 0, 1023, 0, 255);
analogWrite(9, brightness);

つまみを一番下まで回すと値は0になり、LEDは消灯します。一番上まで回すと値は1023になり、255に変換されて最大の明るさで点灯します。その間の位置では、それに応じた明るさになります。

読み取り値をそのままLEDに書き込んでもうまくいきません。analogWrite()が受け取るのは0から255までなので、600のような読み取り値では明るさが正しくなりません。

challenge icon

チャレンジ

簡単

つまみはA0に、LEDはピン9に接続されています。つまみで明るさを設定します。

  • つまみの値を読み取る
  • map()で読み取り値を0から255の範囲に変換する
  • LEDに書き込み、その後10 ms待つ

Runを押してつまみを回し、その後Checkを押します。

自分で試してみよう

const int knobPin = A0;
const int ledPin = 9;

void setup() {
  pinMode(ledPin, OUTPUT);
}

void loop() {
  // つまみの値を読み取り、0..255の範囲に変換してLEDに出力する
}
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

出力のすべてのレッスン

自分で練習してみよう: Arduinoプレイグラウンド