Arduino よもやま話-8 (LEDピン (D13pin) の回路あれこれ)

2019年11月25日12:43  Arduino よもやま話 写真あり

これまでは Arduino UNO の純正品、あるいはCPUの単独動作しか使ってこなかったのですが、最近になって Arduino の互換機を使うようになりました

そういう互換機を使ってみると、細かいところで仕様が違っていることに気付きます。そんなことで、今回の記事では D13ピン、つまりデジタルの13ピン、もっと判り易く言うとLEDが接続されているピンの回路について、気付いた点をまとめてみたいと思います。

▼Arduini UNO R2
UNO純正品(R2)
まずは純正品の Arduino UNO です (R2) 。なお D13 ピンの CPU の信号名は、PB5 (SCK) で28ピンDipパッケージのピン番号は 19ピンです。

▼D13の回路
Arduino UNO のD13
UNO の場合は、この回路図のようにオペアンプのバッファを通して LED を点灯させるようになっています。こうすることで、D13 ピンへ与える影響を最小限にしています。この回路なら出力はもちろんですが、入力ピンとしても他のピンと同じように使うことが出来ます。なお、Arduino のブートローダーが入っている場合、このピンは、リセット直後は出力ピンになって、数回 Hi/Low が出力されるので、信号の衝突が起こらないように注意が必要です。

このあたりは、居酒屋ガレージ日記さんの、Arduino PB5(デジタル入出力D13)に注意を に詳しい解説があります。

▼UNOの互換品(QFP32)
UNO互換品
回路を追ってみると、この基板もオペアンプのバッファを使ってLEDを点灯させていました。
なお、世の中には Arduino UNO の互換機はいっぱいあって、どの基板でもオペアンプのバッファが入っているとは限らないので注意が必要です。例えば秋月の「ATmega168/328マイコンボードキット」はオペアンプのバッファ無しの回路になっていました。

▼Nano(互換品)とaitendo のあちゃんでいいの
Nanoとあちゃんでいいの

▼Nano (互換品) のD13の回路
NanoのD13
D13 の回路と GND の間に、LED が 1kΩの抵抗を経由して接続されていました。出力として使う分には問題無いですが、入力として使う場合、LED と抵抗で GND 側に引っ張られるので、相手の駆動能力が低いと、Hi レベルが不足する可能性があります。また、LED の静電容量は意外に大きく、また逆から正バイアスに変わる瞬間の挙動も素直では無いので、その点でも注意が必要です。

▼あちゃんでいいののD13の回路
あちゃんでいいののD13ピン
aitendo のあちゃんでいいのの回路です(現在売られている物とは違っているかも知れません)
D13 に LED が直結されているのですが、何と VCC から接続されていました。昔の LSI はシンク側の方が駆動能力が大きかったのでこういう使い方をすることが多かったのですが、その頃の名残でしょうか。

ともかくこのままでは論理が逆で気持ち悪いので、私は右の回路図のように、FETのバッファを通して LED を点灯するように改造して使っています。こうすれば余分な(直流)負荷も無くなって好都合です。

◆まとめ
手持ちの Arduino のボードの D13 ピンの回路 (LED点灯回路) を調べて、注意事項などをまとめました。D13 ピンを入力として使うことはあまり無いとは思いますが、とりあえずこういう問題があることを頭の隅にでも入れておけばトラブルの発生防止になると思います。

ちなみに記事中の居酒屋ガレージ日記さんの記事に書かれているように、D13 ピンはブート時に出力として使われ、何度か Hi/Low を繰り返すので、そういう動作が問題になる機能には使うべきではありません。そんなことで、D13 は状態表示の LED 用として使うのが良いと思います。まあ、ピン数が足らなくなると、そういうことを言っていられないのですが。
関連記事
トラックバックURL

http://radiopench.blog96.fc2.com/tb.php/961-bc6d7caf

前の記事 次の記事