X



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

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

■ このスレッドは過去ログ倉庫に格納されています
0001774ワット発電中さん
垢版 |
2021/02/18(木) 01:01:36.39ID:hm9MM2LM
http://www.arduino.cc/

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

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

過去スレ
Arduino初心者熱烈大歓迎質問スレ part28
https://rio2016.5ch.net/test/read.cgi/denki/1591734520/
Arduino初心者熱烈大歓迎質問スレ part27
http://rio2016.5ch.net/test/read.cgi/denki/1585316143/
Arduino初心者熱烈大歓迎質問スレ part26
http://rio2016.5ch.net/test/read.cgi/denki/1579146318/
Arduino初心者熱烈大歓迎質問スレ part25
http://rio2016.5ch.net/test/read.cgi/denki/1568358922/
Arduino初心者熱烈大歓迎質問スレ part24
http://rio2016.5ch.net/test/read.cgi/denki/1554776918/
Arduino初心者熱烈大歓迎質問スレ part23
http://rio2016.5ch.net/test/read.cgi/denki/1541233445/
Arduino初心者熱烈大歓迎質問スレ part22
http://rio2016.5ch.net/test/read.cgi/denki/1534549073/
Arduino初心者熱烈大歓迎質問スレ part21
http://rio2016.5ch.net/test/read.cgi/denki/1527252804/
Arduino初心者熱烈大歓迎質問スレ part20
http://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/
0649774ワット発電中さん
垢版 |
2021/05/15(土) 21:45:10.75ID:Dv0PkfZd
PICはまだよく知らないけど
UNOをI2Cの親にして子をナノ20個くらい付けてアナログ入力全部入れて同時に測定するようなイメージ?
0650774ワット発電中さん
垢版 |
2021/05/15(土) 21:49:49.31ID:ZVSG2jJx
UNOに300個のセンサーをつけようって時点でセンスがないから諦めた方がいい
0652774ワット発電中さん
垢版 |
2021/05/15(土) 22:34:07.91ID:5GUOMJ8A
>>649
接続トポロジー的にはそんな感じ
I2Cじゃなくてもいいし同時測定じゃなくてもいいけど

はんだ付けとかできるの?
ユニバーサル基板?
0653774ワット発電中さん
垢版 |
2021/05/15(土) 23:38:15.37ID:mdrgV3eQ
>>651
センスがあるからな
センスがない君は人一倍努力が必要だから楽ではないねw
0655774ワット発電中さん
垢版 |
2021/05/16(日) 01:36:33.27ID:jemyr4R9
>>653
はは、完全に意味取り違えてやがるw
言語センスのないことだけは確かだな、お前は
0658774ワット発電中さん
垢版 |
2021/05/16(日) 11:06:22.45ID:ZzOJR+dh
>>652
I2Cだと256台つながるらしいですが
他のつなぎ方でもたくさんつながるんですか?
0659774ワット発電中さん
垢版 |
2021/05/16(日) 11:10:35.24ID:KiT4KzSF
センスを1ビット表現で評価する人が、センスという概念についてどれぐらいセンシティブなのかって思う。
加えて、何のどの程度のセンスかについて議論することもなく、それをもって「諦めた方がいい」と言えるような感覚ってどこから来るんだろうね。
しかもそれが「初心者熱烈大歓迎質問スレ」で。

そういや、アナログ回路でも、他人にセンス(何のだ? 多様なアナログ回路全部をひっくるめて、アナログ回路かそれ以外か?) についても
1ビット表現をする人いたよな。UNOでA/Dコンバータでさえ10ビットなのに。
0660774ワット発電中さん
垢版 |
2021/05/16(日) 12:50:32.57ID:Y9cwPfBe
マルチプレクサウンチクサ
0661774ワット発電中さん
垢版 |
2021/05/16(日) 13:02:40.25ID:ougCliZ8
>>658
I2Cだと7bit or 10bitのアドレスで
7bit(128)-予約(16)=112台 もしくは10bit(1024)-予約(16)=1008台

たくさん繋ぐ方法はいくつも有るけど例えばSPI接続の場合でも
CSを増やせば複数(細かい話を無視すれば無限に)繋がる

UARTでも複数接続出来る

※いずれも一定以上に台数を増やすと静電容量やノイズの対策が必要になるかな

