X



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

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

■ このスレッドは過去ログ倉庫に格納されています
0001774ワット発電中さん
垢版 |
2019/04/09(火) 11:28:38.41ID:6HKe4gPt
http://www.arduino.cc/

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

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

過去スレ
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/
0029774ワット発電中さん
垢版 |
2019/04/24(水) 12:23:16.89ID:aXxx42nz
floatの丸め誤差を回避するには内部整数でやるしかないからな
0034774ワット発電中さん
垢版 |
2019/04/24(水) 23:36:52.12ID:56C2fJhN
6809で動いてるゲームのメモリ監視しててBCDの概念を知ったときは感心したなぁ
ハードで持ってる機能みたいね

>>25
文字列加工は面倒な感じだし商+小数点+剰余でいいのかなとか
もしかしてビットシフトってこういう場合に使えるのかな…いやでも
最後は10進として四捨五入したいわけだしとか混乱してきた

誤差や四捨五入の境界がおかしいとかをある程度許すならありなのかな
そもそも処理方法による重さやメモリ消費の違いについて何も理解してない
0035774ワット発電中さん
垢版 |
2019/04/25(木) 07:10:25.49ID:rurF833o
ビットシフトは固定小数型と整数型の変換に使われる
100倍して…というのを2の乗数倍してみたいな
AVRには浮動少数乗算命令は無いけど固定小数乗算命令は存在するから
2クロックで実行できるが精度は良くないので
本件では整数演算したほうがいいと思われ
0036774ワット発電中さん
垢版 |
2019/04/25(木) 11:47:06.00ID:5RF/No/1
質問させてください
ProMiniを使ってちょっとした装置を作ってて、あと1bitだけフラグ管理が必要になったけど、割込処理内の分岐で使うやつでどうしてもSBIC/SBIS命令が使いたい
(内蔵のtimer0を止めて余計な処理を全部削ってもかなりCPUがかつかつ、割込み含むクリティカルな処理は全部アセンブラで書いてる)
なので、メモリアドレスが0x1F以下の標準I/Oレジスタにフラグを置きたい・・・が、ちょうどそういうの専用に用意されてるGPIOR0レジスタは別な事の管理に使っちゃってる
そういうときに、交換ポート機能でデジタルI/O以外に切り変えているピンのPORTxレジスタの一部ビットをソフトウェアフラグ代わりに使っても良いもんですか?

例えば、ポートBの6,7ってXTAL1,2にしてるのでヒューズのCKSELで外部クリスタルが選択されてれば、PORTBレジスタのビット6,7は自由に使ってもいい?
外にも、ポートCのうちADCに使っているピン(DIDRnレジスタでデジタル入力緩衝部は殺している)のPORTCレジスタの該当ビットとかも使えたりするかな?
お行儀は悪いかもしれないけど…
0037774ワット発電中さん
垢版 |
2019/04/25(木) 15:18:52.98ID:KJHAmmwA
If PB7 is used as a clock pin, DDB7, PORTB7, and PINB7 will all read 0.

PB6も同様の記述があるので少なくともPB6, PB7でそういうことは無理じゃないかな
PORTCでADC入力に設定した場合についてはパッと見記述は見当たらないようだが
0038774ワット発電中さん
垢版 |
2019/04/25(木) 17:28:08.88ID:4VGM+yVy
もしかしたらIDが変わってしまったかもしれませんが>>35です

>>37
ありがとうございます、ほんとうだ!
18.3.1にそう記述されていますね、見落としていました、ちゃんと読めば分かる事を聞いてすみません

さらにデータシートとにらめっこしたところ、18.3の18-5と18-2をよく見ると
ADCを使ったところでデジタル出力およびプルアップ接続はそのまま有効ですねこれは
アナログ入力に使っているのでDDRレジスタは0ですがこの状態でPORTレジスタを1にすると内部プルアップが有効になります!
なので、アナログ入力で使っているピンのレジスタは使えませんでした

そして、18-2と18-5を良く見るとPVOEが1であればPORTレジスタが無視されるようなので
フラグとして使えるのは…タイマーのハードウェアPWM出力に使っているポートがベストになるみたいです
DCDCコンバータのスイッチング担っていてPWM出力を止める事がないポートがあるので、そちらのPORTレジスタのビットをフラグレジスタにできました!

お行儀が良い使い方とは言えない気がしますが、これで割込処理でレジスタを一切使わずに処理できそうです

