X



トップページ電気・電子
1002コメント434KB

Arduino初心者熱烈大歓迎質問スレ part25

■ このスレッドは過去ログ倉庫に格納されています
0001774ワット発電中さん
垢版 |
2019/09/13(金) 16:15:22.98ID:MfBQFDi7
http://www.arduino.cc/

【質問者心得】
・スレに一応目を通してから質問しましょう
・回答者はエスパーではありません。状況が分かるように詳しく書きましょう
 詳しく書いてくれないと、答える方も困ってしまいます。答えようがないのです
【回答者心得】
・すぐにググレカスと言う前に「○○でググれカス」って言うような大人の余裕を見せつけてやりましょう
・節度ある初心者さんには、特に優しくね

前スレ
Arduino初心者熱烈大歓迎質問スレ part23
https://rio2016.5ch.net/test/read.cgi/denki/1541233445/
Arduino初心者熱烈大歓迎質問スレ part24
https://rio2016.5ch.net/test/read.cgi/denki/1554776918/

過去スレ
Arduino初心者熱烈大歓迎質問スレ part22
https://rio2016.5ch.net/test/read.cgi/denki/1534549073/
Arduino初心者熱烈大歓迎質問スレ part21
https://rio2016.5ch.net/test/read.cgi/denki/1527252804/
Arduino初心者熱烈大歓迎質問スレ part20
https://rio2016.5ch.net/test/read.cgi/denki/1514503488/
Arduino初心者熱烈大歓迎質問スレ part19
http://rio2016.2ch.net/test/read.cgi/denki/1500745528/
Arduino初心者熱烈大歓迎質問スレ part18
http://rio2016.2ch.net/test/read.cgi/denki/1485192244/
Arduino初心者熱烈大歓迎質問スレ part17
http://rio2016.2ch.net/test/read.cgi/denki/1471967293/
Arduino初心者熱烈大歓迎質問スレ part16
http://wc2014.2ch.net/test/read.cgi/denki/1451909868/
Arduino初心者熱烈大歓迎質問スレ part15
http://rio2016.2ch.net/test/read.cgi/denki/1451893274/
0056774ワット発電中さん
垢版 |
2019/09/23(月) 01:56:44.32ID:TPoNq7dB
>>54
基本的に回路に著作権はない
arduinoに関してはarduinoと名乗らなければ問題ない
逆にarduinoの回路はavrにusbシリアルくっつけただけに過ぎないわけだが
ブートローダーやusbシリアル変換に使ってるavrのファームは別な話になるけどね
0057774ワット発電中さん
垢版 |
2019/09/23(月) 02:04:36.58ID:TPoNq7dB
>>38
車載の水温センサーなんかは基本的にサーミスタでB特性の値から計算するのが普通だけどね
安いしただの抵抗だから耐久性も高いし必要十分な精度あるし

自作しようとするならネジに穴開けて埋め込むだけでいいし

昔の車なんかで見かけたのは精度いらなきゃ線1本で引き回しておしまい
0058774ワット発電中さん
垢版 |
2019/09/23(月) 07:13:26.79ID:OwnaTeeq
>>57
車載だと壊れにくくシンプルなの優先するだろうから
ラジエターの冷却液の沸騰上限と凍結下限さえわかれば
途中の温度狂っててもなんでもいいのでは?
CPUの内部温度もサーミスタですよね
0059774ワット発電中さん
垢版 |
2019/09/23(月) 07:33:16.09ID:RHgNNFo6
>>58
燃料の噴射量にも関わるので、あまり雑にはできない。

