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

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

ただいまの
回答率

90.13%

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

解決済

回答 3

投稿 編集

  • 評価
  • クリップ 1
  • VIEW 540

norisu

score 7

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

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

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

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

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

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

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • thkana

    2019/04/27 09:04

    https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q10206838310
    と同じ質問ですね。
    https://teratail.com/help#posted-otherservice
    に則って適切なフォローをお願いします。

    キャンセル

  • thkana

    2019/04/28 18:46

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

    キャンセル

  • thkana

    2019/04/28 18:53

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

    キャンセル

  • ikadzuchi

    2019/04/28 22:31

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

    キャンセル

回答 3

+1

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

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2019/04/29 16:05

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

    キャンセル

checkベストアンサー

0

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

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

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

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

0

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

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

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

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

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

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

  • ただいまの回答率 90.13%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

同じタグがついた質問を見る