>650,654,657,660
この辺の人らは発言が{下品,寒い,幼稚}って自覚あるの???
ここ【学問・理系】のカテゴリーなんだし、もう少し知的な話をしようぜ!
0663774ワット発電中さん
垢版 |
2021/05/16(日) 13:54:55.24ID:ZzOJR+dh
マルチプレクサの使い方
親子で使う方法
とても参考になりました
ありがとうございます
0664774ワット発電中さん
垢版 |
2021/05/16(日) 13:58:07.08ID:IlCilacM
>>661
同じセンサーをいっぱいつなげるとi2cのアドレスがかぶるのですがどうしたらいいですか
0665774ワット発電中さん
垢版 |
2021/05/16(日) 14:43:27.14ID:ougCliZ8
>>664
◆アドレスの変更が可能な場合
単独で繋いでアドレスを変更(書き込み)してから使う

◆アドレスの変更が不可能な場合
例)アナログマルチプレクサを使用した場合の方法
・SCLは共通で接続する(台数が一定数より多い場合は回路の工夫が必要)
・SDA側をマルチプレクサで切り替えて使う
・SDAはマルチプレクサのセンサー側でPull-upする(不具合の対策でマイコン側もPull-Upも可)
0666774ワット発電中さん
垢版 |
2021/05/16(日) 16:27:43.72ID:ZzOJR+dh
I2CでPICとかプログラムの書けるマイコンだと
プログラム内で番号付けたりして分けられないの?
0667774ワット発電中さん
垢版 |
2021/05/16(日) 16:31:23.76ID:Bx00a0yb
センサーやIC側で勝手にアドレス決められてやがるよな!0x70-0x76までとか!
なんだよあれ!こっちで決めさせてくれ!
0668774ワット発電中さん
垢版 |
2021/05/16(日) 16:54:46.69ID:KiT4KzSF
自分でI2Cデバイスを構成できるものは別として、既成のデバイスはたいてい決まってるしね。
注文オプションで選択できるものとか、ピンのH/Lや電圧で設定できるものはあるけれど、そのあたりが限界かな。
0673774ワット発電中さん
垢版 |
2021/05/16(日) 18:56:09.73ID:E4Q4nyvN
>>658
自分がプログラムしたマイコン同士なら
I2Cじゃなくてもいろいろと方法がある
好きにプロトコル作って好きに通信すればいい
オープンドレインで1本だけでUART通信もどきとか
2本使って良くて遅くていいならI2Cが簡単かな

>>666
YES
0674774ワット発電中さん
垢版 |
2021/05/16(日) 18:59:50.52ID:E4Q4nyvN
I2Cの切り替えにアナログマルチプレクサとか
センスなさすぎる
0675774ワット発電中さん
垢版 |
2021/05/16(日) 21:03:09.41ID:ZzOJR+dh
まだプログラムの美しさや回路の完成度を求める段階ではないので
簡単で理屈が分かりやすくて動いてくれたら良いのです
分かりやすい説明本当にありがとうございます
0678774ワット発電中さん
垢版 |
2021/05/17(月) 02:15:28.55ID:c7GVZKtR
ArduinodeIDE + ESP8266 のアップデートがあったのですが、
不具合があったので、とりあえず対処方法だけ。。。(Win環境)

半年前にあった macOS と同じ症状で、pyserialのバグっぽい。
以下から 3.4 をダウンロードして、Arduino15配下の同じ場所に上書きでOK。
https://github.com/pyserial/pyserial/releases
0680774ワット発電中さん
垢版 |
2021/05/17(月) 12:08:03.41ID:ZbG+JYWh
>>679
配線方法は676の方が貼ったURLの方法と一緒ですね
・TC4051(8ch)アナログマルチプレクサを使用
・SCKを共有してSDAのみ切り替え
・SDAをマルチプレクサとI2Cデバイスの間でPull-Up
・ArduinoのdigitalWriteを2本使い4回路切り替え(3本使えば8回路切り替え出来る)
・マルチプレクサを重ねれば大量に接続できる
(例えば4051を9個使えばdigitalWrite6本で64回路切り替え出来る)

テストコード(スケッチ)と回路図も置いときますね
(※急ぎで作ったので何処かに間違いがあったらすまん)
https://pastebin.com/8aZPukMs (スケッチ)
https://i.imgur.com/7qgloE9.png (回路図)
0686774ワット発電中さん
垢版 |
2021/05/18(火) 04:52:55.68ID:azIiOfbT
Raspberry Pi 4上のArduino IDEでも
ボードマネージャからArduino Mbed OS RP2040 Boardsを追加できることを確認
0687774ワット発電中さん
垢版 |
2021/05/18(火) 06:31:18.48ID:azIiOfbT
Raspberry Pi 4で開発してる人で
Raspberry Pi picoに書き込みができない人はここ見るといいかも

