Arduino初心者熱烈大歓迎質問スレ part30 at DENKI
[2ch|▼Menu]
[前50を表示]
700:774ワット発電中さん
21/05/16 18:56:09.73 E4Q4nyvN.net
>>658
自分がプログラムしたマイコン同士なら
I2Cじゃなくてもいろいろと方法がある
好きにプロトコル作って好きに通信すればいい
オープンドレインで1本だけでUART通信もどきとか
2本使って良くて遅くていいならI2Cが簡単かな
>>666
YES

701:774ワット発電中さん
21/05/16 18:59:50.52 E4Q4nyvN.net
I2Cの切り替えにアナログマルチプレクサとか
センスなさすぎる

702:774ワット発電中さん
21/05/16 21:03:09.41 ZzOJR+dh.net
まだプログラムの美しさや回路の完成度を求める段階ではないので
簡単で理屈が分かりやすくて動いてくれたら良いのです
分かりやすい説明本当にありがとうございます

703:774ワット発電中さん
21/05/16 21:32:30.44 KiT4KzSF.net
I2Cをアナログスイッチで増設する応用ノート
URLリンク(pdfserv.maximintegrated.com)

704:774ワット発電中さん
21/05/17 01:30:33.47 ZbG+JYWh.net
アナログスイッチを使い同じアドレスのI2Cデバイスを複数使用する例を置いときますね!
URLリンク(i.imgur.com)

705:774ワット発電中さん
21/05/17 02:15:28.55 c7GVZKtR.net
ArduinodeIDE + ESP8266 のアップデートがあったのですが、
不具合があったので、とりあえず対処方法だけ。。。(Win環境)
半年前にあった macOS と同じ症状で、pyserialのバグっぽい。
以下から 3.4 をダウンロードして、Arduino15配下の同じ場所に上書きでOK。
URLリンク(github.com)

706:774ワット発電中さん
21/05/17 07:32:08.43 rjARuUsX.net
>>677
kwsk

707:774ワット発電中さん
21/05/17 12:08:03.41 ZbG+JYWh.net
>>679
配線方法は676の方が貼ったURLの方法と一緒ですね
・TC4051(8ch)アナログマルチプレクサを使用
・SCKを共有してSDAのみ切り替え
・SDAをマルチプレクサとI2Cデバイスの間でPull-Up
・ArduinoのdigitalWriteを2本使い4回路切り替え(3本使えば8回路切り替え


708:出来る) ・マルチプレクサを重ねれば大量に接続できる (例えば4051を9個使えばdigitalWrite6本で64回路切り替え出来る) テストコード(スケッチ)と回路図も置いときますね (※急ぎで作ったので何処かに間違いがあったらすまん) https://pastebin.com/8aZPukMs (スケッチ) https://i.imgur.com/7qgloE9.png (回路図)



709:774ワット発電中さん
21/05/17 12:46:38.40 mQMwzMDp.net
>>674
双方向トランシーバとかで切り替えるのは結構面倒くさいぜ

710:774ワット発電中さん
21/05/17 14:59:33.68 Eh9WA7YH.net
すごいとしかいいようがない

711:774ワット発電中さん
21/05/17 18:47:51.05 Eh9WA7YH.net
とにかく作ってみます
ありがとうございます

712:774ワット発電中さん
21/05/17 19:25:09.60 rjARuUsX.net
>>680
丁寧にありがとう!
真似してみます

713:774ワット発電中さん
21/05/18 04:34:04.62 azIiOfbT.net
今頃気づいたけど、PicoをArduinoとして使う記事がいつの間にかさらっと公開されてた
Raspberry Pi PicoをArduinoにしてモーションを検知してみる
URLリンク(mag.switch-science.com)

714:774ワット発電中さん
21/05/18 04:52:55.68 azIiOfbT.net
Raspberry Pi 4上のArduino IDEでも
ボードマネージャからArduino Mbed OS RP2040 Boardsを追加できることを確認

715:774ワット発電中さん
21/05/18 06:31:18.48 azIiOfbT.net
Raspberry Pi 4で開発してる人で
Raspberry Pi picoに書き込みができない人はここ見るといいかも
URLリンク(www.raspberrypi.org)
boot selボタンを押しながらRaspberry Pi 4のUSBにPicoを差してから
cd ~/.arduino15/packages/arduino/hardware/mbed_rp2040/2.1.0
sudo ./post_install.sh
と実行してから「マイコンボードに書き込む」を実行するとうまく書き込めた

716:774ワット発電中さん
21/05/19 22:58:26.10 EgNT/DI3.net
昨日初めてArduinoを触ったんだけど、素朴な疑問が。
PCからの書込み用にUSBシリアルポートを使ってるみたいだけど、PCとの通信にも同じシリアルポートを使っている。
ボーレートを変えて設定して通信した後リセットとかしなくても書込みができるのは、どうやってんのかな?

717:774ワット発電中さん
21/05/19 23:09:10.09 NOVq7Urq.net
>>688
USBシリアル変換チップの信号(DTR)を使ってArduinoをリセットしてる
ArduinoをリセットするとROMのブート部分に書き込まれてる命令で、シリアル通信の設定が初期化されて書き込みが出来る

718:774ワット発電中さん
21/05/19 23:10:34.64 RkXNTMYd.net
>>688
あなたが書き込んだのとは別のブートローダというプログラムが動いてるから

719:774ワット発電中さん
21/05/20 03:34:01.62 mCQ+vM57.net
Arduino で I2C OLED 1.3インチにメニューを表示して
タクトスイッチでカーソルを上下して選択し、その選択にあった
次の画面に遷移するような事をやりたいのですが、
コードがぐちゃぐちゃになってしまいました。
画面を構成したり、ボタンとカーソルを連動するのに便利な
ライブラリがあればご教授ください!!
ちなみにタクトスイッチは3つで、上/下/決定ボタンのように
使用したいです。

