ないものは作る!

電気回路、マイコンなどの工作を中心に書いていきます

MIDIキーボードのマイコン基板

前々回説明したキーボードのスキャン回路を駆動するマイコン基板を作成します。今回のマイコンのお仕事は2つだけです。

  1. キーマトリクスをスキャンして鍵盤のON/OFFの状態変化を検出
  2. この変化内容に応じてMIDI信号を出力する

回路全体のブロック図は下図のようになります。

 f:id:toysound:20200920141852p:plain

マイコンからキーボードスキャン用に6本出力し、センスの入力として11本マイコンに入力します。高速化のためにレジスタを直接操作できるよう、入出力はレジスタ単位で分割しました。Arduino NANOで使用可能なデジタルI/Oピンは18本あるので、1本余る計算です。この余りのピンは、後にデバッグ情報の出力に使用しました。たった1pinでも役に立つんですね。

キーボードの状態を検出するには、PD2~PD7の各線を順次Highにして、PB0~5、PC0~4の線を読み取ってキーのON/OFF状態を調べます。

 f:id:toysound:20200920142614p:plain

 前回スキャンしたときと比較して、どれかのbitの状態が変わっていれば、キーのON/OFF状態が変わったことになります。タイミングチャートのINT AがPD2~7のLOW/Highの切り替えタイミングで、INT BがPB0~5、PC0~4の読み取りタイミングです。

 

キースキャン回路の解析結果から、スイッチを5個追加できることがわかっているので、基板上にタクトスイッチを4個、フットペダル用の口を1個設けることにしました。回路図(というより実体配線図?)を示します。

f:id:toysound:20200914230840p:plain

MIDI OUTとなるTXにはバッファとして74HCT125を使いました。MIDIコネクタへの配線が上書きされているのは、ご愛嬌。ググって出てくる回路図は、コネクタのどちら側から見た絵なのか書いてないものが多いんですよね。

完成品の表は、こんな感じ。

f:id:toysound:20200914231647j:plain

裏は、こんなです。

f:id:toysound:20200914231913j:plain

 

MIDI送るだけなら、こんなシンプルな回路で済んでしまうんですね。