ありがとうございました!もっとデータシートをがっつり読みます…
0040774ワット発電中さん
垢版 |
2019/04/25(木) 18:24:57.78ID:DTf0tSyF
Arduinoで気軽に使えて、コンデンサーで保持するタイプのRTCモジュールはありますか?
0042774ワット発電中さん
垢版 |
2019/04/25(木) 20:21:57.43ID:yKtl0m9c
こんばんは。
Arduino UNOにHC-06を接続し、変数にBluetooth経由で書き込んだ値を格納して、それをループで読み出して実行させたいと思っています。
この書き込まれた値は電源を切っても保持したいのですが、この場合EEPROMに書き込むことになりますよね?
EEPROMに書き込む際のサンプルコードなどわかれば教えてください。
ネットで調べてもEEPROMの使い方がなかなか出てこず困ってます。
0046774ワット発電中さん
垢版 |
2019/04/25(木) 20:32:44.89ID:LHpH22L+
親切なんて言われると照れる。
Super Capacitor は思いつかない初心者もいるだろう。
0047774ワット発電中さん
垢版 |
2019/04/25(木) 20:34:25.43ID:yKtl0m9c
>>44
あ、多分
Arduino EEPROM 値 保持
など検索絞りすぎてて出なかったのだと思います。
疲れてるのかな…

ありがとうございます
勉強します
0050774ワット発電中さん
垢版 |
2019/04/26(金) 22:59:31.36ID:Q3rtNQFQ
ArduinoでBluetooth(技適あり)を内蔵したボードってなにいいのありませんか?
0053774ワット発電中さん
垢版 |
2019/05/02(木) 14:48:01.18ID:QcycZKb3
クラウドファンディングで検索するとマイコン系のプロジェクトが見つかるよ
ロータリスイッチにATTiny13Aくっつけて扱いやすくしたユニットとか小規模なものもある
情報収集能力が低いと既存品であったり競合品に負けたりビジネスに失敗すると思う
がんばれ
0054774ワット発電中さん
垢版 |
2019/05/03(金) 00:25:36.95ID:3PQ1vieo
IDE、「ボードとライブラリにアップデートがあります」のポップアップが出るのはいいけど、
コードエディタからフォーカス外すなよ!
0056774ワット発電中さん
垢版 |
2019/05/03(金) 22:33:13.62ID:GZ0tqMg+
arduino初心者です。
今DS1307というRTCがどういったものかを知るために動かそうとしています。
https://www.elecrow.com/wiki/index.php?title=Tiny_RTC#Programming
ここのサイトにあるスケッチをコピーしコンパイルしようとしたところ
'RTC_DS1307' does not name a type
というエラーが出てきてしまいます。これはどうすれば解決できるでしょうか。教えて頂けると嬉しいです。
0057774ワット発電中さん
垢版 |
2019/05/03(金) 22:48:20.33ID:KpRc2Zhj
>>56
#include "RTClib.h"
ヘッダファイル"RTClib.h"が、正しくインクルードされてないっぽい
0058774ワット発電中さん
垢版 |
2019/05/03(金) 23:05:09.39ID:GZ0tqMg+
>>57
すみません。具体的にどうすればよいか教えて頂いてもよいですか。
0060774ワット発電中さん
垢版 |
2019/05/03(金) 23:17:36.51ID:GZ0tqMg+
>>59
入れました
0063774ワット発電中さん
垢版 |
2019/05/03(金) 23:34:34.97ID:GZ0tqMg+
>>61
表示されてないです
0064774ワット発電中さん
垢版 |
2019/05/03(金) 23:41:13.51ID:KpRc2Zhj
じゃ、入ってない。ライブラリの入れ方をググってくださいさようなら
0065774ワット発電中さん
垢版 |
2019/05/03(金) 23:41:40.62ID:GZ0tqMg+
すみません
他のRTCのスケッチをライブラリに入れたところ治りました。
お騒がせしました。
0067774ワット発電中さん
垢版 |
2019/05/03(金) 23:48:44.98ID:GZ0tqMg+
avrdude: Version 6.3-20171130
Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
Copyright (c) 2007-2014 Joerg Wunsch

System wide configuration file is "C:\Program Files (x86)\Arduino\hardware\tools\avr/etc/avrdude.conf"

Using Port : COM8
Using Programmer : arduino
Overriding Baud Rate : 115200
avrdude: ser_open(): can't set com-state for "\\.\COM8"

avrdude done. Thank you.

スケッチの書き込み中にエラーが発生しました


