課題3 アナログ入力

課題3-1

  1. TINKERCADのサイトにアクセスしてログインする。
  2. 「回路」「新しい回路を作成」をクリックする。
  3. 入れる部品の種類を「スターター Arduino」に切り替え、「サーボ」を選んで入れる。


  4. 「シミュレーションを開始」をクリックして動作を確認する。
  5. (このように白い部分が180°の範囲で回転を繰り返す)


  6. 入れる部品の種類を「コンポーネント 基本」に戻し、図のように素子を追加して配線する。
  7. (抵抗は220Ω)
    (「電位差計」はいわゆる可変抵抗のこと。緑の線につながった端子の電圧は、ダイヤルを左に回すと左の端子、右に回すと右の端子の電圧に近くなる。この配線であれば、左に回し切ったときに5V、右に回し切ったときに0Vになる)


  8. このようにコードを書き換える。
  9. アナログ入力は「analogRead(ピン名);」で取得する。得られる値は0~1023。
    アナログ入力として使えるのはA0~A5の6つのピン。
    「サーボ」とはロボットの関節などに使われるモーターのこと。普通のモーターのように回転し続けるのではなく、入力信号のパルス幅に応じて白い部分の角度が変わる。
    Arduinoでは、write関数で角度を指定すれば、(最初に設定したピンに) 自動的にその角度に応じたパルス幅の信号が出力される。
    ほかにも、直接パルス幅を指定して角度をコントロールする方法や、現在の角度を取得する方法もある (参考)。


  10. 実行してダイヤルを回し、それに合わせてサーボとLEDが図のように変わることを確認する。


  11. トップページに戻り、今回追加したもののデザイン名を「3-1」に変更する。

課題3-2

  1. 新しい回路「3-2」を作る (「新しい回路」ボタンからでもよいし、「3-1」のコピーでも構わない)。

  2. 「3-2」を編集し、アナログ入力使った機能をつくる。
  3. 例1 : フォトレジスタ(明るさによって抵抗が変わる素子) を使った、「暗くなったらライトがつくシステム」
    (電圧を表示している「マルチメーター」は動作確認用のもの。なくてもシステムは機能する)


    例2 : 左側のLEDはA0(左のダイヤル)がA1(右のダイヤル)の電圧が高ければ点灯する。右側のLEDは2つの入力のうちすくなくともどちらか一方が1Vを切ると点灯する(故障検出)
    アナログ入力は0~5Vが0~1023の値に対応するので、具体的なボルト数で条件を付けたければ適宜換算する必要がある。

    例3 : 超音波距離センサから障害物までの距離が1~2mのときだけLEDを点灯させる
    (Arduinoのアナログ入力ピンは使わないが、0V or 5V ではない値を扱うという広い意味でここに含めた)
    (確認用にprintlnで取得した距離を表示している)
    (シリアルモニタはコード表示中に左下のアイコンをクリックすれば表示される)

提出

inserted by FC2 system