Select Your Language

免責事項

  • 本サイトの情報の利用、内容、サービスによって、利用者にいかなる損害、被害が生じても、著者は一切の責任を負いません。ユーザーご自身の責任においてご利用いただきますようお願いいたします。

    本サイトで頒布している基板およびキットは、技術者、またはそれに準ずる電気的知識をお持ちの電子工作ファンの方のためのものです。一般のオーディオファンの方のためのものではありません。
    また、頒布基板およびキットは、いかなる条件でも動作を保証するものではございませんので、あらかじめご了承ください。

    電子工作では、火傷、感電、火災などの可能性があります。十分に注意をして作業して下さい。

    営利目的のご使用は認めておりません。 記事の転載や、基板・キットの商用利用の方は、ご連絡ください。学生やサークルの学習目的でまとめてご購入する場合は特別価格でご提供させていただきます。
無料ブログはココログ

スポンサー

« MUSES72323コントローラのプログラム変更 ボリューム表示が可能になる? | トップページ | Arduino UNOでArduino ProMiniにプログラムを書く方法 »

2021年2月11日 (木)

ArduinoによるOLED表示機の作り方(ハードウェア編)

本日は、シリアル信号を受信して小型OLEDに文字を表示する方法を紹介いたします。

Aruduino12

Arduinoに限定するわけではありませんが、ある程度の大きさのROMとRAMが無いとu8glibなどのグラフィックライブラリを使うことが出来ません。ライブラリを使うとソフトウェアがめっちゃ簡単になります。

Aruduino00

購入してみたのはコチラ。3個で1230円。1個あたり410円です。SDカードをスリムにしたくらいのサイズ感。Arduino pro mini互換を謳っていてUSBシリアル変換ICが載っていないタイプです。低消費電力に期待して購入しました。その結果は後述します。

 

OLEDは128x32ピクセルの細長いタイプです。こちらから買いました。 3つで1180円。1枚あたり393円です。4ピンヘッダが付いていましたが、この写真では取り去ったところです。
Aruduino01

 

 

I2Cのプルアップ抵抗を探せ!

このOLEDはI2C接続なので、Arduino Pro Mini基板(以降 ProMini)にプルアップ抵抗があるのか確認してみたところ、なんと裏面に半田ランドがありました。

Aruduino02

素晴らしい! ここに10kΩのチップ抵抗をつけてみます。もしかすると、ATmega328Pの内部プルアップだけでもOKかもしれません。

Aruduino03

どうも1005チップサイズのランドだったようで1608ではちょっとムズかったです。でも、とりあえず付きました。普通のリードタイプの抵抗ならピンヘッダの穴を利用して5Vからプルアップすれば良いです。

プルアップ抵抗をつけなくてもI2C通信OKでした。

 

 

ProMini基板とOLED基板を接続

Aruduino04

配線はI2Cの2本と、GND、5V。合計4本です。A4=SDA、A5=SCLというのはArduino界ではメジャーなアサインらしいです。

接続はポリウレタン線を使うと簡単です。

エナメル線のような絶縁被服は半田コテでハンダを盛りながら熱を10秒くらい加えると、そこだけ剥がれてくれます。被服がなくなると半田がついて銀色になるので分ります。元の銅色の部分は絶縁被服があるのでショートしません。

 

 

ProMini基板にはピンヘッダが付録してあり、必要な部分だけ付ければ良いです。今回は書込みポート側だけ付けました。

Aruduino05
  < UNOからの書込み用接続は、一番下に載せました。>

早速、動作確認。イニシャル時にメモリ領域をクリアしていないので、この写真のように砂嵐っぽい画面が出ますが正常です。初期化に失敗していると何も出ません。

 

 

合体

Aruduino06

動作確認OKだったので、OLEDの裏面にスポンジタイプの両面テープをつけて、

 

Aruduino07

ぐいっと曲げると、ProMini基板と一体化できます。

 

 

MUSES72323基板との接続

実は、ProMini基板の書込みポート側に電源ポートとUARTがアサインされているので「メス-メス」配線材で簡単に接続できます。

Aruduino08

シンプルですね。ただ、この基板をアンプへどう固定するのか!? そこが一番悩ましいです。

 

Aruduino11
 < デバッグ用ポートの中央3本をProMini基板へ接続する >

 

Aruduino09

MUSES72323基板側のデバッグコネクタに接続すればOKなんですが、当初予定していなかった電流が流れるため、5Vをリード線で直結してあげる必要があります。

改造は

 パターンカット:1ヵ所
 リード線追加 :1ヵ所

です。

 

無改造でも一応動作しましたが、可変抵抗を読むADコンバータの基準も同じ5Vを使っているため、Arduinoの動作電流に釣られてボリューム値がチラチラとふらつく事がありました。上記の改造で解消します。

 

ProMini基板の消費電流

ProMini基板とOLEDを合わせた5Vの消費電流を計測してみたところ27mA程度流れていました。OLED単体も同様に計測すると15mAだったのでAVRマイコンは10mA以上流れていることになります。

