Altair ActivateとArduinoで電子工作(その3)照度センサーの値を取得
今回は、照度センサーからの信号をArduinoデバイス経由でAltair Activateに取り込んでグラフを描画します。
また、取り込んだ信号を元に、暗くなったらLEDを点灯させる制御を実装します。
配線
フォトレジスタという部品を使います。光の当たり方によって抵抗値が変わるので、これによって流れる電流量が変化します。フォトレジスタと通常の抵抗を直列につなぎ、間の電圧をArduinoのアナログ電圧ポートA0に接続しました。
アナログ信号の取得
Arduinoデバイスからアナログ信号を取得するにはArduinoAnalogInputブロックを使用します。pin='A0'としました。
Activate上で可視化するためにScopeに接続しています。
Activateのモデルはこちらです。
実行してみました。照度センサを手で隠すと値が小さくなる様子が確認できます。
今の部屋では650くらいの値で、手で隠すと400以下くらいの値に変化するようです。
ちなみにArduinoのアナログポートは5Vに対し、0~1024の値を出力するようです。
照度に応じてLEDを点灯させる
続いて、(その2)で実施したLEDの点灯と組み合わせてみます。
暗くなったらLEDを点灯させるという制御をしてみましょう。
配線はこんな感じです。LEDと抵抗をpin=2とGNDに接続しました。(その2)と同じです。
Activateのモデルは以下のように変更しました。
Arduinoからの照度センサー信号に対し、500を閾値として、500以下だと1、500以上だと0を返すようブロックを接続します。
0/1化した信号はArduinoDigitalOutputブロックでpin=2番に入力します。
修正したActivateのモデルはこちらです。
部屋の明るさの関係か、つなぎ方が悪いのかLEDが暗いですが、照度センサーを隠すとLEDが点灯する様子が確認できます。
簡単な例ですが、デバイスの信号を読み取り、デバイスを制御することができました。