車内の水温計ならそんなレベル。
0060774ワット発電中さん
垢版 |
2019/09/23(月) 07:39:29.53ID:KD4TWltj
>>58
>CPUの内部温度もサーミスタですよね
PN接合の順方向電圧を使います。
0062774ワット発電中さん
垢版 |
2019/09/23(月) 09:49:26.64ID:TPoNq7dB
>>58
まぁ水温で何をするかというと燃料補正
水温が低いときの増量や水温上がってきたときの補正とか
せいぜい10度単位とかだよ
0063774ワット発電中さん
垢版 |
2019/09/26(木) 00:55:48.07ID:1znSnmQu
シリアルモニタのウインドウが表示されないのですが、どうすれば良いでしょうか。
ポート認識はしていて、(windowsタスクバーを見る限り)シリアルモニタ起動もしている様なのですが。
互換品のelegoo uno r3で、ソフトの再インストールはしました。
0064774ワット発電中さん
垢版 |
2019/09/26(木) 01:46:00.31ID:92aVUBXH
ARDUINO 1.8.10 2019.09.13

[ide]
*ライブフォントのサイズ変更がコンソールとシリアルモニターにも適用されるようになりました@ Pieter12345
* Windows @ Pieter12345のソースからIDEを簡単に構築できます
*超小型画面に適した、より小さな設定ウィンドウ
*ダウンロードしたjsonをキャッシュし、@ mattiabertorelloを変更した場合にのみ取得します
*ボードが突然切断された場合、シリアルモニターを一時停止する
*ライブラリは、libインストール中に提案される依存関係を宣言できるようになりました
* SerialPlotter:@chromhelmラベルの追加を許可
* Board Manager @vowstarのtar.xzアーカイブをサポート
* SerialMonitor:コマンド履歴を追加(矢印キーを使用)@ Pieter12345
*アクセシビリティ:設定@ joew46167でアクセシビリティを有効にするチェックボックスを追加
このモードでは、ナレーションとキーボードナビゲーションが大幅に改善されます。
例えば。リンクはアクセス可能なボタンになり、リストは苦痛なく矢印キーでスクロールできます

[wifi-updater]
*最新のNINAファームウェアを追加
0065774ワット発電中さん
垢版 |
2019/09/26(木) 01:49:39.49ID:92aVUBXH
[ハードウェア] *新しいavrツールチェーンをバンドル(5.4.0および64ビットの互換性を今後のmacOS Catalinaと修正)

[arduino -buidler]
* 1.4.7 への更新(新しいarduino-cliに基づく)
0067>>63
垢版 |
2019/09/26(木) 09:04:11.72ID:1znSnmQu
タスクマネージャーで、起動してる(けど見えない)シリアルモニタウインドウを最大化したら見えるようになりました。
最大化をやめたらまたすぐ消えたんですが、少しいじっている間に直りました。
原因が分かりませんでしたが、とりあえず良かったです。
0068774ワット発電中さん
垢版 |
2019/09/27(金) 08:53:52.93ID:Sh2o7eB9
>>67
ディスプレイの表示範囲の外に表示されてただけでしょ。
arduino云々の話じゃなくwindowsの基本操作の範疇じゃね?

タスクバーにはシリアルモニタ表示ってやったときにarduinoIDEの二つ目のアイコンが重なって表示されてたはずだからそれのシリアルモニタ側のアイコンにカーソルあわせてちょっと上にカーソル移動するとシリアルモニタのサムネイル画像(っていうのかな?)が表示される。
この時右クリックのコンテキストメニューから移動って選ぶとカーソルキーとかで自由に画面外のwindowでも動かせるようになるんでそれで画面内に戻せばいい。

注意点としてアイコンの上右クリックじゃなくてサムネイルのうえで右クリックね。
0069774ワット発電中さん
垢版 |
2019/09/27(金) 11:50:54.49ID:60Bu09s0
すみません
やりたいことが有り、まだ座学なのですが、電子工作で可能なら始めたいと思っていて、
そのための情報集めている段階なのでテストなど出来ないのですが質問させてください

arduinoをコアに
8chのマルチプレクサ10個をデイジーチェーンでコントロールしたいと思っています
TC4051Bのようにデイジーチェーンの仕組みのないマルチプレクサでそのようなコントロールする場合、
I2CやSPIなどで通信するのがスマートな気がするのですが、
後付でそのような機能を提供するような汎用チップのようなものはありますか?
また、他にもっと簡単な方法がありましたら教えて下さい

