Raspberry PiでCdSセンサーの値を読み取る
今回は単純にCdSセンサーをRaspberry Piで読み取る事に挑戦してみます。
CdSセンサーというのは硫化カドミウムを使って、センサーに当たる光量によって抵抗値が変わるという特性を利用した、光量センサーです。これを使うことで、大雑把ではありますが、昼夜判定や、照明の状態などを確認できます。
では、簡単にまとめていきましょう。まず、CdSセンサーはアナログ値出力なので、Raspberry Piではお馴染みのA/Dコンバーターを使っていきます。今回のA/DコンバーターもMCP3008です。
import sys import spidev import smbus import time import datetime import subprocess import RPi.GPIO as GPIO spi = spidev.SpiDev() spi.open(0,0) def get_adc(channel): r = spi.xfer2([1,(8+channel)<<4,0]) ret = ((r[1]&3) << 8) + r[2] return ret while 1: print(get_adc(0)) time.sleep(0.1)
これだけでなんと、光量の値が取得できます。簡単ですね。
今回のポイントになるのは12~15行目のA/Dコンバーターから出力される変換されたデジタル値を読み取る部分です。
この部分はRaspberry Piを使っていく上では大変重要な機能になっていくと思うので、是非この機会に。
上記のコードで取得した光量の値を分岐させ、例えばブザーを鳴らしたり、例えばこちらの記事のようにLCDディスプレイにデータを書き込んだり、様々な用途に使えると思います。
近いうちに次はカラーセンサーの使い方について投稿したいと思いますので、乞うご期待。
投稿者プロフィール
最新の投稿
- 2018.09.01AMD動画エンコードでGPUを活用する
- 2018.03.26phpツイートIDからsnowflakeを用いて投稿時刻のミリ秒を算出
- 2018.02.18phpphpMyAdminのインストール方法(Ubuntu)
- 2018.01.07未分類新聞を折らずに郵送する方法
最近のコメント