すみません。RTCスケッチを入れ終わりarduinoに書き込もうとしたところこのようなエラーが出てしまいます
どうすればよろしいでしょうか。教えて頂けると嬉しいです。著作権の問題でしょうか?
0068774ワット発電中さん
垢版 |
2019/05/03(金) 23:51:39.82ID:KpRc2Zhj
ツール→シリアルポートを見て、USBで繋げてるポートを選択してるかチェックして
0069774ワット発電中さん
垢版 |
2019/05/03(金) 23:54:30.83ID:GZ0tqMg+
>>68
ちゃんと選択してありました
0070774ワット発電中さん
垢版 |
2019/05/03(金) 23:58:24.81ID:KpRc2Zhj
@USBを抜き差しする
AArduino IDEを再起動する
BPCを再起動する
順番に試して下さい
0071774ワット発電中さん
垢版 |
2019/05/04(土) 00:00:31.23ID:MSLMF5lU
Cツール→ボードで使用してるArduinoの種類を正しく選択してるかチェックする
これも
0072774ワット発電中さん
垢版 |
2019/05/04(土) 00:03:29.91ID:rLquCjCS
>>70
抜き差ししたところ問題なくインポートできました。
本当にありがとうございます。
あまりにも適切な解決策を教えて頂き本当に驚きです。
何故直接見なくても原因が分かるのですか?やはり経験なのですか?
0075774ワット発電中さん
垢版 |
2019/05/04(土) 21:48:46.48ID:WXHwMrAX
予約していないのですが、よろしいでしょうか。
中華promini168の3V3を購入したのですが書き込めなくて困ってます。
以前に買ったやつは書き込めるので、ネットでいろいろ調べてみたところ、前回と今回ので乗ってるマイコンが少し違うかもしれないというところまでわかりました。
ATmegaの末尾がPだかPAだか、そういう情報をサイトで見たのですが、アドレスが行方不明になり見つけ出せません。
どなたか解決法をご存じの方いらっしゃいましたら、ご教示のほど宜しくお願い致します。
0078774ワット発電中さん
垢版 |
2019/05/04(土) 23:02:26.22ID:vAZSQ4O9
>>75
前回のとどう違うとわかっているのか書いて。
あと買った商品のリンク。

以前に買ったPro Miniはスケッチが書き込めたなら、今回のはブートローダが書き込んでないやつとか?
末尾のP、PVは電圧の違いだから関係ないと思う。
0079774ワット発電中さん
垢版 |
2019/05/04(土) 23:13:47.42ID:BR1GY5na
ブートローダが書き込まれてない物を買ったんじゃないかな?
「pro mini ブートローダー 書き込み」とかで調べたら沢山出てくる

Arduinoを2台使ったらブートローダを書き込めるけど、USBaspを買ったほうが楽かも
https://ja.aliexpress.com/wholesale?catId=0&;initiative_id=SB_20190504060345&SearchText=USBasp
USBasp
https://ht-deko.com/arduino/usbasp.html

ただ売られてるUSBaspのファームウェアが古いから、こっちの書き換えが必要
これもUSBaspが2台あれば楽。1個130円〜とかだから2個購入しても安い買い物
008175
垢版 |
2019/05/04(土) 23:28:29.50ID:WXHwMrAX
うろ覚えですが、対処方法にIDEのfuse?かなにかを書き換えればいい、との記述があった気がします。
0082774ワット発電中さん
垢版 |
2019/05/05(日) 00:39:03.07ID:gU5Xq6f/
うをー送料高けぇ
50個まとめ買いかよ

とゆうか動作してるArduinoがあるなら、
スケッチ例のArduinoISPを書き込んでブート書き込み機にすればいいのに
Vcc ----- Vcc(3.3V)
GND ----- GND
11.MOSI - 11.MOSI
12.MISO - 12.MISO
13.SCK -- 13.SCK
同じピンを繋いで
書き込み側の 10.SS とターゲット側の Reset を繋ぐ
6本のワイヤーがあればいける
作業後は別の用途で使えるしゼロ円だよ〜
0083774ワット発電中さん
垢版 |
2019/05/05(日) 06:32:19.47ID:OpLj+gjP
>>81
だからヒューズを書き換えるにしても、ブートローダーを書き込むにしても
Arduinoを2台か、USBaspが必要。>>77のシリアル変換器じゃ出来ない
0085774ワット発電中さん
垢版 |
2019/05/06(月) 00:04:44.81ID:vFduH9Lu
>>81
FUSEではなく、mega168無印と末尾にP/PAが付いてものではシグネチャが異なるので
通常サポートされていないmega168P/PAを使用する場合はボード情報(boards.txt)の
修正or追加が必要です。

