今回はRaspberryPiと光センサ(フォトレジスタ)をつかって部屋が暗くなったらLEDを点灯させてみたいと思います。
Newone 5種類 各10個(合計50個)フォトレジスター 5506 5516 5528 5537 5539 5mm LDR 抵抗器 光従属抵抗
- 出版社/メーカー: Newone
- メディア:
- この商品を含むブログを見る
配線図
かなり複雑です。
コードとあわせて後ほど説明します。
(参考)ADコンバータのピン機能表(参考)
MCP3008 8チャネル 10ビット A/Dコンバータ(SPI接続)
- 出版社/メーカー: スイッチサイエンス
- メディア: エレクトロニクス
- この商品を含むブログを見る
各ピンはそれぞれ以下のような機能を持っています。
- VDD - 電源
- VREF - 基準電圧入力
- AGND - アナログアース(GND)
- CLK - シリアルクロック
- Dout - シリアルデータアウト
- Din - シリアルデータイン
- CS/SHDN - チップセレクト/シャットダウン入力
- DGND - デジタルアース
- CH0~7 - アナログ入力
くわしくは以下から
http://akizukidenshi.com/download/ds/microchip/mcp3008.pdf
コード
かんたんな説明
まず、光センサというのはどういったものかというと、光の強弱で抵抗の値を変化させるセンサです。またの名を光抵抗器といいます。
これはアナログな値なので、RaspberryPiで利用する際はあいだにADコンバータをかませます。
0が暗く、4095が最も明るい値としてRaspberryPiでは認識されます。
さて、コードの説明をしていきます。
重要なのは60行目のif文です。
部屋の明るさが1500を下回っていたならLEDを点灯、そうでなければ消灯しています。
(1500としたのは私の部屋の明るさが3200くらいだったのでその半分くらい…といったかんじで設定しています。)
実際に動かしてみたところ
RaspberryPiと光センサで部屋が暗くなったらLEDを点灯させる
部屋を暗くするとLEDが点灯するのがわかるとおもいます。
また、光センサを手で抑えて暗くしても点灯します。
まとめ
今回はLEDを点灯させただけでしたが、部屋の明るさを検知して部屋の電気がつけっぱなしになっていたら通知するなど、いろいろ夢が広がりますね!