複数スイッチを利用する際のピン数節約 その2
先日「複数のスイッチを利用する際のピン数節約」の記事を紹介したが、別の方法も見つけたのでそれを紹介。
その1とその2は以下の通り。
分圧方式その1
分圧方式その2
方式 | メリット | デメリット |
---|---|---|
その1 | プルアップ、プルダウンどちらでも使用可能 出力インピーダンスが一定(Rd)なので、ノイズに強い 後付けが容易 |
分圧比を計算しないといけない 計算で求めた抵抗値はほぼ売っていない |
その2 | 用いる抵抗値は1種類でいいため、作成が容易(R/2は並列にすればOK) 計算の必要がない |
プルアップでは使えない 分圧の抵抗列(図だと縦に並んだ抵抗)に影響を与えない範囲でRdを決定するため、非常にノイズに弱い 未検証ですが、Arduinoで使えないのではないか |
方式2がプルアップで使用できない理由
ここで方式2がプルアップで使用できない理由ですが、PIC(16f18857)においてADCは以下の通りとなっています。
プルアップにすると、出力インピーダンスが100k以上と非常に大きいため、サンプルホールドキャパシタ(C_HOLD)を十分充電できず、何も押していない時でも電源電圧に達することができません。
よって、GNDに落としてあげる必要があります。(V_refはGNDの前提)
Arduinoで使えない?
一方ArduinoのチップであるATmega328のADCは以下の通りであり、サンプルホールドキャパシタ(C_S/H)の下側電圧はVcc/2となっており、GNDではありません。
そのため、100kのプルダウン抵抗ではGNDに落としきれない可能性があります。
なお、当方はArduinoを持っていないため未検証です。あしからず。