
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と同じです。
コメント