Arduino初心者熱烈大歓迎質問スレ part21
■ このスレッドは過去ログ倉庫に格納されています
http://www.arduino.cc/
【質問者心得】
・スレに一応目を通してから質問しましょう
・回答者はエスパーではありません。状況が分かるように詳しく書きましょう
詳しく書いてくれないと、答える方も困ってしまいます。答えようがないのです
【回答者心得】
・すぐにググレカスと言う前に「○○でググれカス」って言うような大人の余裕を見せつけてやりましょう
・節度ある初心者さんには、特に優しくね
【分裂騒ぎ】
おさまった模様。くわしくはぐぐれ。
前スレ
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/
関連スレ
【Arduino】フィジカル・コンピューティング4【OSC】
http://wc2014.2ch.net/test/read.cgi/denki/1407830304/
学研マイコン Japanino ジャパニーノで遊ぶスレ 3
http://kamome.2ch.net/test/read.cgi/denki/1286354827/ >>623
速攻レスだな。
UNO買ったときに328Pを秋月で単体で買ってブートローダ書いたんよ。
バックアップとか言ってさ…。
最近Nanoしか使わんから自分でも懐かしいわ。 それじゃん。
>>615の問いに対する完全無欠の最終解
自分の無力さをひしひし感じるわ。 使えるかどうかわからないが、PWM出力で4066みたいなアナログSWのON/OFFduty変えて
等価的にOP入力のボリュームを構成できる。 >>618
おっとこれはI2Cではなく、H/Lロジックで使えるやつだった
ただ1ステップずつインクリメント、デクリメントしかできないっぽい
SPIだけどこれもありかも
https://www.digikey.jp/product-detail/ja/microchip-technology/MCP4131-104E-P/MCP4131-104E-P-ND/1874342
SPIもArduinoなら簡単、誰でもできるから心配ご無用 >>625
ボリウムは300°廻るけどサーボって180°くらいしか行かんから0に合わせたら100キロいかないw
…と書いてボタンを押そうとした所でそのボリウムが250キロって可能性に気付いて俺は負けた
一丁前にカップリングまで装備しやがって!! ロータリーエンコーダーのように
A相B相の位相差90度の10kHz程度の
パルスを出したいんですけど
簡単にお安く出力する方法って
どうすればいいでしょうか?
この流れだと先に言われそうなんで
arduinoでモーター回してロータリーエンコーダを回す
意外でお願いします。 >>632
簡単にお安くってこのスレで言われて
Arduinoでっていう回答は有りか無しか そのパルスをArduinoをから出したいという話ではないのか?
それだとしたらなんも外部装置は要らないだろ
Arduino単体でいろんなやり方がある aruduino単体で出来ます?
信号1つのA相だけのパルス波形ならいけるけど
位相ずらしてB相の波形を出す方法が解らないんです 簡単に思い付くのはタイマーを2つ贅沢につかって出せばよかろう?
もしタイマー1つでやるなら…例えば
1バイトでいいから変数を2つ用意して片方は初期値を0、もう片方は初期値を1とする
タイマーを40KHzでフリーランさせて割り込みでそれぞれの変数をインクリメントして2ビット目の値を出力ピンに設定するとかどう? >>635
>信号1つのA相だけのパルス波形ならいける
そのスケッチ貼ってみて。
http://codepad.org/ >>635
16bitタイマーで高速PWMでOCR1AにTOP値を設定し、
OCR1Bに(TOP+1)/2-1を設定してやればできそうだが、Arduinoでどうコーディングすればいいかわからん。 >>638
周波数固定ならCTCいいしでTimer2でもできる >>636の後者だと
◎出力ピンが自由に選べる
△割り込みでほんの僅かにCPU処理がある
>>638のやり方だと
◎CPUは何一つやらなくていい
△出力ピンが固定で選べない 鼻つまみ者がわらわらと湧いてきたなw
AVRスレへ戻って棺桶の蓋閉めてもう3000年寝とけ。 >>591
i2cクロックを10khzに落として見ましたがやっぱり同じエラーが出ますね
マルチタスクについても特にxTaskcreateも使ってないですし、wire.beginと各requestFromの前でcoreIDをシリアル通信に吐き出させて確認してみましたがどのタイミングでもcore1でした
相性が悪いみたいです、悔しいですがおとなしくwire2使うことにします
皆さんありがとうございました >>632>>635
スケッチのsetupの中に↓の1行を貼り付ければD3とD11から御所望の信号が出るゾ☆
asm("cli\nsbi 4,3\nsbi 10,3\nldi 26,82\nldi 27,2\nldi 28,99\nldi 29,49\nsts 176,26\nsts 177,27\nsts 179,28\nsts 180,29\nsei"); >>642
ここ一ヶ月ぐらいでESP32のライブラリの不具合がだいぶ解消されてるらしい
最新版にアップデートしなおしたら? >>641
AVRが振るわず
結局Arduinoのただの構成パーツに成り下がり
そして宿敵に買収された
理由が良く分かるような初心者スレでの対応だよな >>635
ん?
スケッチを貼ってみてと15時間前に言ってるのだが。
http://codepad.org/
まだ残業中か、もう終了か、ただのひやかしか? 世界規模で見たらAVRが流行ってないとはとても言えない
日本がガラパゴスなだけ 途中で送信してしまいました
このパルスの位相を90度ずらしたのを安く出力する回路です インバーターIC外付けてひっくり返すとかなw
たぶんtoneじゃひっくり返したのは出せないよな。普通に割り込みで2通り出力することになるのかな?
まぁ>>646がスケッチ作ってくれるでしょう。煽りじゃなきゃ >>650ちょっと待った
インバータノット付けて反転させたら位相は180度やないかぁ? ジョンソンカウンタの類で位相ずらしすればいんじゃね 10kHzの1パルスの1/4は25usだから
74HC04のtPLH/tPHLが20nsとして125段つければ90度遅れるかもしれねぇ
6回路入りだから21個も要るわ RasPi等とケーブルを使ってI2Cで繋ぐ場合、コネクタはGND含んだ3線にすべきでしょうか
RasPiとI2Cで繋ぐついでにRasPiの電源をNchMOSFETで管理しようかと思ったんですが、
そうするとI2Cコネクタ用のGNDをMOSFETのDの手前から取らなければならなく、もしRasPi以外の物を
そのI2Cコネクタに繋ごうとしたら変な事になる感じでこんがらがってきました Pchでハイサイドにすればこんな悩みは無くなるのかな >>655
電源のグランドを切るような設計は良くないね。
電源でグランドがつながっていても信号用のグランドを入れるべき。 >>657
両方コネクタは3本用意して、RasPiとArduinoを繋ぐ時だけ2本のケーブルで
繋ぐのがベターかなと思ったんですが何か不味いですかね >>657
日本語おかしくない?
電源のグランドを切るのか繋げるのかどっち? (接続先がGNDを使わないからと言って)電源のグランドを切る(省く)ような設計は良くないね
(接続先がGNDを使うから)電源でグランドがつながっていても(そのGND線とは別に)信号用のグランド(線)を入れるべき。 電源のグランドを省くってどういうこと?
電源のグランドを繋がなかったらそもそも回路にならないじゃん
小学生? そうだね。おかしいね。ぼくしょうがくせい。ごめんね。もうだまっとくよ これ>>657と>>660同一なのか?
ローサイドスイッチの話とシリアル三線の話混じってる気がする >>663
>>657の一行目はハイサイドスイッチを使うべしって話で、
二行目はノイズに強い結線方法だね
ちなみにI2CはVCC,SDA,SCL,GNDで4線w
このケースだとSDAのシールド、SCLのシールドで6線とすべしって感じかな >>661
ヘンな事を書くから、>>660 がスネちまって小学生に退行しちまったじゃないかw
私は >>660 ではないが、推測するに
同じ電源を使用している2台の装置で、
・信号線用のグランド線だけが接続されている場合でも
・逆に、電源用のグランド線だけが接続されている場合でも、
接続されたグランドを通じて電位が確定して動作する可能性はある。
ただし、ノイズやスレッショルドなどのマージンを考えると、
信号線用と電源用のグランド線の双方を接続した方がよい。
ではないか?
信号線用のグランド線をリターン線と考えれば、双方のインピーダンスを同じにと思うだろうから、
おかしな事(この場合は接続)をしなくなるのでは? >>665
> 日本語おかしくない?
> 小学生?
こういうのは相手すんなw
夏休みだからきりないぞ Arduino初心者熱烈大歓迎質問スレと名付けられた場所で
「電源のグランドを切る」なんて言葉遣いしてくる奴が一番のガイジだろ https://i.imgur.com/w5q4bGy.png
スイッチを押して起動した後D2をHIGHにし保持、処理が終わった後LOWにして電源オフとしたいのですが、ブレッドボードに電源を繋いだ時点で起動してしまいます
D2がLOWの時テスターで電圧を測るとD2〜コレクタ間は0Vなのですが、D2〜GND間だと1Vになりこれが原因なんだとは思うのですがどうしたら良いのか解りません
期待する動作をさせるにはどうしたら良いのでしょうか 入力は2Vぐらいまでlow扱いじゃないかな
回路見てないけど、単純にsetup時の処理の問題だとおもう >>668のような綺麗な配線図をよく見るのですが、
どんなツールで書いているのでしょうか? >>670
Fritzingと言うフリーソフトです
色々とリッチなソフトの様ですが使い難いのでこう単純な回路図を描く時にしか使いませんw >>671
ありがとうございます
試してみます・・・って言っても
まだ書いて発表する様な回路無いですけどw >>668
Arduinoはほとんど経験が無いけど電源を入れたとたんにトランジスタがオンしてしまうってこと?
だとすると例えばD2とベース間の1KΩの抵抗と直列にダイオードを1〜2本入れるといいかな。
あるいは10KΩと並列に数μF(要調整)のコンデンサを入れるか、さらにダイオード追加と併用する。
ただGND側を弄らないでVcc側を何とかできないかな。。。
それにしても実体配線図は見辛くてしょうがないけど、このソフトには電子回路図として出力する機能は無いんでしょうか? >>668
>>673 です。
10KΩを小さく、例えば1KΩにしてみてもいいかも。 >>673
この件とは別に、スイッチを押した時に5VとOUTPUTのD2が直接繋がるのは大丈夫なのか解らずD2の所にダイオードも入れてたんですが
ダイオード無しでD2-GND間1.0Vなのが、ダイオードを入れるとD2-GND間1.65V・ダイオードの先-GND間1.0Vになります
ちなみにD2を抜いてArduinoの電源が落ちた状態になると、D2-GND間4.76V >>675
D2から電流が流れ出してきてトランジスタが勝手にONになるのでしょうね。
D2を切り離し、PNPトランジスタを追加してPNPのエミッタを+5V、コレクタを
今D2がつながっているところにつなぐ。
+5VとPNPのベース間に1kΩ、PNPのベースとD2間に1kΩをつなぐ。
スイッチを押して起動したらD2をLOWで保持、D2をHIGHにして電源オフになる。
マイナス側は基準の電位グランドになっているので外部に回路を追加すると
更にトラブルを抱え込むことになるから、回路を逆にして+5V側でArduinoを
オン/オフした方がいいと思う。 >>676
PNPの場合D2とスイッチでNOR回路を組む必要があるのかな >>677
元の回路は基準のグランドを切っているから+5V基準に変換する必要があるわけね。
同時にこれも解決できる。
>スイッチを押した時に5VとOUTPUTのD2が直接繋がるのは大丈夫なのか >>668
よく考えていませんが上のgroundが浮いているような気がするのは気のせいでしょうか? >>680
しーっ。
今良いところなんだから空気読めよ。 素人だからよく知らないんだけど
5VにLED繋ぐ時220Ω噛ませるのって
LED自体の抵抗ってどれくらいで分圧どれくらい掛かってる事になるの? 電流が決まらないと電圧がでないけど…
もし20mAと仮定したら、0.6V(30Ω)になる。 LEDのデータシートにVFってのがあって、それがかかる電圧
VFが2Vなら、220Ωに3Vかかるから電流は・・・
LEDが2Vで・・・だけ電流ながれるなら抵抗は・・・ まっ先にLEDのVfが決まっちゃう それにいくら流すかを決めて 電源電圧きめて、そこから
抵抗値が出てくる
http://akizukidenshi.com/download/led-r-calc.pdf >>679
このページの図1の回路簡単でいいね。
今回はDC-DCコンバータは入ってないからスイッチ押し続けなくても大丈夫だと思うけど、上手くいかなきゃ図2があるし。 >>688
確かに要望は多いと思うし、専用チップがあるといいね。 >>687
でしょ?
スイッチ用途もそうだけど、米粒PICで電源の電圧を監視して
バッテリ駆動時の過放電防止に流用して重宝してる。 ウォッチドッグのためのウォッチドッグ基板を作ろう(以下ループ) idfでwdt関数あるけど動かないのかな?os上のタイマーでwdtて役立たないよね USBに刺して動かしてるとき
出力ピンじゃなくて5Vってとこからいくつ電流ひいてもいいの?
300mAくらいもってっても平気? その手のものは必ず最大定格あるからな
USB自体は500mA以上あるからクリアしてるが、ボードの方は定格越えの可能性ある
ボードの仕様みろ 5VてVBUS直結とダイオード経由で内蔵シリーズレギュレータの出力と繋がってるだけだろ?つまりUSBなら0.5Aや
Vinに7〜12V供給してるときはレギュレータの仕様によるからボードの仕様見てな 他のスレでこんなの貼ってあったんですが、
https://learn.adafruit.com/arduino-tips-tricks-and-techniques/3-3v-conversion
これで3.3V駆動できるならいろいろ良さそうなんだけどどう思います?
「ホントは3.6V欲しいところだけど3.3Vでもオーバークロック出来るでしょ」的なことも書いてある。 >>697
大半の人がやらないのを考慮して、やってみるのが一番。Arduinoは、「やってみる人」が使う道具だから。レギュレータ交換しちゃうと戻すの面倒だから、その後のラインに3.3V突っ込んでみる。 3Vにしたらそこらにあるシールド使えなくなるから、UNOにこだわる必要なし
だったら最初から3Vで動くボード用意したほうが手間なくていいんじゃない?w >Arduinoは、「やってみる人」が使う道具だから。
名言だ。
ところでSeeeduino v4.2 を3.3Vに切り替えたとき、クロックはどうなるんだ? >>697
Aliあたりで400円もしなくて買えるわけだからやってみて1つ持っててもいいかも。
既存の物で328Pで3.3VなのはPro Miniだけど用途が変わってきちゃうしね。
あと、既成のシールドしか使わない人にはそもそも無関係な話だ。
というわけで、ぜひやってみて。
16MHzで動くかどうかも知りたい。 ライブラリそのままやアプリケーションノートの丸写しでなくて
初めて自分で回路らしきものを組んでみると楽しい!!
でもこれであってるのかってどうやって確かめるんですか?
組んでみて動いたは動いたけど、回路として問題がないかってみんなどうしてるの? >>702
一応動く場合もあるけど、安定動作させるのは無理のようです
自分の実験では3.7vあればなんとか動作するようですが
それ以下では条件によって途中で停止する場合が多いです こんな偏屈老害ジジイしか居ない板に初心者が回路図なんて貼ったら
問題なくても何かしら探してボロクソ言われるだけ
ちゃんと動いたんならいいだろ
ホビーなんだし >>703
そりゃ、きちんと電気の勉強した方が良い。
でも動くなら、ある程度正しいんだよ。もしかしたら、電流が多すぎていたり、もっと良い回路があるかもしれない。
でも、それは動くものをいくつも作っていく中で、また、うまく動かない、素子が燃える等々経験していく中で、このスレや他のスレで書かれていることがだんだん理解できるようになっていく。オームの法則くらいわかってれば、まずは十分。
思ったものをすぐに形にしてみる。それがArduinoの良いところ。たくさん、試してたまに失敗もしてみて。 >>705
そうですか。
そうなるとクロックも落とさなければならないことになりますね。
ならば無理せずにPro Miniの3.3V 8MHz版買うとかの方が無難かな…。 >>708
何で大抵の人がやらなくて、3.3V版は8MHzなのか、データシート読めば本当は分かるんだよ。
せっかくなら、「やってみてダメだった」を実感して欲しかった。
8MHzのブートローダー焼いて、レギュレーター、クリスタルの変更をすれば、UNO形状で3.3V版にはできるよ。(内部発信なら、クリスタルはママでも)
ただ、自作以外のシールドは、基本5V動作前提なので、また別の考慮が必要。 >>709
データシート上の建前なんか最初からわかってる。
一番最初に言い出しっぺが、
>「ホントは3.6V欲しいところだけど3.3Vでもオーバークロック出来るでしょ」的なことも書いてある。
って書いてるじゃん。
わざわざ何言ってんだか…。 仕様相手に建前とか言っちゃう人初めて見た
それこそ自己責任で試したら良いだけの話 arduinoで条件に応じてカーオーディオのボリュームをhigh/low切り替えたいです。muteほど極端にでなく。
ヘッドユニットとアンプを結ぶRCAケーブルに抵抗ありルートとなしルートを並列に設け、
1ルートに1つトランジスタ使って切り替えるというのが簡単そうですが、
オーディオなので波が+/ーあり半波整流されてしまうとよくありません。
じゃリレーかと思いますが安易なのとスイッチングノイズが発生しそう。Digital potentiometerは電圧定格内にするために却って複雑になりそう。皆様ならどうしますか? >>713
バイアスかけて音量をPWM制御してLPF
知らんけど オーディオはなぁ。下手しなくても音質が激しく劣化するから・・・
オーディオ スイッチ ic
オーディオ アッテネータ ic
でぐぐってこれら組み合わせ オーディオの音量スイッチ+/-にそれぞれパラレルでフォトカプラーをつないで、arduinoから音量スイッチを押させた方が間違いないと思うよ。
簡単だし、音質劣化も気にしなくていいし、部品点数も少ない。 あーこういうやつ……
https://youtu.be/Xj7IK2Zb1QQ
やっぱ現代車種ってクソ
メカニカルisGOD >>718
713ですがデジタルのロータリー、押しSW付です。一番面倒かも
>>715
貴重なご意見ありがとうございます。 >>712
リンク先の焼き直しか分かりきったことしか書けない人は
捨て台詞まで定型なんですね ロータリーエンコーダーの入力って
割り込みでやってる?タイマーでやってる? >>719
じゃあ、ステアリングリモコン端子。
すげー簡単。 >>721
私は両方使っている。
A相の+エッジ割込みを許可して
1)エッジ割込み処理
B相を読み、そのH/LでCW/CCWを判定して処理(あるいはフラグを操作)
エッジ割込み禁止、40mSタイマ割込み許可
2)タイマ割込み処理
タイマ割込み禁止、エッジ割込み許可
タイマはA相のパルス1個分(+エッジ〜-エッジ)のチャタリング除去用
これで秋月の\200の手動用ロータリエンコーダを動かしているが、
他のエンコーダで使えるかどうかは条件が変わるので分らない。 ■ このスレッドは過去ログ倉庫に格納されています