Arduinoはちっちゃなコンピュータ。CdSセル?CdSセルはフォトレジスタやフォトセルとも呼ばれ、光量によって電気抵抗が変化する素子のことです。WikipediaCdSセルを明るい光で照らすとセル自体の電気的抵抗は小さくなります。暗いところでは抵抗値が大きくなります。ちなみにCdSセルの”CdS”とは硫化カドミウムの組成式のことです。使用するArduinoは、UNOという種類のRevision3をつかいます。10kΩ抵抗器はショート防止用(負荷抵抗)です。今回準備するものは、”Arduino始めようキット”にすべて入っています。赤ワイヤーが5V黄ワイヤーがA0黒ワイヤーがGNDに接続されています。回路についてもっとくわしくブレッドボード(番号とアルファベットのある白っぽい四角形)の穴のなかでは下の図のような電気的つながりがあります。図のように縦方向に電気的つながりがあります。横方向にはありません。A~E(上部)とF~J(下部)に電気的つながりはありません。それぞれで独立しています。10kΩの抵抗器に、赤から5Vの電圧が加わります。これは、黒を0V基準とした時の5Vです。黄はArduinoのアナログ0番ピンにつながっています。これをアナログ入力としてつかいます。入力の役割は、そこにどれほどの電圧が加わっているのかを示すことです。Arduinoの場合、0~5Vの入力を0~1023の間の値で示してくれます。Converter(ADC:アナログからデジタルへの変換器)と呼びます。回路図に目を戻すと、赤がつながった抵抗器の先に、黄(アナログ入力)とCdSセルがつながっています。環境光が少なければ(暗)、抵抗器の値R1は一定で、CdSセルの抵抗値R2だけが大きくなります。$$VIが5Vを表し、VOがアナログ入力に加わる電圧を表します。分圧則より、R2が大きくなると、VOは5Vに近づくことがわかります。よってArduinoは、0~1023の間のなかでも大きな数値を示します。環境光が多い(明)ときは、CdSセルの抵抗値R2は小さくなります。同様に分圧則で考えると、VOは0Vに近づくことがわかります。0~1023の間のなかでの小さな数値を示すことがわかります。それはつまり...CdSセルを暗くすると大きな値を、CdSセルを明るくすると小さな値を、Arduinoは出力することを意味します。Arduinoはその値をどこへ出力する?それについては、”スケッチについてもっとくわしく”で説明します。スケッチArduinoの世界ではプログラムコードのことをスケッチと呼んでいます(Processingに由来したのでしょうかね)。このスケッチと先の回路があれば、環境光に応じて13番ピンのLEDが点灯/消灯するようになります。delay(200);}IDEではこんな感じスケッチについてもっとくわしくvalはADCにより変換された数値(0~1023のどれか)を格納するための変数です。iPinは入力ピン、つまり黄ワイヤーの接続先ピン番号(A0)を格納しています。oPinは出力ピン、すなわちLEDのピン番号(13番)を格納してあります。PCとArduinoを接続しているシリアルポートを使って数値valを、ArduinoからPCへと送信。PCで数値をリアルタイムに確認できる仕組みです。はじめのsetup()、すなわちArduinoの準備では、数値をPCに送信するためのシリアルポートをボー9600で開放、LEDピンである13番ピンを出力に設定しています。次がこのスケッチのメインであるloop()という部分です。A0(センサーピン)に加わっている電圧をADCを介して数値として読み取り、変数valへ格納します。こんな複雑な処理を、わずか一行でコーディングできるArduinoはすごいです。次の行では値valをシリアルポートで送信・プリントしています。IDEのシリアルポートモニターという監視ソフトで読み取ることができます。更新されてゆく値が少しでも見やすくなるように、delay関数で待ち時間を0.2秒ほど設けました。if文がLEDの点灯・消灯を制御してくれます。図の場合、if文の部分に920という値が入力されているはずです。これはvalの値(環境光の明るさ)が920未満ならLEDピンに0V(LOW)を、920以上ならLEDピンに5V(HIGH)を与えよ、ということを意味しています。いざArduinoへArduinoをUSBでPCに接続します。接続した場合には設定が必要になります。このページへリンクして方法を設定をすませましょう。IDE設定完了後、スケッチをIDEへサクっと入力しましょう。念のため保存して、IDE画面上部のUploadボタンをクリック、スケッチをArduinoへアップロードします。プログレスバーが表示されます。バーがいっぱいになるまで待ちます。uploading”が表示されれば成功!オレンジ色やなんやらでいろいろ文字が表示されていたらスケッチに間違いがあることを警告しています。ログを見ながら間違いを修正しましょう。アップロードが完了すれば、Arduinoはスケッチ通りに動作しているはずです。どの明るさが0で、どの暗さが1023なのかは想像できないので、実際に確かめてみます。Monitor”をクリックします。こんなウィンドウが現れるはずです。リアルタイムで表示される数値に注目それが、環境光の明るさを表す数値です。0~1023のどれかが表示されるはずです(とは言っても回路の特性上、0や1023やその付近などの極端な数値はお目にかかれません)。部屋の照明を落としてみます。