2017-07

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Arduino用MIDIインタフェース改良

前のエントリでArduinoにMIDI-INをつけたわけですが、これがシリアルとぶつかるのが実に悩ましいのです。色々と考えてたのですが、単純にここを切り離すとかフォトカプラの電源を切るとかではダメなんですよね。それでカットオフ・ジャンパーを付けているのですが。ですが、プログラム書き込み時に、いちいちこのジャンパを設定するとかスイッチ操作するとか面倒です。

で・・一昨日位にハッと思い当たりました。
てか最初っからArduinoの回路図追えってのね>俺

arudino-serial.jpg

これがArduinoに載ってるATmegaのシリアルの所。1kの抵抗を介してオンボードのFT232につながっています。
一方、MIDI-INの回路図

arduino-midi-in.png

フォトカプラの出力は1kでプルアップされてます。フォトカプラの電源を切ってもこの抵抗が存在し続けます。あたりまえですが。

そこで一体何が起こるか?

まずD2の部分をArduinoに繋いでいない状態だと、シリアルポートのRXD、つまりPC->Arduinoへのデータが流れると、データのHIGHの期間でフォトカプラがONしてしまいます。
では、電源部分をD2に繋いだのだからdigitalWrite(2,LOW)してしまえば?
この場合もダメです。フォトカプラのプルアップ抵抗がGNDに落ちるので、ArduinoのD0ピンそのものは、FT232とArduino間の1kと、この1kで分圧された電圧しか、かからないことになり。シリアル(USB)からのデータが十分に振れないのです。

そこで、この1kを通ってフォトカプラがONしない&1kをGND落ちさせない簡単な手段を使います。ダイオードを1本追加するだけ。

回路図はこれ
arduino-midi-in2.png

簡単です。ダイオードは小信号スイッチング用なら何でもかまいません。
仕組みはこうです。
D2ピンをHIGHにしていると、フォトカプラの電源はONになります。ダイオードD2は順方向バイアスなので、1kの抵抗はフォトカプラの出力プルアップとして動作します。フォトカプラをOFFにしたい場合には、D2をLOWにするかHI-Zにします。そうすると、シリアル側(D0)がHIGHになってもダイオードが逆バイアスされるためフォトカプラはONになりませんし、D2がLOWの状態でも1kの抵抗はD0に寄与しなくなります。

ですが、動作中はD2ピンをHIGHにしてるので、プログラムの書き込みができないのでは??
大丈夫です。Arduinoはプログラム書き込み時にリセットをかけます。この直後はピンは入力になっているのでD2ピンはフローティング状態に等しいです。この状態で書き込みを開始すれば、プログラムが実行されD2をHIGHにするまではシリアルポートは使えるので、結果、物理的に手を出すことなくプログラムの書き込みが無事に行えます。

これでプログラム書き換えが簡単になった!
スポンサーサイト

コメント

初コメです。

デフォルトの状態ではフォトカプラのVCCはD3ではなくD2につなぐべきでは?

ソースより引用
//MIDI I/F Specific(Photo coupler Vcc)
#define PHOTO_VCC 2

Re: タイトルなし

あーすいません!思いっきり間違えてますね。記事と回路図を訂正しておきました。

初歩的な質問

はじめまして!
参考にさせてもらってます
MIDI化したいのですが
スケッチを書き込むとき

MIDI.begin(MIDI_OPTO_ON|PHOTO_VCC);

の部分でエラーになります。
なにが悪いのでしょうか?

Re: 初歩的な質問

たぶんですが、MIDIライブラリのインストールがうまくないんだと思います。
再度、インストール場所を確認し、IDEを再起動してみてください。

コメントの投稿


管理者にだけ表示を許可する

トラックバック

http://yamadanohito.blog72.fc2.com/tb.php/29-e75ebf93
この記事にトラックバックする(FC2ブログユーザー)

«  | ホーム |  »

プロフィール

yamadanohito

Author:yamadanohito
『やまだの人』
ニコニコ動画に「やまだ音楽」シリーズなどを上げています。
Electribeプレイヤーの端っこの方にいます。もともとはESX-1使い。音声処理用に「サンプラーあれば便利じゃ?」と購入。

気が付いたらなぜかEMX-1も家にあったんだぜ!ぐはっ。

最新記事

最新コメント

最新トラックバック

月別アーカイブ

カテゴリ

未分類 (15)
ニコニコ動画 (8)
Arduino (27)
回路図 (3)
スケッチ (2)
Live (6)
ガイガーカウンター (11)

検索フォーム

RSSリンクの表示

リンク

このブログをリンクに追加する

ブロとも申請フォーム

この人とブロともになる

QRコード

QRコード

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。