https://www.raspberrypi.org/forums/viewtopic.php?t=309215

boot selボタンを押しながらRaspberry Pi 4のUSBにPicoを差してから
cd ~/.arduino15/packages/arduino/hardware/mbed_rp2040/2.1.0
sudo ./post_install.sh
と実行してから「マイコンボードに書き込む」を実行するとうまく書き込めた
0688774ワット発電中さん
垢版 |
2021/05/19(水) 22:58:26.10ID:EgNT/DI3
昨日初めてArduinoを触ったんだけど、素朴な疑問が。
PCからの書込み用にUSBシリアルポートを使ってるみたいだけど、PCとの通信にも同じシリアルポートを使っている。
ボーレートを変えて設定して通信した後リセットとかしなくても書込みができるのは、どうやってんのかな?
0689774ワット発電中さん
垢版 |
2021/05/19(水) 23:09:10.09ID:NOVq7Urq
>>688
USBシリアル変換チップの信号(DTR)を使ってArduinoをリセットしてる
ArduinoをリセットするとROMのブート部分に書き込まれてる命令で、シリアル通信の設定が初期化されて書き込みが出来る
0690774ワット発電中さん
垢版 |
2021/05/19(水) 23:10:34.64ID:RkXNTMYd
>>688
あなたが書き込んだのとは別のブートローダというプログラムが動いてるから
0691774ワット発電中さん
垢版 |
2021/05/20(木) 03:34:01.62ID:mCQ+vM57
Arduino で I2C OLED 1.3インチにメニューを表示して
タクトスイッチでカーソルを上下して選択し、その選択にあった
次の画面に遷移するような事をやりたいのですが、
コードがぐちゃぐちゃになってしまいました。
画面を構成したり、ボタンとカーソルを連動するのに便利な
ライブラリがあればご教授ください!!
ちなみにタクトスイッチは3つで、上/下/決定ボタンのように
使用したいです。
0692774ワット発電中さん
垢版 |
2021/05/20(木) 07:08:27.05ID:p8tgOT6p
丸投げか・・・
いったんソース捨てて新規に整理して作り直せよ。
0693774ワット発電中さん
垢版 |
2021/05/20(木) 07:58:23.82ID:EaNGghCO
ライブラリで解決する系の問題じゃないと思うの
0696774ワット発電中さん
垢版 |
2021/05/20(木) 11:46:58.51ID:gWYSRppZ
>>691
ふつうにif else文でやってるわ…
選択して決定Bが押されたらLCDクリアして
次の画面を表示してる
あとは30秒操作無しならキャンセル…って表示を出して
ループに回帰とか
0697774ワット発電中さん
垢版 |
2021/05/20(木) 13:18:07.72ID:EUUXLNyN
>>691
構造体のリスト構造で階層を記述して、リストを手繰るロジックにすれば、それ程難しくならないはず。
階層構造をプログラムロジックにハードコーディングすると収拾付かなくなりますよ。
0698774ワット発電中さん
垢版 |
2021/05/20(木) 13:19:59.60ID:mCQ+vM57
youtubeの情報を参考にメニュー作ってみます。
親画面から子画面に移ったり孫画面に移ると画面数が多くなるので、間違わないような記述を考えながらやるしかないですよね。
if else文できれいに書けるかどうかやってみます。
0699774ワット発電中さん
垢版 |
2021/05/20(木) 14:55:26.72ID:WJfiomo9
いいね
ライブラリで出来ました〜じゃ経験値は増えないからね
0700774ワット発電中さん
垢版 |
2021/05/20(木) 21:29:03.06ID:wopwPffe
arduinoでクラス使えたら楽に出来るのにね
と思ってふとググったらクラスあったのね
勝手にないもんかと思ってスパゲティいくつか作ってたわ
0707774ワット発電中さん
垢版 |
2021/05/21(金) 11:39:57.33ID:4XU9/KWR
ありがとうございます
知ってた方が良さそうだから勉強してみます
0708774ワット発電中さん
垢版 |
2021/05/21(金) 11:49:39.36ID:Z7Q4u7IT
>>704
手続き型言語しかやってないのだと思うけど、
ざっくり説明できるものではない。
継承、抽象データタイプ、カプセル化とか言っても分からんでしょ?

