Skip to content

Samples_ADC

Ko-ichiro Sugiyama edited this page Mar 3, 2023 · 8 revisions

はじめに

ADC クラスのメソッドについては,Class_ADC を参照されたい.

サーミスタ温度計での測定

教育ボードのサーミスタ温度計 を使う場合には,src/master.rb に以下のように書く.

1  # A/D 変換 初期化
2  adc = ADC.new( 39, ADC::ATTEN_11DB, ADC::WIDTH_12BIT )
3
4  #温度計測用変数初期化
5  B = 3435.0
6  To = 25.0
7  V = 3300.0
8  Rref = 10.0
9
10 while true
11   voltage = adc.read()
12   temp = 1.0 / ( 1.0 / B * Math.log( (V - voltage) / (voltage/ Rref) / Rref) + 1.0 / (To + 273.0) ) - 273.0
13   puts "#{voltage} mV, #{temp} K"
14   sleep(10)
15 end
  • 1 行目: インスタンスの作成.

    • クラスの定義は mrblib/models/adc.rb

    • 第 1 引数: サーミスタが接続されているピンを指定.

    • 第 2 引数: 計測可能範囲を 0 ~ 3.6 V に設定 (ADC::ATTEN_11DB).

    • 第 3 引数: AD 変換の解像度を 12 bit => 0 ~ 3.6 V の範囲を 0 ~ 4095 を対応させて計測 (ADC::WIDTH_12BIT).

  • 4-8 行目: 温度計算に必要な変数の初期化

  • 11 行目: 電圧値の読み込み

  • 12 行目: 温度に変換

  • 13 行目: 出力

Clone this wiki locally