用語などを間違っていましたらすみません
0072774ワット発電中さん
垢版 |
2019/09/27(金) 16:08:47.07ID:1qbmT20d
74HC595を4個直列にしてシリアル-32bit出力を作って
3bit毎に4051を10個ぶらさげればいけるけど
単純に595を10個並べて80bit出力にしたほうがシンプルだよな
16chの74HC4067も入手しやすいはず
こっちならIC9個で実現できる
0073774ワット発電中さん
垢版 |
2019/09/27(金) 18:09:10.31ID:2WaXige2
>>69のコピペ元の大本質問者です
初心者質問スレ その134
https://rio2016.5ch.net/test/read.cgi/denki/1566321111/753
コピペしたのは私じゃないす

>>72
ありがとうございます
元スレにて、
アドレスデコーダー
シフトレジスター
という情報いただき、調べる過程でIOエキスパンダーでも行けそう
という感じになっています
で、マルチプレクサなんですが、 実際にはデマルチプレクサとして使用で8チャンネル10個が必要な回路になります
0074774ワット発電中さん
垢版 |
2019/09/28(土) 02:17:36.52ID:YrwvNxMO
>>73
だったら4051じゃなくて14051じゃね
16bit IOエキスパンダー MCP23017
8bit IOエキスパンダー PCF8574 (LCD*I2Cアダプタに搭載してるやつ)
とかでも別にいいと思う
配線大変そうだけどがんばってね
0075774ワット発電中さん
垢版 |
2019/10/01(火) 09:49:42.54ID:0gtDO++/
M5.Lcd.drawJpg(const uint8_t *jpg_data, size_t jpg_len, uint16_t x, uint16_t y);

xを-10、yを-20にしたいんですが、uint16_t となってるから負の値は指定出来ないんでしょうか?
0077774ワット発電中さん
垢版 |
2019/10/02(水) 06:30:12.89ID:A1659nnW
int16_tならいいのかな
int16_tの負の数ってどう表現したらいいのかな
0078774ワット発電中さん
垢版 |
2019/10/02(水) 07:33:18.89ID:4T/7ErV4
>>77
なぜスクリーン上の座標をマイナスにしたい?
画像の描画範囲をずらしたいなら、引数 offX offYで操作するんじゃないの?
0079774ワット発電中さん
垢版 |
2019/10/02(水) 12:51:23.87ID:9srJyNiq
>>78
x, yは画像の描画の原点でデフォだと左上の0, 0になるんですが、
スクリーンのサイズよりも画像が大きいため、画像の右側と下側が見切れてしまいます
そのため、画像の中心がスクリーンの中心に来るようにx, yをマイナス値に出来ればなと思いました
0080774ワット発電中さん
垢版 |
2019/10/02(水) 13:11:30.42ID:4T/7ErV4
>>79
Docsを見るとメンバ関数はこうなんだが

void drawJpg(const uint8_t *jpg_data, size_t jpg_len, uint16_t x = 0, uint16_t y = 0, uint16_t maxWidth = 0, uint16_t maxHeight = 0, uint16_t offX = 0, uint16_t offY = 0, jpeg_div_t scale = JPEG_DIV_NONE);

引数 offX offYでjpegの描画開始位置を変えられない?ダメだった?
0081774ワット発電中さん
垢版 |
2019/10/02(水) 14:14:39.22ID:9srJyNiq
>>80
わあ!ありがとうございます
ライブラリ見てたら
M5.Lcd.drawJpg(const uint8_t *jpg_data, size_t jpg_len, uint16_t x, uint16_t y);
しか載ってなかったのでsdカードから画像を読み込む関数と違って使える引数がほとんどないんだと思っていました。
試してみます
0083774ワット発電中さん
垢版 |
2019/10/05(土) 02:28:52.54ID:tfPKEaHM
M5Stackの画面に1秒間隔で時計を更新して表示する関数と5秒間隔で気温の測定とラズパイのデータベースをチェックする関数を作ってマルチタスクで動かしてみました。
画面には時計と気温が表示されていてラズパイのデータベースの値は画面には表示させてないです。

