Arduino初心者熱烈大歓迎質問スレ part35
■ このスレッドは過去ログ倉庫に格納されています
(^p^) >>1 乙 もうお前に用はない
く|)へ
〉 ヽ○ノ ギャー
 ̄ ̄7 ヘ/
/ ノ
|
/
|
/ .. + ..:. .. ..
+ :. . +..
. : .. + .. .
.. :.. __ ..
. + |: |
|: |
.(二二X二二O
|: | ..:+ ..
∧∧ |: |
/⌒ヽ),_|; |,_,,
_,_,,_,~(,, );;;;:;:;;;;:::ヽ,、
" "" """""""",, ""/;
"" ,,, """ ""/:;;
\(^o^)/ 人生オワタ 1乙です
長過ぎる条件式の時に途中で改行したいのですが
そのまま改行しても読んでくれますでしょうか?
え?やってみればわかる? ですよね〜 単語中とかの改行は勿論だめだけど
条件式中の空白部では 文末に円記号'\'とか逆斜線'\'の半角の奴で次の行を含めてくれる処理系もあるからダメもとで試してみてはいかがだろうか;しらんけど
もし可能だったら ご改行おめでとうございまーす(^p^) もしかしたら、御開業おめでとう?
君のレスは色々と忖度しながら読まないといけないので疲れる・・・w >>6
>>7
単に改行するだけで無事に処理ってくれました
2行目の頭は||とか&&から始まるようにしてみたよ
これで横スクロ―しないで読みやすい! 新しく買った16u2にhexファイル書き込もうとすると
Chip already blank,to force erase use —force
上記のエラーが出るのですが解決法わかる方いらっしゃいますか?
以前から使用している16u2は問題なく書き込みできるます avrdudeのコマンドをコピペして -Fオプションを付けて実行する >>9
16uはわからんが32uの場合は、ブートローダー飛ばしたときに強制書き込みしてねと言うメッセージが出た。
なおブートローダー飛んでるので書き込み出来ず文鎮化した。 UNOとでも繋げてブートローダー書き込みできなかったっけ >>11
LのLEDが点滅してるからブートローダーってのは関係なさそうかも >>13
ブートローダーが正常ならパソコンにつないだときデバイスマネージャーにcom*とか認識されるので、確認してみるといいかも。
純正のarduinoでない場合出荷時にブートローダー書き込まれていない事例とかあるので。 >>14
2台目だからPCに繋ぐとちゃんとATmega16u2で認識されてるんだDFUモードにもなってると思うんだけど下記のエラーが出る
PS ファイルの場所> .\dfu-programmer.exe ATmega16U2 erase
Checking memory from 0x0 to 0x2FFF... Empty.
Chip already blank, to force erase use --force.
PS ファイルの場所> .\dfu-programmer.exe ATmega16U2 flash 名前.ino.HoodLoader2.hex
>>
Checking memory from 0x0 to 0x19FF... Empty.
0% 100% Programming 0x1A00 bytes...
[ X ERROR
Memory write error, use debug for more info. >>15
名前.inoの日本語をアルファベットに直すのと、debugオプション指定して実行してみたらもう少し状況がわかるかも。
.\dfu-programmer.exe ATmega16U2 flash name.ino.HoodLoader2.hex --debug 300 >>16
こんなかんじです
PS ファイルの場所> .\dfu-programmer.exe ATmega16U2 flash Joystick.ino.HoodLoader2.hex --debug 300
target: atmega16u2
chip_id: 0x2fef
vendor_id: 0x03eb
command: flash
quiet: false
debug: 300
device_type: AVR
------ command specific below ------
validate: true
hex file: Joystick.ino.HoodLoader2.hex
dfu.c:422: dfu_device_init( 1003, 12271, 0063FE74, true, false )
dfu-programmer: no device present. >>17
エラーはデバイスが存在しませんと出ています。
念のため確認ですが書き込む前にresetとgndをショートさせてますよね。
また、使用出来ている16u2と出来ない16u2は同じメーカー?同じ互換品ですか? >>18
そもそもHoodLoader2を使ってるということは元は32u4のプログラムですよね。
動いている16u2のプログラムと同じ物を書き込んでも動かないでしょうか?
32u4とメモリ容量がちがうので書き込めない可能性もあります。 ノーデバイスってことは、もしかして通信できてない?
新品デバイスは低速で動いてるから
書き込みクロックを低速にしないと通信できないという
あるあるかも >>18>>19
新しく買った方はELEGOO UNO R3で以前から使っている方がpureyes UNO R3です
書き込みしているのは32u4のものを16u2用に変えた物ですがpureyesの方には書き込めているのでやはり何かおかしいのかと
一応16u2用のものを書き込んでも同じエラーが出ます 調べてたらno deviceの時はDFUモードになってないか接続が出来ていないらしい
接続は出来てるからDFUモードになってないのか?ショートはさせてるんだけど 連投すみません
PS フォルダの場所> .\dfu-programmer.exe ATmega16U2 erase
dfu-programmer: no device present. DFUモードになっていない
PS フォルダの場所> .\dfu-programmer.exe ATmega16U2 erase
Checking memory from 0x0 to 0x2FFF... Empty.
Chip already blank, to force erase use --force. DFUモードにしたので通った
PS フォルダの場所> .\dfu-programmer.exe ATmega16U2 flash Joystick.ino.HoodLoader2.hex
Checking memory from 0x0 to 0x157F... Empty.
0% 100% Programming 0x1580 bytes...
[ X ERROR ここでSuccessにならずにERRORになっている
Memory write error, use debug for more info.
これはやっぱり書き込みで弾かれてるみたい? >>24
ELEGOO UNO R3だったら実績はありそうです。
次の2点で試して見てほしいです。
1.
すでに初期化されているようなので、ショートさせてDFUモードで書き込むときいきなり(flash)の行から実行する。
2.
だめな場合
eraseするときに書いてあるとおり--forceオプションをつけて強制的に初期化して、flashを実行する。(書き込み不可フラグが残っている可能性があるため。)
実行結果から見るとメモリの書き込みでX 不明なエラーが発生してるのでメモリが壊れている可能性もある。
最悪
https://burariweb.info/electronic-work/arduino-atmega16u2-firmware-rewrite.html
に書いてある
https://docs.arduino.cc/hacking/software/DFUProgramming8U2
を実施してもダメだったら私の知識ではお手上げです。
力になれなくてすまない。 >>25
1.だめでした
2. Erasing flash... ERROR
Checking memory from 0x0 to 0x2FFF... ERROR.
上記のエラーがでます
参考サイト
手順通りにやりましたが書き換えのhex実行で同じくxerrorがでました >>27
AVRライターで書き込めば直るような記事はあったがそこまでするなら、新しく買った方が安いので・・・
純正品購入したとのことなので、成功することを祈ります。 動いてる子をISPライターにするという技もあるでよ~ >>28
残念ながら解決できなかったけど長々と面倒見てくれてありがとう >>28
純正品届いたから書き込んでみたら一回で通ったよ
これは互換品のメモリ破損の可能性ありそう 壊れてるっぽいブートローダーで書き込みしてるんだから、うまくいかなくても不思議じゃないでしょ
ISPで書き込んで見ればいいのに 教えて下さい
ニッケル水素電池1.2Vを直列で4本繋いで
Wemos D1 miniモジュールの5VとGNDに入力
(データシート:ttps://diyi0t.com/esp8266-wemos-d1-mini-tutorial/)
サーボモーターSG90をWemos D1 miniモジュールの5V、GND、D1に繋いで制御しています。
電池4本の電圧が最初は4.8Vぐらいあったものが、1時間程度で3.7Vになってしまい、 動かなくなってしまいます。
何か間違えてるんでしょうか・・・?
モバイルバッテリー経由で動かせば長時間持ちますが、モバイルバッテリーは高いのでニッケル水素電池で動かせるようになりたいです 充電直後の無負荷で4.8vしか無いなら、充電できてないか、不良セルがまじってる >>33
DMM(テスター)等があれば電流を測定してみては?
電力消費の原因がWemos D1なのかSG90なのかを特定した方がいいと思う
思いつく可能性としてはSG90の角度が指定より前で物理的に止まった場合に0.5A程度の電流が流れ続ける
↑が原因ならSG90を制御するPWM出力する時間を短時間(数秒)にすれば解決できるかも
たぶん\(^o^)/ >>34
ご回答いただきありがとうございます。
電池は充電直後じゃないです。紛らわしくて申し訳ありません。
Wemos D1 miniのデータシートに
Power Supply via VIN,VCCPower Supply via VIN,VCC:4V...6V
とあったので、この範囲の入力であれば問題ないという認識でした。
>>35
ご回答いただきありがとうございます。
電圧しか測定したことなかったので電流測定に挑戦してみます。
>思いつく可能性としてはSG90の角度が指定より前で物理的に止まった場合に0.5A程度の電流が流れ続ける
これかもしれません!照明スイッチを押そうとしているのですが、指定した角度まで回らず途中で止まってるかもしれません。 >>32
接続するための線とか全く持ってないんだ基盤だけしかない Arduinoで実験する時にブレッドボードにジャンパーワイヤーで配線するでしょ。
それで実験していて、上手く行っても行かなくてもしばらくは実験を続けたいのでその配線は外したくないですよね。
その時に、ちょっと配線を変えた実験をやるとか、あるいは全く別の実験もやりたい場合とかあるので、
結局、Arduinoキットを買い増しして合計5セットくらい買ったのですが、皆さんはどんなやり方していますか? ブレッドボード>ユニバーサル>エッチングの工程
なぜかブレッドボードで実験中のものが15セットとかあって
冷蔵庫用の透明なプラトレイに入れて管理、トレイを5段収納する棚作ったけどあふれてダンボールに… >>41
Nanoをブレッドボードに挿すから
ブレッドボードと配線はそのままでNanoだけ使いまわしてる >>43
俺もソレよnanoは6個くらいしかない
ESPやTinyになることもある、つかその移植作業で2種対並べたりするからとんでもなく増えてく 個人的にはpro microはもう買わない
シリアルポートが認識しなくなったらRSTとGNDショートして
表示させてる隙にスケッチをうpとかさ
長いコードだと途中で失敗したりイライラ凄い めっちゃ過疎っとるやんけ!
お前ら夏休みの自由研究はどした!? 逆に考えるんだ
おっさんだって 世間様の夏休み相当期に
自由研究したって別にええねんで?! おっさんからじじいにクラスチェンジした俺には関係の無い話 将来の目標は、自宅につつましい工房を構えた技術系ジジイになる事でう(^p^) 工房も機材も部品も揃ってくるけどやる気がなくなるんだぜ >やる気がなくなる
____ / ̄ ̄ ̄
/___ \ / ___ ヽ
/ |´;ω;`| \ / |´;ω;`| \ そんな〜・・・
/  ̄ ̄ ̄ \ / _,  ̄⊂二二)
| i ヽ、_ヽl | |
└二二⊃ l ∪ | |
| ,、___, ノ | ,、 |
ヽ_二コ/ / ヽ / \ /
_____/__/´ __ヽノ____`´ Arduinoで作るピンクロータコントロールは夏休みの自由研究に入りますか? 公序良俗に反するのでダメです、他の名目の研究に変更してください 誘導性負荷の制御という課題にして、
暫定的に たまたま手元にあった or 比較的安価に入手できたありふれたマッサージ器を用いた、とすれば
宜しいのではないでしょうか;しらんけど >>54
考えてみれば、私も現役の頃の方が、個人で(家庭で)使用するものを一杯作ってた。
退職ジジィの今のほうが工房も機材も部品も、ヒマも金もあるのに・・・。
試験が近づくと部屋の掃除を始めたり、机の引出しの整理を始めたりする中学生と
逆のパターンで少し似ているw 老眼で半田付けしんどいからダイソーで100円老眼鏡買ったら
捗りすぎワロタ 今年買ったデバイスの中でトップだわ 「忙しい人には時間がある。暇な人には時間がない。」アレクサンドル・ビネ >>57
じゃ、ArduinoでコントロールするTHRIVEハンディマッサージャーの制御は駄目
マッサージするグッズですよ
いかがわしい使い方しませんよ __ 、
r'´:: .:::`ヽ ゙_,,..ノ''"゙、
f´`i:: ..:;f´`i ゙_,,..ノ''"
レ'ゝ;;;;;;;;;ゝノ'
/~~~~ i_]つ やる気出ろ〜
、'_______」 やる気出ろ〜
/ l l l l i 趣味人はその時のモチベーションで猪突猛進するのがいい 小学生がプログラム学習を何たらとかいう話だから
意識高い系お子様が自習で取り組めるような課題設定と
解説の電子工作啓蒙ウェブサイトとかを開いてみるのは如何でしょうか?
そしてArduinoを活用しまくりんぐ 一部に根強い人気のある鉄道模型だと高級キットは真鍮製で半田を使って組み立てるから
電子工作経験者には有利。電飾にも取り組めるし
動力付きの模型なら速度制御や音響再生など課題も潤沢や!
HOゲージあたりにすればナノぐらいのサイズならくみこめるのかなぁ。 >>68
HOはでかい、当然線路もでかい
庶民の家ではレイアウト「する場所に困るw トンネル状車庫が収納庫を兼ね、「自走収納」しつつ、
無線制御を併用して複数車種を同時制御とか 面積の都合で
回転台はあきらめ垂直昇降式のエレベーター制御を実現すれば壁数面程度の範囲でも遊べるのでは!
生活空間をひっ迫しない、というスタンスで、本棚の手前のモノを置いちゃあかん水平空きスペースを
常設路線と兼用、とか・・・枕木のデザインとか見直せば常設しうる未開の沃野かも!!(^p^)
超音波式アロマ焚き器?を組み込んで蒸気機関車模型を煙もくもく、とか
発車時の音とか トルク制御で動輪の空転とか再現するには高難易度の課題も潤沢・・・ 鐵道模型で思い出したけど、
甥っ子が子供の頃、Nゲージ用の電源を作ってやった事がある。
CPUを使ってパルス幅制御し、加速、定速、減速の期間と変化率を可変にして、
さらにこれらの数値を組み合わせてROMに保存、再生もできるようにした。
今でも心残りなのは、<スーッと音も無く静かに発進・停止する>が出来なかった事。
どんなに調整しても、ガクンと動き出し、ガクンと停まる、
どうやれば良かったんだろ? 回転数を検出してフィードバック掛ければ良かったのかな?(自問自答) 動き出しだけ電磁石でスーッと引っ張る(´・ω・`)つ🧲 🚃〜 またまた思い出したけど、
その甥っ子のために、Nゲージでリニアモーターカーを作ってやった事がある。
レールを絶縁して、ある期間ごとに±極性が交互に反転するようにレールに電源ラインを接続し、
電車の方にコイルを巻いた電磁石を2個取り付け、
線路脇にに永久磁石を並べた。
つまり、ある期間を進む毎に電車側の電磁石のNS極が反転して、
線路側の永久磁石と「引き合う/反発する」を繰り返すという単純なもの。
電源を入れた途端にものすごい勢いで走り出して、線路から飛び出してアセったw
秋葉原の橋の上のジャンク屋で大量の棒磁石を買った思い出も今は昔。 ゲームのコントローラをAruduinoで制御したいんですが、
左図のような回路の場合は、右図のようにリレー使うのがいいんでしょうか。
もっと簡単に出来るとか、根本的に間違ってるとかあれば、教えてほしいです。
https://i.imgur.com/DrH5fUz.jpg >>77
基本的には合ってるけどリレーのコイルにパラに逆起電流を吸収する回路をいれてやったほうがいい
簡単にはダイオードで行けるが、オフ時の反応が鈍くなるので、それがまずい場合は別の方法で あ、リレーは消費電流がarduinoの出力許容電流より小さいのを選んでね >>77
少なくともリレーをフォトカプラに変えた方が良いと思う
絶縁不要ならデジタルトランジスタを使うのも有り
極端な方法であればGPIOをオープンドレイン制御して直接でも可能
(Arduinoに対してコントローラーの電圧が同じか低い場合) ArduinoからAボタンを押したいんだろ?
Arduinoでコントローラーの値を読み取りたいのか?
回路図で行くとリレー・フォトカプラは読み取りの方じゃねーの? コントローラを制御ってのが意味不明。もう少しやりたい事を詳しく書かないと適当にしか答えられないよ。
ボタンの信号を受け取りたいのだとしても信号出力でリレーやフォトカプラを駆動するのは多分無理。 図面見たらコントローラーのボタンを押したいだけってわかるがなw >>78
了解です、ダイオードはさみます。
>>80
『GPIOをオープンドレイン制御して』ってのが、どういう回路か分かりません。。。
勉強します。
>>82
ボタン押したいだけです。 >>84
https://i.imgur.com/4TqqKKF.png
こんな方法で出来る!たぶん\(^o^)/
GPIOを直接接続して制御する場合は
GPIOのHIGH・LOWの切り替えではなく(ダメ絶対!)
GPIOのOUTPUT(LOW)・INPUTを切り替えて使う(オープンドレインに相当)
あとD0/D1はUSBシリアルに接続されてるので他のポートで Arduinoのポートをオープンドレインで使って、
Arduinoのマイコンチップの電圧より高い電圧の信号を制御できるってあるのかな?
すくなくとも328Pではできない気がする。
「リレーよりフォトカプラ」は強く推したいけれど、フォトカプラがわからないと怖いよね。
リレーを使う場合、Arduinoのポートで流せる電流は(チップによるけど)せいぜい20mAまでだと思う。
リレーの選別はそれなりに厳しいかも。秋月で探すなら「リードリレー」で探すといいと思う。 コントローラ側のスイッチを押したときに流れる電流/スイッチを離したときの電圧は測っておいた方がいいかもしれないな
あと、コントローラ側のスイッチの一端は本当にGndであってるのか?もしかしてマトリックスの一部になっていないのか?とかも調べておいた方がいいかも >>85
図まで書いて頂いて有り難うございます。
GPIOが工作的には楽そうですねー。
とりあえずこれでやってみようと思います。
ちなみにリレーはTLP521-4が家にあったのでソレを使う予定でした。 TLP521はリレーではなくてフォトカプラだよ。
ちゃんと使えるかどうか心配だな。 >>86で間違ってました。元のオープンドレインの話は
>(Arduinoに対してコントローラーの電圧が同じか低い場合)
でした。
相手が低い場合はオープンドレインでいいです。
ただ、87さんが書いてるように、スイッチの一端がGNDかどうかは要確認です。 スイッチの一端がGNDかどうか確認するには
装置電源マイナスとスイッチの一端の抵抗値を計ります
それが1Ω以下なら繋がっていると思っていいです。
大抵GNDは外側をぐるっと一周ベタになっています。 コントローラーの電圧が高い場合、トランジスタがショート破壊になるとC-B間スルーとなり
12Vが5Vマイコンに襲い掛かります
なのでマイコンーB間に抵抗と逆流防止のダイオードを挿入するのをオススメします。 >>92
12Vって何処から湧いた数字なのだろう?
何に対してのレスなのだろうか? >すーっと
回転開始を検出して、回転開始直後に印加電圧を急激に絞ればいいんじゃね?しらんけど だとして どうすりゃええかって話やな。
・・・つまり、電流制御すればいいってことなのかな? しらんけど 正攻法は、低速トルクのあるモーターにするか、減速するかやね 本物も機関車一台で引っ張る奴は、機関車くそ馬力あるやろ
電車みたいな馬力小さいやつは、編成中に動力車が複数居るやろ
そういうことじゃね?、しらんけど ■ このスレッドは過去ログ倉庫に格納されています