こんにちは、初めて質問させていただきます。
ホール素子を用いて磁界がS→N、N→Sへと変化するのを検出する回路を作っています。
Arduinoを用いており、VDDにはArduinoから5Vを、GNDには900Ω抵抗(手元に150Ω抵抗しかなかったので6つ直列)を、OUTにはArduinoの2pinを接続しています。
使用しているホール素子はN極でHIGH,S極でLOWを返す、下のUS1881LUAです。
http://akizukidenshi.com/catalog/g/gI-05274/
INPUTに設定した2pinからdigitarReadでホール素子の出力を読み込み、磁界の変化があった時にSerial.printlnでパソコンに0か1を表示させるようにしています。
以上の構成で動作させたところ、N極を近づけると延々と1と0を繰り返し表示させ続けます。
S極を近づけた場合は0を一度だけ表示し、正常です。
正常ではN極を近づけた時に一度だけ1を表示するはずですが、上記のような挙動をします。
正常に作動させるためにはどうすればいいでしょうか?
ご回答宜しくお願いします。
No.1
- 回答日時:
おそらく、プログラムのループの中で、不用意にゼロをセットしているからでしょう。
いずれにしても、まず、オシロスコープで
・ホール素子単独で
・ボードをつないだ状態で
それぞれ出力を確認するが一番良いです。
この回答への補足
ご回答ありがとうございます。
以下にプログラムを書いておきます。
ホール素子の値を代入する引数(val)を宣言する時にint val = 0 としていたのを int valのみにしてみましたが、状況は改善されませんでした。
手元にテスターはあるのですがオシロスコープはないので、ちょっと調べられません。。
#define hole 2 //ホール素子をPin2に接続
#define LED 11 //LEDをPin11に接続
int val;
int old_val;
void setup(){
Serial.begin(9200);
pinMode(hole, INPUT);
pinMode(LED, OUTPUT);
}
void loop(){
val = digitalRead(hole); //ホール素子の出力を取得
digitalWrite(LED, val); //ホール素子の出力に応じてLEDをON/OFF
//ホール素子の出力が変化した時にPCに数値を送る
if(val != old_val){
Serial.println(val);
}
old_val = val;
}
No.2
- 回答日時:
GNDには900Ωがなぜ必要なのか回路図がないのでわかりませんが。
US1881は出力がオープンドレインになっていると思いますが、2PINはプルアップされているのでしょうか?
10kΩ位でプルアップが必要です。
微妙に回路電流が流れていると、論理の0Vだけ確実に引っ張っていると考えられます。
ご回答ありがとうございます。
ご指摘を受けて考えてみたところ、900Ωの抵抗は必要ありませんね。ミスでした。
そこで、GNDはそのままGNDへ、ホール素子のOUTと2PINとの間に10kΩ抵抗を挟んでみましたが、それでも解決しませんでした。
10MΩでも試してみましたが、やはり同じでした。
No.3ベストアンサー
- 回答日時:
出力がオープンドレインだったのはうかつでした。
間違いなく、No.2 の形の指摘が正解でしょう。
ちなみに、「プルアップ」とは、ホール素子の out と Arduinoの2pin の間に抵抗を入れることではありません。
せめて、ホール素子の資料は確認しましょう。
13.1 Typical Three-Wire Application Circuit
にある回路とちゃんと比べてみましょう。
すみません、一応資料は確認していたのですが、コンデンサ等は使ってなかったので13.1あたりは読み飛ばしてました。
最近入門したばかりで不勉強で申し訳ないのですが、あの図からコンデンサ関連の部分を取り除いたような回路でいいのでしょうか?
No.4
- 回答日時:
> 最近入門したばかりで不勉強で申し訳ないのですが、あの図からコンデンサ関連の部
> 分を取り除いたような回路でいいのでしょうか?
まず、やってみましょう。
ダメかもしれませんが。
でも、挙動は明らかに変わるはずです。
先ほどVDDと2PINの間に10kΩ抵抗を入れて試してみたところ、上手く作動しました!
お二人の助言がなければ解決できなかったので、大変感謝しております。ありがとうございました。
解決の一番のきっかけになったので、AsanoNagiさんにベストアンサーをつけさせて頂きます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 物理学 回路全体でどのような力の綱引きがあり、どのようにして電流が一定に定まるのかしりたい。 4 2022/04/30 04:02
- 物理学 無励磁作動型電磁ブレーキの作動について 4 2022/05/18 11:18
- その他(趣味・アウトドア・車) Arudino nanoが正常に動作しない原因 1 2022/10/30 18:29
- Wi-Fi・無線LAN PCWi-Fiの設定方法がわからなくて困っています。 4 2022/12/28 18:30
- HTML・CSS Dreamweaver のテンプレートでの相対パスの設定について 2 2023/06/13 17:28
- モニター・ディスプレイ Displayport接続時にディスプレイ設定の一部の項目がチラついて変更できない 3 2022/07/31 10:06
- 地球科学 地磁気が生じる原因が地下のマグマの対流が電流を伴っているからなのですか。 1 2023/02/20 10:03
- C言語・C++・C# プログラミングの問題です。至急教えてください。 /***から***/の部分をプログラミングにしてほし 1 2022/10/13 11:48
- 物理学 モーター 整流子 2 2022/12/20 03:12
- Excel(エクセル) VBA : スクレイピングできない 4 2023/05/12 22:26
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ノートPC 外付けHDD A...
-
LED4つを順番に点灯させる回路
-
矩形波の角を取りたい
-
AC100Vから簡単に直流5...
-
電気回路の伝達関数を求めたい
-
伝送路のインーピーダンス
-
論理回路(NANDゲート)
-
矩形波のデューティ比を50[%]に...
-
論理回路(論理素子)
-
電気パルスの反転の仕方
-
なぜ「インピーダンス変換」を...
-
移相型CR発振回路とウィーンブ...
-
ホール素子を用いた磁界の変化...
-
ゲート抵抗が寄生発振を防ぐ仕組み
-
モーターの逆起電力防止回路
-
タイムスイッチ 同一回路、別...
-
半波整流回路におけるリプル電...
-
ハイインピーダンス
-
モーターが焼損しているかどう...
-
消費電力量の計算方法について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
なぜ「インピーダンス変換」を...
-
ノートPC 外付けHDD A...
-
タイムスイッチ 同一回路、別...
-
整流回路はどのようなところで...
-
出力段について
-
バリスタの破壊原因について
-
モーターの逆起電力防止回路
-
LED4つを順番に点灯させる回路
-
矩形波のデューティ比を50[%]に...
-
現在、UPSの取り替えを行おうと...
-
AC100Vから簡単に直流5...
-
ゲート抵抗が寄生発振を防ぐ仕組み
-
ローパスフィルタと積分回路に...
-
論理回路(NANDゲート)
-
IC555の発振回路が動作しない
-
MOSFETの発熱
-
オペアンプによる差動増幅回路...
-
ハイインピーダンス
-
移相型CR発振回路とウィーンブ...
-
交流と脈流
おすすめ情報