もし、ラズパイのデータベースの値があらかじめ設定した値を超えた場合は時計と気温を非表示にしてデータベースの方だけを画面いっぱいに表示させたいんですがそういうことって可能ですか?
時計の方の更新間隔を伸ばさないと無理ですか?
0084774ワット発電中さん
垢版 |
2019/10/05(土) 02:34:14.94ID:tfPKEaHM
割り込み処理っていうの使えばいいのかなと思ったんですがそれってボタンやセンサーのような外部入力だけですか?
0085774ワット発電中さん
垢版 |
2019/10/05(土) 11:40:50.38ID:rZ1vSKCx
いいえ
0086774ワット発電中さん
垢版 |
2019/10/05(土) 14:52:19.11ID:09PVVC0K
タイマー割り込みを使えばいい。
"arduino 時間 割り込み"でぐぐってみたまい。

というかそもそも君のそのマルチタスクのプログラムというのは
タイマー割り込みを使用しないで出来ているのか?
0088774ワット発電中さん
垢版 |
2019/10/05(土) 16:51:18.47ID:rR3DQHMx
割込み使ってれば>>84の書き込みにはならない
ポーリングなら>>83の質問にはならない
いろいろ謎w
0089774ワット発電中さん
垢版 |
2019/10/05(土) 18:12:44.77ID:6wZG4Hhf
データベース値が設定値超えたら
時計表示をパスすりゃいいだろ

更新と表示を一緒くたにして作るからそうなる
0090774ワット発電中さん
垢版 |
2019/10/05(土) 20:23:16.21ID:nU50vimV
ど素人の俺からすると
単純にインタラプト入れればいいだけのように思う
0091774ワット発電中さん
垢版 |
2019/10/05(土) 21:29:54.02ID:tfPKEaHM
レスありがとうございます
現状ですが、

https://nagatani.github.io/posts/m5stack-dht12-temptoifttt/
を参考にxTaskCreatePinnedToCoreっていう関数を使いました。

んでsetup関数に以下を書きました。
xTaskCreatePinnedToCore(clockTask, "clockTask", 4096, NULL, 1, NULL, 0);
xTaskCreatePinnedToCore(tempTask, "tempTask", 4096, NULL, 2, NULL, 0);

clockTaskは1秒ごとに時間の表示、tempTaskは5秒ごとに気温の表示とラズパイへのアクセスです。
loop関数にはM5.update();だけ書いてあります。
0092774ワット発電中さん
垢版 |
2019/10/05(土) 21:38:46.17ID:tfPKEaHM
arduino 時間 割り込み
ググってみました

現状は関数の中で例えばディレイを1000として時計を動かしていますが、そうじゃなくて、
まず5秒毎にラズパイのデータの確認をして設定値より低ければタイマー割り込みという機能を使って1秒毎に時計を表示する関数(clockTask)を動かす、5秒毎にtempTaskを動かすって感じでしょうか?
0093774ワット発電中さん
垢版 |
2019/10/05(土) 23:34:20.82ID:09PVVC0K
タスク間で通信をするんだよ。一番初心者にも解りやすいのはグローバル変数で作ったフラグやデーターを使う事です。

まず、1秒毎に起動するタスクと5秒毎に起動するタスクをつくる。
1秒の方では現在時刻の取得、最新温度とデーターベースから取得された値の確認をして、条件に合致しなければ時刻表示、合致したらアラート表示。
5秒毎の方では温度の計測と保存、データーベースへのアクセスと値の取得を行う。
みたいにすればいい(一例です)。