720:774ワット発電中さん
21/05/20 07:08:27.05 p8tgOT6p.net
丸投げか・・・
いったんソース捨てて新規に整理して作り直せよ。

721:774ワット発電中さん
21/05/20 07:58:23.82 EaNGghCO.net
ライブラリで解決する系の問題じゃないと思うの

722:774ワット発電中さん
21/05/20 08:43:47.72 uHCOcU/n.net
U8g2 でええんやないの?
URLリンク(github.com)
そのままだと表示だけなので、残りはスクラッチになるけど、
探せば誰かがラッピングしてくれてるかも?

723:774ワット発電中さん
21/05/20 08:46:29.23 Bft77aJe.net
APIかな?

724:774ワット発電中さん
21/05/20 11:46:58.51 gWYSRppZ.net
>>691
ふつうにif else文でやってるわ…
選択して決定Bが押されたらLCDクリアして
次の画面を表示してる
あとは30秒操作無しならキャンセル…って表示を出して
ループに回帰とか

725:774ワット発電中さん
21/05/20 13:18:07.72 EUUXLNyN.net
>>691
構造体のリスト構造で階層を記述して、リストを手繰るロジックにすれば、それ程難しくならないはず。
階層構造をプログラムロジックにハードコーディングすると収拾付かなくなりますよ。

726:774ワット発電中さん
21/05/20 13:19:59.60 mCQ+vM57.net
youtubeの情報を参考にメニュー作ってみます。
親画面から子画面に移ったり孫画面に移ると画面数が多くなるので、間違わないような記述を考えながらやるしかないですよね。
if else文できれいに書けるかどうかやってみます。

727:774ワット発電中さん
21/05/20 14:55:26.72 WJfiomo9.net
いいね
ライブラリで出来ました〜じゃ経験値は増えないからね

728:774ワット発電中さん
21/05/20 21:29:03.06 wopwPffe.net
arduinoでクラス使えたら楽に出来るのにね
と思ってふとググったらクラスあったのね
勝手にないもんかと思ってスパゲティいくつか作ってたわ

729:774ワット発電中さん
21/05/20 21:41:37.79 8qwmd3gU.net
cppで普通に使えるからな

730:774ワット発電中さん
21/05/20 21:41:41.18 8KOkyIwY.net
ていうか、C++だしね。

731:774ワット発電中さん
21/05/21 10:04:56.12 Z7Q4u7IT.net
逆にクラスになってないライブラリなんてあるのかね?

732:774ワット発電中さん
21/05/21 10:33:28.72 4XU9/KWR.net
クラスってどんなのかざっくり教えて

733:774ワット発電中さん
21/05/21 11:12:52.10 B+1Yqy+n.net
オブジェクトの雛形

734:774ワット発電中さん
21/05/21 11:17:25.60 Mwvx9vf4.net
構造体に関数のポインタを入れたもの

735:774ワット発電中さん
21/05/21 11:39:57.33 4XU9/KWR.net
ありがとうございます
知ってた方が良さそうだから勉強してみます

736:774ワット発電中さん
21/05/21 11:49:39.36 Z7Q4u7IT.net
>>704
手続き型言語しかやってないのだと思うけど、
ざっくり説明できるものではない。
継承、抽象データタイプ、カプセル化とか言っても分からんでしょ?
今更、オブジェクト指向から勉強しろとは言わないけど、
検索するなり、本気で知りたいなら本でも買いなよ。

737:774ワット発電中さん
21/05/21 12:05:20.91 4XU9/KWR.net
>>708
そうですね
まるきりここで教えていただくつもりもありませんので
失礼しました

738:774ワット発電中さん
21/05/21 12:24:01.02 Ph8qtTi1.net
とりあえず関数にまとめるだけでも良いんでないの。もうやってるかもだが。

739:774ワット発電中さん
21/05/21 15:46:21.61 AB3+AWgp.net
ATMega168のピンだけで9桁の7セグをダイナミック駆動させたけど、なんか暗い
200Mhzぐらいで点灯させても暗い
3.3Vで屋外運用したいけど、ちょっと暗いんでいい方法あります?
Max7219とかLEDをドライバICもあるけど、8桁用なんで。9桁欲しい
参考にしたサイト。やっぱトランジスタ使わないとダメですかね?
URLリンク(garretlab.web.fc2.com)

740:774ワット発電中さん
21/05/21 15:46:51.93 AB3+AWgp.net
>200Mhzぐらいで点灯させても暗い
200Hzの間違いですw

741:774ワット発電中さん
21/05/21 15:57:55.67 Ph8qtTi1.net
周波数上げ下げしてもdutyが同じなら変わらん。duty上げるか電流上げるか。

742:774ワット発電中さん
21/05/21 16:05:06.31 vNEi28M0.net
そこにある通り240Ωの抵抗を使ったなら7mAしか流れてないから最大値の20mAに程遠く、暗いのは当たり前
OSL40562-LBという7セグメントLEDはとても明るいらしいけど君が使ったのはそうではないんだろう
20mAまで流してそれでも暗いかどうか判断すべきじゃないのかな

743:774ワット発電中さん
21/05/21 16:21:03.24 AB3+AWgp.net
>>714
抵抗は下げましたね。でもそんなに変わらず。
duty上げるのは更新頻度を上げるのとまた違うんですかね

744:774ワット発電中さん
21/05/21 16:49:07.42 YAciEv5a.net
7セグの前にスモーク板を置いたら見えやすくなる。

745:774ワット発電中さん
21/05/21 16:52:07.61 AB3+AWgp.net
あと、内部クロックの8Mhzで動かしてるんですが、
digitalWrite自体遅いでしょ?ポート直接叩いて高速化したほうが良いのかな
参考サイトのスケッチ通りdigitalWriteを使っても、200Hzぐらい余裕で出ます?

