Raspberry Pi Picoの内蔵温度センサーから温度を取得したい

実現したいこと

Raspberry Pi Pico(以下Pico)の内蔵温度センサーから温度を取得したい

前提

C++でPicoの内蔵温度センサーから温度を取得するプログラムを作っているのですが、
コアの温度より明らかに高い値が出力される

発生している問題・エラーメッセージ

Arduino IDE(analogReadTemp関数)の方で試したところ15℃から20℃程度を示しましたが、
Pico SDKでプログラムしたところ、70℃から80℃と出力されました

該当のソースコード

C++

1#include <iostream>2 3#include "pico/stdlib.h"4#include "hardware/adc.h"5 6int main() {7 8 stdio_init_all();9 10 adc_init();11 adc_select_input(4);12 13 while (1) {14 float voltage = adc_read() * (3.3 / 4095);15 float temperature = 27 - (voltage - 0.706) / 0.001721;16 std::cout << temperature << std::endl;17 sleep_ms(100);18 }19 20 return 0;21}22

正常に動作したArduinoの方です

Arduino

1void setup() {2 Serial.begin(9600);3}4 5void loop() {6 Serial.printf("%f\n", analogReadTemp());7 delay(100);8}

補足情報(FW/ツールのバージョンなど)

ChromeOS Linux仮想環境
Pico SDK
g++ 10.2.1 (Debian 10.2.1-6)
CMake 3.18.4

コメントを投稿

0 コメント