質問: こんにちは、初めて質問させていただきます。 ホール素子を用いて磁界がS→N、N→Sへと変化するのを検出する回路を作っています。 Arduinoを用いており、VDDにはArduinoから5Vを、GNDには900Ω抵抗(手元に150Ω抵抗しかなかったので6つ直列)を、OUTにはArduinoの2pinを接続しています。 使用しているホール素子はN極でHIGH,S極でLOWを返す、下のUS1881LUAです。 INPUTに設定した2pinからdigitarReadでホール素子の出力を読み込み、磁界の変化があった時にSerial.printlnでパソコンに0か1を表示させるようにしています。 以上の構成で動作させたところ、N極を近づけると延々と1と0を繰り返し表示させ続けます。 S極を近づけた場合は0を一度だけ表示し、正常です。 正常ではN極を近づけた時に一度だけ1を表示するはずですが、上記のような挙動をします。 正常に作動させるためにはどうすればいいでしょうか? ご回答宜しくお願いします。
回答: 出力がオープンドレインだったのはうかつでした。 間違いなく、No.2 の形の指摘が正解でしょう。 ちなみに、「プルアップ」とは、ホール素子の out と Arduinoの2pin の間に抵抗を入れることではありません。 せめて、ホール素子の資料は確認しましょう。 13.1 Typical Three-Wire Application Circuit にある回路とちゃんと比べてみましょう。