今更、オブジェクト指向から勉強しろとは言わないけど、
検索するなり、本気で知りたいなら本でも買いなよ。
0709774ワット発電中さん
垢版 |
2021/05/21(金) 12:05:20.91ID:4XU9/KWR
>>708
そうですね
まるきりここで教えていただくつもりもありませんので
失礼しました
0710774ワット発電中さん
垢版 |
2021/05/21(金) 12:24:01.02ID:Ph8qtTi1
とりあえず関数にまとめるだけでも良いんでないの。もうやってるかもだが。
0711774ワット発電中さん
垢版 |
2021/05/21(金) 15:46:21.61ID:AB3+AWgp
ATMega168のピンだけで9桁の7セグをダイナミック駆動させたけど、なんか暗い
200Mhzぐらいで点灯させても暗い
3.3Vで屋外運用したいけど、ちょっと暗いんでいい方法あります?
Max7219とかLEDをドライバICもあるけど、8桁用なんで。9桁欲しい

参考にしたサイト。やっぱトランジスタ使わないとダメですかね?
https://garretlab.web.fc2.com/arduino/introduction/beginning_with_7segment_led_cc/
0713774ワット発電中さん
垢版 |
2021/05/21(金) 15:57:55.67ID:Ph8qtTi1
周波数上げ下げしてもdutyが同じなら変わらん。duty上げるか電流上げるか。
0714774ワット発電中さん
垢版 |
2021/05/21(金) 16:05:06.31ID:vNEi28M0
そこにある通り240Ωの抵抗を使ったなら7mAしか流れてないから最大値の20mAに程遠く、暗いのは当たり前
OSL40562-LBという7セグメントLEDはとても明るいらしいけど君が使ったのはそうではないんだろう
20mAまで流してそれでも暗いかどうか判断すべきじゃないのかな
0715774ワット発電中さん
垢版 |
2021/05/21(金) 16:21:03.24ID:AB3+AWgp
>>714
抵抗は下げましたね。でもそんなに変わらず。
duty上げるのは更新頻度を上げるのとまた違うんですかね
0717774ワット発電中さん
垢版 |
2021/05/21(金) 16:52:07.61ID:AB3+AWgp
あと、内部クロックの8Mhzで動かしてるんですが、
digitalWrite自体遅いでしょ?ポート直接叩いて高速化したほうが良いのかな
参考サイトのスケッチ通りdigitalWriteを使っても、200Hzぐらい余裕で出ます?
0719774ワット発電中さん
垢版 |
2021/05/21(金) 17:47:03.14ID:grGGtkLg
まずデューティー比、というかPWMについて勉強しよう!
そして希望の明るさがでる電流値がいくらなのか実測しよう!
0721774ワット発電中さん
垢版 |
2021/05/21(金) 18:53:58.54ID:ryNcnbR9
抵抗下げたって行ってるけど、具体的な数字が出てないから、電流流しすぎてLED焼いたんじゃね
一度焼け焦げたLEDは適切な電流流しても暗くなるよ
0722774ワット発電中さん
垢版 |
2021/05/21(金) 19:01:30.77ID:ttBqDOql
9桁なら理想的な条件でも平均的な明るさは一桁だけ点灯し続けてる場合の1/9になると思え

桁数を増やせば増やすほど同じLEDなら暗くなる

更新頻度を上げても明るさのチラつきが減るだけで平均的な明るさは基本的に変わらない

いっそのこと更新頻度を思いっきり下げて一桁ずつ順に点灯するように見えるようにすると点灯桁は明るく見えるようになる
0723774ワット発電中さん
垢版 |
2021/05/21(金) 19:30:02.53ID:hTxFTy2N
>>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になるため点滅周期を
単純に変えても明るさは変わらないってなります(厳密には間違っているけど)

点滅で輝度を擬似的に変化させようとする場合には、一切消灯しない場合が
輝度100%、単位時間当たりの消灯時間を増やしていけば、消灯時間の割合に
比例して輝度が低くなり、この割合をDutyって呼びます

