ArduinoによるOLED表示機の作り方(ハードウェア編)
本日は、シリアル信号を受信して小型OLEDに文字を表示する方法を紹介いたします。
Arduinoに限定するわけではありませんが、ある程度の大きさのROMとRAMが無いとu8glibなどのグラフィックライブラリを使うことが出来ません。ライブラリを使うとソフトウェアがめっちゃ簡単になります。
購入してみたのはコチラ。3個で1230円。1個あたり410円です。SDカードをスリムにしたくらいのサイズ感。Arduino pro mini互換を謳っていてUSBシリアル変換ICが載っていないタイプです。低消費電力に期待して購入しました。その結果は後述します。
OLEDは128x32ピクセルの細長いタイプです。こちらから買いました。 3つで1180円。1枚あたり393円です。4ピンヘッダが付いていましたが、この写真では取り去ったところです。
I2Cのプルアップ抵抗を探せ!
このOLEDはI2C接続なので、Arduino Pro Mini基板(以降 ProMini)にプルアップ抵抗があるのか確認してみたところ、なんと裏面に半田ランドがありました。
素晴らしい! ここに10kΩのチップ抵抗をつけてみます。もしかすると、ATmega328Pの内部プルアップだけでもOKかもしれません。
どうも1005チップサイズのランドだったようで1608ではちょっとムズかったです。でも、とりあえず付きました。普通のリードタイプの抵抗ならピンヘッダの穴を利用して5Vからプルアップすれば良いです。
プルアップ抵抗をつけなくてもI2C通信OKでした。
ProMini基板とOLED基板を接続
配線はI2Cの2本と、GND、5V。合計4本です。A4=SDA、A5=SCLというのはArduino界ではメジャーなアサインらしいです。
接続はポリウレタン線を使うと簡単です。
エナメル線のような絶縁被服は半田コテでハンダを盛りながら熱を10秒くらい加えると、そこだけ剥がれてくれます。被服がなくなると半田がついて銀色になるので分ります。元の銅色の部分は絶縁被服があるのでショートしません。
ProMini基板にはピンヘッダが付録してあり、必要な部分だけ付ければ良いです。今回は書込みポート側だけ付けました。
早速、動作確認。イニシャル時にメモリ領域をクリアしていないので、この写真のように砂嵐っぽい画面が出ますが正常です。初期化に失敗していると何も出ません。
合体
動作確認OKだったので、OLEDの裏面にスポンジタイプの両面テープをつけて、
ぐいっと曲げると、ProMini基板と一体化できます。
MUSES72323基板との接続
実は、ProMini基板の書込みポート側に電源ポートとUARTがアサインされているので「メス-メス」配線材で簡単に接続できます。
シンプルですね。ただ、この基板をアンプへどう固定するのか!? そこが一番悩ましいです。
< デバッグ用ポートの中央3本をProMini基板へ接続する >
MUSES72323基板側のデバッグコネクタに接続すればOKなんですが、当初予定していなかった電流が流れるため、5Vをリード線で直結してあげる必要があります。
改造は
パターンカット:1ヵ所
リード線追加 :1ヵ所
です。
無改造でも一応動作しましたが、可変抵抗を読むADコンバータの基準も同じ5Vを使っているため、Arduinoの動作電流に釣られてボリューム値がチラチラとふらつく事がありました。上記の改造で解消します。
ProMini基板の消費電流
ProMini基板とOLEDを合わせた5Vの消費電流を計測してみたところ27mA程度流れていました。OLED単体も同様に計測すると15mAだったのでAVRマイコンは10mA以上流れていることになります。
MUSES72323をコントロールしているPICは実測0.9mAなので10倍以上の電流です。AVRマイコンを16MHzフル回転させているので当然ですね。プログラム上でクロックを変更できればやってみたい。OLEDは輝度を落とす方法を見つけました。
長くなってきたため、
Arduinoの書込み方などは、また別記事にいたします。
Arduino UNOを書込み機代わりにしてArduino Pro Miniへプログラムを書き込む
Arduino UNOを書込み機代わりにしてArduino Pro Miniへプログラムを書き込むときの接続は以下のようにします。
RX-RX
TX-TX
と、ぶつけるような配線にするところがミソです。詳細はこちらへ
コネクタ部にマジックで書いた文字はシリアル変換の書込み機のピンの名称です。気にしないでください。
にほんブログ村
ブログランキングに参加中です。 めざせ1位!
もしよろしければ「ぽちっと」お願いします。
« MUSES72323コントローラのプログラム変更 ボリューム表示が可能になる? | トップページ | Arduino UNOでArduino ProMiniにプログラムを書く方法 »
「電子ボリューム」カテゴリの記事
- MUSES72323 Balanceボリュームの表示機追加について(2022.12.24)
- MUSES72323 バランスボリュームもうじき頒布開始(2022.11.26)
- MUSES72323バランスボリューム基板 進捗(3)(2022.05.14)
- MUSES72323バランスボリューム基板 進捗(2)(2022.05.08)
- MN型ボリュームとは(2022.05.03)
「Arduino」カテゴリの記事
- MUSES72323 Balanceボリュームの表示機追加について(2022.12.24)
- BlueSnowDACにIRリモコンを増設する方法 Seeeduino XIAO(メニュー操作編)(2021.11.27)
- BlueSnowDACにIRリモコンを増設する方法 Seeeduino XIAO(ソフトウェア編)(2021.11.24)
- BlueSnowDACにIRリモコンを増設する方法 Seeeduino XIAO(準備とハードウェア編)(2021.11.23)
- ArduinoによるOLED表示機 電流削減に挑戦してみました(2021.02.21)
コメント
« MUSES72323コントローラのプログラム変更 ボリューム表示が可能になる? | トップページ | Arduino UNOでArduino ProMiniにプログラムを書く方法 »
こんにちは
PGA 2311 でも使えるようになりませんか、、
とお願いモードです。ファームの書き換えはPICKITあるけど、、
投稿: ひろせ | 2021年2月18日 (木) 05時59分
たかじんさん
こんばんは
私も ひろせさんに1票です
ArduinoによるOLED表示機をアマゾンで購入しましたので3セット保有しています
今回の、MUSES72323基板の頒布には乗り遅れましたが、次回の頒布で入手出来ると
確信しますが、2セット余りますので宜しくお願いいたします。
投稿: kamo | 2021年2月18日 (木) 19時49分
ひろせさん
kamo さん
PGA2311基板は電源が+5Vと-5Vの2系統のみで、コントローラも同じ+5V電源を使用しています。
コントローラは、低速クロックで動作させて1mA以下の消費電流に抑えていますが、PGA2311は内蔵オペアンプがあるため8~10mAほど消費し、合計で10mA程度です。
シャント抵抗には15mAほど流す設定にしていて発熱がそこそこ高く、さらに追加で27mAもの電流は許容できません。というか電圧降下しますね。
ですので、表示部専用でレギュレータを増設するのと、コントローラの足から直接配線を引き出すなどの改造を行なえば可能と言えば可能です。
何か良いアイデアはございますでしょうか?
書き換え用のhexファイルの公開は、電子ボリュームコントローラだけを販売している業者が複数あるので、若干やりにくいですね。
よろしくお願いします。
投稿: たかじん | 2021年2月18日 (木) 20時13分
たかじんさん
一人歩きの懸念了解いたしました
ご丁寧に回答頂きありがとうございました
投稿: kamo | 2021年2月18日 (木) 21時24分