2021年2月15日投稿 Pi PicoのADCで電圧表示

↑ 以前作ったラズパイPicoのプログラムを、Windows11にインストールしたPico用VSCode C/C++開発環境にコピペする。

以前のCMakeLists.txtでは駄目で、エラーやファールばかりを繰り返して大変でした。そもそも私はズブの素人、CMakeLists.txtの役目を知らずにやっているのですから、本当に大変でした。
でも、最終的にエラーやファール、警告も無く正常にuf2ファイルが出来たので、忘れない内にその方法を残します。

どの様なプログラムかと言うと、次の画像がそのプログラムの実行中の様子で、ADC0の電圧をADCで測定しSSD1331に表示する。と言う事をCore0で無限ループする。それに加え並列してCore1でLEDの点滅をさせています。

 

環境作りは以下のリンクから pico-setup-windows-0.3.5-x64.exe をダウンロードして行う。

pico-setup-windows

VSCodeの立ち上げは、必ず Visual Studio Code for Pico のショートカットを使用する。このショートカットはドキュメントフォルダに作られたPicoフォルダの中にある。

↓ New C/C++ Projectをクリック。

 

↓ New Pico Project
Name SSD1331_test
Board type Pico
Location c:\Users\JM1LXS\Documents\LXS_Pico
Select Pico SDK version v2.1.0
Features spi
Stdio support Console over USB
Code generation options Use project name as entry point file name
Generate C++ code
Debugger DebugProbe

 

↓ CMakeLists.txtに追記

hardware_adc
pico_multicore
pico_bootsel_via_double_reset

↑ pico_bootsel_via_double_reset は、リセットボタンをダブルクリックするとBOOTSELモードになる。なのでUSBケーブルの抜き差しは不要。

 

次は、Cソースファイルの内容を丸ごと入れ替える。

以前も今回もソースファイルは1つだけ。

以前のソースファイル pico_ssd1331_oled.c
今回のソースファイル SSD1331_test.cpp

SSD1331_test.cppの中身は削除して空にする。以前のpico_ssd1331_oled.cの中身をコピーしてSSD1331_test.cppにペーストする。

font.hはコピーしてSSD1331_testフォルダにペーストする。

 

↓ ビルドが成功して最終的なファイルはこんな感じ。

 

 

この記事で扱ったソースファイルをダウンロード出来ます。

LXS-TEST.zip

尚、SSD1331を初期化するコード lxs_oled_init()内のコマンド 0xAE 0x25から始まるそれは、ネット上で見つけた物で、私には何故そのコマンドなのかなど説明出来ません。
また、font.h内のフォントデータもネットから拝借した物です。

私は素人なので質問されても良い回答が出来ないので悪しからず。

今回はバラバラだった2個の電圧計を、1つに纏めるようにスタンドを造形しました。

 

↓ 緑色が、今回の造形物。

3D model-viewer

 

↓ 参考画像。赤ライン(直線)で比べた部分が、どれだけ反ったのかを見る画像です。ご覧のように逆反りしています。薄い部分が薄過ぎた為でしょうか?
使用フィラメントはeSUNのeABS+HS白で、プリンターはエンクロージャー無しのEnder-3 V3 SEです。

この記事を書いた私は電子工作初心者です。今回はラズパイ2の電源に少し高めの電圧を供給しています。その電圧はテスターによって異なりますが、安定化電源電圧の値で5.20Vから5.30Vです。
このラズパイ2のUSBには3Dプリンターと暗視機能付きWebカメラを接続させて、更にHDMIコネクターとGPIOには3.5インチLCDも接続しており、電流的に負荷が多い状態です。もしラズパイ2のUSBが無負荷になった時、供給電圧が高過ぎたりしないか不明です。

↓ 次の画像を参考に載せておきます。安定化電源の出力電圧が5.21Vの時、ラズパイ2のUSBポートに負荷を掛けた時の電圧は4.71Vでした。画像内で使用した電圧表示の測定器にどれだけの信頼性があるのか、これも不明ですが。
因みにUSBがほぼ無負荷(画像に写るUSBチェッカーのみ接続)の時のUSBポート電圧は4.95Vでした。

↓ USBポートに負荷

↓ USBポートは、ほぼ無負荷

以上の事を踏まえて参考にして下さい。もし貴方の物が故障しても、私は責任を負えません。

我のRaspberry Pi 2 Model B(ラズパイ2)は頻繁に稲妻アイコンが表記される。3.5インチLCD接続、更に暗視機能付きWebカメラ(赤外線LED点灯)をラズパイ2のUSBに接続しているので、尚更電圧不足になるのかも。

 

急速充電ACアダプターに変えたり、コードを変えたりしても駄目。Raspberry Pi 5用のACアダプター 5.1V 5Aと、USB C to B変換を使用しないと駄目なのか。でも持って無いからな。

とか思ったりしたけど、手持ちの安定化電源とコードを使用して、電圧高めに電源供給してやる事にしました。

↑ 電圧5.20Vは安定化電源の値です。ラズパイ2のMicro USB Type-Bコネクターの電圧は測定していないので分かりません。

安定化電源電圧が5.10Vでは低電圧アラーム表示。5.20V近くで無いと低電圧アラームは消えませんでした。

尚、電圧測定は数年前に秋月電子で購入した「超小型2線式LEDデジタル電圧計 3桁表示 DC3〜15V M-08468 税込250円」です。↓

↑ 撮影時は画像の通り5.18Vだけど、1時間前には5.20Vに合わせました。5.18Vでも低電圧アラームは出ていません。

 

 

↓ 2線式電圧計がブラブラしない様に、専用のケースを3Dプリンターで造形しました。