点滅の周期が長いと普通にチカチカ点滅して見えてしまいますが、点滅を早く
すると人間の目で見た場合連続して点灯しているように見えるので、点滅で
輝度を制御する場合には点滅周期を短くした方が良いということになりますが、
Duty制御を行わないと単位時間での点灯時間が変わらないので意味が無いと
いうことになるです
0725774ワット発電中さん
垢版 |
2021/05/21(金) 19:53:56.18ID:AB3+AWgp
>>721
流石に焼いたら分かりますよw
>>722
やっぱ9桁がネックですかねー。試しに1桁ずつやってみます。
今まで通りドライバIC使いますわ。皆さんありがとうございました。
0726774ワット発電中さん
垢版 |
2021/05/21(金) 19:55:43.96ID:AB3+AWgp
>>723
なんか長文書いていただいてありがとうございます。
所々参考にします。
0729774ワット発電中さん
垢版 |
2021/05/21(金) 21:02:54.52ID:AB3+AWgp
>>728
桁数が増えると結局そっちのほうが楽ですね。それも考えたんですけど、
数メートル離れた所からでもよく見えるように視認性を考えたら7セグかなぁと思って。
7セグ好きっていうのもあるけどw
大型液晶だとコストも増えるので予算1,000円以下/個に収まらないと思うので
0730774ワット発電中さん
垢版 |
2021/05/21(金) 21:07:58.19ID:k5ZGJllH
8桁までならモジュールになったやつとか結構種類あるからArduinoにポン付でいけるけど
9桁だとほとんどないなTM1638とかTM1640かな
0732774ワット発電中さん
垢版 |
2021/05/21(金) 21:35:39.91ID:V0i2mGSl
HOLTEKのHT16K33は16桁まで表示できて良いですよ
価格もそんなに高くないし、I2Cで楽だし複数個繋げられるし
自分の中では最強の7セグドライバーかなと思ってますね
0734774ワット発電中さん
垢版 |
2021/05/22(土) 00:06:44.16ID:iRfe0wg8
すみません。
電子工作初心者なのですが、ArduinoとMAX30102(VIN,GND,SCL,SDAの4ピン)を使って、血中酸素濃度計測器を作っています。
コードも配線もなんとかなり、プレップボード上では動作するに至りました。
そこで、常時体につけておくセンサー部と、廊下の床においておくArduino本体部を分け、取り回しをようと、その間を1.5mほどの配線で渡したのですが、そうすると動作しなくなります(センサーLEDが点灯しない)。
1.5mの配線に問題があるかと思い、Lチカのみで試すと光ります。
どのような原因が考えられるでしょうか?やはり配線が長すぎでしょうか?
何卒よろしくお願いいたします。
0735774ワット発電中さん
垢版 |
2021/05/22(土) 00:54:05.47ID:SBrrf4Tw
>>734
恐らくPull-up抵抗値が高い(内蔵Pull-Upだと)のが原因だと思いますが
(距離が伸びた事で静電容量が増えI2Cの信号の立ち上がりが遅くなりうまく通信出来ていない)

動作電圧の関係でMAX30102単体だとArduino(UNOだとしたら)とは直接接続できません!
使用してるのはMAX30102を使ったモジュールだと思います
モジュールには周辺回路が有ると思うのですが、その回路により対処が異なるのでモジュールの詳細をお願いします

あと別の解決方法としては通信速度(I2Cのクロック)を下げれば動作はすると思う
0736774ワット発電中さん
垢版 |
2021/05/22(土) 17:21:42.97ID:iRfe0wg8
>>735
ご教示いただきありがとうございます!
理屈を理解できていないながらも、I2Cを400kHzから100kHzに落としてみましたが、動きませんでした。
センサーはMakerfireのMAX30102のモジュールを(amazonで購入)
コードはこちらを
www.hackster.io/gatoninja236/open-source-pulse-oximeter-for-covid-19-4764c5
配線ケーブルはこちらを使用しております。
www.yodobashi.com/product/100000001001083291/
もしお気づきの点があれば何卒ご教示ください。プルアップ抵抗という概念は初めて知ったため、もう少し勉強させていただきます。
0737774ワット発電中さん
垢版 |
2021/05/22(土) 17:57:15.78ID:GFAS3BpM
>>736
考えられる対策は以下のもの
 プルアップ抵抗の値を小さくする
 シールドケーブルを使う
 クロック数を落とす
0738774ワット発電中さん
垢版 |
2021/05/22(土) 18:27:46.71ID:SBrrf4Tw
>>736
おそらく基板側で3.3V用にPull-upされてるのが原因だと思います