Uno_promini04

MUSES72323をコントロールしているPICは実測0.9mAなので10倍以上の電流です。AVRマイコンを16MHzフル回転させているので当然ですね。プログラム上でクロックを変更できればやってみたい。OLEDは輝度を落とす方法を見つけました。

 

 

長くなってきたため、

Arduinoの書込み方などは、また別記事にいたします。

 

 

Arduino UNOを書込み機代わりにしてArduino Pro Miniへプログラムを書き込む

Arduino UNOを書込み機代わりにしてArduino Pro Miniへプログラムを書き込むときの接続は以下のようにします。

Aruduino10

RX-RX
TX-TX

と、ぶつけるような配線にするところがミソです。詳細はこちらへ

コネクタ部にマジックで書いた文字はシリアル変換の書込み機のピンの名称です。気にしないでください。

 

 

にほんブログ村 PC家電ブログ PCオーディオへ にほんブログ村

ブログランキングに参加中です。 めざせ1位! 

もしよろしければ「ぽちっと」お願いします。 

 

« MUSES72323コントローラのプログラム変更 ボリューム表示が可能になる? | トップページ | Arduino UNOでArduino ProMiniにプログラムを書く方法 »

電子ボリューム」カテゴリの記事

Arduino」カテゴリの記事

コメント

こんにちは
PGA 2311 でも使えるようになりませんか、、
とお願いモードです。ファームの書き換えはPICKITあるけど、、

たかじんさん

こんばんは

私も ひろせさんに1票です
ArduinoによるOLED表示機をアマゾンで購入しましたので3セット保有しています
今回の、MUSES72323基板の頒布には乗り遅れましたが、次回の頒布で入手出来ると
確信しますが、2セット余りますので宜しくお願いいたします。

ひろせさん
kamo さん

PGA2311基板は電源が+5Vと-5Vの2系統のみで、コントローラも同じ+5V電源を使用しています。
コントローラは、低速クロックで動作させて1mA以下の消費電流に抑えていますが、PGA2311は内蔵オペアンプがあるため8~10mAほど消費し、合計で10mA程度です。

シャント抵抗には15mAほど流す設定にしていて発熱がそこそこ高く、さらに追加で27mAもの電流は許容できません。というか電圧降下しますね。

ですので、表示部専用でレギュレータを増設するのと、コントローラの足から直接配線を引き出すなどの改造を行なえば可能と言えば可能です。

何か良いアイデアはございますでしょうか?

書き換え用のhexファイルの公開は、電子ボリュームコントローラだけを販売している業者が複数あるので、若干やりにくいですね。

よろしくお願いします。

たかじんさん

一人歩きの懸念了解いたしました
ご丁寧に回答頂きありがとうございました

たかじんさん

MUSES72323 ボリューム基板を、サブウーファ用のローパスフィルタの音量調整に利用しています。 まだ、各種の測定はしていませんが、使用上は問題ないことの確認がすみました。 再現性よく調整するためには、本記事の表示機能があった方がよさそうです。

1) 記事中の Arduino pro mini互換 基板は入手できなくなっています。
また、記事では、Arduino UNO を使ってプログラム書き込みをしていますが、Arduino UNO の値段を考えると、下記のようなセットが良さそうに見えるのですが、いかがでしょうか。 なお、[K-09951] は売り切れ中です。

https://www.amazon.co.jp/waves-Arduino-%E4%BA%92%E6%8F%9B%E3%83%9C%E3%83%BC%E3%83%89-16MHz-USB%E3%82%B7%E3%83%AA%E3%82%A2%E3%83%AB/dp/B01CX2AQEW

2) Arduino pro mini互換 基板への配線は、どれぐらい伸ばせるのでしょうか。 調整中のみ使用できればよいので、外部端子に出すことを考えていました。

以上、ご教示いただけたら、ありがたいです。 よろしくお願いします。 

n'Guinさん

確かにpro mini互換基板は市場から消えていますね。 UNOで書き込んでいるのはたまたま私がUNOをもっていたからです。
専用の書き込み機の方が良いと思います。 書き込み機もセットでpro mini互換が安く売っていたのですが、2年でずいぶんと状況が変わってしまいました。

配線長は特に気にしていませんでしたが、UART信号はわりと伸ばしやすいと思います。 50cmくらいは余裕です。 1mでも平気かもしれません。

ご想像のとおり、伸ばすとノイズをひろいやすくなるので、アンプにとってはあまり良くありません。調整が終わりましたら短くして筐体に収めておくことをお勧めいたします。

たかじんさん

アマゾンのサイトで検索すると何個かヒットしますが、これらは使える可能性のある物でしょうか。

たかじんさん

さっそくのご解答ありがとうございます。
昨日、単身赴任先から自宅に戻って、最適なところを耳で確認していますが、ずれたら再度同じところにセットするのに、ちょっと自信がありません。