割り込みを使わず泥縄式にloop(){delay(1000);every1sec();if(count++%5==0)every5sec();}でも
各時間毎の処理内容は同じで出来ます。どうするのが良いかはスキルとプログラムの要求仕様や規模などによる。よく考えてみてw
0094774ワット発電中さん
垢版 |
2019/10/06(日) 21:46:22.69ID:ickMofJd
timeInfoで201910062143って今の時間を変数に入れるのってどうやるんですか?
dday = timeInfo.tm_mday;って取り出したら06じゃ無くて6になっちゃう
0096774ワット発電中さん
垢版 |
2019/10/06(日) 22:51:22.20ID:ickMofJd
>>95
String imaNoJikan = "";
imaNoJikan = String(sprintf("%04d%02d%02d%02d%02d%02d", timeInfo.tm_year + 1900, timeInfo.tm_mon + 1, timeInfo.tm_mday, timeInfo.tm_hour, timeInfo.tm_min, timeInfo.tm_sec));
ってやったら
invalid conversion from 'int' to 'const char*' [-fpermissive]
こんなエラーが出ました
0097774ワット発電中さん
垢版 |
2019/10/06(日) 23:54:30.11ID:crnK2XO3
>>96
そらそやろ。sprintf の戻り値はintだからやで。しかも引数も間違えてるよ。
0098774ワット発電中さん
垢版 |
2019/10/06(日) 23:55:46.08ID:/br1Kqen
sprintfの出力文字列は第一引数にchar配列を入れて受けるんだよ
ググればすぐ出てくるだろに
0100774ワット発電中さん
垢版 |
2019/10/07(月) 00:08:57.05ID:FNFQ2eNl
>>96
sprintfの戻り値ってintだから当然そうなる。あと第1引数は文字列を格納するバッファー。
0101774ワット発電中さん
垢版 |
2019/10/07(月) 00:16:19.71ID:MInzFlnm
char imaNoJikan[14];
sprintf(imaNoJikan, "%04d%02d%02d%02d%02d%02d", timeInfo.tm_year + 1900, timeInfo.tm_mon + 1, timeInfo.tm_mday, timeInfo.tm_hour, timeInfo.tm_min, timeInfo.tm_sec);
Serial.print(imaNoJikan);
コンパイルのエラーは出ないけどシリアル見てたら再起動繰り返してるっぽいです
0105774ワット発電中さん
垢版 |
2019/10/07(月) 00:46:04.97ID:MInzFlnm
今の時間の2秒前のUnix時間を作ってそこから
>>101 みたいに変換する感じですかね?調べてみます
0107774ワット発電中さん
垢版 |
2019/10/08(火) 19:14:30.73ID:S4RJgCqx
DCモータ2軸制御のためにArduinoシールドを探しています。
動かしたいモータはマブチのRS-280RA-2865で、特性は
URLのような感じになります。
https://i.imgur.com/wbAO6r0.jpg

モータは起動時には最大出力で回り、以降はバランスをとるためにほぼ0rpmあたりになる予定です。
ざっと見た感じ、AdafruitのServoShieldしか見つかりませんでしたが、
これでも十分動作できそうですか?
0108774ワット発電中さん
垢版 |
2019/10/08(火) 19:53:06.02ID:zJoci3sX
電源電圧何ボルトなの? 静止時に流れる電流に耐えられれば使える
3ボルトで4.7Aとはまあ結構流れちゃうねぇ。
0109107
垢版 |
2019/10/08(火) 19:55:44.70ID:S4RJgCqx
>>108
マイコンボードはSTM32の予定です。
電源電圧を複数用意するのは面倒なので5Vを3Vに降圧しようと考えています。
0112774ワット発電中さん
垢版 |
2019/10/09(水) 15:39:54.55ID:/fgtnIYh
Nano Everyの出荷始まってるけど話題ないの?
Pro Miniで充分だから?
0113774ワット発電中さん
垢版 |
2019/10/09(水) 15:52:26.16ID:9Ya4G0GQ
10倍の価値があり、総務省様のお眼鏡にかなえば
そのうち話題になるやろ、どっかでw
0116774ワット発電中さん
垢版 |
2019/10/11(金) 10:30:50.83ID:q919Ps8K
照度を調べたいのでフォトトランジスタNJL7502Lを買ってみました
CdSセルに比べてちょっと向きを変えただけで大きく値が変わってしまって難しいです
必要な抵抗値とArduinoでの計算式が知りたいです
10kΩの抵抗を付けてAnalogReadを1024で割って3.3をかけたらいいんですか?
0117774ワット発電中さん
垢版 |
2019/10/11(金) 15:25:51.95ID:Z8z2nUbW
>>116
https://www.njr.co.jp/products/semicon/PDF/NJL7502L_J.pdf
半値角が±20度しかない(データーシート4頁のDirectivity参照)。
これはレンズによるものだから、CdSに近づけたいならレンズを削り取る。

