質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Arduino

Arduinoは、AVRマイコン、単純なI/O(入出力)ポートを備えた基板、C言語を元としたArduinoのプログラム言語と、それを実装した統合開発環境から構成されたシステムです。

Q&A

解決済

3回答

990閲覧

光センサアナログ入力について

norisu

総合スコア17

Arduino

Arduinoは、AVRマイコン、単純なI/O(入出力)ポートを備えた基板、C言語を元としたArduinoのプログラム言語と、それを実装した統合開発環境から構成されたシステムです。

0グッド

1クリップ

投稿2019/04/24 14:35

編集2019/04/28 08:11

arduinoのアナログ入力にて光センサの電圧値を読み取ろうとしております。
CDSセルを使用していた時は、問題なく読み取れていたのですが、
NJL7502に光センサを変更しようとしたところ上手く読み取れなくなってしまいました。

NJL7502の抵抗値を測定したところ、
明るいときは60KΩ
暗いときは15MΩ
となっております。
明るいときの値は読み取ってくれるですが、暗いときの電圧値が、0~1023を、
波打つような値となり、正常な値が読み取れません。

光センサから基盤まで配線の長さが15m程度あり、そこそこ長さがあるので、
その辺も影響していると思うのですが、この辺について同じような経験ある方いらっしゃらないでしょうか?
配線を短くすると読み取れるようにもなりましたが、距離が必要で…色々考えたのですが、また質問させていただきました。

また、抵抗値を読み取って出力できるようなマイコンとかないでしょうか??
よろしくお願いいたします。

すみませんもう一つのほうは削除いたしました。

電源供給といと添付図にどのようなものを追加したら良いのでしょうか??
すみませんがご教示頂ければ大変幸いです。
よろしくお願いいたします。イメージ説明

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

thkana

2019/04/28 09:46

> もう一つのほうは削除いたしました。 いくつか回答がついていませんでしたっけ。回答者はあなたのために時間を掛けて回答を書いたと思うのだけれど(善意でとは言い切れないこともあったりはするけれど)、それをさらっと削除して無にする、というのはどうなんでしょう。 ここteratailでは回答が付くと容易には削除出来なくなるそうです。何故だと思いまずか?
thkana

2019/04/28 09:53

それはそれとして、その結線図で「15m引き回している」のはどの部分ですか?
ikadzuchi

2019/04/28 13:31

まったくこれだからYahoo知恵袋に回答するのは嫌なんですよね…。 済んだことはどうしようもないですがせめて向こうで得た回答の内容を書き写してください。 ところで向こうは締め切っていたようですが、解決したのではないのですか?
guest

回答3

0

まず貴殿の回路が分かりませんので基本的な回路例から
回路例
つづいてデバイスの特性は
電流特性
最大10000μAの時が5Vになるように考えると5V/10000x0.00000001=500オーム。
なので回路例のRを500オームで試してみる。

投稿2019/04/25 00:42

MasahikoHirata

総合スコア3747

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

MasahikoHirata

2019/04/29 07:05

追加の配線図を見て、全然だめです。 また他の回答者様の回答から追加のコメントです。 指摘のあるように15mのケーブルでは周囲の電磁波などの影響があります。 簡易に実現するにはOPAMPでボルテージフォロアの回路安定化するなど考えられます。(アンプ内蔵センサーはこの方法を使われているのが一般的) またシールドケーブルも必要でしょう。 センサーの電源はarduinoの本体の5Vを使うので十分かと思います。
guest

0

ベストアンサー

まず、電子回路の定石としては、抵抗値の測定というのは、既知の電流を流して発生する電圧を測定するものです。ありがちな、既知の抵抗と直列にして電源につなぐような回路では、電流Iは既知の抵抗を流れているものと同じですから、既知の抵抗Rと電源電圧V、測定された電圧Vrとすれは(V-Vr)/Rで求められて、つまり被測定抵抗はVr*Iで求まるわけで。
余程の用途が見込まれるなら専用の抵抗値測定回路を構成してもいいかもしれませんが、外付けの抵抗一本とADコンバータがあればざっとした測定は可能なのでわざわざハードに焼き込むことはないと思われます。

それと、常識のレベルでアナログ小信号の回路で15mの距離を引っ張るというのは相当に気を使う案件です。15mの線を引っ張って、その先に15MΩというのは事実上開放状態ですから、「アンテナ」というやつですね。テレビの放送がアナログの時代には、送信アンテナである東京タワーの直下で、蛍光灯に線を数メートルぶら下げたものが点灯した、と聞きます。そんなのがAD変換の入力に飛び込んだら...もちろん、普通の環境でそこまでのパワーがあるわけではありませんが、電灯線からの誘導などを考えればマイコンのAD変換の入力にさまざまな電磁波が影響を与えることは容易に想像出来るでしょう。(デジタル回路でも、12V振幅のRS-232Cで10mくらいまでしか保証してなかったような。)

とりあえず60KΩのときにあなたの用途に十分なデータが取れるということなら、なにか簡単な増幅回路を入れてやれば動作は十分に安定するでしょう。ただし、増幅回路には電源が必要となりますから、センサー直近に別の電源を用意するか、それが出来なければ15mの配線を一本増やして電源を供給してやる、などの工夫が必要になるかと思います。もちろん、センサー直近でデジタル化してしまってから伝送すればノイズには強くなりますが、電源が必要という部分はあまり変わりませんね。
頑張れば、温度センサ等で使われるような2端子で電源供給とデジタル伝送をやってしまうような技術はありますけれど、汎用部品で組み上げるのはちょっと面倒かな、と思います。

投稿2019/04/27 00:02

thkana

総合スコア7639

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

光センサ(フォトダイオード)は入力光が弱くなると流れる電流が非常に弱くなります(Vccが5Vで、抵抗値が15MΩだとすると、ダイオードに流れる電流は0.3μAしかない)から、外部からの雑音の影響を強く受けることになります。ましてや15mもの長い電線が接続されていたのでは、まともな測定結果が期待できません。

光センサとArduinoの間にボルテージフォロワ回路(電圧を変えずに出力インピーダンスを下げるアンプ)を入れるか、LLS05-Aのようにアンプを内蔵している光センサを使う事をお勧めします。

そして、光センサはArduinoの側に置いて、センサー周辺の配線を短くし、Arduinoからシリアル通信で測定結果を受け取るようにするのが良いです。シリアル通信は、0と1の信号を3~5Vの振幅で送りますから15m離れていても問題ありません。

【Arduino電子工作】可変抵抗器の入力を読む
の記事で作っているのは、「抵抗値を読み取って出力できるようなマイコン」の実例だと思います。
他にもいろいろ作っていらして、それを写真入りで説明しているので参考になると思います。

投稿2019/04/25 08:17

coco_bauer

総合スコア6915

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問