「機能仕様」という言葉をなんとなく思いついたが、調べたら普通にある言葉のようです
書いたことないので適当です
機能仕様
1.ロータリーエンコーダー
プッシュで波形を切り替える。波形は「矩形波」「インパルス関数」「ステップ関数」
1.1. 「矩形波」の場合、回して周波数を切り替える。周波数は1、2、5ステップで20Hz~1MHz
「2.可変抵抗」でデューティー比を可変する。デューティー比は0~100%
1.2. 「インパルス関数」の場合、回すとクリックごとに波形を生成する。
1.3. 「ステップ関数」の場合、回すとH/Lを切り替える
2. 可変抵抗
「矩形波」の時だけデューティー比設定用に使用
3. 電源SW
電源のON/OFFを切り替える
4. 出力ジャック
ステレオミニジャックとし、Lは出力波形、Rは仮想GND(VCC/2)、GNDはGND(0V)を出力する
5. 出力VOL
出力波形のレベルを調整する
6. LCD
出力波形、周波数、デューティー比を表示する
入出力デバイス
ケース内のスペースを空けるために最初考えてたよりPOTの数を1個減らした
うまくやれば「2.可変抵抗」も削れそうだが、使いやすさとかLCDの画面遷移の設計のめんどくささを考えて1個は残した
出力レベルはデジタル制御ではなくてアナログ的に減衰させるつもりだ
出力の仮想GND(波形の中点)は抵抗分圧で作ってボルテージフォロワーでバッファリングする
GND(0V)と仮想GND(VCC/2)を出しっぱなしにするという作戦だ
ちゃんとできるかもうちょっと実験しないとだめかな?
「2.可変抵抗」が矩形波のデューティー比の設定だけにしか使わなくてもったいないが
何かうまい手を思いついたらファームウェアで対応する予定
LCDがバックライト付なのでパイロットランプはつけなくていいかな
出力周波数
出力周波数はHz刻みではなくて20Hz, 50Hz, 100Hz, 200Hz ... みたいなとびとびの値にすることにした
まだちゃんと確認してないが、PWMのcount/秒を1MHzとすると
出力周波数(kHz) | Hz | count |
---|---|---|
1000 | 1000000 | 1 |
500 | 500000 | 2 |
200 | 200000 | 5 |
100 | 100000 | 10 |
50 | 50000 | 20 |
20 | 20000 | 50 |
10 | 10000 | 100 |
5 | 5000 | 200 |
2 | 2000 | 500 |
1 | 1000 | 1000 |
0.5 | 500 | 2000 |
0.2 | 200 | 5000 |
0.1 | 100 | 10000 |
0.05 | 50 | 20000 |
0.02 | 20 | 50000 |
となってちょうどいい
インパルス関数とステップ関数
これも結構悩んだが、ロータリーエンコーダーをカチッと回すと波形が出る、みたいな感じが使いやすいかなと思った
波形は連続出力するには矩形波出力の周波数をプリスケーラーを使って拡張すればできるかな?
この辺はプログラミングの問題なので必要ならあとで考えることにしてもうちょっと実験する予定
0 件のコメント:
コメントを投稿