Arduino初心者熱烈大歓迎質問スレ part25
■ このスレッドは過去ログ倉庫に格納されています
400回の合計を1/400にしたら平均しか出ないんじゃないの? モーターの安定性って早くなったり遅くなったり回転ムラだから そもそもモーターって 一般モーター 8000rpm (133rps) 1周7.5ms 高速モーター 16000rpm (267rps) 1周3.75ms 超高速モーター 300000rpm (5000rps) 1周0.2ms(=200us=200000ns) 仕様として0.5%のふらつき検出でいいような気がするんだけど 4μ毎にしかパルス測れないものを 400回測って1/400しても意味ねーだろ 時間軸の分解能は下がるだろう。量子化の分解能はちょっと上がるかな リトルインディアンだのバルスだの スレチしか居ねーな >>282 アホか 1回に1パルスしか得られないんだぞ? 1回に〇〇パルスという数値が得られるわけでも何でもない >>284 そのパルスの間隔を高精度に測るって話だよ。 モーターからセンサで拾った信号なんてノイズ乗りまくりだぞ、パルス化で位相雑音になってジッタ出るのに10nsの精度なんてあり得ない。仮に精度が出たとして、負荷に繋がってるモーターだよ、その精度で何を見るんだよ。 からかわれてんだよ。 純正Esp32 Wroom 32d DevKitCです Aduino IDEからだと書き込めるけどVSCodeだと、 Connecting......で失敗してしまいます VSCodeでもほかのArduinoだと書き込めます あと、コンパイルの前で 2019-10-31T12:38:52.604Z WARN p.a.h.BoardCloudResolver:64 [cc.arduino.packages.discoverers.serial.SerialDiscovery] Fail to get the Vid Pid information from the builder response code=404 こんなのが出てかなり時間がかかります この2つどうやったら治せますか? 質問者です。 様々な助言ありがとうございます。 理想は20000rpmのモータの回転ばらつきを 0.01%の精度で見れればベストです。つまり20001rpmと20000rpmが 識別できればいいのですが… その場合隣り合うパルス間隔が 20001rpm=333.35rps(pps)→2.99985ms/pulse=2999850ns/pulse 20000rpm=333.33rps(pps)→3.00000ms/pulse=3000000ns/pulse この違いを識別しなければならないと考え 10ns単位でlongの変数へカウントさせ 299985が入っていれば20001rpm 300000が入っていれば20000rpm というアルゴリズムでできればと思っております(100nsでもいけるのかな?) 現実的かどうかは素人なのでわからないですが… 低価格でそれなり分解能(せめて±0.1%)で測れるのであれば この方法にこだわりはありません。 >>290 それって1秒あたりの平均値のRPMじゃダメなの? なんでもいいからやってみなよ やらなきゃ何にも始まらないよ はじめの方でdelayがどうこう言ってたけど そのスケッチ見せてみなよ >>290 奇麗な波形がえられれば20000rpmなんてせいぜい3ms周期だからCPUのスピードから したらどうということはない。 20000prmを1rpmの精度だったら0.01%ではなくて0.005%で150nsだよね。 16MHzクロック(62.5ns)で16ビットカウンタを自走させて1回転ごとの割り込み でカウンタを読み取れば充分のような気がするけどね。 14640rpm以下になるとカウンタがオーバーフローするから回転数によって クロックを下げる必要があるけど。 それよりも >モーターの軸を10vに帯電させ一回転ごとに軸と銅線(ブラシ)が接触するように考えております。 このやりかたで奇麗なパルスが得られるとは思えない。 チャタリングのようなものが盛大にでてフィルタ入れたら何を測ってるのか 分からなくなりそう。 まずはセンサーの再検討が必要と思う。 >>291 Arduinoでやるならがそれがいいとこだね >>293 「充分のような気がする」の根拠が知りたいなあw >>291 平均値は分母をどのぐらいとるかによりますが 1パルス毎で判断するよりリアルタイム性が薄れる(精度が良くない) と思います。 簡易的な方法で良いとは思いますが、 おそらく、10nsの案がダメな場合は精度を犠牲に 平均、もしくはメディアンでみることになろうかと思います。 ふつーホール素子使うよね 回転の検出ってさ それか光 非接触でやらないとな >>296 ホール素子か光で試してみます。 そのセンサーで行えばノイズが乗りにくいという認識であってますでしょうか? ブラシよりはるかにマシだがカウンタに入るまではアナログ回路だってことを忘れんように 個体のバラつきとか全然考えてないだろ スペック上2万rpmで買ってきたモーターは 定格電圧で1割くらい平気で違うぞ、 10v流して21000rpmだったり19000rpmだったりする 個体ごとに10.2vにしたり9.7vにしたり調整が必要なわけね 20000rpmで安定回転させるにはpwmで電源制御する必要がある 電源制御で狙い通りの回転数が得られたとして色んな問題が発生する 例えば 毎周回ばらつきがある 3005us 3001us 3011us 3007us ... 数秒周期でうねりのように加減速する ばらつきを平均化して、うねりをフィードバックでつぶすと 更に安定化できると思う そこいらが理解できたら、DVDドライブやFDD安定走行用ICのほうがはやいじゃんとか 思えてくるんだとおもわれ 質問者のお題では >>222 >色々と助言頂きありがとうございました。 >今さらですが、用途は超高速モーターの回転数サンプリングです。 >外注で回転数の表示はしてくださっていますが、出来れば自社で作った基盤でもサンプリングしてみたい、といのが事の発端です。 だから、必要なデータは取れてるというか、やり方が知りたければその外注に聞けよで終了の案件。 >>299 こんなに回転数に拘るモノなんだから、クローズドループで制御してると言うことになる。外注に作らせたものには回転数が表示されると言ってるでしょ。 モータには既にセンサは内蔵されてるから、センサ出力を分岐させる方法か、外注の制御器にリードアウトをつけてもらうのを検討するのがスジ。 >>290 http://codepad.org/B3qhDgdb 適当なスケッチ作ってみた Arduinoはこれ以外にはLチカ経験のみなんで色々間違ってると思います 詳しい方の補足や修正お願いします スケッチの内容は293の方の説明と同様の物です 一応PICから約332HzのPWM出力させて期待した動作はしました ちなみに20000PRM付近の刻みは以下の程度になるはずです (スケッチでは小数点以下は第一位まで) 20000.83 20000.42 20000.00 19999.58 19999.17 PICとarduinoでコード書いているところ見ると どうみても自分で書いたものではありませんね。 arduino nanoとかでできるでしょLチカ、PWM ふと思ったのですが、PCに直接センサーをつけてデータをサンプリングすることって できるのでしょうか? アルデュイーノでセンサーから情報をもらい、それをPCにシリアルで送るという のが普通の方法?なのでしょうか? ATTiny85が乗ってるdigisparkオススメ 最近のノートPCでは省略されている事も多いが PCにはCOMポートとLPTポートがあって、 COMポートはシリアル入出力 本来はモデムやXYプロッタを接続していた 温度計やソーラーチャージャーやMP3プレイヤーなど LPTポートは8-11bitのパラレル入出力 本来はプリンターやスキャナなどを接続していた GPIOのように使うならこちら >>308 OSが走ってるから正確なタイミングでは無理。 外部でサンプリングしたものを取り込むしかない。 速度による。簡易的にはオーディオ入力使うとかする応用も この質問者頭おかしいよね 質問に答えてくれてる人は全スルーなのに 聞きたいことだけ聞いてくる まるで人工無脳のようだ 今頃気づいたのかよ むしろそれに返答してる連中の神経の方が怪しいと思うわ > PCに直接センサーをつけて もはやArduinoと何の関係も無いな PCの使い方について他で学べ 「PCに直接センサーをつける」自体があいまい。 USBインターフェースを備えたセンサーなら普通につながる。 >>316 Lチカマイスターが張り切ってるからね。 モータや動力知ってそうな人の指摘はガン無視だから。 タイマーを作りたいんだけどいい方法が見つからない 用途は ・場所G:給水ポンプの清掃→14日後に報知 ・場所R:スマホの充電→6日後に報知 ・場所G:植木A群に給水→5日後に報知 ・場所P:植木B群に給水→3日後に報知 ・場所K:炊飯の開始→45分後に報知 ・場所K:圧力調理の開始→30分後に報知 ・場所B:風呂の給水→25分後に報知 ・場所K:コーヒーの開始→12分後に報知 方法1) 5箇所にWifi端末を設置し、ボタンを押すとサーバーに送信、スマホにpush通知 方法2) 5箇所に1個30円のIDタグを設置し、モバイル端末で読み取り、端末上で報知 方法2改) 5箇所にQRコードを印刷して貼り付け、スマホだけでなんとかする もっと良い方法があれば教えて欲しい 方法3) 8個ボタンの装置を持ち歩き、規定のボタンを押す (装置を持ち歩くのが絶対ネックになると思う、それは方法2でも同じか ・場所K:炊飯の開始→45分後に報知 ・場所K:圧力調理の開始→30分後に報知 ・場所B:風呂の給水→25分後に報知 ・場所K:コーヒーの開始→12分後に報知 ここらへんは100均のタイマーをセットしてポケットに入れといたらいいんじゃねw? 質問です 9v600mAのACアダプターが余ってるのでArduinoに挿して Arduinoの5vからマイクロサーボを動かしたいんですが問題ないですか? >>327 数分後に報知する系統と 数日後に報知を分けろというアドバイスだな ありがとう検討してみる >>323 iphoneなら、上4つはリマインダーに登録すればどうでしょうか、○○日おきに通知と言うのができます。 下の4つは、タイマーなんだけど、Timeglass timer & stopwatch アプリで「コーヒー」「圧力鍋」等と言う名前で定型タイマーが登録できます。 電子工作に絡まなくてすいません。 >>329 マイクロサーボに流れる電流がどれだけか、と Arduinoに載ってるレギュレータが何なのかで問題の有無が変わりそう。 あと、9V 600mAのアダプタがいわゆるトランス式なら、レギュレータの 負担はもっと重くなるかもしれないから注意。自分で判断できないなら、 そのACアダプタの写真(3方向ぐらいから撮影したものならなおよし)を 出してみて。 >>331 折角のご提案だけども、スマホを持ち歩く習慣がナインだ >>327 氏の提案で、 キッチンに4つボタンのタイマーを置いておいて イベント発生したら該当ボタンを押して、その装置を持ち歩く、 終わったら元の位置に返す これでかなり便利になりそう。 数日イベントは"今日何したか"思い出しながら自作アプリのボタン押すかと 思ってます。でもこれはめんどくさくなってすぐやめそう >>332 Arduinoにはレギュレーターがついてて5vに降圧してくれるものだと思ってました・・ アダプターは重いトランス式です 降圧には向かないんですね 勉強になりました ありがとうございましたm(_ _)m >>334 サーボもそうだけど、モーターのような大電力を消費する回路は制御回路とは別に電源を供給するのが常道になっている。 UNO R3を例にすれば、搭載のNCP1117ST50T3Gはスペックでは5VでMax1Aを出力できるが、それはあくまで絶対最大定格の話し。 9Vから5V600mA取ったら(9V-5V)*0.6A=2.4Wも発熱する事になるから、基板上で十分なヒートシンクもないのにこのレベルの放熱は無理。 トランス式ACアダプターの出力は脈流で、9Vとは9Vを割り込まない事を最悪でも保証できるという意味で、実際の電圧は9Vより高いからさらに条件が悪い。 したがって、発熱をせいぜい1Wに押さえるとしたら、使えるのは200mA以下だろう。 >>334 早合点は禁物です。 っていうか、初心者の人は、OKかOKでないかのイチゼロ思考に陥りがちですが、 たいていのことは、あいまいな中にあいまいな答えがあります。(明確にシロクロがつくこともあります) Arduinoにはレギュレーターがついてて5Vに降圧してくれるものもあります。 でも、載っていても、どれぐらいの電力損失や電流が許容されるかは、載っているレギュレータ次第です。 「降圧には向かないんですね」とカタに嵌めたような理解は危険。スイッチングノイズを嫌う用途なら 積極的にレギュレータとともに使います。 あなたの例で問題になるのは、トランス式ACアダプタの実際の電圧が確定しないので、 仮にレギュレータの型式やマイクロサーボの電流がわかっても、大丈夫そうかどうかが判断できないことです。 >>334 > Arduinoにはレギュレーターがついてて5vに降圧してくれるものだと思ってました・・ 9V→5Vしてくれるけど、5V/200mAが作り出せる程度の能力しかない 代表的なマイクロサーボSG-90は5V/250mA、 モーター系は起動時に消費が増えるので倍の500mAを見込んでおく マイコンは多くても50mA程度 200mA<550mA 全然足りない 200円で5V/1AのACアダプタ買って全体供給したほうが幸せになれるぞ >>338 それは存じておりますが、質問者が所有してるのがどっちか解らない以上は 条件の悪い方を前提にするべきでありましょう。 わわざわざ問い糾してどっちか判明してからでないと答えかねる、という案件でもないし。 スマホからでもなんでもいいから写真をupしてほしいよねー https://imgur.com/upload Arduino Nanoとサイズとピンが互換のNordicのBLEのボードってありますか? ラインドライバのオムロンロータリエンコーダを知人から貰いました。 これarduinoのGPIOに繋げてパルスカウントしてみたいなぁと思っているのですが、ABZそれぞれにプラスとGNDがあるのでどう配線すればよいかアドバイスをいただきたいです。 こんなモジュール嚙まさないと、とかあれば是非。 >>346 何十メートルもコード延ばしたいとかじゃなきゃ適当に終端して非反転の方から拾えばそのまま使えるんでね 別に長くするわけじゃないけど差動信号を扱ってみたいとかならラインレシーバが必要 とりあえずくるくる回して試したいだけなら まず 黒と黒赤を1KΩの抵抗で繋ぐ 白と白赤を1KΩの抵抗で繋ぐ 橙と橙赤を1KΩの抵抗で繋ぐ んで 青をArduinoのGNDに繋ぐ 茶をArduinoの5Vに繋ぐ これで 黒からA相 白からB相 が取れるから適当にネットに落ちてるロータリーエンコーダのスケッチの通りArduinoの入力この2つに繋げば回して遊べると思うけど >>347 >>348 ありがとうございます。 帰宅したら試してみたいと思います。 アドバイス通り繋いでみたらあっさりパルス拾えてしまいました。ありがとうございます。 これで4逓倍カウントとかフリーランカウンタで低速検出処理とか夢が広がります。 イーサネットアダプタとして、W5100、W5500、ENC28J60の3種をproMicro互換機に つないでみた。 ENC28J60が安いけれど、半日くらいでハングアップしてしまう。 チップが触れないくらい熱くなるのでヒートシンクを付けてみたが効果なし。 別個体でも同様 W5500はほんのりあったまる程度でハングすることもなく連続でもOK。 Eathernet2.h を使えと書いてある記事もあるが、Eathernet.h で普通に動いた。 2個テストして問題なし W5100は古いせいか小さいモジュールが無い。 以上チラウラでした。 小型のW5100探したけどこのあたりかな ¥ 465 | トップミニ W5100 LAN イーサネットシールドネットワークモジュールボード arduino のための最高の https://s.click.aliexpress.com/e/5m8mpi80 ¥ 941 | ナノ W5100 イーサネット Lan ネットワークモジュール Arduino のためのマイクロ SD サポート TCP UDP V3.0 R3 UNO メガ 2560 https://s.click.aliexpress.com/e/efBZu8vw Arduinoのプログラムの書き込み速度は何kbpsなのでしょうか? こんばんは。 Arduino UNOのタイマー割り込みでtimer1とtimer2の2つを併用してなおかつ同じタイミングで割り込みがかかった場合どちらが優先されるのでしょうか? それと、sirialprintですが、例えば以下のように sirialprint("1"); sirialprint("2"); sirialprint("3"); と記述した場合シリアルモニタでは 「123」と表示されるかと思いますが、例えば以下のように sirialprint("1""2""3"); と記述した場合も 「123」と表示されるのでしょうか? またそうであった場合処理速度は早くなりますか? 素人丸出しで申し訳ないのですがご回答頂けると嬉しいです >>355 1つめ Interrupt Vector Definitionでググれ。 2つめ やってみりゃわかること聞くな。 以後、質問は1件ずつにして。 【回答者心得】 ・すぐにググレカスと言う前に「○○でググれカス」って言うような大人の余裕を見せつけてやりましょう ・節度ある初心者さんには、特に優しくね ArduinoとリレーでAC電源機器のオンオフを試してます ACのケーブルの他にArduino用のDC電源ケーブルも必要なんですが、 AC電源一本でやるにはどうしたらいいですか? Sonoff BasicだとAC電源だけで済むのであんな感じでやりたいです >>358 そのACからDC5〜12Vを生成する回路を作れば良い。 リレーだとONの時に励磁電流が必要だしSSRの方がオレは好き。ノイズ出さないし。 自分で回路作るのは大変そうです ここ見るとDC5Vアダプターとだけしか書かれて無いんですが、こういう小さいアダプターってどこで買えますか? https://www.elekit.co.jp/product/docs/PU-2708_LEDbulb.pdf >>362 この工作例はある程度の電子回路の知識をお持ちの方が対象で、回路図などをご覧に なり自己責任で自作できる方が対象です。 って書いてるやろ、お前はやめとけ。 どうもありがとうございました >>363 USB電源だと便利そうです 小型のUSB電源探してみます c#を使ってWiFi経由でARUDUINO内のセンサデータを読み込む方法を考えています。 ARUDUINOから受信したhtml本文に記述されたセンサデータを文字列処理して取り出す方法しか思い付きませんでしたが、他に方法があれば教えて頂けますでしょうか? >>367 UART対応のWiFiモジュールでもバイナリ転送できるかと >>367 JSONはどうだろ。.NETならAPIもあります。 ノートPCとArduinoをUSBで繋いでます。 負荷が24V系なので別の安定化電源から24Vを供給し、Arduinoからトランジスタを駆動しようと思います。 ノートPCはACアダプタに繋がっていて、安定化電源は接地されているのですが、USBと安定化電源のGNDを繋いで大丈夫なのでしょうか。何かでノートPCと別電源の機器を繫いで壊したというのを聞いて気になりました。 心配なら24V系とArduinoをフォトカプラで分離すればいいんじゃね >>371 24V電源のGND(DC出力の0V側)とフレームは接続されてる? あと,ACアダプタに絶縁不良がなければ大丈夫かな >何かでノートPCと別電源の機器を繋いで壊したというのを聞いて気になりました。 USBで接続する場合なら、グランドが浮いた状態で信号線が接続されてようなケースかな? >>371 電源が商用電源に接続するもので、正規のものなら、(PSEマークのあるACアダプタでもOK) (A)があなたが作った機器だとして、GND1とGND2が内部で接続されている場合なら、 PCと(A)を接続するときに、GND2が接続されることは問題はない。 GND2を接続する前にUSBの信号線が接続されるのは良くない。(そうならない工夫はコネクタで されているし、少々のことなら保護素子で守られるはずだけど) >>367 367です、皆さんありがとうございます! TCPを使って何とか行けました。 vscodeでシリアルモニター表示とポート選択ができないんだけど同様の現象の人います? 乗り換えようかと思ってarduino ide proなるものをインストールしたけど大して進化してるようにも見えないから開発環境が固まらずウロウロしてる VSCodeで新規ウインドウ開いてフォルダを開いてその中にinoとか置いたらボード選択とポート選択出来る inoがひとつあるフォルダを開くのがキモ 例えば、~/Documents/Arduino/Sketch/の中に沢山フォルダを作ってその中にinoがひとつひとつあった場合は、Sketchフォルダを開くんじゃなくて、使いたいinoがあるフォルダだけを開くとうまくいく ガチガチ初心者です。 赤外線を受信したら、フォトカプラを介してLEDをつける回路を作成中。 IRremoteなるライブラリを使って、赤外線リモコンの値(16進数)を読み取るところまでできたんだけど、その値を使ってフォトカプラを動作させるやり方が解りません。 IFで変数==読み取り値(16進数)を直接じゃあかんの。 読み取り値を入れてるところがエラーになるんだけども。 ■ このスレッドは過去ログ倉庫に格納されています
read.cgi ver 07.5.5 2024/06/08 Walang Kapalit ★ | Donguri System Team 5ちゃんねる