やってみようと思います。 当初、必要時だけ外部端子を通して付けることを考えた(筐体の穴開けをしたくない)のですが、DC Arrow の無効電流(インピータンスを下げるための)を利用して、三端子レギュレータで、別に電源を作って、表示させようと思います。

いつもながらありがとうございました。

天 婦羅夫さん

Atmega328P 5V 16MHz でしたら使えると思います。 確かに高いものは売っていますね。記事中に書いたような1枚400円ちょっとというのは見なくなりました。


n'Guin さん

表示があった方が再現性は高くなりますよね。 表示部を別電源にするのは良いアイデアと思います。 Arduinoの消費電流は、どうしても下がりきらないですし。

たかじんさん

なんでも値上がりしましたね。
ラズパイ Zero Wがスイッチサイエンスに売れ残ってたので買いましたが、記憶にないですが、以前はこんな値段だったかなと。

CFA-02が売り切れたようです。 なかなか人気ですね。

天 婦羅夫さん

日本もアメリカや韓国と同程度インフレしていれば価格上昇が相殺されていたんでしょうけどね。
Pi4の4BG版は、ちょっと値下がり傾向のようです。 3月くらいで1.4万円だったけど、今見たら1万円ちょっとで購入できるみたいです。 6千円くらいまで戻れば良いですね。

CFA-02の赤基板、3倍速そうです!

たかじんさん

先に示した Amazon の基板のセットで試しました。
USBシリアル書き込み基板のためのドライバを商品の説明通りにダウンロードしてインストールし、あとはたかじんさんの説明通りに Hallo World を表示させることができました。 留意事項は、USBシリアル書き込み基板の COM port 番号をデバイスマネージャで確認したぐらいでしょうか。

あとは、たかじんさんのプログラムを導入して、デバッグも正常に行えました。 

±版のDC Arrow と同等回路のドライバに、2SC2240/2SA970 BL の手持ちを使っていましたが、ドライバ - アース間の抵抗を、改良版のように470Ωにすると、コレクタ損失がオーバーしそうなので、2SC945/ 2SA733 を購入し、修正してから、表示機を取り付けたいと思います。

さて、この表示機の電源は、±版のDC Arrow の無効電流(インピータンスを下げるための)を利用して、三端子レギュレータで別に作り、MUSES72323基板からは電源を取りません。 この場合、MUSES72323基板のアースと Arduino 互換基板アースの処理はどうするのがセオリーなのでしょうか。 
 
例えば、アナログ回路のように、MUSES72323基板のアースと Arduino 互換基板アースを数Ωの抵抗でつないだほうが安定するでしょうか。 それとも、そこまで考える必要はないのでしょうか。 

やってみて考えろと言われそうですが・・・・

たかじんさん、みなさん

自己レスです。 アースの件は、MUSES72323 基板からのアース配線は不要で安定しているようです。

基板をシャーシに固定するのに、ホットボンドを使ったら、表示されなくなりました。 再度書き込みしたら、復活しました。 ホットボンドの熱で、メモリ内容が破壊されたのかもしれません。  

# 本来的に、ホットボンドでの固定はまずい?

さて、表示機能ができてよかったです。 本当に、調整は、表示器がないとむずかしいようです。 聴感での調節になりますが、どんな音楽を聴いても満足できるのは、数dB の範囲しかありません。 foobar2000 で、スペクトラムアナライザを出しておいて、20-40Hz がどれぐらい含まれているかを見ていると、調整がうまく進むようです。

やはり、サブウーファが加わると、雰囲気感がよく出ます。 高域がシャープに聞こえる感じがします。

n'Guin さん

返信遅れてすみません。
結果的にうまくいったようで良かったです。

ホットボンドで画面が出なくなるのは、奇妙な現象ですね。 再書き込みするとOKというと、フラッシュメモリが壊れた可能性が高いように感じますが、何とも説明がつかないです。
100℃くらいの温度ではフラッシュメモリのデータは壊れないとは思うのですけどね。

それはさておき、調整の方もうまくいったようでなによりです。
サブウーファー追加で高域も聴感上で変化するのは面白いですね。

たかじんさん

画面が出なくなる現象とは、最初のMUTE表示は出るけど、その後 dBだけで、数字が表示されないという現象でした。 謎ですが、その後は問題なしです。

n'Guin さん

なるほど、通信がうまく拾えていない様子ですね。 プログラムし直すと治るというのも不思議です。 単に通信配線の接触不良あたりなのかな、、、っと思たりもします。

たかじんさん


上述の状況で、再度、USB経由で Aruduino 開発環境をつないで、デバッグで数字を出そうとしましたが、表示が出ませんでした。 壊れてしまったのかと思って、再書き込みしたら、大丈夫だったという次第です。

いずれにせよ、現在は大丈夫なので、謎のままですが、これでよいかと(笑)

コメントを書く

(ウェブ上には掲載しません)

« MUSES72323コントローラのプログラム変更 ボリューム表示が可能になる? | トップページ | Arduino UNOでArduino ProMiniにプログラムを書く方法 »

サイト内検索(new)

2025年3月
            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31