照度換算は、10kΩ負荷で5V系ならanalogReadの値に1.48を掛けるんだな。
感度が33μA@100Lx。10kΩ負荷では0.33V@100Lxよって3.3mV/Lx。
float Lux = analogRead(ch) * 5.0/1024 / 0.0033;

なお、15kΩ負荷にすればanalogReadの値が即Lux値になるから小数計算不要で高速化。
0118774ワット発電中さん
垢版 |
2019/10/11(金) 20:50:39.43ID:q919Ps8K
>>117
どうもありがとうございます!
NJL7302L-F3だと±55度だそうなのでこっちの方が使いやすいですか?色が黒なので赤外線用っぽく感じたので。
直列で10kΩ+1kΩ+1kΩ+1kΩ+1kΩ+1kΩと繋ぐと15kΩになりますか?
0119774ワット発電中さん
垢版 |
2019/10/11(金) 21:02:59.33ID:q919Ps8K
>>118
これでやると蛍光灯の室内で130前後でiPhoneのライト当てると986くらい
16bitのADC使った方がいいんでしょうか?
0122774ワット発電中さん
垢版 |
2019/10/12(土) 00:59:00.46ID:x1QDH7Xq
うーん全く分からない…
廊下持っていくと照明ついてるのに0にしかならない
0123774ワット発電中さん
垢版 |
2019/10/12(土) 10:44:46.50ID:3y0MHbYR
>>118 >直列で10kΩ+1kΩ+1kΩ+1kΩ+1kΩ+1kΩ…
OKだよw
でも10kΩを2つ並列にしたら5kΩになるから、これと10kΩを直列にしたら全部で3個で済むよw

>>119
16bit必要かどうかは、何をどう計りたいか、という君の要求仕様による。
7.5kΩを負荷にしたらanalogRead()*2がLux値になるから2047Luxまでいける。最小分解能はもちろん2Luxになる。
晴天時野外とかは数万Lux有ったりするけど、人間用の室内照明で1000Lux越えるのは珍しい。といった条件を総合して考える。
0124774ワット発電中さん
垢版 |
2019/10/12(土) 14:34:27.99ID:x1QDH7Xq
>>123
>ACD
部屋の電気を消すだけで数値は必ずゼロになってしまうから気になりました
実際には真っ暗じゃないです
0125774ワット発電中さん
垢版 |
2019/10/12(土) 19:53:56.87ID:7JZdbHde
ProMicroを使用してPB,PD,PF合計額18個のピンでdigitalReadをfor文で18回繰り返してるんですが、
もしかして一度、もしくはポート毎の3回とかでバイナリ値で取れたりしますか?
0127774ワット発電中さん
垢版 |
2019/10/12(土) 20:26:58.49ID:btIfq4Xz
>>124
人の目は慣れると1ルクス以下でも見えるからな
計測するなら対数変換するかレンジ切替とかした方がいいんじゃないかな
0128774ワット発電中さん
垢版 |
2019/10/14(月) 10:15:33.20ID:iCnFprdH
>>125>>126
入力を拾うのはPINxレジスタの方だね
PORTxは出力を設定する方
マイコンのポートとArduinoのピン番号の対応をぐぐれば同じポートのピンはまとめて取れる
0129774ワット発電中さん
垢版 |
2019/10/14(月) 10:17:08.90ID:rGhNlRuo
半年前に作ったプログラムと回路が難しすぎて、どのように動作しているのか理解出来ない
0131774ワット発電中さん
垢版 |
2019/10/14(月) 11:17:31.26ID:lrGBsrBN
ど素人です。お手柔らかにお願いします。
VCCから5Vを取り出して大体0.5Vにしたいので分圧しました
10kΩと1kΩ直列にしてグランドにつないでみました
VCC→10kΩ→0.5V取出→1kΩ→グランド
0.5V取り出したら分岐して6個のセンサーを付けて
センサーからそれぞれA0〜A6につなげた場合
A0〜A6各それぞれの入力インピーダンスは10kΩということでいいのでしょうか?
0132774ワット発電中さん
垢版 |
2019/10/14(月) 14:06:29.30ID:iCnFprdH
>>131
違う