746:774ワット発電中さん
21/05/21 16:52:41.08 AB3+AWgp.net
>>716
あ、そうする予定です。屋外なので防水も兼ねて

747:774ワット発電中さん
21/05/21 17:47:03.14 grGGtkLg.net
まずデューティー比、というかPWMについて勉強しよう!
そして希望の明るさがでる電流値がいくらなのか実測しよう!

748:774ワット発電中さん
21/05/21 18:53:52.76 v2Sm9nTt.net
ダイナミック点灯中にPWMで駆動してるのか?

749:774ワット発電中さん
21/05/21 18:53:58.54 ryNcnbR9.net
抵抗下げたって行ってるけど、具体的な数字が出てないから、電流流しすぎてLED焼いたんじゃね
一度焼け焦げたLEDは適切な電流流しても暗くなるよ

750:774ワット発電中さん
21/05/21 19:01:30.77 ttBqDOql.net
9桁なら理想的な条件でも平均的な明るさは一桁だけ点灯し続けてる場合の1/9になると思え
桁数を増やせば増やすほど同じLEDなら暗くなる
更新頻度を上げても明るさのチラつきが減るだけで平均的な明るさは基本的に変わらない
いっそのこと更新頻度を思いっきり下げて一桁ずつ順に点灯するように見えるようにすると点灯桁は明るく見えるようになる

751:774ワット発電中さん
21/05/21 19:30:02.53 hTxFTy2N.net
>>711
えーーっと、参考にしたサイトにも書いてあるけど、ここで使用している7セグと
同じ様な接続方法で動作させる機器の場合、1セグ分のLEDが並列接続されて
いるので、240Ωの抵抗で接続したとしてもカソードに接続する入出力ピン(ピン
接続のところで言えば12番に接続する入出力ピン)に50mA位流れてしまい、
Arduino UNOの1ピン40mAまでの制限に引っかかり、9桁だと全点灯した場合
450mAとATmega328Pの制限(168も同じかはデータシートを見てね)最大電流
200mAを超えてしまうので、1セグ分でテストを行うだけならばまだしも、
Arduinoだけで9桁分の電源を供給することは出来ません
点滅させてうまい具合に制限を超えないようにスケッチを書けば出来なくも
無いかもしれませんが、制御が煩雑だと思うのでドライバICを複数使うとか
した方が良いと思いますよ
点滅と明るさについては、どのように制御しているのか分からないので単純に
どうなるとは言えないですが、点滅周期を早くすると暗くなることはあっても
明るくなることは無いはずです
点滅させるということは消えている間は光らないということなので、光る時間が
短いほど感覚的には光り方が暗く感じるということになります。このとき、点灯
させる全てのLEDを順番に点灯->50ms待って全部消灯->50ms待って全部
点灯と繰り返すのと、待ち時間を25msに変えた場合では点滅周期は25msの
方が早くなりますが、1秒間の点灯時間は同じ500msになる


752:スめ点滅周期を 単純に変えても明るさは変わらないってなります(厳密には間違っているけど) 点滅で輝度を擬似的に変化させようとする場合には、一切消灯しない場合が 輝度100%、単位時間当たりの消灯時間を増やしていけば、消灯時間の割合に 比例して輝度が低くなり、この割合をDutyって呼びます 点滅の周期が長いと普通にチカチカ点滅して見えてしまいますが、点滅を早く すると人間の目で見た場合連続して点灯しているように見えるので、点滅で 輝度を制御する場合には点滅周期を短くした方が良いということになりますが、 Duty制御を行わないと単位時間での点灯時間が変わらないので意味が無いと いうことになるです



753:774ワット発電中さん
21/05/21 19:39:29.63 ToCbJ5cH.net
>>723
ダイナミック点灯だから最大でも1セグ分しか同時には流れんぞ。

754:774ワット発電中さん
21/05/21 19:53:56.18 AB3+AWgp.net
>>721
流石に焼いたら分かりますよw
>>722
やっぱ9桁がネックですかねー。試しに1桁ずつやってみます。
今まで通りドライバIC使いますわ。皆さんありがとうございました。

755:774ワット発電中さん
21/05/21 19:55:43.96 AB3+AWgp.net
>>723
なんか長文書いていただいてありがとうございます。
所々参考にします。

756:774ワット発電中さん
21/05/21 20:29:42.60 F6/+ILox.net
失礼なヤツw

757:774ワット発電中さん
21/05/21 20:41:24.24 YAciEv5a.net
>>725
バックライトつきのキャラクター液晶とかOLEDはだめなんかな。

758:774ワット発電中さん
21/05/21 21:02:54.52 AB3+AWgp.net
>>728
桁数が増えると結局そっちのほうが楽ですね。それも考えたんですけど、
数メートル離れた所からでもよく見えるように視認性を考えたら7セグかなぁと思って。
7セグ好きっていうのもあるけどw
大型液晶だとコストも増えるので予算1,000円以下/個に収まらないと思うので

759:774ワット発電中さん
21/05/21 21:07:58.19 k5ZGJllH.net
8桁までならモジュールになったやつとか結構種類あるからArduinoにポン付でいけるけど
9桁だとほとんどないなTM1638とかTM1640かな

760:774ワット発電中さん
21/05/21 21:35:00.79 XMvNxJPj.net
8桁のmax7219モジュールと自力1桁で解決

761:774ワット発電中さん
21/05/21 21:35:39.91 V0i2mGSl.net
HOLTEKのHT16K33は16桁まで表示できて良いですよ
価格もそんなに高くないし、I2Cで楽だし複数個繋げられるし
自分の中では最強の7セグドライバーかなと思ってますね

762:774ワット発電中さん
21/05/21 21:36:54.19 V0i2mGSl.net
>>731
自力1桁いいですねw そうしようかな

