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 行目: 出力