Menu
CoddyTech

サーボ式ライトゲージ

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

アームに針を取り付けると、サーボは車のスピードメーターのような計器になります。ここでは、明るさを示します。

ナイトライトの場合と同様に、このモジュールのAOは、光が明るいほど低い値を読み取ります。暗闇では約1023、光が十分に当たると0近くです。計器は明るいほど高い値を指すべきなので、変換は逆向きになります。照度計の場合と同じように、map()に新しい範囲を逆さまに指定します。

int angle = map(reading, 0, 1023, 180, 0);

読み取り値が0(光が十分に当たっている状態)のときは180度になり、1023(暗闇)のときは0になります。その間の値も、逆向きに対応する値になります。

challenge icon

チャレンジ

中級

光センサーのAOはA0に、サーボはピン9に接続されています。アームを光度計にしましょう。

  • 暗いときはアームを0度に、明るさが最大のときは180度に向ける
  • 新しい範囲を逆にしてmap()を使う
  • 角度を出力し、その都度50 ms待つ

実行を押してセンサーの光量スライダーを動かし、次に確認を押します。

自分で試してみよう

#include <Servo.h>

const int lightPin = A0;
Servo arm;

void setup() {
  arm.attach(9);
  Serial.begin(9600);
}

void loop() {
  // 光の値を読み取り、180..0の範囲に逆向きに変換し、アームを動かして角度を出力する
}
quiz icon腕試し

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

出力のすべてのレッスン

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