というか色々繋ぎ方にも疑問があるのでセンサーの型式と回路図(ちゃんとした記号を使った奴じゃなくてもいい)をあげてほしい
0133774ワット発電中さん
垢版 |
2019/10/14(月) 17:25:07.20ID:DeR5xrbP
>>131
それで分圧した場合、0.454v位のはず
また、0.5v-センサ-アナログ入力ってなにか違う気がする
たとえばこんな感じゃない?
(ただし分岐しない前提)
抵抗----0.5v----アナログ入力
     |
    センサ
     |
   グランド
0137774ワット発電中さん
垢版 |
2019/10/14(月) 18:15:41.43ID:lrGBsrBN
アナログ入力の電圧はArduinoの1.1Vを使います
交流なので本当はまんなかの0.55Vが理想なのですが
多少はズレても一定であればプログラムでなんとかなりそうなので0.45Vくらいとします
0138774ワット発電中さん
垢版 |
2019/10/14(月) 18:24:45.35ID:z1DoAnL1
「10kΩと1kΩで分圧したインピーダンス」は、テブナンの定理と言って約909Ωです
単に0.5Vの電源を作りたいって場合は、オペアンプを使った手法(単電源で仮想GNDを作るときによく使う)
0139774ワット発電中さん
垢版 |
2019/10/14(月) 19:55:09.85ID:DeR5xrbP
>>137
クランプ式電流センサを使用して交流の電源(おそらく100vや200vの商用電源)
の消費電力(流れてる電流)を測定したいって事かな?
基本的な考えはOKだと思いますが、VCCの電圧とArduino内蔵のFVR?(内蔵基準電圧)を使うと測定値が安定しないと思います
今回のような場合、AREFを使って外部のリファレンス電圧を参照した方がよいと思います
例えばVCC-R8K-R1K-R1K-GRDの様な分圧用抵抗を用意する(R8KはR3.3K+4.7K or R1.2K+6.8K等)
R8K-R1Kこの間からAREF用の電圧(1.0V)を得る
R1K-R1Kこの間から0.5Vの電圧を得る
センサが1:2000+R1Kだとして0.7A位まで測定できるかな・・
この回路で同様のセンサーを複数繋いでも問題は(測定結果の誤差など)無いはずです
(クランプ式センサー使ったことがなく、Arduinoも昨日始めたばかりなので間違えてたらごめん!)
0140774ワット発電中さん
垢版 |
2019/10/14(月) 20:14:03.23ID:DeR5xrbP
>>137
あと、測定するものが電熱器みたいのならその回路でも大丈夫だけど、
電流が絶えず細かく変化する相手(電熱器以外の殆ど)ならサンプルレートを考慮しながら
クランプセンサの抵抗と並列にコンデンサを繋いで測定する電圧の変化を安定させたほうが無難だとおもう
Arduinoがどの位の性能か把握してなく可能か不明だが、1秒当たり数千回×センサーの数のサンプルが必要なのでは?
0141774ワット発電中さん
垢版 |
2019/10/14(月) 21:00:35.07ID:lrGBsrBN
遅くなりましたが皆さんありがとうございます
>>138テブナン定理大変勉強になりました
オペアンプこれから勉強してみます
>>139
確かに安定しないのです
ソフトウェアローパスフィルター入れて無理矢理安定させてる感じです
教えていただいた回路試してみます
楽しみです
>>140
測定するものはAC100〜220V50Hzで電流は1mAから1A程度までで常に変動しています
交流なのですがコンデンサ入れた方が良いのですか?
50Hzなのでサンプリングレートは特に問題ないと思っています
そうですね今暗算したところその程度の回数は必要ですね
回数はまだカウントしたことはないですが
以前計算してみたところ全然余裕で逆に制限を入れるか検討していたところです
回数は実際見た方がいいので確認しようとは思っています
0142774ワット発電中さん
垢版 |
2019/10/14(月) 22:53:00.55ID:DeR5xrbP
>>141
>交流なのですがコンデンサ入れた方が良いのですか?
コンデンサを使用するのは手段の一つだと思います、回路次第で他にも手段が有るので・・・
サンプル速度にもよりますがサンプルの間で電流が激しく変動するなら何らかのフィルターが必要だと思います
サンプル速度を上げてなるべく小さなコンデンサを使うことで誤差を少なくできるかと
また、クランプ式の電流センサーのコイルがある程度フィルターとしても機能してるので必要ない可能性も・・
センサーの抵抗にコンデンサはあれだったので(強引)以下のようなRCフィルターはいかがでしょうか?
センサ ーー抵抗ー+ーAD入力   ←(コイルの出力とAD入力の間にまず抵抗を加える)
        |
      コンデンサ     ←コンデンサで細かな変動を減らす
        |
     分圧の0.5V

