PR

Raspberry Pi Picoでアナログ入力(analogRead)の使い方

記事内に広告が含まれています。

 Raspberry Pi Pico(ラズパイPico) のアナログ入力(電圧の読み取り)を使う方法です。開発環境はArduinoIDEです。

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

 ArduinoIDEでPicoを使う場合、使い方はArduinoと基本同じでanalogRead((pin_size_t pin)でピン指定して電圧を読み取るだけです。Picoのアナログ入力として使えるピンはGP26-29の4ピンです。

▼Picoピン配置▼

 あと、Picoの場合はADC分解能は12bitで、基準電圧は何も弄らなければ3.3Vとなっており、ArduinoUNOとは異なります。(2023/05⊿1:Earle F. Philhowerボードマネージャー利用の場合、デフォルトの分解能は10bitのよう、そのため12bitで利用するためには事前にanalogReadResolution(12);のようにして12bitで利用できるように設定が必要のようです)

 そのため、読み取り値の電圧への変換計算は以下となります。

電圧値[v] = 読み取り値 * 3.3 / (1 << 12)

このように電圧を計算します。変換計算はbitシフトで行うと混乱が少なそうです・・・・。それ以外は基本的にArduinoUNOを使う場合とほぼ同じですね。

 簡単な動作テストをしてみます。

▲Picoの3.3VoutピンとGP26を直結して、3.3vを読み取ってみます。

▼ソース▼

// 2021/07/25 imo lab.
// 2023/05/05 分解能設定追加
// https://garchiving.com/

void setup() {
  Serial.begin(9600);
  analogReadResolution(12);
}

uint16_t raw;
float v;

void loop() {
  raw = analogRead(26);
  v   = raw * 3.3 / (1 << 12);

  Serial.println(v);
  delay(10);
}

 GP26で読み取ったbit値を電圧変換して、シリアル出力しているだけのスケッチです。

 

▼結果▼

 使い勝手はほぼArduinoIDEと同じです。

コメント

タイトルとURLをコピーしました