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ディスプレイにデータを書き込んだり、様々な用途に使えると思います。
近いうちに次はカラーセンサーの使い方について投稿したいと思いますので、乞うご期待。

投稿者プロフィール

yoshipc

コンピューター関連を得意としています。PHPが専門です(尚、技量はお察し)。このブログとMastodonのインスタンスを運営・管理しています。よろしくお願いいたします。


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です