追伸
>A0〜A6各それぞれの入力インピーダンスは10kΩということでいいのでしょうか?
今回のような回路の場合、分圧の抵抗から電流が流れないので
分圧抵抗は入力インピーダンスには関係ないはずです

後は・・まあもっと詳しい人が教えてくれるかと・・・
0143774ワット発電中さん
垢版 |
2019/10/14(月) 22:54:54.52ID:DeR5xrbP
↑図面っぽおいのがブラウザによってズレてるので・・・
コンデンサの位置は抵抗とマイコンの間です
0145774ワット発電中さん
垢版 |
2019/10/15(火) 00:53:43.12ID:1cWh9I8H
交流のまま取り込む訳だから毎秒数百回サンプリングしてソフトで全波整流
してローパスフィルター掛ければいいんじゃね?
0146774ワット発電中さん
垢版 |
2019/10/15(火) 02:56:53.32ID:Yzvmc8C6
Pythonの場合、何もしない関数やif文の場合、中に「pass」と書いておけばいいんですけどArduinoだとどう書いたらいいですか?
0148774ワット発電中さん
垢版 |
2019/10/15(火) 11:56:19.80ID:t0CCwWj/
ブロック内に何も書かなければなにもしない

if (true) {
}
else {
}

void func1()
{
}
0149774ワット発電中さん
垢版 |
2019/10/15(火) 18:52:42.45ID:b0d9DuW9
回路の質問をした者です
大変参考になりました
ありがとうございます
また質問させていただきます
0150774ワット発電中さん
垢版 |
2019/10/16(水) 16:39:03.08ID:Mgzj+rPH
本当の素人質問で申し訳ないのですが、
5vをつないで回路を作るときと5vをつながずに回路をつくるときの違いがわかりません
ぜひ教えてほしいです
0151774ワット発電中さん
垢版 |
2019/10/16(水) 16:50:21.85ID:vZ2DF9d6
ちょっと何言ってるか分かんないっすけど
0153774ワット発電中さん
垢版 |
2019/10/16(水) 17:11:17.39ID:RnINOxcW
>>150
Arduino UNOとかマイコンの出力には5Vが出ているが
LED1個か2個点灯させる程度のドライブ能力しかない
もっとたくさんのLEDやモーターなどを使いたい時は
トランジスタやFETをスイッチさせて、
外部から供給した5Vを制御する回路が必要となる
基準は40mA超えるかどうか
0154774ワット発電中さん
垢版 |
2019/10/16(水) 17:18:45.59ID:t5KWTjXo
>>153
質問者の意図に合ってるかは分からないが、推理力に感心した。
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況