適切な説明サイト探したがしなぷすさんはOptibootなのでProminiの古いbootloader
から移行するのであればいいがもっとほかにいいサイトを見つけてあげてください。
0087774ワット発電中さん
垢版 |
2019/05/06(月) 02:04:36.90ID:CLCGP58b
boards.txtの変更だけで済むならどっかのGithubにあがってそう
008875
垢版 |
2019/05/06(月) 16:58:08.19ID:JDbQF7Bc
皆様、いろいろな情報ありがとうございました。
頂いたHINTのおかげで無事解決しました。
書き込めなかった原因はシグネチャー違いでした。
AVR168は4バージョンあり、以前購入したのが
168Aでシグネチャーが1e9406、今回のが168PAが1e940bでした。
avrdude.confにプロフィールを追加することで書き込みができました。
いくつか内部クロックで動かしてみたいのがあるので、教えていただいた
ブートローダーの書き込みもやってみようと思っています。
ありがとうございました。
0093774ワット発電中さん
垢版 |
2019/05/06(月) 22:04:10.45ID:vFduH9Lu
>>88
mega168P定義がないAVRdudeってどんだけ古いIDEなの?
1.6.0にはある、1.0.5-R2にも...
あと内部クロックでBootloader使うのはむりかも、クリスタル要です。
0094774ワット発電中さん
垢版 |
2019/05/06(月) 22:36:30.75ID:zkBdIqzB
>>88
うちのにはどっちも書いてあった。
自分じゃ何もしてない、1.8.8。

で、エラーメッセージの件は?
0095774ワット発電中さん
垢版 |
2019/05/07(火) 02:22:18.33ID:iaCzhDjj
>>93
promini mega328p 5V/16MHz版では以下の方法で3V/8Mになったよ
> ファイル->環境設定->追加のボードマネージャーのURL に以下を追加
> https://mcudude.github.io/MiniCore/package_MCUdude_MiniCore_index.json
> ツール->ボード->ボードマネージャーでMiniCoreをインストール
> 内部8MHz.1MHzが選択可能になる

