sample_grove_TemperatureSensorV1.2 - gfd-dennou-club/mrubyc-esp32 GitHub Wiki
https://wiki.seeedstudio.com/ja/Grove-Temperature_Sensor_V1.2/
特徴
- ADC(アナログ-デジタル変換)機能を使用して温度を読み取る
- 内部的には NTCサーミスタ (温度によって抵抗値が変化する素子) が使われている.
- サーミスタの抵抗値から温度を計算する
- 精度はそこそこ.± 1.5 度程度.
サンプルプログラム
VCC = 3.3 # 電源電圧
B = 3975.0 # サーミスタのB定数
sensor = ADC.new(36)
loop do
v_out = sensor.read.to_f # 電圧を直接取得
if v_out > 0 && v_out < VCC
# 1. 電圧からサーミスタの抵抗値を計算
# 10kΩの分圧回路: R = 10000 * (Vcc / Vout - 1)
resistance = 10000.0 * (VCC / v_out - 1.0)
# 2. 抵抗値から温度(摂氏)を計算
temperature = 1.0 / (Math.log(resistance / 10000.0) / B + 1.0 / 298.15) - 273.15
# 出力
puts "Voltage: #{v_out} V, Temperature: #{temperature} C"
else
puts "Invalid voltage: #{v_out}V. Check connection or VCC setting."
end
sleep 1
end