ひとつは、オリジナルではLCDとして20×4のLCDを使用していますが、残念ながら大きくて積めませんので、16×2のLCDで表示できるようにプログラムを修正しました。
Opening画面 左:LCD20×2 右:LCD16×2
通常画面 左:LCD20×2 右:LCD16×2
表示内容
主な変更点
- オープニング表示を16×2領域に入るように変更
- 表示領域が半分以下になるため、ボリューム表示をオリジナルフォントによる1文字9キャラクタ表示領域使用から普通の1キャラクタ表示に変更。
- 表示項目部を省略し、パラメータのみに
- サンプルレート表示を6ケタから下位2ケタを省略した4ケタ表示に
上記により、なんとか16×2内に押し込みました。
変更時の変更項目選択表示
ボタンを押すたび"→"表示が黄色の部分を順次移動する
設定変更時は、上手の黄色の部分をボタンを押すたび"→"カーソルが移動し、ロータリーエンコーダを回すことによりパラメータを変更できるようになっています。
今回その"→"を表示するエリアがないため、パラメータ表示の先頭文字、あるいは"・"キャラクタ表示の部分で"→"を表示させるようにしました。
そのままでは、パラメータ変更操作後、元の表示が消えてしまったため、再度表示できるように変更しました。
もう一つは、オリジナルはArduino UNOやDueminaloveなどの5V電源のマイクロコントローラを積んでいますが、今回、なるべく小さく、省電力であることを選定基準としてPro Mini 328 - 3.3V/8MHzを選択しました。
Bufflalo IIとのI2Cの接続は3.3V同士でよいのですが、ロータリーエンコーダは、少し探した限りは5V電源のデバイス、5V電源での組み込み例ばかりで3.3V電源で動作させている例が見つけられません。
ひとつだけ見つけましたが、回路図が不正確そうです。
どうしようかと悩んでいましたが、twitterで、5V用のロータリーエンコーダでも3.3Vで動作させることができるとのアドバイスをもらい、実際試してみると問題なく動作するようです。
今回ロータリーエンコーダはパナソニックのEVE-VCGJL016Bを使用しました。
押しボタンスイッチ機能が付いているため、パラメータ変更時、押して設定項目を選び回してパラメータを選択するが、1つのスイッチでできるため、操作しやすく、またパネル装着部品が減らせて便利です。
Arduino Pro Mini 328 と LCD16×2 、ロータリーエンコーダ
動作中のLCD表示(バックライト点灯させていないので見にくい)
ざっと見た限りは、LCD表示もボリューム操作も動いているようです。
サンプリング周波数が1763(176.3kHz)になっていますが、これは、FPGAで50MHzCXOから22.5792MHzが作れず、近似の22.57143MHzを作っているためです。これは仮実装です。
続いて、ArduinoでPLLクロックドライバCDCE925の設定ができるようにし、クロック系の動作確認を進める予定。
当方、ロータリーエンコーダーの誤動作がひどく、
返信削除固まったりボリューム数dB飛んだりが頻発したので
Hifiduinoに書いてある様にローターリーエンコーダー端子にコンデンサを付けました。
AKさん
返信削除今のところ特に変な挙動はしていないように思います。3.3Vで動作させたほうが安定するのかもしれませんね。