Raspberry Pi Picoの内部温度センサーの値を読み取る

 ラズパイPico(RP2040)には内部温度センサーが搭載されています。ArduinoIDE環境とC/C++記述の両方で温度を取得する方法をまとめておきます。

▼PicoをArduino環境で使う方法はこちら▼

 まずはArduino環境の場合です。こちらの earlephilhower/arduino pico のボードライブラリ使えば、関数が準備されているので内部温度の読み取りは簡単です。

analogReadTemp()

▲この関数記述するだけで温度を読み出すことが可能。戻り値の単位は「℃」です。

▲読み取り値をシリアルモニターで表示してます。

 Arduino公式のほうのボードライブラリにはこういった関数は準備されてませんが、C/C++で記述すすれば読み取りはできます。

▼C/C++の場合▼

// 2017/07/10 imo Lab.
//https://garchiving.com/

#include <hardware/adc.h>

void setup() {
  Serial.begin(115200);
  adc_init();
  adc_set_temp_sensor_enabled(true);
  adc_select_input(4);
}

void loop() {
  float t = 27.0 - ((adc_read() * 3.3 / 4096.0) - 0.706) / 0.001721;

  Serial.println(t);
  delay(1000);
}

▲ArduinoIDEでこのまま書き込み可能です。ここまで記述するとArduinoIDEを使用する意味はあまりないかもしれませんね。

 センサーの精度はあまり高くないようです。使い道はあまりないかもしれませんが、簡単に内部温度を取得できるので便利です。

コメント