LoginSignup
0
1

More than 5 years have passed since last update.

BeagleBoneBlackで湿度センサー

Posted at

今回使用する湿度センサーは MCP9700 です。

MCP9700のピンを文字が見える部分を正面からみとき、左から0番、1番、2ばんとします。それぞれのピンの役割は以下のようになります。

  • 0番
    電源供給のためのピンです(VDD)
    2.3V~5.5V

  • 1番
    観測データが送られてきます。こちらは温度の高さや低さを電圧の高さ・低さで示す。アナログ出力をおこなうピンです。
    データシートをみるとMCP9700の出力は100mVから1.75Vのようですね。

  • 2番
    最後はグランドです。

ラズベリーパイの場合アナログ入力ができるピンがないのでA/Dコンバータを使用しなければなりませんが、BeagleBoneBlackの場合アナログ入力を行えます。そのため、アナログ入力ができるピンを利用します。BeagleBOneBlackのアナログ入力の最大電圧は1.8Vなので余裕で使用できす。
下の表のように入力できるところがあります!

Name PIN PIN Name
GPIO 31 32 VDD-ADC
A-In4 33 34 A-GND
A-In6 35 36 A-In5
A-In2 37 38 A-In3
A-In0 39 40 A-In1

温度を求める

データシートを参考に温度を求めます。

Vout = 温度計数 * 周囲温度 + 0度の時の出力電圧
周囲温度 = (Vout - 0度の時の出力電圧) / 温度計数

Vout = 100mV ~ 1.75V
温度計数 = 10.0mV
0度の時 = 500mV

PIN配置

Name PIN
VDD P9_3
Vout P9_40
GND P9_34

コード

import Adafruit_BBIO.ADC as ADC

PIN = "P9_40"
ADC.setup()

value = ADC.read(PIN)
#value = value * 1.8 #1.8V
value = value * 1800 #1.8V = 1800mV
print(value, "mV")

temp = value - 500 # 500mV = 0 degree voltage
temp = temp / 10 #10mV = Temperature coefficient
tempC = round(temp, 2)
print(tempC, "degrees Celsius")


# translation to Fahrenheit temperature
tempF = (temp * 9 / 5) + 32
tempF = round(tempF, 2)
print(tempF, "degrees[Fahrenheit]")

参考サイト

データシート
ADCドキュメント
0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1