763:774ワット発電中さん
21/05/22 00:06:44.16 iRfe0wg8.net
すみません。
電子工作初心者なのですが、ArduinoとMAX30102(VIN,GND,SCL,SDAの4ピン)を使って、血中酸素濃度計測器を作っています。
コードも配線もなんとかなり、プレップボード上では動作するに至りました。
そこで、常時体につけておくセンサー部と、廊下の床においておくArduino本体部を分け、取り回しをようと、その間を1.5mほどの配線で渡したのですが、そうすると動作しなくなります(センサーLEDが点灯しない)。
1.5mの配線に問題があるかと思い、Lチカのみで試すと光ります。
どのような原因が考えられるでしょうか?やはり配線が長すぎでしょうか?
何卒よろしくお願いいたします。

764:774ワット発電中さん
21/05/22 00:54:05.47 SBrrf4Tw.net
>>734
恐らくPull-up抵抗値が高い(内蔵Pull-Upだと)のが原因だと思いますが
(距離が伸びた事で静電容量が増えI2Cの信号の立ち上がりが遅くなりうまく通信出来ていない)
動作電圧の関係でMAX30102単体だとArduino(UNOだ


765:としたら)とは直接接続できません! 使用してるのはMAX30102を使ったモジュールだと思います モジュールには周辺回路が有ると思うのですが、その回路により対処が異なるのでモジュールの詳細をお願いします あと別の解決方法としては通信速度(I2Cのクロック)を下げれば動作はすると思う



766:774ワット発電中さん
21/05/22 17:21:42.97 iRfe0wg8.net
>>735
ご教示いただきありがとうございます!
理屈を理解できていないながらも、I2Cを400kHzから100kHzに落としてみましたが、動きませんでした。
センサーはMakerfireのMAX30102のモジュールを(amazonで購入)
コードはこちらを
www.hackster.io/gatoninja236/open-source-pulse-oximeter-for-covid-19-4764c5
配線ケーブルはこちらを使用しております。
www.yodobashi.com/product/100000001001083291/
もしお気づきの点があれば何卒ご教示ください。プルアップ抵抗という概念は初めて知ったため、もう少し勉強させていただきます。

767:774ワット発電中さん
21/05/22 17:57:15.78 GFAS3BpM.net
>>736
考えられる対策は以下のもの
 プルアップ抵抗の値を小さくする
 シールドケーブルを使う
 クロック数を落とす

768:774ワット発電中さん
21/05/22 18:27:46.71 SBrrf4Tw.net
>>736
おそらく基板側で3.3V用にPull-upされてるのが原因だと思います
下の写真の半田を除去して5VでPull-upしたら通信出来ると思います
URLリンク(i.imgur.com)
近い回路図が有ったので回路図も参考にしてください (上の半田除去は赤印の所を切りな話す)
※回路図では1.8Vと3.3Vの切り替えラインは記載が無く1.8VでPull-upされてる
URLリンク(i.imgur.com)
半田除去後SDA,SCLを1〜4.7kΩ程度の抵抗でull-upしたら状況が改善すると思います
画像の紫点線の抵抗がPull-Up抵抗です
URLリンク(i.imgur.com)
735で直接通信出来ないと書いたのは間違いでしたごめん
データシートよく読んだらI2Cバス(や他のIO)の電圧は6VまでOKだったので忘れてください

769:774ワット発電中さん
21/05/22 23:22:17.33 XL0+iGey.net
UNOを3年ほど使い倒してからEsp32デビューしたんだけど
このADCって使えないレベルなの…?

770:774ワット発電中さん
21/05/23 03:38:44.27 Wa5Q8cNL.net
>>739
なんでそう思うの?

771:774ワット発電中さん
21/05/23 04:46:28.86 x7VHwk5v.net
>>740
至る所で直線性が悪いだとか精度が良くないとか
ADCのキャリブレーションがあるとか見るから…
なにやら時間取られそうだなぁって思って…

772:774ワット発電中さん
21/05/23 07:54:41.58 Z1+xpjsf.net
用途による

773:774ワット発電中さん
21/05/23 09:31:19.81 W7eTkWzR.net
>>741
確かに、話にならんレベルのADC
スレリンク(denki板:145番)
まぁ、見掛けだけ高機能で、実際は塵屑製品って、中華企業の御家芸だけど。。。

774:774ワット発電中さん
21/05/23 11:45:54.48 alRpyzP1.net
nanoやUnoの様な形でなくATMega328をそのまま使う場合、
9 ,10ピンに水晶をつなぎそれぞれ22pFを介してGNDにつなぐことが一般的に紹介されています。
この22pFの目的はノイズ除去であって発振そのものには直接的には関係していないという理解でよろしいでしょうか?
 もちろん極端に大容量を繋ぐと発振しないでしょうが、Openに対しコンデンサを入れる意味という観点で。
 試しに有り無しをオシロで観察したところ波形が


775:やや崩れ気味、9/10ピンでDCオフセットが出る程度で波形の振幅は両ピンOpenのほうが大きいくらいでした。



776:774ワット発電中さん
21/05/23 12:05:06.55 8PLyqPDx.net
>>744
正しい発振に必要なのでついている、水晶発信器の仕組みを調べろ
それとクリスタル毎に負荷容量が決められていて基板の寄生容量も考えた上で正しい容量にしないとカタログで示された周波数になっていない

777:774ワット発電中さん
21/05/23 12:05:22.23 feFBGZYG.net
>>744
水晶に対して適切な負荷容量が決まってます
コンデンサが無くても発信してるようですが周波数は高くなってると思います
またオシロスコープのパッシブプローブ(1:10)を当てるとプローブにより10〜15pF程度負荷が増えますので状況(周波数)が変わります
URLリンク(www.tamadevice.co.jp)
URLリンク(www.macnica.co.jp)
また、正確なクロックが必要なければ内蔵発信回路を使えば水晶すら要らないと思います

778:774ワット発電中さん
21/05/23 12:06:14.32 8PLyqPDx.net
変換で発振が発信になった
調べるときは 「水晶発振回路 負荷容量」 とかで検索してね

