2005-11-15

汎用USB-IOのLED駆動回路


汎用USB-IOのポート1はLEDを点灯させる事が出来る程度は電流を流せますが、ポート1はそこまで電流が流せません。もし、ポート1と同じように接続してもLEDは暗くなります。ポート0でもLEDを正常に駆動できるようにする回路です。
少し複雑になりますが、この回路であれば最大12個のLEDを制御できます。また、同じく12個のスイッチの状態も取得できます。(当然のことですが、同じ回路が12個必要です)

汎用USB-IOでSWとLEDを同時コントロール



同じポート及びビットでLEDのON/OFFとSWの入力を行う時の配線図です。流せる電流の多いポート1を使用しています。図では0ビット目を使用しています。
同時といっても少し制約があります。LEDをON/OFFさせる時はSWをOFFの状態にしておく必要があります。SWをONにしておくとLEDはつきっぱなしになります。該当ビットに1をセットするとLEDはOFFになり、0をセットするとONになります。
SWの入力をする時はLEDをOFFの状態(該当ビットに1をセットする)にする必要があります。LEDをONの状態にしておくとSWの状態を取得すると常にONがかえってきてしまいます。SWがOFFの時に該当ビットに1が返り、ONの時に該当ビットに0が返ります。
ポート0も含めて12個全部使用できるようにするためには、トランジスタなどで流せる電流を増やす必要があります。後日UPする予定です。

汎用USB-IOでスイッチ入力 


汎用SUB-IOで入力の確認でSWから入力させる時の配線図です。ポート0の0ビット目を使用しています。スイッチOFFの状態は該当ビットが1で、スイッチONで該当ビットが0になります。
LED出力では電流の関係でポート1を使用しましたが、スイッチの入力であればどのポートでも可能です。内部的にプルアップ抵抗をもっているので必要ないとは思いましたが、念のため10kΩのプルアップ抵抗をつけています。逆に内部的にプルアップされているので、プルダウン抵抗をつけると抵抗の値によっては正常に動作しないと思います。また、入力に使用するポートの該当ビットに0を出力すると、内部回路的に常にGNDに接続された状態になりスイッチの状態が取れなくなります(常にスイッチがONの状態になります)。