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

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

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

IDE、統合開発環境((Integrated Development Environment)とは、テキストエディタ以上の機能を提供して、ソフトウェア開発を効率をあげるコンピュータプログラムを指す。

Arduino

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

IoT

IoT(Internet of Things)とは、インターネットがコンピュータなどの情報・通信機器のネットワークだけでなく、世の中のある様々なモノに接続されて自動認識・自動制御・遠隔計測などの能力を備えることです。「モノのインターネット」と一般的にいわれます。

マイコン

マイクロコンピュータの略で、CPUにマイクロプロセッサを用いたコンピュータのこと。家電製品、電磁機器などの制御に用いられています。単体でコンピュータとしての機能を一通り備えています。 現代のパーソナルコンピュータに近く、同時期のメインフレームやミニコンピュータと比べ、小さいことが特徴です。

Q&A

解決済

1回答

5670閲覧

DC12~24VのセンサをESP32で動かす方法

tsumo0302

総合スコア3

IDE

IDE、統合開発環境((Integrated Development Environment)とは、テキストエディタ以上の機能を提供して、ソフトウェア開発を効率をあげるコンピュータプログラムを指す。

Arduino

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

IoT

IoT(Internet of Things)とは、インターネットがコンピュータなどの情報・通信機器のネットワークだけでなく、世の中のある様々なモノに接続されて自動認識・自動制御・遠隔計測などの能力を備えることです。「モノのインターネット」と一般的にいわれます。

マイコン

マイクロコンピュータの略で、CPUにマイクロプロセッサを用いたコンピュータのこと。家電製品、電磁機器などの制御に用いられています。単体でコンピュータとしての機能を一通り備えています。 現代のパーソナルコンピュータに近く、同時期のメインフレームやミニコンピュータと比べ、小さいことが特徴です。

0グッド

0クリップ

投稿2020/11/07 14:22

ESP32-DevKitC-32D、
またはESPr Developer 32とセンサをつないで
WiFiを使ったIoT開発を始めたところです。
電気・通信分野は素人で、まだ電子工作歴1ヶ月の初心者です。

いま使おうとしているセンサが
「電源電圧DC12V~DC24V」となっています。
ESP32またはESPrで、このセンサを動かすには
どのようにすればいいのでしょうか?
何かパーツを増やして、電圧を上げなくてはいけないのでしょうか。

また、このセンサの出力電圧のほうは
「1V~5Vのラダー出力」となっています。
30段階に分かれていて、1ステップあたり133mVで変動します。
このような出力でも、ESP32またはESPrで読み取れるのでしょうか?

教科書(IoT開発スタートブック/技術評論社)には
「analogRead関数の戻り値は、入力が0Vのとき0、3.3Vのときに4095」とあります。
5V入力したら読み取れない(もしくは故障する)のでしょうか?

仕事で急遽電子工作をすることになり、ここ1ヶ月教科書に沿って、
温湿度センサ等を使って進めてきましたが、自力だけでは理解しきれません…。
また、電子工作に詳しい知人もおりません。
本当に素人なので恐れ入りますが、ご教授頂きますよう宜しくお願い致します。

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

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

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

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

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

guest

回答1

0

ベストアンサー

メカトロのセンサは12~24V電源って多いですね。

電源装置としてはなんらかの12~24Vの電源を一つ用意し、電圧差が大きいのでスイッチングタイプの降圧コンバータで3.3Vを作ってESPに供給する、というのが一番普通な構成だと思います。

昇圧してもいいですけれど、降圧より昇圧の方が回路が複雑=値段が上がって変換効率は下がったりしやすいかと思います(その辺の昇降圧はモジュールになっているものを使うことになるでしょうけれど)。

1V~5Vのラダー出力

ラダー出力というのがよく分かりませんが、PLCで受ける前提、という意味かしら (PLCのスペックを見ると1~5Vモードなんてのがあるみたいだし)? 抵抗ラダー式のDACというのもありますが、どうなんでしょう。

センサの出力側の回路がどうなっているかによりますが、一番簡単には抵抗で分圧して、センサー側の電圧が5Vのときに3.3V以下にしてやることでしょうか。
イメージ説明
センサーから5Vが出てくると、5*3.3/(3.3+2.2)=3Vが出てくるのでこれをマイコンのADCに突っ込んでやります。センサ出力が周波数が高い信号だったり、出力インピーダンスが低いなら、24Vで動くオペアンプで受けてやる必要があったりするかも知れません。

ESP32のADに5Vを突っ込んだときに、少なくとも正しいデータが取れないのは確かですが(多分最大値にクリップする)故障する可能性があるかどうかはデータシートで確認して下さい。やるべきではない操作であることは確かです。

投稿2020/11/07 22:19

編集2020/11/08 01:52
thkana

総合スコア7639

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

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

tsumo0302

2020/11/08 11:30

迅速な回答ありがとうございます!回路図とレギュレータまで…有難いです。 初投稿・初心者なので、本当に感動しています。 まず「ラダー出力」ですが、ある液面センサの仕様に書いてあった言葉です。 検出距離0~150mm、検出ピッチ5mm →測定点数は31点 出力電圧1V-5Vなので、1ステップ動くと(=5mm移動すると)133mV、出力電圧が上がる仕様です。 具体的には、  0mm≦位置<5mm のとき 出力0V  5mm≦位置<10mm のとき 出力0.133V  10mm≦位置<15mm のとき 出力0.266V  15mm≦位置<20mm のとき 出力0.400V  …  145mm≦位置≦150mm のとき 出力5V 縦軸が電圧、横軸を検出距離とすると、グラフは階段状となります。 「ラダー」はおそらく梯子の意味と推測します。 私がまだ素人のため、分からないところがあるのですが、 まずは御礼と、「ラダー出力」の件について書かせていただきました。
tsumo0302

2020/11/09 13:27

改めてご回答ありがとうございます。 ①分圧の件で、抵抗に2.2kΩと3.3kΩとありますが、 (極端な話ですが)22Ωと33Ωではいけないのでしょうか? マイコンに入力できる電流の上限値が分からないので…。 ②3端子レギュレータには、別途コンデンサが必要でしょうか? (調べたところ、入力側と出力側にコンデンサを接続し、電圧の発振を安定させるために必要とのことでした。) また、何μFを選べばよいかも分からないです。 オペアンプもよく知らないレベルの素人ゆえ、自分で勉強しろと言われそうですが… もしまたご覧頂けたら幸いです。
thkana

2020/11/09 13:52

> マイコンに入力できる電流の上限値が分からないので 「上限値がわからない」ので22Ω/33Ωにしたいという論理の流れはどういうもの?(単に興味があるだけですが) 22Ω/33Ωでは多分いけないです。そこに5Vを掛けたら電流はどれくらい流れる「はず」でしょう。 一方、センサから流せる電流はどのくらいまでということになっていますか? > 3端子レギュレータには、別途コンデンサが必要でしょうか? https://recom-power.com/ja/products/switching-regulators/rec-s-R-78E-0.5.html?2#id2a4 FAQsの項を見てください。
tsumo0302

2020/11/10 05:25

thkana様、いつも本当にありがとうございます。 申し訳ありませんが…抵抗値をどう選定すればいいのか、まだ分かっていないのです。 私の思考の経緯は、 ・まず、「R1:R2=2:3」であれば何Ωでもいいのかな?と考えたのです。 ・でも、最大5Vが発生したとき、  5V÷(3.3kΩ+2.2kΩ)≒0.91mA に対して、  5V÷(33Ω+22Ω)≒91mA だと、電流が大きすぎるのかな?マイコンが壊れちゃうかな?と、  ふと心配になった。 ・マイコンには最大何mAまで流していいのかな?と気になったが、  ESPのデータシートのどこを見ればいいかわからない。 …という流れです。(理科の教科書レベルというか、素人の発想ですね) なお、センサは、https://watty.co.jp/sensor/liquid/ の真ん中あたりに載っている、 HL-AP-150Aというものです。 そして、このセンサの仕様は「消費電流 Max 30mA」と書いてあります。 また、(つかぬことですが)私がthkana様に「高評価」のようなポイントを差し上げるには、どうしたらよろしいでしょうか?このteratailもまだ使い慣れていないので…。
shinami

2020/11/10 13:38

> tsumo0302さん ポイントは質問の所ではなくこの回答の所の高評価ボタンでポイントが付きます。 私も入れましたので2ポイントになっているはずです。 > いま使おうとしているセンサが「電源電圧DC12V~DC24V」 電源が取れるのは、通常単相AC100Vか工場などの三相AC200Vかと思いますがどのようにしてDC12V~DC24Vを取る予定でしょうか? > ESP32-DevKitC-32D これはチップのみだけではなく何か周辺回路もありませんか? この回路にDC5V→DC3.3Vの三端子レギュレーターが入っていると思われます。 チップのみであるならDC12-DC24→DC3.3Vで良いと思いますがその周辺回路が使えないかもしれません。 DC5Vが必要な場合はDC12orDC24→DC3.3VでなくDC12orDC24→DC5Vの三端子レギュレーターを使いましょう。 > R1:R2=2:3であれば何Ω > 0.91mA に対して、91mAだと壊れちゃうのかと 最初に言っておきます。私はESP32などは全く使った事無いので間違っているかもしれません。 比率で3Vであれば電圧的には大丈夫ですがご想像の通り耐えられる電流を流してはいけません。 https://www.espressif.com/sites/default/files/documentation/esp32-wroom-32d_esp32-wroom-32u_datasheet_en.pdf データシート中頃少ししたの5.1以降がそうですが入力に関しては記載されてなさそうです。 累計では、1100mAまでとなっていますが・・・。 出力に関しては、20mA、40mA、28mAと用途やピンによって違うようです。 おそらく、入力は内部に抵抗なるものを持ってはいると思いますがあまり低い外部抵抗を使わない方が良さそうです。 1k~47kΩなどの抵抗で良さそうです。余り高すぎるとノイズに弱いと言われます。 また、今回コンデンサが必要かどうかは分かりませんがコンデンサには耐圧、電解コンデンサには極性がありますので注意してください。
ozwk

2020/11/10 14:04 編集

抵抗値が低くて問題になるのはマイコンの入力ピンではなくてセンサーの出力です。 R1:33Ω , R2 : 22Ωで(センサーと抵抗が耐えられたとして)センサー出力から流れる91mAはマイコンの入力ピンにはほとんど流れずにR2に流れます。
thkana

2020/11/10 14:06 編集

今どきの普通のマイコンデバイスで「入力の電流」を気にすることはなかなかありません。CMOS回路の「入力インピーダンス」は非常に高く、つまり入力端子はおおよそ数百KΩ~数MΩの抵抗で電源/GNDに繋がったものと等価と考えてください。つまり、入力端子を3.3VやGNDに直接つないでもマイクロ~ナノAオーダーの電流しか流れません。(オームの法則は大丈夫ですね?) 低抵抗をつないで困るのは、センサ内部の「出力インピーダンス」が高い場合に、つまりセンサから電流を流すと出力電圧が下がってしまうからです。 センサのデータシートにどのくらいの出力電流を流しても大丈夫そうかは書いておいて欲しいところですが、メカトロ用はあんまり...なので、数KΩから数十KΩ程度にしとくのが無難かな、というところ。50Ωとかはいくらなんでも低すぎる...というのがまぁ「常識」というところかと思います。 なお、マイコンのデータシート ( https://www.espressif.com/sites/default/files/documentation/esp32_datasheet_en.pdf )の5.1absolute Maximum Ratingsの項にある1200mAというのが、その値を少しでも、一瞬でも超えたらもう製品の動作は保証しないよ(つまり壊れる)と言っている値です。先程書いた様に、入力電流はほぼ無視できる値なので、現実的には出力に設定したポートから流れ出す、また流れ込む電流の総和がこれを「絶対に(absolute)」超えてはいけないということ。普通はポート一つ分での最大電流とかも書いてあるものだけど...書いてないので、5.3 DC Characteristics をみると出力電流40mAとか20mAとか書いてあるので、まぁこれ以下に押さえておけば支障はないだろう、という話になります。
tsumo0302

2020/11/14 13:23

皆さん、ご回答本当にありがとうございます。そして返信が遅れて失礼致しました。 (正直、自身のキャパを超えてうろたえていました…) 私自身、「マイコンには低い電流しか流せない」という思い込みがありました。 shinamiさま ・まずは社内の試験で、AC100VからDCコンバータで、または安定化電源でDC12~24Vを作ります。 ・DC5Vの件は仰るとおり、ESP32-DevKitC-32Dは5Vが電源ですね、 (ESPr-Developer32のほうは「3.7~6.0Vで動作し、安定化電源が内蔵」とありました。)  三端子レギュレーターの選定を間違えないようにします。 ・データシートの「Cumulative IO output current 1100mA」ですね。Cumulative(累計)と言われても私ひとりでは意味が分からないままでした。 ・抵抗は1k~47kΩあたりですね、抵抗値の選定は今後勉強していきます。 ・コンデンサ、使い方間違えるとかなり危険だということを最近知りました。爆発とか感電とか…十分留意して使用します。 ozwkさま 電流はR2にほとんど流れていくのですね… 「マイコンの入力ピンの電位が何Vなのか」が重要、ということですね…?
tsumo0302

2020/11/14 14:07

thkana様、今回もありがとうございます。 ・マイコンに流せる電流の件、実はESP32より先に、無線マイコン”TWELITE DIP”というものを使っていて、このTWELITEが「4mA以下にすること」とあったのです。 加えて、なんとなく固定観念で「マイコンには低い電流しか流せない」と思い込んでいた、という経緯があったのです。 ・「Cumulative IO output current」の欄ですね。「流れ出す・流れ込む電流の総和がこれを絶対に超えてはいけない」の意味なんですね。 しかしデータシートにあまり詳しく書いてない、というのは初心者にはキビしいです(苦笑)。 ・「センサ内部の出力インピーダンスが高い」かつ「外部抵抗が低すぎる」場合、 「せっかくセンサから出した電圧が、センサ内部の抵抗に食われてしまう」という理解で正しいでしょうか。 センサのインピーダンスをセンサメーカーに聞いてみようかと思います(教えてくれるのかどうか…)。 あと外部抵抗は数KΩから数十KΩ程度が相場なのですね…。もっと電子工作の場数をこなして勉強していきます(まだ開始1ヶ月なもので…)。
thkana

2020/11/14 23:50

> 三端子レギュレーターの選定を間違えないようにします よく使われる三端子レギュレータはリニア(ドロップ)型。これは、端的に言ってしまえば電圧差分を熱に変える(つまり無駄に消費する)ことで低電圧を得ます。 24Vから5V/3.3Vに落とすのにリニアレギュレータを使ったら、ドロップ電圧が19Vもありますから例えば50mA流すとおよそ1Wの発熱になりますので、放熱器が必須でしょう。よほどの理由が無い限りスイッチング型を使って下さい。
thkana

2020/11/14 23:54

繰り返しますが、分圧の抵抗を考える時に必要なのは、センサ側の能力です。 マイコン側の電流はほとんど影響しません。実用上、マイコンの入力端子には「電流は流れない」と考えていいです。
thkana

2020/11/15 00:06

> コンデンサ、使い方間違えるとかなり危険だということを最近知りました。爆発とか感電とか 真空管の時代にはまぁいろいろありましたけど。電源ライン115Vとかではそりゃいろいろ起こりますよ。 24V程度なら、電源ラインの電解コンデンサの逆接続でもすれば破裂はしますが感電は難しいです。 あと、電源ラインにタンタルコンデンサを使うと、コンデンサの故障時にショートモードになるからいろいろ起こったりもするかも。(結構電源ラインにディップタンタルとか使う人多いんだよなぁ...) でも、普通に使う5V回路じゃ(10Aも流せるようなよほどの低インピーダンス電源でもないかぎり...)コンデンサを(開弁はさせても)破裂させるほどのパワーは無いですから。電源以外の信号ラインのコンデンサでそんな派手な現象は起こりません。恐れるに値せず。
thkana

2020/11/15 00:17

> マイコンには低い電流しか流せない 電圧は高い/低い。電流は大きい/小さい。(電圧は掛ける、電流は流す、というのも。よく「電圧を流す」人がいますが、そんなことを言っている人の知識は信用するに値しないでしょう) 昔のマイコン(というかデジタルIC)は、IOの出力電流もたかだか数mAで、LED直結で光らせるなんてことは出来ないのが普通だった...というのは言えますがしかし 大小の話よりも、「出力」と「入力」の区別が大事です。
thkana

2020/11/15 00:20

> しかしデータシートにあまり詳しく書いてない、というのは初心者にはキビしいです(苦笑)。 そりゃまぁ、本来プロが読んで、仕事として、売るためのものを作るときに参照する文書ですから。 「初心者」に甘えないで頑張って読むしかないでしょう。
thkana

2020/11/15 00:26

> 「せっかくセンサから出した電圧が、センサ内部の抵抗に食われてしまう」という理解で正しいでしょうか。 そういうことです。 > 教えてくれるのかどうか… これは相手次第ですね... ただ、今回の用途では電圧の絶対値が必要でなく、30段階の電圧を区別出来ればいいわけで、多少は内部抵抗に喰われても目的は達せられるのでは、ということはちゃんと考えて下さい。
tsumo0302

2020/11/18 14:14

thnakaさま 返信が遅くなって失礼致しました。本当にたくさんの情報をありがとうございます。 ・スイッチング型レギュレータですね。ありがとうございます。 ・実用上マイコンの入力端子には「電流は流れない」、かしこまりました。 ・電圧と電流の正しい言い回しがあるんですね…。物理的意味というか、言葉の本質を深く理解しているかどうかが、言い方ひとつでバレてしまうということですね。 ・具体的な電位の値よりも「30段階の区別が第一の目的」を見失わないようにします。 本件はこの時点でクロージングさせて頂き、頂いた情報をもとに試作と勉強に取り組みます。 また分からないことが出てきたらこの場をお借りして質問させて頂きます。 ご回答くださった皆さん、ありがとうございました。
kgreenjp

2020/12/04 10:38

しばらく時間がたったあとのようなので、申し訳ないんですが。 tsumoさんの使用しようとしているセンサー出力は、俗に4~20といわれるものです。 4~20mAを出力するものです。これに240Ωを返すことで、1~5Vの出力が得られます。 よって、もう抵抗はついてるよってことです。 マイコン側の電源が5Vとならつなげばとりあえず計測は出来るはずです。 参考にURL載せます。 http://energy-kanrishi.com/4-20ma/ 4~20はFAの分野ではよく使います。thkanaさんもPLCに書いてあったよって教えてくれてましたね。 マイコンが5Vでない場合なんかは、thkanaさんの回路を参照し分圧してください。
tsumo0302

2020/12/15 02:55

kgreenjp様 ご教示ありがとうございます。返信遅くなり申し訳ありませんでした。 エネ管のHPは私も時々見ていて、ここのyoutubeもチャンネル登録しています。 ちなみに現在、マイコンの電源には乾電池を使い(レギュレータは使用せず)、3.3kΩと2.2kΩの抵抗で分圧していますが、センサの内部インピーダンスが1kΩあることが分かりました。 当初の想定とは異なっていますが、ひとまず電圧(液面位置)30段階は判別できているので、今はまあいいかと考えて使い続けています。 センサのメーカーからは「センサの内部抵抗1kΩなので、数MΩ単位の抵抗をつなぐのが望ましい」とのことでした。 これなら5V→3Vへの分圧が容易ですが、電流値はμAレベルとなります。 分圧に使う抵抗はkΩかMΩか、どちらがいいのでしょうか…(ノイズの影響とか…?)。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問