※レギュレータは5VなのでVccに3V注入すること
※内部クロックは正確でないので、OSCCALで固体毎に調整しないと
 高速シリアルで文字化けしたりするかも知れない(未検証
0097774ワット発電中さん
垢版 |
2019/05/08(水) 20:56:13.87ID:5PWxkrFA
>>96
ググれば直ぐ出てくるよ。
「マイコンチップの形状が違うだけなので、開発環境(Arduino IDE)からはArduino Uno R3とまったく同じにご使用いただけます。
メインのマイコンチップATmega328がDIPではなくSMDとなっています。いざという時にメインチップの交換が簡単にはできないモデルです。
Arduinoとシールドの間に空間が生まれるぐらいしかメリットが無いので、単にUnoを使いたいという方は通常モデルをオススメします。ということで長期的に在庫を持って販売すること考えておりません。」
https://www.switch-science.com/catalog/1073/
0098774ワット発電中さん
垢版 |
2019/05/08(水) 22:05:42.99ID:j9MU9yJX
安くならんのか? 接触不良減らんのか? メリットちゃうんか?
石だけ変えるとか要らんと思わんか? ボードごととっかえやろ?
0099774ワット発電中さん
垢版 |
2019/05/08(水) 23:19:02.78ID:EoanhDP3
中華互換機だとSMD版だけA6-7が増えてるのがあるよ。
たしかSMD版はDIP版よりピンが増えてるはず。
もちろん純正品はSMDでもDIP版と変わらない。
0100774ワット発電中さん
垢版 |
2019/05/08(水) 23:36:00.79ID:5PWxkrFA
>>98
なに発狂してるんだよ?
オリジナルの会社が、UNO R3より少し空間ができるくらいしかメリットが無く長期販売のつもりは無いっ言ってるじゃん。
それだけのこと。
0101774ワット発電中さん
垢版 |
2019/05/08(水) 23:47:29.70ID:BWi+1B8v
>>99
prominiみたいに基板の変なところに引っ張ってきてランドあるん?
(ProMiniみたいに)
それともコネクタに並んでるん?
0106774ワット発電中さん
垢版 |
2019/05/09(木) 02:34:42.01ID:kelooXou
prominiのA4,A5はI2Cでよく使うのに変な場所にあるなーと思ってたら
A2,A3と接続してる人がいて目からうろこだったわ

mega328P-AUなら基板に余裕あるから端っこにA4-A7並んでるのもあるね
0107774ワット発電中さん
垢版 |
2019/05/09(木) 09:21:27.27ID:ex6+EUHa
>>106
>A2,A3と接続してる人がいて目からうろこだったわ

え?A2A3でI2Cで出来るの?どゆこと?
0110774ワット発電中さん
垢版 |
2019/05/10(金) 07:39:32.61ID:mmJfTZiF
質問失礼します。
Arduino UNOでBluetoothモジュールを接続し、ペアリング済みデバイスが近づいてきて接続出来たらLEDをON、ペアリング済みデバイスが離れていって接続解除されたらLEDOFF、のようなものを作りたいと思います。
しかし調べてみるとシリアル通信周りのコマンドしかなくて、出来ないのかなぁなんて思っています。
使用するモジュールはHC-06か05です。
お知恵拝借させてください。
よろしくお願いします
0111774ワット発電中さん
垢版 |
2019/05/10(金) 08:54:55.98ID:1pFJU7j4
http://www.electronicaestudio.com/docs/istd016A.pdf

10〜11ページにGet the module working stateってある。ATモードで使えそう。
持ってないからわからないけどw

コマンド: AT+ STATE?
レスポンス: + STATE:<Param>
パラメータ:
“INITIALIZED”
“READY”
“PAIRABLE”
“PAIRED”
“INQUIRING”
“CONNECTING”
“CONNECTED”
“DISCONNECTED”
“NUKNOW”
0112774ワット発電中さん
垢版 |
2019/05/10(金) 14:33:20.51ID:ljXqhwgZ
シリアル通信のモジュールつかまえて
>シリアル通信周りのコマンドしかなくて
って言われましても…。
0113774ワット発電中さん
垢版 |
2019/05/10(金) 21:55:14.95ID:aZI1TeeY
一部のハードディスクドライブはインターフェイス以外にアクセスLEDのランドとかあったし
このモジュールもLinkやActiveのLEDか空きランドあるかもと思ってたんじゃね
0116774ワット発電中さん
垢版 |
2019/05/11(土) 23:08:20.52ID:lffdkfKb
>>115
ありがとうございます。
内部発信器の温度特性が悪いチップみたいですね。
9600bpsで文字化けするとは…
リモコンも寒いと反応が鈍いとか起きそう
温度見てリニアにOSCCAL変化させる対策も考えられるけど
素直に8M版使えということかw
ちょっとショクです
0117774ワット発電中さん
垢版 |
2019/05/12(日) 00:33:32.16ID:HgehqcQw
Aruino UNOでリモコンを作ったのですが40mAでは流石信号が弱すぎてやや遠くにあるシーリングライトまで届きません
そこで、もっと電流を流したいのですがどのような方法が簡単でしょうか?

また、ちょっとネットを調べていて記事が見つかったのですが、MOSFETを使えば40mAの制限を超えられるのでしょうか?
MOSFETにはコンデンサーのような役割がありますか?
http://asukiaaa.blogspot.com/2018/05/arduino.html
0120774ワット発電中さん
垢版 |
2019/05/12(日) 09:11:04.73ID:5fHtnSZF
>>117
そのリンク先の記事のMOSFET回路だけど、LEDのVfは定電圧特性だから3つ並列にしても電流制限抵抗が同じ100Ωだと結局トータルでは同じ40mA位しか流れない。
また個々のLEDでVfにもバラツキがあるから電流にも偏りが出そう。
だからLED個々に抵抗を1本ずつ入れて、抵抗値も半分とか3分の1とかにして更にトータル光量を稼ぐと良いと思う。
あとAVRに詳しくないけど、気分的にはMOSFETのGS間に数10KΩの抵抗入れてマイコンのリセット直後に端子が入力モードになってる時にGND電位にしておきたいな。
0121774ワット発電中さん
垢版 |
2019/05/12(日) 13:10:37.98ID:J5hpiWZj
Vf1.32vの赤外線LEDを3つ直列で使ってるわ
https:/www.aliexpress.com/item/-/32951365819.html
トランジスタでも余裕
0122774ワット発電中さん
垢版 |
2019/05/12(日) 13:23:55.10ID:5fHtnSZF
>>121
秋月とか見ても赤外LEDってVfが低いのね?
だったら抵抗が1本で済むから直列がいいな。
0123774ワット発電中さん
垢版 |
2019/05/12(日) 13:40:22.80ID:YkVRaD9U
二個直列で抵抗入れなくても余裕
パルスデューティは1/3だけど
0124774ワット発電中さん
垢版 |
2019/05/12(日) 17:24:36.21ID:5fHtnSZF
>>123
えっ、抵抗無しって怖過ぎる。
デューティ調整してるとは言え下手するとLED死んじゃうんじゃない?
0125774ワット発電中さん
垢版 |
2019/05/12(日) 20:07:02.38ID:dJTsaMvI
赤外線LEDでリモコン作るときには基本オーバドライブでよい
■ このスレッドは過去ログ倉庫に格納されています