下の写真の半田を除去して5VでPull-upしたら通信出来ると思います
https://i.imgur.com/SIYPPpB.png

近い回路図が有ったので回路図も参考にしてください (上の半田除去は赤印の所を切りな話す)
※回路図では1.8Vと3.3Vの切り替えラインは記載が無く1.8VでPull-upされてる
https://i.imgur.com/omJYXze.png

半田除去後SDA,SCLを1〜4.7kΩ程度の抵抗でull-upしたら状況が改善すると思います
画像の紫点線の抵抗がPull-Up抵抗です
https://i.imgur.com/GrrINOa.png

735で直接通信出来ないと書いたのは間違いでしたごめん
データシートよく読んだらI2Cバス(や他のIO)の電圧は6VまでOKだったので忘れてください
0739774ワット発電中さん
垢版 |
2021/05/22(土) 23:22:17.33ID:XL0+iGey
UNOを3年ほど使い倒してからEsp32デビューしたんだけど
このADCって使えないレベルなの…?
0741774ワット発電中さん
垢版 |
2021/05/23(日) 04:46:28.86ID:x7VHwk5v
>>740
至る所で直線性が悪いだとか精度が良くないとか
ADCのキャリブレーションがあるとか見るから…
なにやら時間取られそうだなぁって思って…
0744774ワット発電中さん
垢版 |
2021/05/23(日) 11:45:54.48ID:alRpyzP1
nanoやUnoの様な形でなくATMega328をそのまま使う場合、
9 ,10ピンに水晶をつなぎそれぞれ22pFを介してGNDにつなぐことが一般的に紹介されています。
この22pFの目的はノイズ除去であって発振そのものには直接的には関係していないという理解でよろしいでしょうか?
 もちろん極端に大容量を繋ぐと発振しないでしょうが、Openに対しコンデンサを入れる意味という観点で。

 試しに有り無しをオシロで観察したところ波形がやや崩れ気味、9/10ピンでDCオフセットが出る程度で波形の振幅は両ピンOpenのほうが大きいくらいでした。
0745774ワット発電中さん
垢版 |
2021/05/23(日) 12:05:06.55ID:8PLyqPDx
>>744
正しい発振に必要なのでついている、水晶発信器の仕組みを調べろ
それとクリスタル毎に負荷容量が決められていて基板の寄生容量も考えた上で正しい容量にしないとカタログで示された周波数になっていない
0746774ワット発電中さん
垢版 |
2021/05/23(日) 12:05:22.23ID:feFBGZYG
>>744
水晶に対して適切な負荷容量が決まってます
コンデンサが無くても発信してるようですが周波数は高くなってると思います
またオシロスコープのパッシブプローブ(1:10)を当てるとプローブにより10〜15pF程度負荷が増えますので状況(周波数)が変わります
http://www.tamadevice.co.jp/crystal-units-kaisetu.htm
https://www.macnica.co.jp/business/semiconductor/articles/basic/127525/

また、正確なクロックが必要なければ内蔵発信回路を使えば水晶すら要らないと思います
0747774ワット発電中さん
垢版 |
2021/05/23(日) 12:06:14.32ID:8PLyqPDx
変換で発振が発信になった

調べるときは 「水晶発振回路 負荷容量」 とかで検索してね
0749774ワット発電中さん
垢版 |
2021/05/23(日) 12:32:19.90ID:feFBGZYG
>>739
UNOに比べたら癖が強いのですが、仕様を理解してれば使えます
ESP32で正しく計測を行うためにはUNOより回路やスケッチに工夫が必要になると思います
・UNOのようにGND−VDD間の相対値での測定は出来ない(絶対値での測定になる)
・UNOに比べて内蔵リファレンス電圧のバラツキが多い(リファレンス電圧の測定値は工場でROMに書き込まれてる)
・電圧の測定範囲が限定されてる(100~950 , 100~1250 , 150~1750 , 150~2450mV)
 (※経験上この範囲を超えていても値を取得できるが歪む)
・ADC高速なのでノイズの影響を受けやすい&ノイズ源が多い(無線や高速なCPU)のでノイズを意識する必要がある
・ADCの読み取り値を正確にするためにユーザー側で2点校正することが推奨されてる(eFuseに書き込む)

以下のURLの内容が理解できれば問題なく使えると思います
https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/peripherals/adc.html

つまり、仕様書の通りに使えば直進性も精度も言われてるほど悪くは無いのですが・・・・
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況