Bubble, bubble, toil and cuddle !!!

February 14, 2021
XML
カテゴリ: 作りモノ
今日は晴れて温い。

Raspberry Pi Pico には温度センサが内蔵されてるので、値を取得してターミナルに表示する C プログラムを作ってみました。

温度センサは ADC に接続されていて、ADCの4番目の入力の値が温度センサ出力の電圧値になります。この辺りは、 Raspberry Pi Pico C/C++ SDK 4.1.1. hardware_adc に書いてあります。

センサ出力電圧 V から温度(摂氏) T への変換式は、

T = 27 - (V - 0.706) / 0.001721

です。また、ADCから読んだ値 D をセンサ出力電圧に変換するには、

V = D * CONV
CONV = Vref / (1 << 12)

で計算します。ここで、Vref は ADCのリファレンス電圧です。3.3Vのはずですが、私はボードのVref端子の電圧を測定してその値を使っています。これが温度誤差に結構効いてきます。

ソースプログラム test_temp.c は、 GitHubのリポジトリ に置きました。

ざっくり流れを書くと、

(1) stdioの初期化 stdio_init_all();
(2) ADCの初期化 adc_init();
(3) 温度センサの有効化 adc_set_temp_sensor_enabled(true);
(4) ADC入力の選択 adc_select_input(TEMP_ADC);
(5) ADCの値を読む temp_dat = adc_read();
(6) 読んだデータを温度に変換
(7) USBシリアルに値を表示する
(8) (5) に戻る


CMakeLists.txt 中の

pico_enable_stdio_usb(test_temp 1)
pico_enable_stdio_uart(test_temp 1)

の記述のおかげで(?)、標準出力がUSBシリアルに出力されるので、これを TeraTerm などのターミナルソフトで受けてやれば、温度表示されることになります。

ターミナルに温度表示される
ターミナルに温度表示される

こんな感じで Raspberry Pi Pico の内蔵温度センサを C から使うことができました。
--- 14:10 ---





お気に入りの記事を「いいね!」で応援しよう

Last updated  February 14, 2021 02:13:12 PM
コメントを書く
[作りモノ] カテゴリの最新記事


【毎日開催】
15記事にいいね!で1ポイント
10秒滞在
いいね! -- / --
おめでとうございます!
ミッションを達成しました。
※「ポイントを獲得する」ボタンを押すと広告が表示されます。
x

PR

Keyword Search

▼キーワード検索

Category

Favorite Blog

まだ登録されていません

Comments

sorriman @ Re:HP ProDesk 400 G4 DM をセットアップした(01/13) New! 情報ありがとうございます。 また自宅を2…
Wi-Fiアンテナは多分入ってると思います。@ Re:HP ProDesk 400 G4 DM をセットアップした(01/13) 始めまして。 この機種はまだお使いでしょ…
通りすがりの者です@ Re:LIFEBOOK U939/B に WANカードを載せた(01/21) 私のLIFEBOOKではnanoSIMを装着後に再起動…
aki@ Re:秋葉原に寄った(01/14) この様な書込大変失礼致します。日本も当…
BOOSAN@ Re:SPY x FAMILY CODE:White を観た(01/08) 私は明日、PERFECT DAYS観ます。ビム・ベ…

© Rakuten Group, Inc.
Design a Mobile Website
スマートフォン版を閲覧 | PC版を閲覧
Share by: