Arduino初心者熱烈大歓迎質問スレ part22
■ このスレッドは過去ログ倉庫に格納されています
>>138
秋月のUSB 経由
設定はAVRISP かAVR ISP MKII >>139
う〜ん、わかんねw がんばってw
一応書いとくわ
@USBケーブルをチェック、交換してみる(意外とこのトラブルが多かったりする)
APCが書き込み装置を認識しているか、デバイスマネージャで確認する
B>>136の方法で、ArduinoIDEのログ画面を見ながら、書き込む瞬間にタイミング良くリセットボタンを押す
Cブートローダが書き込まれてない? ケーブル ,USB I/F, pro mini 全て新品同一品
(PCより外側全部 交換)
usb デバイス認識 OK
シリアルloop back テスト OK
ブートローダは書き込み済みのはず 踏ん付けちゃったのが正常に書き込み出来てたんなら
初期不良かなー とりあえずもう一枚pro miniを買ってきて、環境の問題かボードの問題か切り分ける。
ただ、俺は同じようにpro miniでリセットでハマったことがあるのでそれ以後はほぼpro microを使ってる。 動作しました
リセット回路 0.1u 電源 10u 入れて何回かトライしたら
動作したので ためしにはずしてみたら 動作してる
んーー原因がはっきりしない
昨日の猛暑ではまるっきりだったのに
(ノートPCはエラーがでてwifi 環境の不動作がたびたび発生してた)
ピンに負担がかからないようツイストケーブル20cm位いれても 問題ないし >>148
よかったね。俺の場合は、あるpro mini個体が元々問題なく書き込み出来てたのに、ある日突然書き込み出来なくなった。
でリセットボタンをタイミングよく押せば書き込み出来たけど、いちいち面倒なのでそれ以降pro microに変えた。aitendoでpro mocroは700円、pro miniは650円。 回路図見たらreset 端子- gnd 間にコンデンサが入ってないんだね・・ Arduino IDEアップデートのメッセージ出るけど
ボードもIDEもエラーでアップデートできてないみたいなんだけど
なんかやり方がある? ARDUINO 1.8.6 2018.08.23
[ide]
* arduino-builderを1.4.0に更新しました:
- 並列ビルド(コンパイル速度を向上させる)
- すでにコンパイルされたファイルの再利用
- Windows:OneDriveクラウドフォルダの下に保存されたスケッチの固定ビルド
*ライブラリタイプの翻訳が追加されました。ありがとう@ReAlUA
*プログラマーメニューにスクロール機能を追加。
*スクロール可能なメニューに「アクセラレータ」が追加され、スクロール中に「a」キーが押された
* "ボードマネージャー"メニュー項目は常にメニューの最初のものにしておきます
* "Manage Libraries"は "Tools"メニューにもあります。ありがとう@feikname
*コンパイラエラーは列と行の両方を持つようになりました
*シリアルモニタはどのように "タイムスタンプを表示"オプションを持っています。ありがとう@MichalSy
* Linuxでの高解像度モニタのDPI検出の改善
*検索/置換テキストフィールドにコピー/ペーストコンテキストメニューを追加
いくつかの仮想/接続されていないネットワークインターフェイスが存在する場合、長いIDE起動時間を修正
* Windows上でファイルを保存する際の一貫性のない行末の問題を修正
* mdns:到達可能性ではなくボードをTTLで消滅させる。ありがとう@kurtgo
*ライブラリマネージャ:マウスクリックの代わりにマウスをオンホバーでインストール/削除ボタンを表示
*ボードマネージャー:インデックスが壊れているというまれなケースを修正
* Windows:コマンドラインからIDEを実行しているときにデバッグ出力を一部削除しました
*選択可能なユーザー定義のテーマをサポートします。ユーザーのテーマは、スケッチブックの「テーマ」フォルダ内のzipファイルです。
* Library Manager:library.properties内のライブラリによって宣言されたヘッダー(.h)もライブラリ検索で検索されるようになりました
* "--version"をCLIに追加しました。ありがとう@yohsuke
*プロッタが開くことができない場合、固定シリアル・モニタ/モニタが永久に無効になる
*「名前を付けて保存」で時々更新されない固定ウィンドウタイトル。ありがとう@JxJxJxMxNxS
*増加/減少フォントサイズの固定キーバインディング
* Preferencesダイアログのアクセシビリティを改善しました。ありがとう@coreyknapp
[コア]
* AVR:NanoのデフォルトブートローダーとしてOptibootを設定します。これは新しくインストールされたブートローダーです
Arduinoナノボード。古いブートローダを持つNanoをお持ちの場合は、選択する必要があります
Tools> Processor> ATmega328P(Old Bootloader)をクリックしてアップロードします。
* AVRコアは、独自のリポジトリに移動しました:https://github.com/arduino/ArduinoCore-avr
* gcc 5.4.0にアップデートされたtoolchain
[wifi101-firmware]
*セキュリティ修正:WPA2 KRACKの脆弱性(最新のWINC1500ファームウェア19.5.2)の修正をリリースしました。 >>150
arduino ide用だから
コンデンサつけると書き込みエラーになると思う
atmelのプログラマー使うのであればあってもよい
秋月のボードにはそれを切り離す端子がある i2c のプルアップ、電源だけ切り離せるようになってるだが・・ delayとか要らなくてもタイマー0の溢れ割り込みは使えないんですか?
定義するとエラーになります。millisとか纏めて使用不能になってもいいので使う方法ありますか?
比較A割り込みと比較B割り込みはPWMに使っているので使えません >>157
AVRとしては可能だけど、ライブラリがないんじゃないかな
エラーになるって、具体的にどういうふうに書いてるの? >>157
ここにスケッチ貼ってリンク張って
http://codepad.org/
あとArduinoの型番と開発環境も http://codepad.org/02kwmeNA
これでいいんでしょうか?ボードはUnoでIDEのバージョンは1.6.11です
スケッチが悪いのかと思って最少構成にしてみたのですが以下のエラーがでます
比較A割り込みを使えばちゃんとうごきます
wiring.c.o (symbol from plugin): In function __vector_16':
(.text+0x0): multiple definition of__vector_16'
E:\Users\Master\AppData\Local\Temp\builda7b0dfd25be122d472f8da494ec6c0a5.tmp\sketch\Blink.ino.cpp.o (symbol from plugin):(.text+0x0): first defined here
collect2.exe: error: ld returned 1 exit status
exit status 1
ボードArduino/Genuino Unoに対するコンパイル時にエラーが発生しました。 >>160
タイマー2はライブラリがあって速度が変えられるので別なことに使いたいです
タイマー1はサーボを使うと確か使っちゃいけないんですよね? hardware/arduino/avr/cores/arduino/wiring.c
の中でシステムの
ISR(TIM0_OVF_vect)
が既に有って二重定義に成る訳で
これを変更したとしてどうやって実際のビルドに反映させるのか知らないので
別の方宜しく TimerOneライブラリの、attachInterrupt() のようにすればいいんじゃ?
ソースの場所が分からんけど ^^; あ、164はダメだな orz. TimerOne.cppの中で
ISR(TIMER1_OVF_vect){ Timer1.isrCallback();}って定義して
isrCallbackを後からattachInterrupt()で書き換えるってやり方だけど
ISR(TIMER0_OVF_vect) のほうは、すでに定義されてるから同じやり方できない、ってことだものな
安易に問題回避するなら hardware/arduino/avr/cores/arduino/wiring.c を書き換える? 自分で定義を書いてもdelayとかの定義が上書きされるわけじゃなくてただエラーになるだけみたいなので
IDEのなかのファイルを書き換えるのは怖いし、ぜったい戻し忘れて他のスケッチがおかしくなりそうです
今回のプログラムではD6ピンのPWMは25〜230までしか指定しないから常にPWM信号がでていたので
D2ピンに繋げていた部品をA3ピンに移してA3ピンをD17ピンとして使って、D2ピンを空けてあげて
INPUTにしたD2ピンにD6のPWM信号ををつなげて外部割込み【RISINGを指定】の所にやりたかった内容を書いたら
タイマー0が0になるたびD6がHIGHになって外部割込みがちゃんと起動したので
結果的にTIMER0_OVF_vectと同じ挙動になりました ありがとうございました >>166
今回の話とは関係ないけれど
前々スレ http://rio2016.5ch.net/test/read.cgi/denki/1514503488/ の55前後の話を
読んどくといいよ
アップされてたコードには、同じような(ありがちな)ミスがあったようだから あと、ちゃんと理解できてないんだけど、166のは比較A割り込みを使うのと
どう違うの?(動けばいいわけだから、別に非難してるとかじゃないです) >>168
Arduinoの高速PWMはカウンタが0になるとHIGH、カウンタがOCR0nと一致でLOWが出るようになってるわけ。
その仕組みで>>166のように25〜230をOCR0nに設定するならだいたい10%〜90%のduty比の信号が出力される。
比較割り込みはOCR0nと一致時に割り込むわけだから、ループ中にPWMのduty比が変更されるとそこだけ割込み周期がおかしくなる。
たとえばさっき230までに設定されてて次に25が設定されたとすると、(高速PWMモードのOCR0nは二重緩衝されるのでBOTTOM(=カウンタ0)で更新される)
230になるとそこで割込みが発生、255の次で0に戻った時に25に更新され、次の割り込みは25で起きるからこの時だけ51タイマカウントしか間が空かない。
逆に、25だったのが230に更新されると、25(割込み)→255→0→230(割込み)になるから461タイマカウント経過しないと割込みが発生しないことになる。
1行目の通りPWMのポジティブエッジは必ずカウンタが0に戻った所にあるから、それをキャプチャすればかならず256タイマカウントで割込みが起きる。
それなら、溢れ割込みと同じタイミングと言えるし、かつPWMのduty比を変更したところで周期のブレを受けない。(PWMを止めたら割り込み発生しなくなるが)
なのでPWMを使ってるのに比較割り込みを使うと「動けばいい」にすら到達しない。ちゃんと動かない。
コレを見ろ。
https://i.imgur.com/toavH7e.png
スケッチ。
https://paste.ofcode.org/qkeJ969pTV9vDap8VbHGzF# 悪い、右のアノテーションの3段目(一番下)のラベルは OCR0B = 25 の間違い。1つ上からコピーして変え忘れた。 ロジアナでぐぐれ。オシロとはちと違う。
オシロがアナログ信号向けとしたらロジアナはデジタル信号向け。
(アナログ測れるチャンネルもあるけど) 知りたかったのは、なんというロジアナか、なのかな。そう聞けばいいのに。
https://www.saleae.com/downloads/ pin数の少ないATtinyで一つのpinに複数の機能が割当てられてる時
対象pinの使いたい機能はどのように選択するのでしょうか それもうAVRの質問では?
別にmega328Pだって1つのピンにいろんな機能があるぞ。それと同じ。 >>174
それいいな。
中華400円ロジアナで使えたわ。 >>178
Saleaeは海賊版で使うなと怒ってるからなぁ
中華クローンのVIDとPIDがSaleaeのやつ勝手に使ってんだよね…
アップデートでアクティベーション式にするというアナウンスも前にあったが…
sigrokからpulseView落としてそっちにしときな >>181
もちろん、もう前からずっとpulseViewを使ってますよ。 arduinoに指定した回数のパルスを発生させる関数て無かったっけ?
あれでも>>169の様な問題出るのかなとぐぐってみたら関数自体が全然見当たらなかった
何かのライブラリだったのかな そりゃすまん悪気はないんだ
pulseViewも使いやすいしな
ID盗用してるせいで挿すとSaleae Logicて認識されるけどw
激安シリーズでアナログ1chも追加でついてるやつもあったんけど今は出てないのかな >>183
パルスとはちょっと違うがshiftOutのこと?
あれってどのピンても使えるしソフトウェア実装では >>185
方向+ステップ数のステッピングモータードライバでステップ数をPWMで
済ませてる様なのを見た記憶があったんだけど、多分ソフト実装だったんだね ああ俺が言いたかったソフトウェア実装ってマイコンのタイマーとかSPI用シフトレジスタとかそういう機能を使ってるわけじゃないってこと
標準のI/Oだけで実現してるものをソフトウェアなんとかって言う
たとえばUnoのSerialはハードウェア実装でマイコンのUSART部がやってくれるから通信中はCPUはあるはそこそこほかのことやれる(代わりにピンは決まってる)
ライブラリSoftSerialは全部ソフトウェアでやってるのでどのピンにも出来るが全部CPUが頑張って通信してるのでほかの事があんまりやれない 400円でロジアナ買えるの?早速調べてこなくちゃ・・・・・ >>188
400円じゃ無理かな。
つい最近買ったのは送料込み459円だったけど。 >>189
マジレスする。
例えばこれはI2Cの通信を見て、送ってるコードをチェックしてみたところ。
https://i.imgur.com/svfhvSP.jpg
>>174のリンク先のソフトと中華ロジアナを使ってる。
459円のじゃなくて1000円くらいのだけどね。
ちゃんとデータが送られてるか、いろんなプロトコルを解析してくれるよ。 俺みたいなアマチュア初心者には普通に繋げばちゃんと動くじゃんって思うから分からんがプロだと波形をみたいことがあるんだね。 波形って言うとちょっと語弊があるけど…。
まあ、Arduinoやってる分にはあまり必要無いかなあ。
Bit-BangでI2Cを実装するとかなら、どうかいなと見てみないと効率悪い。 語弊があるのは俺にでもわかる
伝わればいい
bitbangが云々
やっぱりコアな人にしか必要にならないぽいね、デジアナ >>194
ほう、どういう語弊があるの?
分かるなら説明してみ。 波形っていうと電圧の生波形を連想するんだろ?
しきい値で0と1にデコード?してるからもはや波形とは言えない?的な。 >>192
実際そうだと思うよ、必要になったら買うのだ
例えばさ、慣れてきてどんどん処理を追加していくと
あれ?プログラムはちゃんと書いたしピンの繋ぎもあってるのに通信がうまくいってないぞ?なんで!ってなるときがいつか来るのよ
上で出てる割り込みのせいかもしれないし、何か追加した処理に使ったライブラリが悪さをしてるのかもしれないし
他の回路に引いた電流で電圧がドロップして回路がおかしくなってるかもしれないし・・・etc
だけどそれってスケッチだけでデバッグするにはめちゃくちゃ大変なのよ、そりゃ頑張れば出来なくはないけれど
どこで、どうして、通信が上手く行かないのか分かると原因究明や対策がしやすいでしょ?
そこでロジアナで実際にどういう信号が出てて、想定したものとどう違うのか見れたら嬉しいだろ?
「電池に豆電球を繋いだのに光らない、部品の公称電圧と接続はあってるのに」
これくらいなら「豆電球が切れてる・電池がない・リード線が断線してる」くらいだから総当たりで部品取り換えたら原因究明できるけど
テスターがあれば、まずどこが悪いのか調べられるじゃん?
それの派生みたいなもんよ
上の豆電球みたいに試していくのがめちゃ大変なら、ロジアナがあればまずどこがダメなのか調べたら楽になる
ちゃんと作ったハズなのに動かない、そうなったとき欲しくなるワケ
あと>>169が解説にオマケではっつけてあるやつも
これくらいなら言葉で書いてあればわかるけれど
実際に波形見た方が分かりやすいだろうと思って撮ってくれたんでしょ、たぶん 自分も厳密にやってないけど、部品点数が増えたり
クロックが上がったりでタイミングが難しくなったとき
ロジアナの出番がある認識 千円くらいで買えるようになると、Arduino ボード・IDEと一体になってて
ワンタッチで「D2,D3の波形を表示」みたいなことできるようにならんかな? Adafruit trinketかわいい(*´▽`*) >>201
すでに1000円で買えるわけだが
一体とかワンタッチとかになってなきゃいかんの?
ちょっと言ってることのニュアンスがつかめない。 信号見たいって思ったときに、ロジアナ探してきてUSBつないで
Arduinoの見たいピンとGNDつないで、ロジアナソフトでCH1はD2でCH2はD3とか
設定するのが面倒 >>204
それは、ロジアナ持ってる人は誰でもやってることだから、みんな知ってるんだ。
「ワンタッチで」の方のシステムはどんななのか教えてほしいのさ。 横からだけど足の長いピンソケットがついたシールドになってて
ArduinoとシールドでそれをサンドイッチするとArduinoの信号が全部出るみたいな?
でもUSB2本出るね 基板で中間に入るjigつくればいいじゃん
ロジアナへのアダプタ
ワンタッチで接続できる
でもロジアナのポート数が足りないか
N->8本に選択がメンドウだな Arduinoから始めた人は何でもシールドでなきゃあかんのかねえ。
ブレッドボード派なので、ロジアナからジャンパー線が生やしっぱなしになってて、
使うとき挿すだけなんだが…。
https://i.imgur.com/qbyMf3y.jpg DCモーターの制御とプログラムの作例が掲載されてる参考書を教えて下さい 質問です。
エスパーが少し高いのですが、
エスパーの互換機はありますか? 質問です。
arduino同士の赤外線通信をしようと思っているのですが、送信側の赤外線LEDを物理的に上下させないと送信できないのですが、これはLEDが悪いのでしょうか。
https://imgur.com/a/wHM2ni4 回路です。
プログラムはIRremoteのサンプルプログラムを使いました。市販のリモコンでうまくいったので受信側には問題ないと思います。
よろしくお願いいたします。 >>213
ebayで売ってる500円くらい
X-8266 ESP-WROOM-02で検索
よく探せば郵政マークがついてる
ファームは自分で書く >>214
>物理的に上下
意味不明。接触不良か? 前々関係無いけどArduinoの電解コンデンサカッコいいよね >>215
ご回答ありがとうございます。
eBayで最近よく購入してるんで、
見てみます! >>216-217
fritzingがうまく起動できなかったので手書きで失礼します
https://imgur.com/a/ZwTdk0o
新しいブレッドボードなので接触不良はないの思います。 赤外LED付けっぱでなんのデータを送るつもりなのか >>216-217
https://imgur.com/a/qCQ3i4I
>>221
送信側は動かさないで受信側が常に動いていていつ通信できるか分からないので、常に送信し続けています 意味がわからんが赤外線通信って赤外線を高速でオンオフしてデータストリームを送るもので
その繋ぎ方だと赤外線LEDがずっと付きっぱなしでただ光ってるだけでなにも送信してないぞ 送信赤外線は黒線の波形で受信側は赤線で検出される
詳しくはググれば解ると思う
>>ID:i9wCAcu4
受信素子の型番は?
その回路では赤外線LEDはただ点灯しっぱなしになってるだけでデータは送れない。
リモコン用の受信素子なら38kHzの搬送周期での点滅が必要だよ。
ちょっと調べてみるか、何か参考にしないと無理じゃない? >>223-224
なるほど理解しました もう少し勉強します はー 釣りかよ
どうやって意味のある信号をやり取りするのか考えてないんか >>227
通信するデータの内容はまったく意味のないもので、通信したという記録が受信側に残ればいい程度です。
具体的には、送信側が3つあって、それぞれ赤外線では通信できない距離離れていて、受信側は送信側の近くを通過したら通信して、通過したという記録が欲しいのです。 「通過した」っていう意味のある通信が必要なんだろ?
IRリモコンの解説とかよく読め >>ID:i9wCAcu4
赤外線通信というよりは赤外線検知だな。
で、受信素子の型番は?
なぜお前は聞かれたことにすぐ答えない、馬鹿なのか、釣りなのか? ただ光が当たったかどうかだけで済まそうというなら、外光遮断がとても面倒、というかできない
だからわざわざ変調掛ける >>230
赤外線リモコン受信モジュール SPS−442−1(38kHz) です >>231
屋外に出したら誤動作しまくりですね
リモコンを受信できたっていうのは単に赤外線を検知できたってだけなのかな >>232
そうか、やっとスタート・ラインだな。
で、ここまでの皆さんのアドバイスと、
自分で調べたりデータ・シートを読んだりした結果を総合して、
まだ何か質問があるの? firmataライブラリで困ってます。standardfirmatライブラリを呼び出してそのまま検証ボタンを押すと、自宅pcではそのままコンパイルできるのに別の環境のPCではなぜかコンパイルできません。i2c pinとかエラーメッセージが出るのですがどうしてだと思いますか? インストールしてあるバージョンと
環境変数をチェックした? >>235
質問するのにエラー・メッセージも書かない馬鹿が設定したPCだから。 ■ このスレッドは過去ログ倉庫に格納されています