LEDを吸い込みで駆動
IOポートは電流を吸い込むこともできます。
前回はポートから出力される電流でLEDを点灯させました。
ポートへの出力を1と設定することで、IOピンが5Vとなり、そこにLEDと抵抗を接続して 2mAの電流でLEDを点灯させました。
今度は、別の方法で、
ポートに流れ込む(吸い込む)形式で、LEDを点灯させてみます。
ポートへの出力を1と設定することで、IOピンが5Vとなり、0の設定でIOピンは0Vとなります。
しかし、0の設定でIOピンは0Vとなるのは、電圧が0Vで出ない
と同時に GNDのように 電流を吸い込むことが出来ます。
H8-3664 に流せる電流は
■ IOポートでLEDを光らせる にあるように(下記)
ポートに電流を流し込むシンク電流 でも やはり2mAしか吸い込めません。
しかし、 ポート8だけ吸い込みの場合、20mAの電流を流すことができます。(大電流ポート その他のポートは吸い込み、吐き出しとも2mA)
ポート8に20mAの電流を流し、明るくLEDを点灯させて、吸い込みでも点灯させられることを試します。
回路図
前回での、 ポートからLEDに出て行くのと違い、
ポート8をGNDのように流れ込む向きにLEDを接続します。
ポート8だけ吸い込みの場合、20mAの電流を流すことができます。
プログラム
PIO2
#include <3664.h>
void msecwait(int msec)
/*なにもしない時間稼ぎ関数*/
{
int i,j;
for (i=0;i< msec;i++) {
for (j=0;j<1588;j++); /*1588は約1/1000s*/
}
}
void main()
{
IO.PCR8=0xFF; /* 全て1にセットし、出力に設定 1111 1111 */
while (1) { // P80 ch2-pin9
IO.PDR8.BIT.B0=1; // 消灯 (短)
msecwait(250);
IO.PDR8.BIT.B0=0; // 点灯(長)
msecwait(700);
}
}
吐き出しでLEDをつけるのとは反対で、
IO.PDR8.BIT.B0=1; で LEDは消灯し、
IO.PDR8.BIT.B0=0; となったときLEDは点灯します。
点灯の方の時間を少し長くしています。
メモ
H8-3664は
ソース電流、シンク電流ともに 2mA
シンク電流はポート8だけ多めの電流が吸い込める。
ポート8 : 20mA
ポート8以外 : 2mA
- twtter
- google+
- hatena