実現したいこと
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 コメント