779:774ワット発電中さん
21/05/23 12:11:31.28 feFBGZYG.net
>>747
あっ俺もだ・・・(;´・ω・)

780:774ワット発電中さん
21/05/23 12:32:19.90 feFBGZYG.net
>>739
UNOに比べたら癖が強いのですが、仕様を理解してれば使えます
ESP32で正しく計測を行うためにはUNOより回路やスケッチに工夫が必要になると思います
・UNOのようにGND−VDD間の相対値での測定は出来ない(絶対値での測定になる)
・UNOに比べて内蔵リファレンス電圧のバラツキが多い(リファレンス電圧の測定値は工場でROMに書き込まれてる)
・電圧の測定範囲が限定されてる(100~950 , 100~1250 , 150~1750 , 150~2450mV)
 (※経験上この範囲を超えていても値を取得できるが歪む)
・ADC高速なのでノイズの影響を受けやすい&ノイズ源が多い(無線や高速なCPU)のでノイズを意識する必要がある
・ADCの読み取り値を正確にするためにユーザー側で2点校正することが推奨されてる(eFuseに書き込む)
以下のURLの内容が理解できれば問題なく使えると思います
URLリンク(docs.espressif.com)
つまり、仕様書の通りに使えば直進性も精度も言われてるほど悪くは無いのですが・・・・

781:774ワット発電中さん
21/05/23 13:29:14.93 XZ1jrUQ0.net
発振といえば未だにLC発振のリクツを理解していません
どうやら僕がやっているのは電子工作ではなくただのマイコンプログラミングのようです
KiCADで回路図をしたためつつそんなことに気づいた日曜の昼下がり
現場からは以上です

782:774ワット発電中さん
21/05/23 13:56:07.25 x7VHwk5v.net
>>749
ありがとうございます…
これは製造ロットによってADC電圧にバラつきがあるという
例のアレですね… 測定でアナログ必須になるのでなんとか
頑張ってトライしてみます!

783:774ワット発電中さん
21/05/23 14:41:50.07 MtjUP36j.net
>>745,746
ありがとうございます。
 負荷容量をキーワードに検索し、よくわかりました。水晶ごとに発振周波数の前提にしている負荷容量があること、外付けする容量ではなくICや実装時に結果的に発生する容量も込みであること(当たり前といえば当たり前ですが)。ゼロに近くなると


784:周波数双曲線的に高くなることなど理解しました。



785:774ワット発電中さん
21/05/23 19:02:04.35 U/4V9lZb.net
esp32のADCの歪みにより具体的にどんな時にトラブルが発生しますか?

786:774ワット発電中さん
21/05/23 19:29:15.22 J6ie6jFH.net
補正を考えずに意味もわからずなんかのスケッチそのままコピーして思い通りに動かない人がesp32のADCは使えないと吹聴する

787:774ワット発電中さん
21/05/23 20:27:25.33 pOGE1aMk.net
>>754
なるほど
そこまでできててなんでそんな事が分からないのかなと思ってた
そうなんだね

788:774ワット発電中さん
21/05/23 21:14:31.34 WqCqWCMT.net
ESP32のADCの0V付近のオフセットはソフトではどうしようもなかったような。アナログセンサー入力とかだと影響がでる。

789:774ワット発電中さん
21/05/23 21:19:55.60 Ysf7Q2fU.net
下駄履かせろ

790:774ワット発電中さん
21/05/23 23:38:07.69 pOGE1aMk.net
M5STACK買おうか迷い中
高いよね

791:774ワット発電中さん
21/05/24 01:05:36.41 O+LGmHNJ.net
arduinoってPythonでもプログラムできるんだね

792:774ワット発電中さん
21/05/24 01:26:11.62 oSGgL2sp.net
まーな

793:774ワット発電中さん
21/05/24 16:06:30.70 O+LGmHNJ.net
アマもアリもあんまり値段変わらなくなってきたね

794:774ワット発電中さん
21/05/26 02:36:16.10 U8W6vLEA.net
教えをこうむりたく。。。
下記のとおりです。。。
よろしくお願いいたします。
◇やりたいこと
inoとは別ファイルで関数を作成しその中でU8x8lib.hを使いOLEDのテキスト表示をしたい。
◇問題点
別ファイルにおけるコンパイルエラー
◇エラーの内容
'u8x8' does not name a type
u8x8.begin();
^~~~
◇状況
inoファイルの setup()関数の中や、loop()関数の中に
u8x8.****** を記述するとうまく行きます。
Auduino IDE で別ファイルを作成して、そこにはsetup()関数が
ないので、自作の関数の中で、u8x8.***** を呼び出そうとしました。

====== 別ファイル(*.cpp)のコード(エラーが出たコード)======
#include <Arduino.h>
#include <U8x8lib.h>
....
void 関数名(void){
U8X8_SH1106_128X64_NONAME_HW_I2C u8x8(/* reset=*/ U8X8_PIN_NONE);
u8x8.begin();
u8x8.clear();
u8x8.setFont(u8x8_font_7x14_1x2_r);
u8x8.drawString(0,0,ABCDEF);
}
※inoで一つのファイルに記述するとエラーは出ない
====== ****.inoのコード ======
#include <Arduino.h>
#include <U8x8lib.h>
U8X8_SH1106_128X64_NONAME_HW_I2C u8x8(/* reset=*/ U8X8_PIN_NONE);
....
void setup(void) {
u8g2.begin();
u8x8.clear();
u8x8.setFont(u8x8_font_7x14_1x2_r);
u8x8.drawString(0,0,ABCDEF);
}

795:774ワット発電中さん
21/05/26 05:03:40.79 U8W6vLEA.net
大変お騒がせしました!!
下記にてコンパイラ通りました。
今晩、やっと寝れそうです。

ino本体
#include <U8x8lib.h> ←消去
本体ではライブラリは一切さわらない
C++ 追加ファイル
#include <Arduino.h>
#include <U8x8lib.h>
U8X8_SH1106_128X64_NONAME_HW_I2C u8x8(/* reset=*/ U8X8_PIN_NONE);
void 関数名(void){
u8x8.begin();
u8x8.clear();
u8x8.setFont(u8x8_font_7x14_1x2_r);
u8x8.drawString(0,0,ABCDEF);
}

ちなみに、ググる場合のキーワードは「ソースコード 分割 ライブラリ 呼び出し」
で、色々な情報が出てきました。
ただ、今回のU8x8libライブラリを自作C++で呼び出す方法は自分では探せなかったです。

796:774ワット発電中さん
21/05/26 05:11:47.72 cWQO1y5r.net
void 関数名(void){

void 関数名(U8X8_SH1106_128X64_NONAME_HW_I2C u8x8){
に変更
メインファイルの
関数名();

関数名(u8x8);
に変更

797:774ワット発電中さん
21/05/26 05:49:51.13 up2Wnh7z.net
同じディレクトリのソースのインクルードファイルをインクルードするときは
#include "U8x8lib.h"
じゃなかったっけ?

798:774ワット発電中さん
21/05/26 05:57:08.41 up2Wnh7z.net
ちなみにArduino IDEは自前ソースの同じディレクトリのヘッダーファイルのincludeは
#include "foo.h"
としないとエラーが出るけど
Platform IO IDEならどちらでも#include <foo.h>でエラーは出ない

799:774ワット発電中さん
21/05/26 06:54:24.03 cWQO1y5r.net
U8x8lib.h は、外部ライブラリだ


800:よ。 U8g2 に付随する簡易版の OLEDライブラリ。 質問者が U8g2ライブラリ作者なら話しは別だが。。。w



801:774ワット発電中さん
21/05/27 08:03:55.84 I7zMxvYH.net
LeonardoとPromicro(5v)のブートローダーって機能的に違うところとかってある?

802:774ワット発電中さん
21/05/27 12:38:01.84 FC241GX+.net
ある
待機時間とか転送速度とか

803:774ワット発電中さん
21/05/27 13:20:26.74 kHsgfoyA.net
どーでもいいけどそれは機能じゃない

804:774ワット発電中さん
21/05/27 18:23:42.02 i1V+fljJ.net
>>768
ProMicroのブートローダーにLeonardoのブートローダー焼いて使って
いるのでIDEにSparkFANの環境入れなくても使えてる
実質的には違うデバイスとして見えるくらいじゃないのかな

805:774ワット発電中さん
21/05/27 22:33:51.73 2x7IrTQz.net
atmega32u4を自作基板に組み込みたいんだけど、どのarduinoのブートローダーがいいのかなって気になった。みんなありがとう
今icspでブートローダーまで書き込んだけど、usbから上手く書き込み出来ないや。デバイスマネージャにデバイスは現れるけど、不明と表示が出る。書き込み自に色々なタイミングでリセットしてもダメ。

806:774ワット発電中さん
21/05/28 00:50:47.28 LliRMJlj.net
情報収集能力が低いと大変だな

807:774ワット発電中さん
21/05/28 06:32:54.18 B1XHc+O5.net
初心者熱烈歓迎スレでそんな嫌味を言ってどうするの?

808:774ワット発電中さん
21/05/28 09:05:57.82 4OPjxf+M.net
>>772
ありきたりだけどUSBハブとか延長ケーブルとか使ってない?

809:774ワット発電中さん
21/05/28 09:13:27.32 OVX95D00.net
>>774
本人が>>1に書いてある情報すら収集できてないっていう渾身のボケなんやない?

810:774ワット発電中さん
21/05/28 09:27:12.57 90kRp9ml.net
ATmega32u4と、USBコネクタの間の配線が適切ではない、とかあるかな?

811:774ワット発電中さん
21/05/28 10:35:50.82 RPymLHOT.net
v-busは5vと共通、D+とD-は両方22Ω抵抗を介してマイコンへ繋いでます。後はGND位ですね。クリスタルは16Mのセラロックを使用しました。

812:774ワット発電中さん
21/05/28 12:06:40.36 mxJpwE4m.net
>>775
もちろん使ってない。
取り敢えず回路の見直しとケーブル変更、pc指し口変更もやってみる

813:774ワット発電中さん
21/05/28 18:12:15.29 lKj/4uT2.net
>>772
デバイスマネージャにデバイスのエントリが表示されるけど不明って出るって、
黄色いビックリマークが出てるって事かな?
だとしたら32u4が使用するドライバが見つからないってことだから、SparkFAN
なりLeonardoなりのブートローダに対応したデバイスドライバを導入しないと
ダメでないかな

814:774ワット発電中さん
21/05/29 10:12:51.46 6fPO5kAD.net
電気的に逸脱したところがあると、認識は始まるけれど、ちゃんと認識できずに不明な
デバイスになることがあります。
電源が弱いとか、GNDを含めたケーブル接続が弱いとかも。
USBは本来は、クロック周波数の要求が厳しくて、セラミック振動子だと、それなりに
精度が高いものでないと動作保証ができないことがありました。(水晶の方が高精度)
今のUSBデバイスは、いろいろ工夫されていて、ホストのクロックに合わせるみたいな
しくみもありますが、32U4はそういう意味では昔のデバイスだと思います。
俺が持ってるUNO3は、本体はセラミックなのに、USB I/Fの方は水晶だし、
Leonardo は水晶を使ってます。
まだ解決してないようなら、水晶も検討してみて。

815:774ワット発電中さん
21/05/29 12:47:00.32 86Gsqwcl.net
例えば1つのnanoからもう一つのnanoへUSBコネクタ介して


816:通信するにはどうすればよいのでしょうか?  TxピンとRxピンつないでの通信は理解していますが、物理的制約でできればインターフェースはUSBコネクタだけにしたいんです。  間にPCを挟めばよいのも分かっていますがそれは無しで。  因みにダメ元でUSBのそれぞれのピン同士つないでみましたがだめでした。D+/D-逆につなげば良いってんでも無いですよね?



817:774ワット発電中さん
21/05/29 12:50:48.97 hXpzbo35.net
USBはホストとデバイスでめちゃくちゃ違ってホストするのは結構大変なんや
USBに接続するデバイスはそれなりにラクだけどUSBが接続されるデバイスを作るのは10倍以上大変なので
その認識程度の場合はそんな接続はほぼ出来ないと思っていい

818:774ワット発電中さん
21/05/29 14:25:09.99 86Gsqwcl.net
>>783
ですよね、、USB1.1だけに絞ればと思ったりしましたが。
Mini USB Host Shield で検索して出てくるモジュールを使うと多少高いが行けるかなと、、試してみます。既に試された方アドバイス頂ければ幸いです。

819:774ワット発電中さん
21/05/29 15:46:17.60 ZVQvauDn.net
I2Cならたった2本繋ぐだけなのに…

820:774ワット発電中さん
21/05/29 15:53:23.97 yTqgp8AA.net
わざわざUSBコネクタ介する理由がわからん。

821:774ワット発電中さん
21/05/29 16:01:50.87 ZVQvauDn.net
USBアナライザみたいなの作りたいのかもな
まあラジオ2台あるけどトランシーバーできますかみたいな感じ

822:774ワット発電中さん
21/05/29 16:22:21.04 XbWlXbgx.net
初心者だから流れが分からない
簡単に流れ教えて
あとI2Cなら楽なの?

823:774ワット発電中さん
21/05/29 17:31:03.17 yTqgp8AA.net
基板のUSBコネクタはシリアル―USB変換が入ってるから途中でUSBホスト機器が必要。USBケーブルを通信に使うにしてもピンからシリアルかi2cを引き出して繋げば外部機器は不要でarduino同士接続可能。

824:774ワット発電中さん
21/05/29 17:43:18.15 86Gsqwcl.net
>>786
物理的制約と明記しました。
既に筐体に入っていてUSBコネクタだけアクセスできるnanoとシリアル通信したい。筐体に穴を開ければ普通につなげることはわかっている。

825:774ワット発電中さん
21/05/29 17:45:57.99 4BVuph04.net
ホスト機能を持ったマイコンに仲介してもらうしかない

826:774ワット発電中さん
21/05/29 17:57:09.61 u0dQ27/S.net
nanoやめてprominiにすれば設置スペース的には解決
つか無駄なもん付いてるnanoを組み込む理由がわからん

827:774ワット発電中さん
21/05/29 18:12:52.69 86Gsqwcl.net
>>792
既にできちゃってるものに何とかしようとしているから物理的制約があるんだとなぜわからんのか、わからん

828:774ワット発電中さん
21/05/29 18:18:48.60 86Gsqwcl.net
>>789
そうだと思います。Maxx3421EEが載ったミニUSBホストシールドならOKですよね?
URLリンク(ht-deko.com)

829:774ワット発電中さん
21/05/29 18:24:33.30 hXpzbo35.net
>>794
チップの機能的にはできるけどライブラリにUSB-UARTのドライバはないからUSB-UARTチップ(CH340か?)のドライバをフルスクラッチで書けないとできないぞ・・・

830:774ワット発電中さん
21/05/29 18:38:38.77 2JHO7ZkV.net
既にできちゃってるっていっても失敗作は未完成と同じ

831:774ワット発電中さん
21/05/29 18:52:52.83 jLhWd36X.net
筐体を変えたくなけりゃあUSBホストシールド使っても無意味じゃん
USBコネクタの通信線切り離してI2Cに繋ぐのがいちばん楽なのでは

832:774ワット発電中さん
21/05/29 19:00:31.30 hXpzbo35.net
>>797
いや違うんじゃね?
Nanoが埋め込まれた機器(構造変更不可、USBだけ出ている)があ


833:チてそれに対してコミュニケーションをとるデバイスを作りたいが NanoからはUSBしか出てないのでUSBホスト機能を持ったデバイスを作らなければならない(これから作るので構造は自由) ってハナシだと思っているが



834:774ワット発電中さん
21/05/29 19:07:01.78 2JHO7ZkV.net
改造を加えるなら
nanoのusbコネクタ撤去しちゃえばI2Cの線2本くらい楽に出せるのでは?

835:774ワット発電中さん
21/05/29 19:14:33.76 MtSGixgQ.net
>>799
筐体とコネクタの隙間から通すのが楽

836:774ワット発電中さん
21/05/29 19:37:30.86 yTqgp8AA.net
中身いじるのは駄目っぽいからUSBホスト付きの中継機器作るしかないね。

837:774ワット発電中さん
21/05/29 19:43:34.35 yTqgp8AA.net
元々はどういう機器なんだろ。PCに繋いで専用ソフトで機器同士のシリアル通信をバイパスしてるとか?

838:774ワット発電中さん
21/05/29 20:00:42.74 BBghNUeP.net
>>781
水晶にしてみたけど、変わらなかった。
何か別の問題の様子。
ケーブルを変えたり、回路を見直してみます。

839:774ワット発電中さん
21/05/29 20:07:34.23 WPZymQIl.net
nanoが挿してあるんだから原状復帰も楽ちんなはず

840:774ワット発電中さん
21/05/29 20:42:53.99 86Gsqwcl.net
>>798
そのとおり。

841:774ワット発電中さん
21/05/29 20:44:33.16 86Gsqwcl.net
>>796
最初の仕様は満たしていて、後でこういう事もできないかなと言うような追加案件が持ち上がったことはありませんか?

842:774ワット発電中さん
21/05/29 22:51:05.37 lUt4P81c.net
あるある
無能の組織でやりがち
うちの会社とかw

843:774ワット発電中さん
21/05/29 22:58:44.51 ysYA4Ux3.net
質問者の前提を無視、軽視した回答
5chあるある

844:774ワット発電中さん
21/05/29 23:02:19.45 BBghNUeP.net
>>781
解決した。
6pinのUCAPに1uFのコンデンサを介してGNDへ繋いだら、レオナルドヲ認識して書き込みまで出来た。
試しにセラロックに戻して書き込みしてみたけど、成功した。でもこれからはクリスタルで運用しようと思う。
これでusbでスマートに書き込み出来る機器を作れるよ。
アドバイスありがとうございました。

845:774ワット発電中さん
21/05/29 23:02:28.78 6fPO5kAD.net
ホストの方がこれから自由自在に作れるなら、なんなっとできそう。

846:774ワット発電中さん
21/05/29 23:04:38.14 BBghNUeP.net
>>780
win10はドライバー要らないみたい。
今回はコンデンサ着けたら認識してleonaldと表示出た。
解決しました〜

847:774ワット発電中さん
21/05/29 23:05:37.24 6fPO5kAD.net
>>809
おめでとさん!
セラロックは関係なかったか。
ところでUCAPって何だったっけ?

848:774ワット発電中さん
21/05/29 23:33:21.95 l7StOJZc.net
Arduino uno3とnanoはどういうものかと言うのがわかるのですが
それ以外で何がどう違うのかがわかりません
大体これくらいは覚えておけ〜位の事が知りたいです

849:774ワット発電中さん
21/05/29 23:39:14.39 v4AItBe9.net
それ以外とは?

850:774ワット発電中さん
21/05/29 23:49:03.69 l7StOJZc.net
>>813
例えばleonardoとかMegaとか

851:774ワット発電中さん
21/05/30 07:36:37.02 dTp/jkU7.net
ごめんなさい、815は814へのレスでした

852:774ワット発電中さん
21/05/30 08:09:30.44 t4YqH5vH.net
>>813
いろいろな種類のボードの違いをここに書くのは答える方も大変。
疑問のキーワードをgoogleに放り込んだらどうでしょ。
arduino 種類 違い
で、ぐぐったら、こんなページが出てきたよ。
URLリンク(spiceman.jp)
ここに書かれてあることで、わからないことがあれば、話題にしてみては。

853:774ワット発電中さん
21/05/30 10:00:46.69 wwGzJ3ps.net
>>808
議論をしたくない、聞く耳を持たないやつは質問なんかしてないで
自力で解決すれば良い。
こんなスレもあるよ。
理論より答えだけがほしい質問スレ
スレリンク(denki板)

854:774ワット発電中さん
21/05/30 11:


855:17:45.19 ID:wKFVTO+p.net



856:774ワット発電中さん
21/05/30 11:58:23.29 xRjh2kJL.net
AVRのArduinoでSRAMが足りなくなった場合、みんな何使ってます?

857:774ワット発電中さん
21/05/30 12:01:02.40 H0GN+Eoy.net
ESP8266
ESP32

858:774ワット発電中さん
21/05/30 12:02:29.78 H0GN+Eoy.net
23k256
LY68L6400S

859:774ワット発電中さん
21/05/30 13:07:38.62 dTp/jkU7.net
>>817
ありがとうございます。とても参考になりました

860:774ワット発電中さん
21/05/30 13:20:53.48 wKFVTO+p.net
>>783
MAX3421がのったもの以外にCH376Sがのったものも見つかりました。基本はサムドライブ読み書き用ですがなんとかなるかも。
URLリンク(www.aitendo.com)
ダメモトでAliに発注しました。

861:774ワット発電中さん
21/05/30 15:27:09.54 NBKbTzh/.net
>>824
ちゃんと見てないから分かんないけど
それマスストレージをバス接続するための物でホストを制御できるようにはなって無いんじゃね?

862:774ワット発電中さん
21/05/30 16:40:47.26 D5iWqiID.net
>>812
マイコンに内蔵されたusb関係の3Vレギュレーターの端子みたい。
データシートみたら、ここにはセラコン必須みたい。

863:774ワット発電中さん
21/05/30 20:23:04.16 t4YqH5vH.net
>>826
はいありがとう。なるほど、内蔵レギュレータ用のコンデンサ端子なら必要ですね。
別のマイコンで同様の端子のコンデンサを、指定より小さいものにしていて、
「なんか動作が不安定」で悩まされたことを思い出しました。

864:774ワット発電中さん
21/05/30 20:30:15.31 t4YqH5vH.net
ArduinoでUSBホストをやったことはないし、
ほかのマイコンでもHIDのホストはやったことがないけれど、
USBホストシールドでHIDホストをやってる人がいた
URLリンク(okiraku-camera.tokyo)
HIDだから使いようによっては、ホスト→デバイスのデータもできるかな。
Leonardoなら、HIDデバイスにもなるから、通信できるのでは。

865:774ワット発電中さん
21/05/30 20:34:08.45 t4YqH5vH.net
CDCはどうだろうと思ってぐぐってみたら、ch340と通信してる人がいた。
URLリンク(www.suke-blog.com)
発想もすごいけど手間仕事。

866:774ワット発電中さん
21/05/30 22:33:00.99 r3DyO85O.net
arduino とロードセルで500g以下(少数第1位迄)が計量できるものを作ろう
としてます。
ロードセルはamazonでビーム型で1kgまで測れるやつで組んでみました。
500gの分銅で計測してみたのですが、分銅をのせたあと、取り除くと
重量表示が2~3g程度になり、0に戻りません。ロードセルがひずんだ
ままなんでしょうか?量り台を軽く持ち上げてやると0にもどるという・・・。
ロードセルってこんなもんなんですか?
安価に使えて正確に測量できるセンサーってほかにないものでしょうか。
よろしくお願いします。


次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

282日前に更新/285 KB
担当:undef