Arduino初心者熱烈大歓迎質問スレ part32
レス数が1000を超えています。これ以上書き込みはできません。
・プログラムは、レス内に直接書き込まず右記を利用しましょう。
http://codepad.org/ https://pastebin.com/
・解決したら結果報告しましょう。
・次スレは950が立てましょう。
立てられない場合はレス番で代理を指定しましょう。 アルディーノとモータードライバーを使って電熱線って使えますかね?制御できるイグナイター(着火装置)を作りたいです。 >>5
できるでしょ
Arduinoで出来る出来ないでなく
モータードライバの許容電流とイグナイターの電流との折り合いの話 制御できる着火装置って怪しいものしか思い浮かばないんだけど。 見てないとこで火を付けたいって、悪い事以外に何かあるんか? >>5
クルマ、バイクならspeeduinoがそう。 毎日3回決まった時間にだけ着火できるタバコ用のライターとか >>9
爆弾とかじゃないから安心して
モデルロケットの点火装置 >>10
0.5秒感覚で複数のロケットに点火したい >>14
ロケットなんかを扱う人がここで点火装置の相談するわけないだろwww >>16
ロケットつってもガチのロケットじゃないぞ
教育用のロケット花火に毛が生えたようなもの >>15
同時多発テロを連想したのは俺だけではないはず。 >>17
教育用のロケット花火が大人になったんだね。 >>18
まあ怪しまれても無理は無いよね
趣味で模型をラジコン化して遊んでるんだけどミサイルとか等間隔で発射してみたいんだよね >>20
なるほど。いいね。
MLRSとかできたらUPして。 >>21
ロシアの多連装ロケット弾を作るつもりでいたけどそれも良いな、作ってみたい >>20
こういうのが簡単でいいんじゃないかな。
ttps://aliexpress.com/item/1005001714620325.html どうせもいいから着火装置の仕様を出せよ
てか、質問者どこ行った? >>23
こんなものもあるのかー
後で使い方ググるか
>>24
着火装置はニクロム線を切ってみのむしクリップかなんかで挟んで使おうと思ってる。よくある使い方だね >>26
じゃあ>>23で決まり。
Arduinoだから5Vのやつ。
青いのがリレーで、これが時間差で着火する数だけ必要。 Arduino知らなかった頃イノシシ脅すため
10進ジョンソンカウンタTC4017BPとIC555利用してロケット花火10連発作ったことある
ニクロム線に12Vを3秒間通電すると導火線点火した
Arduinoだったら簡単ですね >>29
横からだけど、ニクロム線って何アンペアくらい見とけばいいもの? ガキの頃は豆電球のガラスをコツコツと割ってたなぁ… >>33
>>23のは単にArduinoでニクロム線をON/OFFするためのリレー
これとは別にArduinoが必要、そのArduinoでタイミングをプログラミングする >>30
手元にある0.2ミリのニクロム線15cmをマッチの頭に4回巻いてDC12Vに繋いだら一瞬で着火した
導火線なら数秒かかるはず 実験で求めてみて
15cmで4.3Ωなので2.8A流れたのかと思う >>33
プログラムで指定できますよ。
リレーモジュールだからマイコンからの入力でON/OFF、というか切り替えです。 >>35
わざわざ実験までしてくれてありがとう。
>>23の表の値ともほぼほぼ合ってますね。 >>39
>リレーの電源はArduinoからとらないほうがよさそう
ダメ絶対! 別に悪くないだろう 保護ダイオードがパンクしない限りOK あいや、間違えた。
リレーの信号用の電源はArduinoと同レベルじゃないとダメだ。 液晶の明るさ調節のためにフォトトランジスタ(NJL7502L)を使いたいです
抵抗はとりあえず10kΩを付けました
室内の明るさだと0.00にしかならずスマホのライトを近づけたら4095.00を上限に数値が変化します
室内の明るさでも数値を取るにはどうしたらいいですか?
const int INPUT_PIN = 35;
void setup() {
pinMode(INPUT_PIN, INPUT);
}
void loop() {
float analogValue = analogRead(INPUT_PIN);
Serial.println(analogValue);
delay(1000);
} 1.抵抗値を変えてみる
2.アナログリファレンス電圧を外部から与えてsetup()の中で
analogReference(EXTERNAL);を実行する
3.フォトトランジスタの出力をオペアンプなどで増幅してからArduinoに入力する
ってところでどう? >>46
どうもありがとうございます
試しに1を試してみました
1本だけ100kΩの抵抗があったのでこれに差し替えました
蛍光灯を付けた室内だと400近くになりました
蛍光灯を消すと0になりました
今日は雨ですが蛍光灯を消しても真っ暗では無いので0よりは大きな数値にしたいです >>47
100kひとつと10kを10本で200kにしてみましたが蛍光灯を消すとやっぱり0になりました >>48
10kΩでやってみたけど
生活できる明るさの室内ではペンのキャップでも被せない限りゼロにはならない
スマホのライトでは1023まで行く
近づけたり遠ざけたりで値は30〜1023の範囲
ところで、使ってるArduinoは何? >>50
ESP32です
これのADCは12bitです
あとでUnoで試してみます >>51
なるほど
では回路図を見せて
電圧もわかるように >>51
Unoは0-5Vの10bit
ESP32は0-1Vの12bitだから
ESPのほうが細かな値が拾えるはずなんだけど回路がおかしいんじゃね >>45
NLJ7502Lのデータシートによるとだいたい0.5mA@1000Luxくらいだから、3kΩで1.5Vくらいになる
むしろ10kΩって大きすぎない?
ダイナミックレンジを広くとりたいならオペアンプで対数増幅回路を挟むのも一つの手段 上のレスと被るが、
ヒトの明るさの感じ方はその対数に比例すると言われるから、対数アンプを入れるのも良いかと。 Unoで試すと確かに手のひらて完全に覆わない限り0にはならなかったです
回路はこのサイトの通りです
https://blog.goo.ne.jp/sircs-gid/e/1fb2f6e382a19a9d342561206c4bfeb4
この回路図のUCOM AINの部分をUnoやESPのアナログ入力にに置き換えただけです
ESPの時は3.3V、Unoの時は5Vで試しました
以下Unoで試しました
10kΩを並列に2個繋いだ場合は蛍光灯だと0でした
スマホのライトを当てると900ちょいくらい >>58
なぜ人の言うこと聞かないかな、あんたは
これ以上何か聞きたいなら
自分のやってる接続の省略無しの回路図か
最低でもつないでるところの写真貼って 最悪の場合、素子が壊れてることも頭の片隅に置いといて >>54
ESP32のADCって3.3Vまで測れないの? >>58
貴方の知りたいことの主眼はArduinoよりフォトトランジスタのセンサ回路のようなので、こちら↓で聞いたほうがよいかと
初心者質問スレ 149
https://rio2016.5ch.net/test/read.cgi/denki/1633034767/ >>62
SP32のADCモジュールは0〜1 Vの間でAD変換を行っています。
11db(約1/3.6倍)の減衰器を設定することで、0〜3.6 Vの間のAD変換ができるようになります。
その場合130mV以下は0となるようです。非線形 >>64
ESP8266で持った「1Vまで」という固定観念があって
ESP系では外付けADCチップ使えばいいやと思ってたからまったく不勉強だったけど
あらためてちょっと調べた結果ではそれがビンゴのようですね フォトトランジスタは温度依存性のあるHFEでも電流が変化するし、
どちらかといえば、ON/OFF向けだと思う。
フォトダイオード+オペアンプの方が扱いやすいのでは。 PSoCだとプログラマブルゲインアンプも入ったり、色々と細工できて便利なんだけどね。 200円であの性能だからそりゃどっかに弱点はあるよw ADCを売りにしてるわけじゃない
オマケでついてるってことさ >>70
君が何も知らないだけ。
ADCに特化したICがいくらもあるのに、
電源管理用のおまけに何を期待してるのかと笑われるよ。 >>71,72
「中華人民共和国マンセww」ってか? >>68
M5STACKのADCってダメなの?
arduinoのがいい? >「中華人民共和国マンセww」ってか?
ESP32のADCの話をそう絡めてくるか。
先行者を笑っていたころから変わってない人は相変わらずいるな。 嘘で固めた先行者と
ちゃんと性能の出てるESP32を同列で並べるのはどうかと思う 念のために書いておくけど、同列で並べているのは
>「中華人民共和国マンセww」ってか?
という態度だよ。 >>73
ん?
用途に応じて適材適所なチップを選ぶ話だけど
どういう発想で中華人民共和国が出てくる?
常に頭から離れないのか、よっぽど好きなんだな。 え?
クラスのみんな中華人民共和国好きだよ
あなたきらいなの? チャーハン、餃子、マーボ豆腐、エビチリ、油淋鶏、チンジャオ、ホイコーロー カニの卵とじ甘酢あん掛け丼?
そんなものはないあるよ 酢豚、シュウマイ、八宝菜、中華ちまき、春巻き、ピータン、杏仁豆腐 UARTの配線をポリウレタン線、それもRXTXが重なる様な引き回しをした場合115.2kbpsも
怪しくなるんですかね? その位の速度なら問題無い? #includeで<>と""ってなにが違うんですか? <>は環境変数とかで指定されてる何処かのパスで
""はinoと同じフォルダとかのユーザーパスと言う扱いじゃなかったっけ >>84
こんな >>73 レスでも釣られるヤツが結構いるんだな? >>91
神奈川にはほとんどないけど
大阪ってたこ焼きと串カツばっかり食ってるの? >>86
距離によるけれど密に接触すると良くないのは確か。
以前に測ったけど、0.2mmのホルマル線を軽く撚ったもので1mあたり100pF近い値になった。
10pで10pF近い。C-MOSの入力は10pF以下が多いので、けっこう影響を受ける。
バス線をホルマル線で配線をするとき、まっすぐなままではなく、わざとくねくねするように
加工しておいたものを使って、クロストークを避けたことがあります。 ホルマール線(PVF)は現在どこにも販売されておらず、
エナメル線と呼べるものはポリウレタン線(UEW)かポリエステル線(PEW)の2種類しかない すみません。ちゃんと区別してませんでした。 >>93で書いたのはすべてUEW線です。 >>95
それ気になる
LANケーブルだとたくさん線入ってるからね >>86
一般論としてはTxとRxが交差するような配線は避けるべき
できればTxとRxの間にGNDを挟んでおきたい
>>95
例えば100BASE-TXだと中の信号はエラー訂正コード込みで125Mbpsで送受信してるけど、差動信号を送る専用のドライバIC(PHY)を使ってる
同じケーブルでも差動信号じゃないUARTでどこまでいけるかはわからんね、確かに気になる ESP32用のグラフィックスライブラリのFabGLのサンプルで
IBM PCのエミュレータが使えるね
FabGLは主にESP32でVGA出力ができたりILI9341、SSD1306などの液晶が使えるらしい
IBM PCのエミュレーションができてMS-DOSやWindows 3.1、CP/M-86が使える
FabGLライブラリをArduino IDEにインストールすると
スケッチ例にFabGLの項目が出てきてVGAの項目の中にPCEmulatorが出てくる
現在の最新のFabGLのバージョンは1.04で
ESP32のArduino Coreのバージョンが1.04ではビルドに失敗したが
ESP32のArduino Coreのバージョンを1.06にアップデートしたらビルド成功
PCEmulatorのビルドにはArduino IDEのツールでESP32の設定項目の
Partition Schemeをhuge Appにする必要があります
また、PSRAM付きのESP32じゃないとPCEmulatorは使えないようです
ここのページにいろいろやってる人がいるね
ttps://ht-deko.com/arduino/fabgl.html?20210901_01 >>95
LANケーブルは差動で送ってるしね。>>86はボード内での配線の話だろうけど、
機器同士の何10mとかの長い接続なら、差動、ツイストペアはいい選択だと思う。 たくさん在庫余ってるから私はUTPかSTPケーブル多用するね
もともとLAN屋でもあるし センサーとマイコン間を1m離したくて100均のUSBケーブルを使ってるのI2C接続してる
センサーの電源を切って取り外してもそのUSBケーブルに別のUSBケーブルの被覆が触れるとセンサーが誤作動する事に気がついた フラットタイプのLANケーブルはノイズに弱い?
SeeedのGroveケーブルとどっちがマシかな マンションのインターホン
親機から2本の線だけ送り接続で子機255台つながる
親機=子機=子機=子機
みたいな感じ
多分I2Cだと思うけど
1番遠いところで電線トータルで最大1キロメートルある
どうなってんだろね >>106
それだけ距離があるとGND電位が各ノードごとにズレる可能性があるから、おそらく物理層は何らかの差動信号で通信してるんじゃないかな
場合によってはDCカットまでしてるかもしれん あと、途中のノードでは受けた信号をスルーせずにデイジーチェインみたいにドライバを通して中継してると思う
そうすれば各ノード間は数十mはいけるんじゃないかな 距離ならRS485だけど最大32だからhub的なものがあるのかもね 単にリピーターが内蔵されてんじゃね?
NTTデータのビルが安物リピーターの問題で、20Fより高層フロアは、
極端にネットスピードが落ちるという、現象に悩まされてたよw
スマホテザリングの方が速いってね。 >>106
子機つけすぎだろ。
玄関前にそんなスペースあんのかよ。 オートロックからの配線じゃないの?
カメラ無し、呼び鈴+音声通話だったら2線とかじゃないの?
火災報知機と連動してる奴もあったりするから、
実質2本線は皆無かもしれないけど、原理的には可能かどうかって話しでは?
調べたら。。。
位置表示(!?)無しなら、親<->子 は、2本みたいだ。距離も100mまで可能だそうだよ。
http://soshiyaru.com/sekou/WQN3109W.pdf
定期的に出てくる畑の監視質問、うまくいけばこれで解決できるのでは? 質問させていただきます。
最近、スペースの関係で、Arduino Pro mini の「USB to Serial Module」接続用
L型ピンヘッダーを下向きにする事にしました。
旧L型ピンヘッダーの取り外しに苦労しましたが、何とか出来ました。
L型ピンヘッダーを取付前にスルーホール用テストワイヤで動作Testしました。
何故かプログラムが動作しません。
そこで、AVRライタ(FT232RL)でデバイス情報の確認しました。
当然ですが、コミニケーションエラーでマイコンと通信が出来ません。
USBシリアルの端子 -> GND・GND・VCC・TXO・RXI・DTR 取り外しの際スルーホールを
損傷の可能性があるかと調べたら、RXIのスルーホールが抜けていましたので、パター配線
まで削り、すすメッキ線を半田付けしましたが、結果的にプログラムは動作しませんし、同じく
AVRライタでもコミニケーションエラーのままです。
こんなケースで考えられる事がありましたアドバイス願います。 >>106
どっちを親機と呼ぶかは別として、
その方式はセキュリティ的にどうなんだろう。タッピングすれば各戸の来訪者筒抜け? 外したヘッダーを元通りの向きにつないで復活するか試した? >>117
要領を得ない説明だなあw
写真貼ってみ
ちなみに、スルーホールにダメージ行くような作業の後
他にも影響が無いとは言い切れないと思う
つまり、目視できる範囲以外にも損傷ありと思う方がいい >>117
FT232RLの電圧切り換えジャンパピンは確認した?
あと、書き込みできないときのおまじない的な↓もやってみる
Arduino Pro Mini側のリセットボタンを押しながら、
Arduino IDEのアップロードを実行し、
FTDI-USB変換ボードのTXが光った瞬間に、
Arduino Pro Mini側のリセットボタンを離す。 >>119
> 外したヘッダーを元通りの向きにつないで復活するか試した?
ノーです。
外し方がまずかったので6ヶ所のスルーホールが損傷を受けました。
スルーホール用テストワイヤで試して、RXIのスルーホールが抜けていましたので、
画像の通り、すすメッキ線をパターンに半田付けしました。
>>120
https://i.imgur.com/QIl54Xd.jpg
> ちなみに、スルーホールにダメージ行くような作業の後
> 他にも影響が無いとは言い切れないと思う
> つまり、目視できる範囲以外にも損傷ありと思う方がいい
裏から高耐熱テープを四方に貼り、フラックス+低温ハンダで取り外しをしたんですが、
6×1のL型ピンヘッダは厄介で、最後はピンヘッダーを壊しながら外しました。
但し、その他の基板に損傷は無いと思います。
>>121
>とりあえず導通チェック
導通チェックしました。
GND・GND・VCC・TXO・RXI <- この5か所は本体サイドに端子があるので導通チェック済
DTRはC2のコンデンサと導通チェック済
LEDは問題無く点灯しています。 >>123
載ってるICやその他のパーツが死んだんでしょ
結果として無理無理外して壊した以上、テープや低温ハンダは何の役にも立ってないわけ
壊さずにすんなり外せたとしても、ダメージいったかもなと心配するのが普通 >>123
実質的に力ずくで外しちゃったわけか
そうなると電気的っていうより機械的な破壊(スルーホールで繋がっていた配線が破断したとか、ICのはんだにクラックが入ったとか)を受けている可能性があるから、復活は期待しないほうがいいかも >>121-122n
>>124-125n
皆さま有難う御座いました。
今は、6ヶ所を切断分離してからて低温ハンダを使えば良かったと思っています。
Yahooショッピングで540円で購入したPro miniでしたので諦めます。
お騒がせ致しました。 低温ハンダなんて要らん。
いっぺんに6本外そうとするから難しい。
ニッパで短く切り落としてから一本づつ温めながら引っこ抜けば、
基板側を痛めるようなことにはならんかったよ。 プラスチックの帯の部分を取り除いてからハンダゴテでハンダを溶かして軽く降れば勝手にピンが落ちてくれるよ C20が抵抗のものとコンデンサの物があるのですが違っても動くものなんですか? >>116
マッチ棒みたいなトワイライトだっけ?
あれどうなん シリアルコンバーターの方の水晶に付いてるやつね。中華だとCH340系かな
抵抗の方は水晶の電流制限抵抗だと思うけど、コンデンサの方はなんだろね
不具合があるとしたらPCとのシリアル通信に問題が出ると思うけど、
使ってる水晶・シリアルコンバーターICの関係でコンデンサと抵抗に別れてたのかな C20、C21が水晶のコンデンサで、C16がAREFのコンデンサだから
回路図的には抵抗だとマズイね
間違っててもとりあえず動いてるからそのまま売ってるとかかなw >>136
アートワーク配線をミスったまま作ってそのまま出荷したとか、さすがにないやろw
個人的にはXTALに対してC20とC21の配置が非対称になってるから、本当のC20は抵抗の隣のセラコンで、シルクの文字の配置なんじゃないのかな >>135
そう、XTALのところに抵抗使ってる例は見たことないな ×ATMmega
○ATMega
寝る。明日ATM行こう アドバイスいただいてからも弄りまくってまして、
各パーツの損傷を拡大しながら確認しました。
結果、クリスタルを取替えたら、AVRライタ(FT232RL)が動作するようになりました。
これでOKと思い、USBシリアルの端子に接続したら何故かプログラムが動作しない?
最終手段で、USBシリアル端子はDTRのみ使用し、 GND・GND・VCC・TXO・RXIは本体サイドから
分岐して電源ON・・・何故か動作しない?
今日は疲れたのでここまで・・・ もっと短く書くよう心がけよう
蛇足はないか
コーディングも短めにね 正直復活するとは思わないけど、貴重な故障解析の機会だから、頑張ってくれ フラッシュメモリのサイズについて質問です
M5Stack Grayの場合
最大1310720バイトのフラッシュメモリのうち、スケッチが1303606バイト(99%)を使っています。
最大327680バイトのRAMのうち、グローバル変数が41216バイト(12%)を使っていて、ローカル変数で286464バイト使うことができます。
M5Stack Core2の場合
最大6553600バイトのフラッシュメモリのうち、スケッチが1383059バイト(21%)を使っています。
最大4521984バイトのRAMのうち、グローバル変数が42088バイト(0%)を使っていて、ローカル変数で4479896バイト使うことができます。
コンパイルした時は上記のように表示されますが、ここでいうフラッシュメモリとは何のメモリを指しているんでしょうか?
M5Stack Grayだとフラッシュメモリは16MBのはずなんですが、なぜ1.31072MBになるんですか?
ここの設定を変更するにはどうしたらいいですか? >>145
M5Stackのボード選択に関してはここに詳しく書かれてるね
ちなみにフラッシュはプログラムの格納以外にも
フラッシュをファイルシステムのように使えるSPIFFSなどにも使われる
【M5Stack】ビルド時のボード・オプションの選び方(ArduinoIDE,VSCode+PIO)
ttps://raspberrypi.mongonta.com/m5stack-howto-select-board/ >>146
どうもありがとうございます
おかげでフラッシュメモリにいくつか役割が割り当てられていることが分かりました
通常はapp0にスケッチが書き込まれるようです
app1やspiffsの利用方法調べてみます
https://lang-ship.com/reference/unofficial/M5StickC/Storage/Partition/ >>139
赤いほうはC20もC21も片側がGndパターンに接続されているけど青いほうはC20の両端はどっちもGndに接続されてなさそうに見える
こんな感じか?
https://i.imgur.com/I3k7rBP.jpg
https://i.imgur.com/vADTLjK.jpg
青いほうのC20(4.7kの抵抗と思われる)はどこに接続されているかわからないけど、もしかしてICのXOはコンデンサなくても発振するとか…? >>146
M5Stackではメニューのツールの中のESP32のパラメータを競ってする部分で
Flash Sizeを指定する項目ないの?
ESP32 Dev ModuleならFlash Sizeを4MB、8MB、2MB、16MBの中から選択できるよ? スレチと怒らないで <m(__)m>
最近、配線にポリウレタン銅線(UEW)を使い始めましたが、
はんだ小手(450℃前後)で被覆を剥がすのに苦労してますが、
ロックペイント社製 剥離剤「ロックリムーバー」が使えると分かりました。
お使いの方にお願いです。
最小単位が4kgなので、少量小分けしてヤフオク・メルカリに出品していただけないでしょうか?
マルチになることお許し願います。 >>150
単純に、出品する手間をなぜあなた自身が負わないんだろう?
ってのが疑問なんだけど、その点どう思う?
ちなみに、絵の断面の銅が露出してる部分に融けたハンダを当てるといいよ。
うちのは300度設定で溶けるけど、正確にはUEWじゃなくLSUEWと言うのかな >>150
お前が小分けして出品しろ
誰か引き取ってくれる奴がいるかもな >>154
UEWは3種類あるらしいよ、第2種というのが300度で溶けるやつ
切り口に当てるのはポイントだよな 自分で4L缶を購入して出品しても良いけど
その場合は、10人前後の購入者が欲しい
既に購入済みの方が居ないかと思い提案してみました。 >>158
100円ライターの温度は約800〜1000℃。
UEWの被覆剥離温度は380℃以上なので理論上は可能ですね
今度試してみます。 そもそも、アルカリ性の溶剤で溶かして後々腐食とかしないのかねえ?
取説には水洗いしろとか別の溶剤で拭き取れとか書いてるけど。
コテの高温で飛ぶから大丈夫とかなの? >>150
そもそもの話になってしまうし、高くなるけど、10色のジュンフロンETFE線AWG30はどうかな。
ピン番号やビット番号などで色分けしておくと、配線後のチェックが楽になるよ。
見た目もカラフルでキレイだしw
https://shop.oyaide.com/products/etfe0-26mm10.html https://i.imgur.com/mb5zMDp.png
画伯で申し訳ないんですが、これはデータシートとは違う、パケット長が8バイトに拡張された
Ver3な感じなんでしょうかね https://we-spirits.jp/blog-entry-900.html
ロックリムーバー(強力型)使用方法抜粋
※ 取り分ける容器はホーロー製、ポリエチレン製またはステンレス製を使用してください。
フリマでの小分け販売は上記の問題で、高くなります。
50ml(100円前後)に小分けした場合、送料と容器だけで7〜8倍になってしまう・・・ >>164
たしかに表のようにlength=8、version=3に見えますね。 >>165
そんな大そうな薬品とか要らんよ、あほらしい。
コテの先に多めのはんだ載せて、その中にUEWの先っちょを突っ込むんだ。
で、煙が出てくるまでちょっと長めに待てば、線の先が綺麗にはんだメッキされる
FX600の温度設定は370℃でやってみろ。
もたもたやってるとフラックスが飛んじゃうしはんだが酸化してなじまなくなるから
一回ごとにはんだは付け直す、つけたらすぐ線を突っ込むんだぞ。 ロックリムーバー って怖そう。
UEW線の端っこをたくさん処理するのに、はんだ付け作業中に置いておくような
ものでもないような。 話全然ついていけてないけど先っちょを被覆ごとハンダにダイレクトインってこと? >>169
小さい回路でも何十点もあるUEW線の端っこだと、いちいちカッターだとしんどい、ってことはないのかな?
たまに電磁石をつくるとき、みたいなのなら別だけど。
>>170
そうだよ。 え?ポリウレタン銅線(UEW)のメリットは
絶縁皮膜を剥離することなく、380℃で直接はんだ付けができる
ってとこのはずだけど?
被覆を剥がそうとしてるのがおかしいんじゃないか? 直接被覆ごとハンダ付けできるそんな電線があるなんて全然知らなかった
弱電線てみんな被覆薄いから全部それでいいような気がしてきた >>172
使用してみると解かるが、直接は無理で、あらかじめ予備ハンダをする
>>167さんのように予備ハンダしないとハンダが付かない
切実に半田ポットが欲しいと思いましたが高価すぎ
そこで、ロックリムーバーに辿り着いた訳ですが、これかなり危険ですよ
https://www.rockpaint.co.jp/car/data/tds/remover_tds.pdf 直接はムリなのか・・・
被覆を向く手間が無くなり便利!みたいに書かれてたから
上手くコツつかめば使いやすいんだろうな 胆管がんの原因となるジクロロメタンが80%か
よく使う気になるな 冷蔵庫の冷えが悪くなったので取説に従い掃除をした
で、庫内の温度は通常は2〜6℃ほど、規定では0〜10℃らしい
実際に測ってみようと思い、ボードと温湿度センサ、モバイルバッテを
内部最上段の棚に置いてモニタリングしてみた
湿度は若干高いが温度は正常、wifiも切断なく届いているようだし成功だ!
で、これ庫外に出したら結露しちゃうよね? 助けてください・・・ >>178
文字化け失礼
庫内の温度は通常は2-6℃ほど、
規定では0-10℃らしい >>178
冷蔵庫内で乾燥剤入れた密閉容器にいれてふたしてから外へ
室温に落ち着てからふたを開ける 太さ知らないけどマーベルのワイヤーストリッパーなら1本2秒くらいで剥けるよ >>180
それだ!
乾燥剤てんこ盛りのタッパーでやります
ついでに温度もモニターして室温に戻るまで
監視してフタを開けようか
ありがとうございました! >>176
業務用は別として、私のイメージは予備ハンダ用です。
国産だと10,000円以上だったので諦めました。
今見たらアマゾンで2,667円で売ってる
www.○●zon.co.jp/dp/B082SWH4N3
危険度を考えてらロックリムーバーより半田ポットの方が
良いかも
>>181
剥がさないとハンダが付かない マーベルは0.5mmからだった
もっと細いよね
ニッパーで剥いちゃえば?
なんでハンダだめなんだろね
やったことないけど エスコ0.2mmからだから使えそうだよ
ワイヤーストリッパー うーん
剥く手間が省ける便利な電線みたいな文句を見るけど、
より線でもハンダ乗せてからやるし、その時に被覆も
ジュって溶かして手数が減るってものではないの? >>184
次からziprokにいれた状態で冷蔵庫に入れよう >>184
楽しそう。
もしよかったら、全体の写真見せて。 >>189
ですよね・・
手頃なタッパーが無かったので、
もう生で入れちゃえってなりました・・・
ドデカいジップロックはあるので出す時は入れてみます >>193
ありがとう。
必要最低限の簡潔さが小気味いい。
それゆえに得られる機動性の高さは見習いたいわ。 >>194
ありがとうございます
工作は小一時間程度で済みました このタイラップベース?みたいなのいいね。
細かいパーツの固定に丁度良さそう。 ESP8266なので、上の人はたぶんESP32だから、その差かもしれないけど、
うちの冷蔵庫の中からはWi-Fi届かないみたいだ。
外に出してすぐ横の食器棚に置いたら届いた。
冷蔵庫の中からWi-Fi電波を届かせる方法何か無いですか? 電波は無理だろ、密閉された金属の箱なんだから。
扉パッキンのすぐそばに置けば漏れ出てくるかもしれんね。
あるいはシリアルをUEWで引っ張って扉に挟めばいんじゃね >>64
ESP32クソにも程がある
図体デカイだけのゴミ >>198
AWG30とか28使えないとつかいもにおならないお >>199
でも>>178は電波が届いたと言ってる。
だから聞いてる。
あなたは、何を根拠に言ってるの?自分の経験?>>178が嘘だと? 1. 他人の言うことを聞く人間
2. 身内・家族の言うことを聞く人間
3. 誰の言うことも聞かない人間
3の人でしょ 根拠を基に語る人
根拠もなく語る人
の2種類でしょ 冷蔵庫は行けるでしょう。
電子レンジは電磁波遮断でムリでしょう。
スノーデンはホテルに潜伏してる時に、来客には
スマホを電源切って電子レンジの中に置くように指示してた。 スレの流れが早いな
>>138
> そう、XTALのところに抵抗使ってる例は見たことないな
1MΩの事か?ならバイアス抵抗だよ。
74HCU04を反転アンプとして使い、発振回路を組むときの定石ね。 なに訳の分からんこと言ってんだ。
金属の箱の中と外で電波通じるわけないやろが。
そりゃあ多少は漏れるし、たまにはコミュニケーション出来ちゃうこともあるだろうが、
それで話が済むならじゃあどうぞというだけやわ。 >>209
磁石がくっつくように意図的に鉄板仕込んでる場合もあるぞ >>208
アースされた金属箱でも4Gやsigfoxとかつながったけどガバガバの箱だからつながったのかな >>207
しかもCH340Gの話だし、ボケ過ぎにも程が有るわ >>214
CH340Gの中身が似たような発振回路なんだよ ポリウレタン銅線はFX600の温度を420度にしてこて先に半田乗せてそこに銅線を突っ込んだらシュッっと煙が出て多分被覆が剥がれてくれる
で、思ったんだけど、配線を手で何度も触ったり擦ったりエタノールで基盤洗っても被覆は剥がれない?
昔のエナメル線と違って見た目じゃ被覆が分からないから気になった。 >>192
この2枚目のようにクロスしてるところの被覆が剥がれてショートしないから心配してる arduino dueで交流出力ってできないですかね?
単なる興味本位ですが低電圧の交流を作りたいんですけどどういうアプローチがいいか思いつかなくて。 >>216
ATmega328のほうのXTALには並列に1Mついてるな
勘違いかもしれんしそこまで罵倒しなくてもいいんじゃね? >>219
単相交流という前提で書くけど、
モータードライバーIC(Hブリッジ)をつないでやるのが簡単じゃないかな
正弦波作るのはPWMの応用でできる(詳細はググってくれ)から、そんなに難しくないはず LCDは交流で表示させてる
LiquidCrystalライブラリーのソースを見る >>216
安定対策として抵抗が入ってる現実が受け入れられなくて吼えてんのかガイジ >>216
中身の話なのになんで外身語ってんだよ(笑) ArduinoUNOのことについて質問させてください
先日、ボードやいろいろなモジュールがセットになっている学習キットで
電子工作を学んでみたいとおもい購入しました
どうしても行き詰ってしまい、解決法のヒントでもいただけないかとおもい質問しました
○やってみたいこと
4桁の7セグLED/シフトレジスタ/IR受信モジュール/ブザーを使用
7セグに周波数を表示、リモコンで数字を切り替えながらその周波数のブザーを鳴らすという流れを考えていました。
○現状
4桁の7セグ表示はできるようになり、リモコンとブザーを組み合わせようというところで問題が発生しました。
最初は7セグ表示の更新にMSTimer2,OneTimerなどを使ってみたのですが、後からIRモジュールやブザーと
競合してうまく動かないことがあるという記事を読んだので
millis(),micros()で取得したミリ/マイクロ秒を利用して時間経過でIRモジュールの受信状況の確認と7セグの更新それぞれの
関数を呼び出すコードをかいてみました
ボードに転送して実行してみると、7セグは表示されるのですがリモコンからの受信がうまくいきませんでした
受信時に光るLEDも光らない状態です
IRモジュールの故障を疑い、同じコードの7セグ更新関数を呼び出す部分をコメントアウトして再実行したところ
IRモジュールは正常に機能しているように見えました。
その後、7セグ更新の関数を呼び出す間隔を広げていったところIRモジュールが反応する間隔をみつけたのですが
そこまで広げてしまうと7セグがちらつききれいに表示されなくなってしまいます。
このような場合はどのような解決策があるのでしょうか?
長文で失礼いたします、どなたかよろしくお願いいたします >>226
シフトレジスタと4桁の7セグLEDで常に表示更新やってるとIR受信できないと思うので
TM1637やMAX7219の7セグLEDモジュールに変更して1度データを流せばずっとそれを表示する
負荷の低いものに変えればいいんじゃないかな
もっと割り込みとか勉強すればIR受信とLED更新を平行するようなものも書けると思う >>226
7セグ更新の関数は、たまに呼ぶのではなく、
こまめに呼ぶが、1回呼ばれたときにやる処理時間をなるべく短くする
具体的には
・8888 を表示するためには7セグメントx4を1回の呼び出しで全部光らせるのではなく、28回の呼び出しを必要なようにして1つずつ順番に光らせる
・1回の呼び出しでは1つのLEDをほんのちょっと光らせてすぐ消してすぐ戻るようにする ちょっと光らせてすぐ消してすぐ戻るより
光らせたまま戻ればよくね
IR受信あったら消す マルチタスクにして、タスク別に処理を分離して記述すれば
(たとえば7セグ表示、リモコン受信、ブザー音階などに分けて)
簡単に実現出来るよ。
・・・なんてArduinoスレで言っても意味無いか 時計を作ってみてる
1. setupでNTPの設定
2. loopの先頭で現在のmillis()をclockStartTime変数に入れる
3. ローカルタイムから取得した時刻の情報を各変数に入れる
4. 時刻をLEDに表示する
5. delay(500 - (millis() - clockStartTime));
6. 時と分の間のコロンを非表示にする
7. delay(1000 - (millis() - clockStartTime));
8. loop終わり。先頭に戻る。
これだと、毎秒0秒ピッタリにloopが始まる訳じゃないから最大1秒近くNTPとずれてました
毎秒ピッタリにするアドバイスお願いします delay一発で500だの1000だの待つからそうなる。
たとえばdelayは使わず、高速にループさせて、条件を満たしたときだけ
仕事をする、満たしてなければスルー、みたいな書き方にしてみ。 >>232
ありがとうございます
delay使わないやり方だと、秒が前回と変わっていればLEDに表示させるって方法だとコロンの点滅どうやるのか分からなくて…
ローカルタイムから0秒以下って取り出せるんでしょうかね
考えてみます こうですかね?
・loop開始
・前回の秒(previewSecond)から秒が変わった時のmillisをcurrentMillisに入れる
・LEDで時刻とコンマを表示する
・loop終わり→loop開始→
・loopの中でcurrentMillisから500ミリ秒過ぎたらLEDのコンマを非表示する
・現在の秒をpreviewSecondにいれる
・loop終わり→loop開始→ ・現在の秒をpreviewSecondにいれる
これだとまたずれますね int previewSecond = 0;
int currentMillis;
void loop();
if (ss != previewSecond) {
currentMillis = millis();
LEDで時刻とコンマを表示する;
if ((millis() >= currentMillis + 500)) {
コンマを非表示;
previewSecond = ss;
}
}
大丈夫かな? arduinoと7segの間にラッチICを挟めば表示切替のタイムラグを削減できるんじゃね? >>234
どうでも良いけどコンマじゃなくてコロンちゃうの? >>238
たぶんシリアルにHC595つかってるんだろうけど8bitのラッチは入ってる
それを切り替えて4桁送ってるから保持が必要になってる
保持するならHC595が4つ必要、TM1637やMAX7219ならIC1個で済む話 >>231
1.NTPから時刻を得る
2.秒の桁が変わるまで待ってLocalTimeを設定
これだとネットワーク遅延60ms-180msくらい遅れるからそれを加味して1秒先の時刻を設定すればNHKの時報とぴったり合う NHKの時報ってまだあるの?
遅延があるから地デジ化と共に辞めたんじゃなかったか >>242
ラジオ(除radiko)はまだあったはず >>234
シンプルにこれでどう?
・loop開始
・前回の秒(previewSecond)から秒が変わったら{
LEDで時刻とコンマを表示する
500ミリ秒待つ
コンマを非表示にする
} レスありがとうございます
>>237
詳しく知りたいです
>>238, 240, 241
表示のタイムラグも改善したいけど、その前に秒の更新のタイミングとループの間隔を一定にしたくて
>>245
うまくいったかもと思いましたが、
if previewSecond)から秒が変わったら{
の中にとりあえずシリアルで「次の秒」と表示させてみたら0.002秒くらいの速さで大量に「次の秒」が出力されてしばらくすると強制再起動になり失敗でした >>245
500m秒待つdelayの位置間違えたから直したらうまくいきました >>246
>秒の更新のタイミングとループの間隔を一定にしたくて
loop内で処理せずにTimerの定期割り込みでやれば間隔は一定になると思う >>248
Timer全く分からないので調べてみます
ヒントありがとうございます >>246
失礼
一つ忘れてた
これでどうだろうか
・loop開始
・前回の秒(previewSecond)から秒が変わったら{
LEDで時刻とコンマを表示する
500ミリ秒待つ
コンマを非表示にする
現在の秒をpreviewSecondにいれる
} >>246
タイマー割り込みは使わないルールなのか? 関数の中でショートカットでコメントアウトすると//が一文字目書かれるからインデントがおかしくなるんだけど現在のインデントに書かれる設定ってあります?
スペース幅は2文字に設定してあります
>>251
どうもです
先程そのようにやることでリセットは治りました
タイマーとてもおもしろそうです
とりあえず時刻とは関係なしに0.5秒のLチカを試してみました
タイマーはsetupに書くそうなので、現在の時刻を取得してからタイマーを使う方法はまだ分かっていません >>252
タイマー知らなかったので >>248で教えてもらったので始めている所です 今のところ
int previewSec = 0;
setupの中で
・NTPから時刻を取得しローカルタイムに入れる
loopの中で
・ローカルタイムの秒をssに秒を入れる
・ssがpreviewSecと変わったら表示
・上の処理の直前から0.5秒過ぎたらコロンを消す
・ssをpreviewSecに入れる >>255
何度もすみません
>上の処理の直前から0.5秒過ぎたらコロンを消す
これをやろうとしてリセットになったので、
0.5秒(ssを取得した時のmilisをcurrentMillisに入れてそれからの0.5秒)delayしてからコロンを消す
に変更したこと忘れてました
これなら動きました 起動時に1回だけしかタイマー割り込みで定期的にNTPへ時刻を取りに行けばいいだけ
もう1個のタイマーでコロンの点滅、時刻のカウントと表示をやる
NTPへ行く合間程度の時間なら内蔵タイマーの精度で十分 1行目加筆しててミスって送信しちゃった。
起動時に1回だけしかNTPへ行かない仕様なの?
タイマー割り込みで定期的にNTPへ時刻を取りに行けばいいだけだと思うけど。
もう1個のタイマーでコロンの点滅、時刻のカウントと表示をやればいい。
NTPへ行く合間程度の時間なら内蔵タイマーの精度で十分だと思う。 millis()%1000が500未満かどうかでコロン点灯消灯を判別
millis()/1000が前回と変わってたら時計数値更新でよかろうに
タイマーとかおおげさすぎん? もしくは前回の秒更新時のmillisをprevMillisとでも保存しておいて
millis()-prevMillis >500なら消すとかね
タイマーでもいいけど
同時に他のことやりたくなったときの為に
delay系は頼らないほうがいいよ >>259
ループの実行間隔を一定にしたいというリクエストがあって、delayでうまく行ってないっぽかったのでタイマーを提案した
ハードに実装されている機能のはずだし、別に大袈裟とは思ってない 時計と同期とらずに点滅させたいだけならタイマーでいいけど
時計の秒更新という別のタイミングと同期させたいならタイマーにしても意味がない(タイマーでもできるがそもそもloop内でやればいい) タイマー割り込みの精度を信用するなら、初回さえ秒の切り替わりを取得出来れば後は切り替わりのチェックは不要になる。 NTPに毎秒アクセスしてくる奴なんてサーバーからすれば鬱陶しい事この上ない
俺がサーバー管理者ならアク禁にするな NTPへのアクセスなんて多くても12時間に1回で十分やろ >>258
>>264
ライブラリのNTPへのアクセスのタイミングがよく分かって無いので今はsetupの中で1回configTime(なになに)とだけやっています
そのうち1日や12時間に1回アクセスできるようにしたいです
>>260
delay使わない方法身につけたいです
ところでmillis()の型ってなんですか?
以下だと「コロンを消す (0.5秒経過)」が表示されないです
//Serial.println("時刻とコロンを表示");のコメントアウトを解除すると大量に表示されます
int ss;
int previewSecond = 0;
unsigned long clockStartTime;
void clockTask3() {
getLocalTime(&timeInfo);
ss = timeInfo.tm_sec;
if (ss != previewSecond) {
clockStartTime = millis();
// コロンを表示
// Serial.println("時刻とコロンを表示");
}
if (millis() >= (clockStartTime + 500)) {
// コロンを消す
Serial.println("コロンを消す (0.5秒経過)");
previewSecond = ss;
}
} >>261
delay使わない方法身につけたらタイマーに取り掛かりたいです delayを使ったこっちだとちゃんと動いてました
void clockTask1() {
getLocalTime(&timeInfo);
ss = timeInfo.tm_sec;
if (ss != previewSecond) {
clockStartTime = millis();
// 時刻とコロンを表示;
Serial.println("時刻とコロンを表示");
delay(500 - (millis() - clockStartTime));
// コロンを消す
Serial.println("コロンを消す (0.5秒経過)");
previewSecond = ss;
}
} >266
1点目
> if (ss != previewSecond) {
のif に該当したら即 previewSecond を更新しないと、毎回そっちにいっちゃうのでダメです。
該当したらすぐ previewSecond = ss; してください。
2点目
毎回serial.println されるのはよくないので
boolean colon_view = true; みたいなのを作っておいて
1つめのif では true にして、2つめのif では false にする。
colon_viewが trueなのに2つめのif に突入したら、 Serial.println
colon_viewが falseなのに1つめのif に突入したら、 Serial.println
のようにすれば何度も println されることはない。
あと、頻繁にこれが呼び出されるとCPU忙しすぎだから、delay(100); とかしてあげてね >>269
ありがとうございます
previewSecond = ss;の位置を前に持ってきたらちゃんと毎秒毎に出力してくれました
ただ相変わらず2つ目のifには行ってくれません
ifの書き方間違えてるのかな?
void clockTask4() {
getLocalTime(&timeInfo);
ss = timeInfo.tm_sec;
if (ss != previewSecond) {
clockStartTime = millis();
previewSecond = ss;
// 時刻とコロンを表示
Serial.println("時刻とコロンを表示");
delay(100);
}
if (millis() >= (clockStartTime + 500)) {
// コロンを消す
Serial.println("コロンを消す (0.5秒経過)");
delay(100);
}
}
1行変更するたびにコンパイルして書き込みしてるとマイコンやPCに負担かかってそうな気がするんですけどPCだけで動作確認出来るシミュレータのようなものってありますか? ようやく動いてくれました
boolean colon_view = true;
void clockTask5() {
getLocalTime(&timeInfo);
ss = timeInfo.tm_sec;
if (ss != previewSecond) {
clockStartTime = millis();
previewSecond = ss;
// 時刻とコロンを表示
Serial.println(clockStartTime);
Serial.println(millis());
Serial.println("時刻とコロンを表示");
colon_view = true;
delay(100);
}
if ((millis() >= (clockStartTime + 500)) && colon_view == true) {
// コロンを消す
Serial.println("コロンを消す (0.5秒経過)");
colon_view = false;
delay(100);
}
} ちょっと直しました
これで大丈夫ですね
void clockTask5() {
getLocalTime(&timeInfo);
ss = timeInfo.tm_sec;
if (ss != previewSecond && colon_view == true) {
clockStartTime = millis();
previewSecond = ss;
// 時刻とコロンを表示
// Serial.println(clockStartTime);
// Serial.println(millis());
Serial.println("時刻とコロンを表示");
colon_view = false;
delay(100);
}
if ((millis() >= (clockStartTime + 500)) && colon_view == false) {
// コロンを消す
Serial.println("コロンを消す (0.5秒経過)");
colon_view = true;
delay(100);
}
}
ループの先頭で毎回getLocalTime(&timeInfo);とss = timeInfo.tm_sec;をやっているので忙しくてマイコンがかわいそうなんですけどこれもなんらかの条件を付けて負担を減らすべきですか? >>266
内蔵クロックだけで秒をカウントする
もちろんこれもタイマー割り込みでやれば簡単にできる
で、どの程度経過したら誤差が許容できなくなるか見てみて
そのタイミングより短い周期でNTPにアクセスするようにすれば永久に正しい時刻を刻む時計になる
30分や1時間じゃ1秒狂わないでしょ?
タイマー割り込みが大変なことのように吹聴してる連中が湧いてて
何だか気持ち悪いわココw >>273
どうもです
getLocalTime(&timeInfo);を1日一回やったとして、ss = timeInfo.tm_sec;は毎秒毎にやっても問題無いですか?
今>>272を1〜2日動かして誤差を確認してみようとしてるので明日試してみます
>>274
定期的にNTPにアクセスする方法なんですけど、
今はsetupの中で一回configTime(JST, 0, "NTPサーバーのアドレス");やってるだけなので、数日動かした後の誤差見てみます 一般的な水晶発振子は月差で±15〜20秒くらいの誤差だから、1日1回NTPで補正かければだいたい正確と言ってよいと思う NTPの中の話をするならどのライブラリ使ってるか出しとかないと混乱のもとだぞ。どっかで書いてたっけ? >>272
この書き込みから丸1日動かし続けてみました
で、今パソコンのブラウザでNICTのJST Clockのページを開いてマイコンと見比べましたけどほぼ同じでした
ちなみにPCの時計は目に見えて遅いです
0.2秒遅れてるようです
NTPサーバーは相手に迷惑かかるかもしれないから電波時計やGPSも試してみたいです
>>277
ごめんなさい。使ってるライブラリ書いて無いです。
#include <M5Stack.h>
#include <WiFi.h>
struct tm timeInfo;
としています >>278
すみません上の行は間違いです
明日書き込むための下書きでした
今のところはずれて無さそうです
>>276
どうもです
1日一回補正する方法調べてみます >>272
動作させられたようでなにより
>ループの先頭で毎回getLocalTime(&timeInfo);とss = timeInfo.tm_sec;をやっているので忙しくてマイコンがかわいそうなんですけどこれもなんらかの条件を付けて負担を減らすべきですか?
getLocalTimeがそこまで重いとは思わないけど(configTimeじゃないから通信はしないよね?)、
無限ループを全力で回すのではなく、ちょっとくらいは待たせてあげた方が優しい仕様になるので
この関数の最後なり、loop() の最後なりで delay(10); とかしておけばいいんじゃないかな。
以下は余力があればだけど、
delay を大きくしても動作に支障がないなら、大丈夫な範囲でなるべく長めにdelayしてやるよう調整するといい。
今の書き方なら delay(100) を 400ms にして、あとは関数の最後で 10ms くらい待つ仕様でも約 500msごとの切り替え作業は誤差10ms程度でできるんじゃないかな?とかね。
1日1回configTime は、configTime したときの timeInfo.tm_mday を保存しておいて〜ってやるだけで1秒ごととやることは一緒だね。 >>278
NICTに限らないけど、毎正時(00分00秒)とかキリのよい時刻はNTPサーバーが混雑する傾向にあるから、タイミングをズラしてリクエストを送ると遅延が減るかもしれない Arduinoにハマりまくりなんだけど、Arduinoを使った仕事ってないかな?
あ、Arduinoって、商売での使用はNGだっけ? >>282
アイデア商品考えて特許とってヒットさせる。
ココナラ で arduino 教えます で登録。
看板屋に電飾制御の仕事もらう。
芸大の学生に売り込みに行く。
生業たてるのは容易じゃないと思うが、、、
ちなみに私はある分野で需要のあるものを作ってクチコミで依頼が来る。部品代プラス1万円くらい値付け。希望に合わせカスタマイズするので自分の工数まともに計算すると赤字。 >>284
仕事としてなりたってそうですごいな
なんかしようとしても、人の特許とか侵害してないだろかとか考えて出来ない 何かの求人でArduino等、マイコンでの何たら開発の
云々っての見たことあって、へぇって思ったね >>287
いえ、仕事としては全く成り立ってません。でも人の役に立ってるのは嬉しい。
本業はメカ設計。趣味で電子工作です。
ニッチだからこそのblue oceanなのでご紹介できず申し訳ない。 遠隔で機器の減衰器部分を調整するつまみの自動調整を行いたいと考えています。
機器側出力電圧部分にセンサを取り付け値が閾値以上である場合は右に30°、
以下である場合は左に30°モータを回す…といったことは可能でしょうか...?
また、調整を行った事が遠隔で分かるよう無線通信モジュールの搭載なども考えております。
もし他により良い方法などがあれば知恵をお借りしたいです。
当方初めての電子工作、プログラミングとなるためレベルの低い質問ですがよろしくお願い致します。 >>290
可能。
要求精度とつまみの回しやすさで難易度が決まる。電源どう調達できるか、周りのスペース、対象をどのくらい加工可能か、30度固定か1度刻みで調整要かとかで具体的な方法も変わる。
一番良いのは回しているつまみが可変抵抗で、それを X9C104 とかに置き換えられること。 >>290
あと、遠隔ってどのくらい遠いか、どのくらい時間がかかって良いか、失敗を許せるか 等も難易度と方式を左右する。 pcからVNCでラズパイを操作して、IDEからコンパイル → 通る
ボードへのアップロード → 数分掛かるが完了する
シリアルモニタ → Serial.printが出力されない
この症状わかる人いますか?
スケッチの書き込みもこの環境にしてから遅すぎです >>294
何が原因でどうしたら解決したか、後学のためぜひ教えていただきたい 猫を三匹買っています。
Arduinoで自動給餌やってるんですが一匹の食いしん坊が独占してしまい困ってます。
どうにかして猫を識別し、猫によって餌が出る出ないをコントロールしたいのですが何かいいアイデアはないですか? 食いしん坊猫は太ってると思われるので(エスパー)
まず、3匹いれば3つのゲートを用意し、それぞれ1匹に給餌口1つで餌を食べる習慣を付ける
次に重さで判別し、給餌口が開かないよう開閉したらいいんじゃないかな Arduinoの問題じゃなく、躾の問題だろ?
ストレスとかで食いに走るのは、人間と同じで、その環境を改善してあげなよ。
無理に餌の量を減らすのは、逆効果だよ。 お前らちゃんと質問に答えてやれよ
食いしん坊とか関係ない、要するに識別方法の良いアイデアはないのか、という質問だろ
俺にはない >>296
体重差とか模様や色の差とか
まずお前の猫を区別できる要素を具体的に挙げないとダメだろ エサを1番食べる猫は大きいと思うから
板に穴を開けて他の猫は通れるけど
欲張りな猫は通れないように開けて仕切りをつける そして、
「後出しで情報出すな」
「学校の宿題だろ」
「ググれ」
と罵声を浴びせる、だろ?。 質問なんだけど
Windows10でUSBでProMicro刺してるんだけど
USBケーブル引っこ抜くときLEDとか光っててもそのまま抜いていいのかな?
安全な取り外しとかでてこないんだけど 識別するには
体重
体型
カラー
こんな感じだろうか
体重なら簡単そうだけど2匹乗ったりして分からなくなりそう
画像解析のディープラーニングとかでできる? >>304
俺も引っこ抜く
壊れた事ない
ラズパイは同じ使い方でSDカード壊れた >>295
ラズパイ本体にUSB差さずに
リモート操作元PCとArduino接続してたなんて
恥ずかしくて口が裂けても言えません・・・ >>291
ありがとうございます。
実際に色々試行錯誤していこうとおもいます! 韓国ではペットに電子タグを埋め込むのが一般的だそうな
首輪にIDタグは到達距離でNG
発信機付けるのも重さでNG
猫の行動範囲探る為にハーネスにで発信機背負わせて観測したのがあったけど
一時的なもんだろうし良い案は無いかな
>>302
猫は身体が柔らかいから頭が入ればどんなデブ猫でも通れるよ >>306
さんくすね、引っこ抜くしかないのね
PCの電源落としてもピコピコ光ってたりするし
ラズパイはそもそもPCにつなげないのでは? >>296
一匹は磁石をつけない
次の子はS極の磁石を付ける
次の子はN極の磁石を付ける
で磁気センサーを上手いこと付ければ出来るんじゃない?
安直か… >>304
Windowsの安全な取り外しっていうのは、遅延書き込みって言うメモリバッファには
書き込むけど、実際の機器への書き込みがいつ行われるかはシステム任せって
いう機能による機器(例えばHDDなど)への書き込みを保障するため、書き込みを
禁止->バッファをフラッシュ->機器を停止っていう一連の処理を行っているんよ
で、ArduinoとかのUSB接続は、自分で遅延書き込みを使用するデバイスとして
動作するスケッチで動いているとかでない場合には、単なるUSB-シリアルインター
フェースとして動作しているので、安全な取り外しを行わなくても特に問題が
発生することはないし、遅延書き込みデバイスではないんで安全な取り外しの
対象外なんだよ >>296
マイクロチップまたは首輪に付けたrfidタグを認識して、エサのフタが開くと言う商品はamaで見た事がある。プラス横入りされ無い様、一蘭みたいなゲート?は要ると思う。 >>311
S極の磁石とかN極の磁石とかあるのか、初耳だ >>311
S極だけの磁石とかN極だけの磁石を用意するのが難題だな >>307
ワロタ
なぜVNC経由だとエラーなのか真剣に考えてたわ >>316
ごめん言い方悪かった、表にN極にするか表をS極にするかで検知はしやすいかなあと >>297
ご指摘の通り食いしん坊はちょっとだけ太っていて、体重を計測すればいけそうなんですが、計測方法のいいアイデアがでてきてません。
>>298
食べちゃだめ!と怒るとゴメンナサイな顔でシュンとするんですが、3分くらいしか効果がありません。
>>299
猫は躾できないんです。
飼ってる人はわかると思いますが、飼い主のほうが躾けられます。
>>301
最近正確には測ってないのですが、もってわかるくらいの体重差はあります。
色は茶白とキジ白2匹です。 >>302
穴の大きさで通行制限できるほどの体格差はないんです。
>>305
今時そっちかなと思いOpenCVとかをちょっと調べてます。
>>309
首輪にタグは距離が、と思ってたんですがギリギリ頭入る穴の先に餌にすればいけるかな?と閃きました。
>>311
タグの代わりにそういうのもいいアイデアですね!
>>314
市販品であるんですね!
というか、タグつけるなら首輪つけないとですね。
今まで付けた事ないけど、すぐ慣れるんかな?
みなさんありがとう。 猫は辛いことがあっても耐えるからなあ、弱みを見せたら負けだと思っている >>312
なるほどシリアル接続だから、安全な取り外しとかでないのね、さんくす
いちどWinXPぐらいの時代でUSB抜いて壊れたことあるからトラウマなのよ
通電してるとき抜くのは抵抗が >>319
重さを測るにはロードセルなんかどうでしょう >>321
首輪チャレンジしてみます。
>>322
キーボード争奪戦の季節になってまいりました。
>>324
ロードセルは扱いが難しいと思い込んでましたが、
お手軽モジュールがあるんですね!
早速Aliでぽちりました。
/item/33046037411.html うちの猫は食べなくなるまであげてた
カリカリの場合はおかわり自由で
猫缶の場合は一個あげたら満足する >>328
猫スレはここですか。
うちは一気食いでよく吐く猫と、超絶食いしん坊猫の組み合わせ、油断も隙もない 質問です!
秋月の
Arduino Bootloader書込済(5V 16MHz仕様) ATmega328P
にて、シリアルピンからUART受信をしたいのです。スケッチは多分大丈夫ですが不思議なことが起きています。
シリアルピンにスケッチ書込みの為にFTDI FT232RLを繋げているのですが、FT232RLを繋げている時だけUART受信出来ます。
外して、外電源DC5Vにすると、受信しなくなります。UARTの通信先はMAX485というシリアル通信のドライバーです。
チェックする部分を教えて頂ければと思いまして。。。 >>330
回路図、写真、参考にしてるサイト等、もっと情報出して。
>>331
ArduinoとMAX485はTX, RXで通信してるんだからそこはいいんじゃね? きちんと書けてなかったです。
MAX485のマイコン側にAeduinoのシリアルを繋げています。 あ、
>外して、外電源DC5Vにすると、
GNDは共通になってるよね?
初心者によくあるミスだけど。 そうね。RS-485とかRS-422でデータ線だけつないでGNDをつないでないってやつね。 通信方向の制御も必要。固定方向なのかarduinoで制御してるのかとか。 >>330
GND回りの問題かなぁ。
本来ならGNDを接続しなくてもA、B信号だけでも通信は出来るはずなんだけどな。
(GNDを接続するとより安定する)
私だったら取りあえずオシロでMAX485のRS485側とUART側の信号波形を
FT232の有り無しでどう変るか比較する。 差動だとGNDが要らないと思い込む人も少なくないけどねえ。
カレントループとかでアイソレーションしているわけじゃないんだけどなあ。 >>341
以前にどこかのスレで、RS485にGND線は必用かどうか、で論争になった事がある。
結論は「無くても通信は出来る」だったような記憶が。
>>330
100KでA・B信号をプルアップ・ダウンしてみるとか。 >>330
いつも気になるんですが、全角英数はどんな意図があるんでしょうか? >>342
RS-485は、実際にGNDを持たない端子の機器もある。でも「多くの場合無くても通信できる」は事実だとしても
「無くても必ず通信できる」は間違い。通信を保証するためにはGNDが必要。
「絶縁タイプなら要らない説」はあるけれど、コモンモード電圧の保障がないことにはなんとも言えない。
どこかのスレの結論って、その場にいる人の知見で決まる。自分の中に結論として心に留めるのは良くないと思う。
>>343
秋月のタイトルをコピペしただけでは。
秋月が全角を使っているのは、CIみたいなものじゃないですかね。特に気にしなくて良いと思います。 >>343
それは>>330に言っても無意味だろ、秋月に言え
秋月のサイトを見たことないなら見てこい オシロで確認しようって言わない人はオシロで親を頃された人なの? 初心者です。教えて下さい。
ArduinoとAVRの開発ボードは何が違うのでしょうか?
ArduinoをAVRの開発ボードとして使用することは可能でしょうか? >>352
ざっくり言えば、ブートローダが書き込んであるかないか。
Arduino ブートローダ とかで検索してみて。 >>354
https://eleshop.jp/shop/g/g6C9412/
こんなやつです。
なるほどブートローダーというのが書き込んであるのですね。
調べてみます。
ありがとうございました。 >>355
書き込んであるのはArduinoの方ね
そのエレショップのヤツは書き込んでなくて自分でプログラム書き込むんです
書き込むためのライターが必要です >>357
ご親切にありがとうございます。
今ブートローダーを調べてだいたい意味がわかりました。
ライタの代わりのプログラムが既に書き込まれているのですね。 >>358
そんな感じです。
AVR
ライターという外付けのハードが必要だけど、書き込みが済めば素のICとしてほぼ単独で使える。
Arduino
ブートローダとその他の補助回路込みで、書き込みは楽だけど素で使うことは基本的には考慮してない。 >>344
RS-485のレシーバがどう作られているかだけどね。
レシーバ側のGNDに対して二つの入力端子に100Vと105Vが与えられたらどうなるかとか考えてみたら良いかもね。 IOT向けの格安データSIM教えろください
月あたり500MB−1GBくらいで考えてます >>363
povoは無料だけどソラコムにする理由なんかある? >>364
>povoは無料
月あたり500MB−1GBくらいで考えてます、ってことなんだけど
https://povo.jp/spec/ >>368
povo2.0は無料で月3Gくらい使えるよ >>369
どこ読むとそういう理解になる?
ベースプランのデータ容量は0GB、データトッピング3GB(30日間)990円なんだけど? >>370
まあdonedoneが最強なんだけどな、 >>373
donedoneは契約事務手数料かかるんじゃなかったっけ?
povoはsmsも通話もできるから使い勝手いいし。 >>372
どんな計算?
トッピング(追加購入)なし180日で契約打ち切り。
トッピング容量を使い切ったら128kになるという情報は見つけた。
トッピングなしでも128kなら使えるとも解釈できるけど。 >>272
1週間経ったけど相変わらずNHKラジオの時報やブラウザで開いたNTPのサイトとほぼ同じでした
いつ補正されているんでしょうね
PCは常に0.2秒以上遅れているようです
>>280
どうもありがとうございます
delayを少しずつ追加しました
ボタン操作に影響しない範囲を探ってみます
>>281
どうもありがとうございます
たしかにそうですね。でも相変わらずいつNTPサーバーにアクセスしているのか分からないでいます >>376
いつアクセスしてるかわからないって、自分でコード書いてないの?
あと、ESP32なら水晶発振子載ってるから1週間くらいじゃわからんでしょ
そして、PCの方は、タイムサーバと同期する設定になってるか確認
ついでに、マザーボード上の電池の確認ってとこでしょうね ArduinoのICSP端子とライタを使って、AVRのプログラムを書き込むことはできますか? 半導体不足なのにpro mini壊したああああ
12Vヒューズリセット回路作んのめんどくせえええ >>381
お忙しいところ申し訳ないですが
ヒューズが原因だってのはどうやってわかるの?
Arduino IDEでエラーメッセージとか出る? ヒューズ飛ばした時秋月でMAXなんたら買ってきてリセッタ作った
費用も回路も大した事無かったけどなんかめんどくさかった にわかでここら見た感じじゃ
手持ちのディスクリートだけで出来るけどね
http://radiopench.blog96.fc2.com/blog-entry-563.html
まあ、12Vが用意できなきゃ面倒そうだけど ESPスレか迷いましたが、ここに質問させて頂きます。
M5StickCでボタン押し待ちでハマってます。
乱数で生成した一桁の数字の足し算(例えば5+3=)をM5StickCの画面に表示させて
M5StickCのAボタン(前面のM5ボタン)を押して答えを続けて表示させようと思ってますが
while (M5.BtnA.wasPressed() != true) や
while (M5.BtnA.isReleased())
を使って問題を表示させるまでは良いのですが、Aボタンを押しても答えが表示されません。
何か根本的に間違っているのでしょうか?
よろしくおねがいします。 >>388
updateで状態取得だからloop内の同一周回ではボタン状態は切り替わらない。whileから抜けられないのでは。 >>387
M5.BtnA.wasPressed()でなくてM5.BtnA.isPressed()ではどう? >>389
ありがとうございます!
while文内末尾にM5.update()を入れたら希望通りに動きました!
M5.update()の意味が分かっていなかったので勉強になりました。
>>390
isPressedでもダメでした。while文内でM5.update()で状態取得が大事だと分かりました。
ありがとうございます 今ので問題はないだろうけど、問題表示部分はwhile前で良いのでは。 >>393
おっしゃる通りです。
最初はwhile文前に問題表示させてたのですが、ボタン関係で色々書き換えて試してたら、388みたいなコードになってしまいました。
お恥ずかしい限りです。 秋月のSHT-31、中華の紫基板のSHT-31、M5Stackのスタンドに付いてるSHT-30どれも値がバラバラ
特にスタンドは5台あるけど温度はプラマイ2℃、湿度はプラマイ10%も差がある 初心者の質問です
nanoを使ってPWMのコントロールをしようとしてます
負荷に出力してるPWM分岐して、
analogreadで読み取って
読み取った値を元に制御したい電圧値に出力を近づける
電圧のフィードバック制御がしたいです
可能でしょうか
そのままreadしても読み取れる電圧値がPWMなので中途半端に上下します
ローパスフィルターを調べて使ってみてもずっとhighの値を読み取っててうまく読み取れませんでした
どのような回路とプログラムにしたらできそうか教えてください >>396
ローパスフィルターのカットオフ周波数は適切に設定した? >>397
計算サイトでCR時定数の設定って項目で抵抗とコンデンサ設定しました
そうしたらもう一つの遮断周波数って書いてある設定項目は選べなくなっていました。その遮断周波数ですか? >>398
回路や、PWMの定数(周期またはプログラムでの設定)、計算に使ったサイトのURL、実際のCRの定数を出してみては? 最終的にほしい電圧ってのはどんなのを想定してんの?パルスじゃなくて安定したのが必要なの? arduinoのPWMみたいに電圧5V一定なんじゃないの? >>401
「arduinoのPWMみたいに」って言ってるけど、たいていのPWMはH電圧もL電圧も一定だよ? もしかしてPWM出力してるのは自前のarduinoじゃないのか? >>396
ADコンバータ・PWMを使い電圧を任意にコントロールすることは可能です
負荷の種類により様々な方法があります
>どのような回路とプログラムにしたらできそうか教えてください
これに関しては負荷の種類や規模(や効率)に応じて複数考えられると思うので
具体的な負荷(の種類)や現在の状況を詳しく書いてみてください
一例) https://i.imgur.com/0uIMBfN.png PWMでデジタル的に決まるものをリアルタイムでフィードバックする意味がよくわからんねえ
そういう実験をして確かめたいってことなのかしら
いずれにしても回路もスケッチも無しじゃ
>ずっとhighの値を読み取ってて
が理解不能 >>398
具体的な回路を出さないとアドバイスしようがないな
無負荷で放電回路がなかったら電源電圧にしかならないし NANOが出力しているPWMをADCで読むわけじゃないよな
どんな値を出しているのかは既知だし
なんからの回路を通過した後の出力電圧を
フィードバックしたいということなら
>>406の言うように放電しないことでHのままなのかもね >>396
arduino、PWMを少し離れて
自動制御の入力値、目標値、出力値についてもう少し勉強してみたら? Lのときが放電だし。ダイオードで逆流防止してるわけでもなければだけど。 >>405
analogreadじゃなくてdigitalreadしているのでは...? >>411
ネタは考えてるんで、そのうち建てようかなと思ってる。
Arduino、AVRが関係するスレ。実用的で初心者から中上級者も楽しく参加できると思うよ。 ESP32やARMのCPUコアを使ったマイコンのArduinoは
double型が64bitの浮動小数点が使えて地味にいいね
arv-gccのdouble型は32bitの単精度なんだよね 質問です。
ユニバーサル基板・マイコン等が余ってたので、暇つぶしでArduino Uno R3互換機を作成しました。
基板が小さめだったので配線は苦労しました。
完成後即Testしましたが、何故か動作しません。
配線をテスターで確認しましたが、どこも間違ってません。
そこで、マイコンを外し、ブレットボードを使い同じ配線で自作Arduino Uno R3互換機を再現
ブレットボード版は何の問題なく動作します。
こんな場合、可能性として考えられる事例等をアドバイス願います。 https://i.imgur.com/DzN4Mlz.jpg
こういった低品質のユニバーサルを未処置のまま使用すれば
正しく配線したつもりでも動作しないだろう >>416
つないだところがつながってることは確認はしたと思うけど、つないでないところが導通してないことは確認した? 全てのピンのショートチェックは難しいと思うので
俺ならまずVccとGNDの抵抗値を計り100オーム以上あることを確認
後は隣あったピンや配線でショートしてないかチェックだな >>417
再現してますので間違い無いです。
>>418
サイズは違いますが、両面スルーホールユニバーサル基板です。
見た感じでは全く無いです。
https://i.imgur.com/7d2ghvk.jpg
>>422-423
アドバイス有難う御座います。
試してみたいと思います。
自分ではクリスタルが一番怪しいと思ってますが、一番混み合ってるヶ所なので・・・ そして今回も実物の写真は出さない
怪しいと思ってるところのチェックは後回しの不思議ちゃん 電源とかUSBシリアルとか個別で動作するものについては先にチェックしとけ。 こんばんは
avr/interrupt.h
をインクルードしたいのですが、
コンパイルすると
avr/interrupt.h : No such file or directory
とエラーが出ます。
これはavr/interruptのライブラリーが存在しないということなんでしょうか?
デフォルトではArduino IDEには入ってないということでしょうか? >>429
何のために?インクルードする必要ある? >>430
AD変換の完了直後に割り込み処理をしたいので、ISR(ADC)というマクロが使いたいのですが、他に良い方法はありますか?
AD変換完了後になるべく早く処理を行いたいです。 実際にinterrupt.hのファイルがあるか探してみては? デフォルトで入ってるよ
パスが通ってないかファイルが存在しないか、スケッチのスペルミスかのどれか >>434
ありがとうございます。
解決しました。単純な書き込みミスでした。
#include<>の中にスペースが入っていました。 >>425
はいはい
あなたがなんでも知ってるですね
すごーーい >>436
お前いつもの長文質問者だよな?
煽られるとすぐキレて本性出すからわかる >>436
はいはいすご〜い
あなたはかしこいね
ここでしつもんしなくてもわかるでしょ? 本当にすごい人って初心者にも分かりやすく説明するよね
その道に造詣が深い証拠だわ 中学校の数学の先生と、大学の数学の教授。
初心者にわかりやすく数学を説明できるのは中学校の先生だね。 大抵の場合は解決するかどうかは技術力より会話ができるかどうかだから。回答者に千里眼や思考共有を求めないでくれ。そこまでのレベルに達してない。 前提知識があるかどうかで理解できるかどうかがかなり変わるしな ニンテンドーオンライン拡張パックで64ゲームが遊べるようになったけど純正の復刻版64コントローラーは5千円以上。
ハードオフで300円とかで売ってる64コントローラーにarduino噛ませてUSB変換すればメルカリで転売できそうだな。
でも500円のunoと細々した部品を合わせたら原価だけで1千円くらいか。
送料と作業費を考えたら2500円くらいの値付けにしたいけど自分だったら他人が工作したコントローラーにそんな金額出さないわ。 >>439
へえそうなんだ。
じゃ、その人に聞けばいいのに、何でここにいる? >>446
品質は分からんがaliで4台繋げるアダプタが1500円で売ってるから自作する意味ないわw >>447
ここにもいるよ。運が良ければそういう人が見ててレスしてくれる ArduinoIDEに、C言語で書かれたAVR用のプログラムを使用した場合、何か動作に違いはありますか? >>449
運に任せるわけな
そこまで徹底して受動的な人には
お好きにどうぞとしか言いようがないわ >>451
受動的とか何いい出してるんだ?
お前は分かりにくい答えんなってこと いつのまにか公式でJson扱えるようになってるね
ArduinoJsonとどっちが使いやすい? >>452
>運が良ければそういう人が見ててレスしてくれる
運が悪けりゃ自分の意に沿った回答には巡り合えないってことだろ
運に任せて待ってるだけ、全部他人任せ、自分は改める気が無い
それを能動的と言うのさ >>454
ネットの質問サイトは全部そうだろw
要するにお前みたいなやつは理屈だけダラダラ書いて肝心の答えは薄っぺらい
「天才は先に結論を言う」だ ×それを能動的と言うのさ
○それを受動的と言うのさ
>>455
ご指摘に感謝
肝心なとこ間違えたw 注意書きに
回路の質問には回路図(素子定数・型式を含む)を明示すること
も追加しよう わからんーとただオロオロしたり頭をかかえてるだけじゃなく
掲示板に質問を投げかけてアクティブに状況を打開しようとしているとも取れるなw でさ、>>ID:J0gIgyauは未だに写真すら出してないんだよね?
クリスタルがどうだったかの報告も無いよね?
ただただオロオロしてるだけと何の違いがあるのかな? 本人の中では1歩進んでるんじゃないの
ここで騒いでても想像の範囲を出ないよ ヒマだからといって所かまわず論議吹っかけたいだけの奴がいるな
電子工作楽しみたいだけなのに邪魔だ >>463
ヒマだからといって所かまわず煽りたいだけの議論する脳も無いお前もいるよな
電子工作楽しみたいだけなのに邪魔だ >>456
お前みたく、ちゃんと答えられないヤツに限って、分かったようなレスするな 質問者相応の礼儀も必要だと思うんだ。
内容について理解が浅いから、ちゃんと質問できないのが普通で、コミュニケーションで答える人に手間をかけてもらうわけだし。 すみません
物凄く初歩的な質問なのですが、Arduino Unoのデジタル出力ポートの開放電圧とはどう測ればいいのでしょうか?
例えばHIGH状態の12番ポートの開放電圧を計測するとどのような値になるのでしょうか?
開放ということは回路が出来ていないので0Vと考えるのですか?
それともポートの出力電圧は5VなのでGNDとの電圧差で開放電圧は5Vと考えるべきでしょうか?
まずは電気回路を勉強しろって話ですが今回だけはお願いします >>470
>Arduino Unoのデジタル出力ポートの開放電圧とはどう測ればいいのでしょうか?
DMM(テスター)などでGNDと出力ポート間の電圧を測ればいいと思う
>例えばHIGH状態の12番ポートの開放電圧を計測するとどのような値になるのでしょうか?
約5V
>それともポートの出力電圧は5VなのでGNDとの電圧差で開放電圧は5Vと考えるべきでしょうか?
5Vであってますよ
特に負荷を接続しなければ出力ポートHIGHはVDD(電源電圧)とほぼ同じ電圧になります >>472
開放状態で電流が流れてなくても電位差=電圧は存在するんですよね
そこら辺があやふやで混乱してました
ありがとうございます >>468
ほんこれ
教えてもらう立場のくせに理解できないことを相手のせいにするとか無礼すぎる >>474
逆だろ。
教えさせてあげてるのわかってないなw ニヤニヤしながらどんな結論になるのか静観。
そんなことで悩んだ時もあったなあ(遠い目
とね? >>476
よくこういった返しする頭の悪そうな人いるけど楽しいかどうか聞いてどうすんの?
楽しいって言ったら、じゃあ俺もやってみよ!とかなるんかな?wwww >>474
学校の宿題だろ
後出し情報だ
そんなのググれ
だろ? >>478
「おまえアホか?」は質問じゃなくて「アホなことやってるんじゃないよ」みたいな、たしなめだよね。
字面通りにしか解釈できない人がいることを忘れていた。ごめん。 >>475
おしえるより側は教える相手を選べるのでねwww 初心者です。
arduino unoについてなのですが、9番ピンのpwmを用いて24Vのモーター制御をしようとしています。
24Vは外部電源から持ってきて、MOSを使っています。
しかし、9番ピンにMOSをつなぐとまだpwmの命令(analogwrite)をしてもいないにも関わらず、
PWM(?)が出力されています(モーターが動く)。試しに関係のないピンに接続してもPWMが出力されているようです。
ピンに接続しなければ、モーターは動きません。
pwmの命令をしていないのに動く理由がわかる方いませんか??
よろしくお願いします。 >>483
型式・素子定数を含めた全体回路図とスケッチのコード全部を提示して出直してください >>483
ポートを出力に設定してない状態なのでは?(初期は入力でハイインピーダンス状態)
ハイインピーダンスだと漏れ電流の関係で0-5Vの中間程度の電圧が印加されてる可能性があると思う
MOSFETのゲートを100k程度の抵抗でGNDに接続してプルダウンしてみては?
もしくはsetupの段階で出力に設定してLOW状態に保つ >>483
最低でもMOSの種類
回路図と写真とスケッチ
てか、次からテンプレに入れとけよ >>485
熱烈歓迎=どんな態度の人でも喜ばれる
って思う人はバカですね。(「って思う人ですか?」と書こうとしたけど、
質問だと思われてもいけないので、直截的表現にしました) >>485
スレタイだけしか読まない馬鹿
偉そうにほざいてないで回答側になってお前が回答してみな NchのMOS-FETをポートで制御するときは、ゲートは10k〜100kΩぐらいの抵抗で
プルダウンするのが定石ですね。 >>485
質問の仕方が初心者未満の場合は論外です 初心者スレなんだから質問が不完全なのは許容するけど
問い返しても情報を出さない、それどころかレスすら無いのはなぜか
>>ID:DPa2IKBp
この手のヤツの自演なんだろうか?
だとしたら完全な「荒らし」だよね >>493
お前の想定している初心者とやらがドン引きならそれはとても好ましいこと
どんどん引いてくれ、一向に構わないよw すみません
Arduino UnoでのPWN出力はなぜ8ビットまでなのでしょうか?
アナログ入力のAD変換は10ビットですよね
これは単にハードウェア的な制限ですか? >>495
PWNじゃなくてPWMな
8bitなのはハードウェアの制限と考えてよいと思う
(ハードの能力をソフトで制限する理由は基本的に無いため) >>460
グレーな商品なので全ての画像をUpは勘弁して下さい。
配線も初心者で恥ずかしいです。
https://i.imgur.com/0XDaAln.jpg
ブレットボードを使い、基本同じ配線でArduino Uno R3部分を再現すると問題無く動作します。
相当丹念に誤配線が無いか部分的に分けて調査した結果、Arduino Uno部分の不良と分かりました。
今日、裏配線の一部を外しクリスタルを変えましたが、動作しませんでした。
悔しいので、基板を大きくして再度挑戦します。
皆さまアドバイス有難う御座いました。 >>495
UnoのPWMが8ビットなのは恐らくソフトウェア(Arduino環境)・互換性・理解しやすさを考慮した関係だと思います
ハードウェア的には最大16ビットの解像度をもつPWMを使用できたと思います
(最大8ビットのPWMを使用できるピンと16ビットのPWMを使用できるピンがある) また浅学な質問なのですが、Arduino Unoのデジタル出力の出力インピーダンスはどの程度なのでしょうか?
ちなみに出力インピーダンスというのはArduinoの出力ポートの内部抵抗というイメージで正しいですか? >>500
実測したら20〜30Ω位だけど
データシート的には「HIGH・温度85度・VDD5Vの条件で」
出力ピンからの電流20mA時に4.2V以上の電圧と記載されてるので
最大40Ωとして扱えば良い(これを基準に周辺回路を設計かな)
LOWの方は最大45Ω(VDD5V 温度85度)
>Arduinoの出力ポートの内部抵抗というイメージで正しいですか?
正確ではないけど今はその考えで良いと思う
深く理解するためにはMOSFETの特性を理解する必要があると思う >>502
ありがとうございます
専門版って優しい方が多くて少し感動しました >>497
Arduino Uno R3互換機なんて回路図も公開されてるしグレーでも何でもないわけで
ブレッドボードのものは真っ白だけどあなたが追加したグレーの部分が何か違いがあるんでしょ?
そこが原因に決まってんじゃん 質問者と回答者を楽しく演じるスレ
ただし質問内容はググれば出てくる程度のものに限る ユニバーサル基板で工作するときに、
メッキ線がランドにきっちり乗らずに、ふらふらしながらランド間を通ったりしてる工作がよくあるな。
慣れた人がやってるならともかく、配線に絶対的自信がない人ならしない方がいい。期待しない誤接触のもと。
原因のひとつは、取り回しのしにくい太すぎるメッキ線だと思う。 >>505
>ただし質問内容はググれば出てくる程度のものに限る
そりゃそうだろ
ググって答えが見つからない質問をする奴は初心者じゃない
中級者以上か救いようの無いバカかのどちらかだ >>507
あらあら、人が気を使って遠回しに言ってるのに、はっきり書いちゃったのね
>救いようの無いバカ
ちなみに、「回答者を演じている」=「検索代行」「検索請負人」 ここの真骨頂は超能力だと思う
エスパーの能力は極めて高い すみません質問です。
繋いでるのに光らないのはなぜでしょうか。 >>497
arduino nanoで組めば基板は小さくなるよ。 >>512
LEDです。
LED以外に光るものあるんですか? >>513
豆電球、ネオン管、EL、CCFL,、VFD、レーザーダイオード >>514
ありがとうございます。
VFD懐かしいですね。
>>515
私のは0.25lxくらいです。 >>510
>繋いでるのに光らないのはなぜでしょうか。
まじめにレスします。
次のものを開示してください。
・どうつないでいるのかがわかる、接続の図または絵と、写真
・スケッチ
ちゃんとした質問にはちゃんと答えることができる人がたくさんいます。 >>504
>あなたが追加したグレーの部分が何か違いがあるんでしょ?
>そこが原因に決まってんじゃん
グレー回路は、別のUno R3回路とケーブルで繋いで動作確認しています。
こちらの回路は数多く製作してるんで手慣れてます。
今までは、Uno・Nano・Pro miniと回路を組み合わせて製作してましたが、
今回、初めて"ATMEGA328P-PU"に組込んでみました。
Uno部分を切り離して別のグレー回路と繋ぐと起動しません。
"ATMEGA328P-PU"の28Pin全てチェックしてますが、何故か基板では動作不可で・・・
>>511
上にも記載しましたが、Nano・Pro miniとも組み合わせて動作確認してます。 >こちらの回路は数多く製作してるんで手慣れてます。
あのクソ配線見る限りとても手馴れているようには見えない
自己評価高すぎではないだろうか 起動しません。
動作不可で・・・
解決してるようには見えないけど 原因はわからんかったけど、作り直してみるってのが本人にとっての解決っぽいからね。原因を明らかにするためには見てる側には情報が足りない。具体的にどう動作しなくてどこまで正常であるとチェックしたかがわからん。 >>522
だよねえ。
言っちゃ悪いけど、何となく、
「自分はできる。」「間違ってはいない。」
という思い込みが強すぎる感じの人だ。
結局見てる側には何も新しい情報は伝わってこないから、手助けも出来ない。
こういう人は、人に聞くのも下手だし、自己解決も遅れるんだろう。 グレー回路を公開出来ない事と、通常PCBで、今回、暇つぶしではんだ付けしました。
これで最後とします。
スレ汚してゴメンナサイ <m(__)m> >>497 >>527
昔のZ80などのCPU基板の組み立て配線を思い出した。
メモリやI/Oのバス配線などを終わり、電源を入れて起動しない時のショックは
結構、大きかったw
私も写真見たときの第一印象は悪いけど、配線がいまいちだなぁ、だった。
次のような対策はどうでしょうか?
線材をもう少し細いものを使い、色分けする
(たとえば10色のジュンフロンETFE線AWG30を使用する)
電源パターン有りの基板を使う。メッキ線による電源の配線が不要になります。
(https://akizukidenshi.com/catalog/g/gP-09327/)
配線が交差しないようにする、そのために線材をスルーホール通して部品面も使う、
製作するから配線技術が向上するのです、ガンバレ! 先日時計を作ってたものです
GPSを入手したのでこの間のNTP部分をTinyGPSPlusとTimerLib.hに置き換えました
NTPと違ってGPSだとNTPやNHKの時報よりも必ずコンマ数秒遅れてしまいました
1ppsの出力ピンでLEDを光らせるとこっちも時計部分とコンマ数秒ずれていました
1ppsのLEDはNTPやNHKの時報とはほぼ同じでした
時計が送れてしまうのはどんな原因が考えられますか?
TimerLib.hを使わなくても遅れていました。
TinyGPSPlusライブラリの処理時間でしょうか?
前回の秒と変化があったら時計を進めるようにしています。
1ppsの入力があったら時計を進めるようにしてみたけどこれでもやっぱ遅いままでした。
マンション南向きの窓に外付けアクティブアンテナを置いています。GPSは9〜13機ほど補足しているようです。 >>530
最後文字化けしてました
GPSは9機から13機ほど補足しています >>530
コードないとわからないが以下のことは理解してる?
GPSモジュールからのいろんな情報は何百バイトもの文字列としてシリアルでマイコンに流れてくる。シリアルってのは送ったり受信したりパースしたりに時間がかかる。一方1ppsは1bit情報でGPSの設計要件からして正確。 >>530
GPSモジュールからの送信内容がカスタマイズできるのであれば、その内容を時刻の伝送に関わるものに限定したり、ボーレートを高くしたりすることである程度は改善できると思う
極力ピッタリを狙うということであれば、適当なディレイを入れて1秒未来の時刻を表示させるってのもあると思う >>495
UNOってことなのでつかわれているマイコンはATmega328Pのはずだけど、
8ビットなのはTC0とTC2というタイマーで使えるPWM出力で、TC1というタイマーを
使うPWM出力は16bitでカウントできるよ
そしてH/Wの制限というよりH/Wの仕様なので、ATmega328Pのデータシートで
PWM付き〜タイマ/カウンタって言うところを読んでね >>530
GPSモジュールから送出するNMEAセンテンスをタイムコードだけに設定を変えるのと、シリアルの速度を高くすればある程度改善されると思う。
あと1ppsは割り込みて受けてるなら、立上がり下りを間違えて無いか >>533
すみませんコードです
http://codepad.org/BWdZkiPP
>>534
最初は処理には時間かかると思っていたけど、NTPの時はI2Cで繋いであるセンターの値取ったりしててもほぼピッタリだったからマイコンは自分の頭よりいいからすぐに計算してくれるんだと思っていました
GPSはUARTで繋いでいます
>>535
U-blox NEO-M8Nってものです。U-centerというもので設定変えられるのかも知れませんが自分のPCはMacなのでまだ設定さわれていないです >>537
速度は9600です
割り込みはまだ理解出来てないなので触っていません。
GPSの1pps出力をマイコンのアナログ入力に繋いで0以上だとLEDを付ける、0だと消すってやってます
MacでGPSの設定を変える方法調べてみます >>539
割込みに使う1秒信号(1pps)のタイミングはU-centerから細かく設定出来る。
u-blox M8N ラジオペンチ で検索すると古い事例が見つかるはず >>540
どうもありがとうございます
MacのVMware経由でU-Center開いてみたけど衛星の情報が全く出てこないので仮想環境経由だとダメなのかも コード見たけど、1pps信号はLED表示に使っているだけで時刻の表示には無関係だった。上の書き込みはとりあえず忘れてくれ。
ただ、このコードで時報との位相ずれを問題にするのは間違い。ぴったり合わせたいなら1ppsで割り込みかけるべき。 UART信号は時々時刻合わせに使うぐらいでpps信号割り込みでカウントアップした方が良いような。 >>538
だいたい予想通りのコード。
シリアルからもらうデータで絶対時刻Aを知り、1ppsでデジタルで割り込みを使ってA+1のタイミングとする。が正解。
で、シリアルデータのパース、絶対時刻取得は一時間一回とかにして他は1pps割り込みで更新する。ここまでは簡単。
やや高度なのは1ppsがとれなかった時の補間。 pcでは問題ない音声ファイルをdfplayerで再生すると高音が強調されて耳に刺さるような感じになるので改善したいです
これはarduinoの制御でどうにかできるでしょうか?
それとも元ファイルを加工して対応しないとダメなのでしょうか? >>546
試した事無い事だけどDFPlayerとArduinoをシリアル接続して制御してるなら
DFPlayerは何種類かEQを選択できるみたいだからEQを変更してみては? >>540
昨日このページを参考にU-Centerを設定してから時計が必ず10から20数秒遅れるようになりました
スケッチ書き込み直したりリセットしても常に遅れてます。
コンマ数秒で次の秒に進んだり1秒以上かかって次の秒に進むようになりました
もう一度U-Centerに繋いで初期化出来るならしたいけど、USBシリアル経由でGPSを繋ぐとWindowsの誤作動が起きるようになりPCの操作不可になりました(マウスのポインタがあちこち動いてクリックしたりドラッグしたりっていう動作)
なのでU-Centerの操作ももちろん出来ません
USBシリアルを外すかGPSを外せば正常にもどります >>542, 544, 545
どうもありがとうございます
今の不具合解決したらうまいやり方考えてみます >>546
DFPlayerからの音声出力からヘッドフォンを接続してるなら、間にコンデンサーを
入れる必要がある。
現象としては以下と同じだけど(レビュー参照)、ショートさせる必要もなく、
LRの音声出力を100uF以上のコンデンサーにしてあげると、音質が改善するはず。
https://www.%41mazon.co.jp/dp/B01MQW7EEJ/
もし出力先がアンプなどであれば上記の原因とは別だと思います。 こんにちは
どこで聞こうか迷ったのですがここで聞かせてください。
arduinoを使ってAC100Vモーター(ポンプ)の制御をしたいと考えています。どんな方法が適切でしょうか?
マグネットスイッチを電子リレーで開閉するのと、トライアックを使用するのは考えましたが、他にやりようはありますでしょうか? >>552
制御とは具体的にどのような制御を想定されていますか? >>553
あ、そうですよねすみません
やりたいのは速度制御です。ポンプの流量を制御したいです。
単相の誘導電動機なので
一番は周波数を制御できれば良いのですがそれは難しいですよね?
なので次点として電圧を制御するためにトライアックを思いつきました。それも難しければ最後は単純なオンオフでマグネットスイッチを使おうかなと… >>547
EQがある事を初めて知りました
調べて試してみます
>>550
PCとスピーカーは違います
ただ玩具の端子に繋いで録音したものをその玩具から取ったスピーカーで再生しています
>>551
コンデンサーも試してみます >>556
詳しくは決まってないですが、300W以下くらいでホームセンターで売ってる、下のようなポンプにしようと思ってます。
https://i.imgur.com/VprYvC7.jpg
>>557
ありがとうございます。
サイリスタ(トライアック)での制御は、変動する電動機の力率を考慮しなければいけないので難しいことがわかりました。
せっかくご紹介していただいて申し訳ないですが、他の方式も専用のモーター等を使用しなければいけないので難しいですね。 いろいろ調べていたら、単相100V→三相200Vを出せるインバーターがあるようなので、そのインバーターをArduinoで制御しようかなと思いました。
難しそうならオンオフ制御にします。
皆さんありがとうございました。 >>548
ファクトリーリセット出来ました
U-Centerてデバイスのシリアル通信の速度を9600から115200に変更してスケッチも115200に変更したらだいぶん改善しました
NTPや1ppsよりもほんのちょっとだけ遅れてるっぽいです
割り込みを身につけて1ppsに合わせるようにスケッチ変えてみます >>558
ポンプを制御するよりも、レギュレーターみたいな物で流量制御できないかな?と思ってみた。 水中ポンプの仕組み的にスロー運転はできない気がする。
間欠動作じゃだめかな?
何がしたいか書いたほうがいい。 横からなんですが、普通の100V対応のパワーリレーでの
直接ポンプON/OFFと、リレー経由でマグネットスイッチを動作させて
ポンプを動かすのではどう違うのでしょうか?
接点の寿命の長さとかですかね? 電気工学必要だね
sinθωtで正弦波を出力して周波数もこれで調整してパワートランジスタで出力すると適当に書いてみた >>560
うまく行ってるみたいで良かった。ついでにコード見て気になってたのでコメントすると、
if (analogRead(35) != 0)
とやってるけど、ADCは使わず
if (digitalRead(35) == HIGH)
とデジタルで直接読んだ方が良い >>538
char clock_hh_mm[5]; => [6]
char clock_ss[2]; => [3]
これでメモリ破壊なくなってちゃんと動いたりして >>560
自己レス
うまくいったかと思ったけどやっぱり0.2秒くらい遅れていました。転送速度変えただけでは解決にはなってなかったです。
>>538のスケッチでいうと、58から70行辺りの処理に時間かかってる気がしました。書く位置を「コロンを消す」のifの中の最後に書いてみたらむちゃくちゃな時間になりました。87行目に持ってきてもむちゃくちゃになりました。
あと、GPSからシリアルで情報を出すタイミングはGPS側の設定でGPSタイムかUTCタイムかを選べるようでした。今の設定はGPSタイムです。
で、データを出す回数は1000ms毎になっていたので100msや200msにしてみたけどそしたらまた時刻がめちゃくちゃ遅れたので500msにしてみました。
情報を出すタイミングはGPSタイムかUTCタイムどちらにすべきでしょうか? >>565
どうもありがとうございます。変更しました。
入力だからADCピン使わないといけないのかな?って思ったんですが、今回みたいにHighかLowだけならADCじゃなくて他の空いてるピン使ってもいいんでしょうか?ADCは2個しか無いので他のピン使えるなら嬉しいです。
>>566
どうもありがとうございます。
前回のNTP時計の時も5と2にしていました。両方変更しました。
末尾のヌル文字分?を確保しないとマイコンにダメージ与えてしまってメモリが壊れてしまうんでしょうか?
あと、メモリで気になったんですが、自分のスケッチだとループの中でもの凄い速さで現在の時刻を変数に入れ直しを繰り返していると思うんですけど、こういうのはメモリに悪いですか?
あと1ppsの入力があった時に処理するようにスケッチ変えてみます >>568
自己レス
1ppsの入力で時刻の取得と表示をさせるようにスケッチを変えてみました
これだとなぜかきっちり1秒送れてました
秒の切り替わりのタイミングはNTPとほぼ同じです
なぜ1秒遅れるんでしょうか?
http://codepad.org/wpqN8H1j >>568
意図しない場所にゼロが書き込まれるだけ。
ハード的にぶっ壊れたりしないけど
不可解な現象に悩まされるときはこういうバグが原因のことが多いよ! >>569
デバッグ作業するなら各段階でmillisを取得するなりして確認して。 >>569
1秒足して表示すればいいんだよ
厳密にやるとうるう年まで考慮しなければいけないけど1秒間
表示が乱れるだけだから細かいことは気にしなければ簡単 GPSのライブラリ中身見てないけど、availableの時点でバッファをクリアして次のデータを待つようなものならズレる >>569
自己レス
このスケッチだとなぜか1時間以上経ってもGPSからデータとってこなかったので1ppsを受信の処理はコメントアウトしました
すると今度はすぐに受信してくれました。当然0.2秒ほど遅れています
>>570
なるほど。ありがとうございます。今回のスケッチとは別ですが、時々リセットがかかるスケッチがあるのでそっちも書き換えてみます。
>>571
そうすればどれだけ処理に時間がかかっているのか分かりますね。ありがとうございます。
>>572
もし、now_secondが59の時に1秒足す場合はnow_minuteも1分足して、もしその時59だったらnow_hourも1時間足して〜、で、あと分と秒の数字に1を足した時61だと0にするみたいな処理をするんでしょうか? >>569
自己レス
58行目のnow_weekdayはコピペミスです。ここでは使ってない変数です
>>573
なるほど
見てみます >>569
1PPS信号がHIGHになった瞬間にss.available()が真なってないと,時刻の更新が行われないまま表示が行われるのではなかろうか
もし俺なら
setup(){
時刻を取得する
}
loop(){
1PPS信号がLOW→HIGHになったら{
時刻を表示する
時刻を取得する
時刻を1秒未来の時刻に補正する
}
}
とする。
>もし、now_secondが59の時に1秒足す場合はnow_minuteも1分足して、もしその時59だったらnow_hourも1時間足して〜、で、あと分と秒の数字に1を足した時61だと0にするみたいな処理をするんでしょうか?
俺ならプログラム内部の時刻を秒で管理して
秒表示=秒時刻%60
分表示=(秒時刻%3600)/60
時表示=秒時刻/3600
みたいにするかな
そうすれば1秒未来の時刻は単に秒時刻に1を足すだけで済む 失礼
上の例だと1発目の表示がうまくいかないね。
setup(){
時刻を取得する
時刻を1秒未来の時刻に補正する
}
loop(){
1PPS信号がLOW→HIGHになったら{
時刻を表示する
時刻を取得する
時刻を1秒未来の時刻に補正する
}
} またコピペミス
ap_viewはbooleanです なぜTimeLib.hを使っているのか思い出しました。
現在の日付けと曜日も表示させたかったんですがGPSのデータには曜日は書かれてなく、日付から曜日を取得する方法も分からなかったからそのためにTimeLib.hを使ったんでした。
>>576
ありがとうございます!
上の通り、日付けや曜日が絡むとさらにややこしくなってきそうです…(>_<)
>1PPS信号がHIGHになった瞬間にss.available()が真なってないと,時刻の更新が行われないまま表示が行われるのではなかろうか
たしかにそうですね。
多分GPSの今の設定ではGPSがロックされると1秒感覚で100ms間信号が出力されていて、シリアルデータは500ms毎です。
シリアルデータが出力されるタイミングと1ppsが出力されるタイミングが同じなのかまではよく分かって無いです。 >>569のコードの中で
1pps信号の同期を下記でやってるけど、
if (digitalRead(35) == HIGH) {
ここは、
while(digitalRead(35) == HIGH) { // 1ppsがHIGHの間は待つ (=LOWなら通過)
}
while(digitalRead(35) == LOW) { // LOWの間は待つ (=HIGHになったら通過)
}
と書いておけば以降の処理は1ppsに同期して1回だけ実行されるようになる。
ちなみに、1pps信号で割込み掛けても、まさか割込み処理ルーチンの中でGPSの
ライブラリを呼び出すわけにもいかないので、結局はフラグの操作だけ行い、メイ
ン側ではそのフラグをポーリングして処理することになる。
つまり、上に書いた方法を使えば割り込みを使ったのとほぼ同じになる。もちろん他に
制約があれば話は別。
あと、1ppsを入力するピンは35以外でもOK。但しM5Stackが使っているピンがある
ので要注意。 >>579
TimeLib.hについては良く知らないけど
adjustTime(1);
とすることで簡単に時刻を1秒未来に補正できるんじゃない?
それでできるなら日時曜日の繰り上がりとか意識することないと思う >>580
入力ピンについての説明ありがとうございます
1pps用に引き出されてるピンはADCの34、35、36で、利用する場合はユーザー側で結線するようでしたのでADC使わないといけないのかな?って思って35をはんだブリッジさせてました。
2枚目の画像ははんだ付け後の自分の基板です
https://static-cdn.m5stack.com/resource/docs/static/assets/img/product_pics/module/gps/module_gps_note01.webp
https://i.imgur.com/sfwBUof.jpg
>>581
なるほど!時差で9時間調整してるように1足せばいいんですね
どうもありがとうございます
次のスケッチで試してみます スケッチ1
GPSのデータは取得できるけど0.2秒くらい遅れているスケッチ
http://codepad.org/IdIiWEx9
スケッチ2
1時間経ってもなぜかGPSのデータが取得できないスケッチ
1ppsの信号が取れてない?LEDも光らない
http://codepad.org/ZCoQUV3n
スケッチ3
1ppsの入力の確認だけのスケッチ
これもいつまで経ってもLEDは光らない
http://codepad.org/IQQIzXp0
スケッチ4
もし1ppsが正常に取れたとして、>>580のように改良中
http://codepad.org/7LPZXusk
1ppsが出ていないような気がしました GPSをM5Stackに繋がないでUSBシリアルに繋いでU-Centerを開きました
10以上GPSがロックされてるようです
モジュールの35にLEDを繋ぎました。(オレンジ色のジャンプワイヤ)
やっぱり光らなかったです
ということは1ppsの信号が出ていないって言う事ですよね?
https://i.imgur.com/lnM5gbd.jpg 念のためもう一度はんだブリッジやり直してもやっぱりLEDつきませんでした
でもよく見ると単純にブレッドボードの配線を間違えていました
今度はちゃんと付きました
もう一度 >>583 の2、3、4を試してみます
https://i.imgur.com/7uuohqn.jpg >>584
そだね。
GPSモジュールの設定がそうなっている、もしくはハードに1ppsを出力する機能が無いか、配線が省略されているか、 >>583
スケッチ3
ちゃんと光った
スケッチ2
光るけど時刻が取得出来ず、0:00:00から始まりいつまで経っても今の時間にならない
試しにスケッチ2の43行目のHIGHをLOWに変えたら今の時刻が表示された(0.1から0.2秒くらい遅れ)
LEDの光り方は以前の逆で0.8から0.9秒点灯0.1秒くらい消灯
1ppsの送信のタイミングとシリアルの送信タイミングは違うって事でしょうかねー
>>586
単純に自分の配線ミスでした 処理にどれだけ時間がかかっているのか確認してみました
>>583
スケッチ1
41行目の
if (gps.encode(ss.read())) {
の次の行のmillisは4212
44行目の
adjustTime(offset * SECS_PER_HOUR);
の次の行のmillisは4213
8回ぐるぐる繰り返して
58行目の
if (now_second != preview_second && colon_view == true) {
の次の行のmillisは4309
104行目の
sprite.pushSprite(0, 22);
の次の行のmillisは4323
よく分からないけど111msくらいかかってますね
40行目がwhileだからですかね >>589
良い感じで進んでるけど、millisの入ったコードに測定値書き込んだ方が見やすいいと思う。 >>588
買ったまま放置してたneo-6mが有ったのでタイミングを見たよ。
1ppsの立ち上がり後50msあたりのタイミングでNEMAセンテンスの送信開始していました。時刻情報の$GPRMCは先頭にあるので最低50msぐらいは遅れる事になります。
あと捕捉している衛星の数でNEMAの送信タイミングは揺らぐかも。上記は捕捉衛星数5の場合 >>591
書き忘れ、
なのでスケッチ2はNEMAメッセージを取りこぼしています。 >>590
ありがとうございます
確かにそうですね
>>591
確認してくれてありがとうございます
スケッチ2で1ppsの入力の後に60msくらいdelayさせてからシリアル取れるか試してみます >>591
スケッチ2の44行目で50msから100ms delayさせてみたけどやっぱり時刻の取得出来ませんでした
>>593
スケッチ1
U-CenterでGPSのポートでI2CとUSBとSPIをdisableにして、ポートのMeasurement Periodを200msにしたら、時計の更新のタイミングが前よりも改善しました。(Measurement Periodの部分は関係ないかも。)転送速度は115200。Arduinoのシリアルモニターでも同じ値にしてます。ここをもっと速い値にしても大丈夫なんでしょうか?
M5Stackのピン35に付けたLEDの1ppsよりはほんの少し遅れてる
GPSから電源外して付け直しても今のところは大丈夫
あとで他のスケッチも試してみます
って思ったけど1時間くらい動かしてたらまたほんのちょっと遅れていました。
ArduinoでGPS時計を作るブログたくさんあってどれも簡単に出来てるようだけど、だいたい正確な時計作るのは大分難しいです。 ArduinoとU-bloxのZED-F9PやMAX-M10Sでみちびきの災危通報を受信してる人いますか?
Spresenseだと受信出来るそうだけど高いです。
測量する訳じゃ無いのでもっともっと高価なZED-F9Pは無理ですけどMAX-M10Sだと安いので気になっています。
https://qzss.go.jp/usage/products/dc-report.html >>594
スケッチ2へのコメントがおかしかった、すまない。
以下の処理にしてみてはと言いたかった。
// 1ppsが立ち上がるまで空回り
while(digitalRead(35) != HIGH)) {
;
}
// 表示更新
// シリアル受信
// 時差の計算と+1秒
// 表示データ設定
//最初に戻る
あとmeasurement periodを200msにすると秒間5回送られて来ますね。 デジタルテスターを導通モードにしてプラス側の
テストリードを指で触れると音がするんだが。。。 >>596
どうもありがとうございます!
昨日以下のスケッチ5としてloopの先頭で35がLowの間は待つようにしてみたんですけどこれもダメでした
全くGPSのシリアルは拾わなかったです
スケッチ5
http://codepad.org/uag9wPCU
42行目から52行目をsetupの最後に移動させてもダメでした
>あとmeasurement periodを〜
1秒に5回送信されるからいつかは取れるかなあと思ったんですけど意味なかったですorz iPhoneて1/100秒まで正確なんだけどどうなってんだろね
それ以上は分からないので測りようがないけど >>594
シリアルでうまく行かないときはややこしいことせずに受信したデータ全て即シリアルモニタをにprintする。13 、10が改行コード。
よく見ればどうすりゃ時刻取れるかすぐわかる。
あとは
>>545 が正解 時間かかる処理がわかってるなら、できるかぎり使わないようにするのが正道だからね。どの程度まで許容するかにもよるけど。
結局約100m秒かかる処理はどこのところだったの。 >>600
>>601
どうもありがとうございます
13や10というのはなんのことかまだ理解出来ないでいます
U-CenterでGPSのmeasurement periodを1000msに変更して、GPSをM5StackではなくUSBシリアルに繋いでarduino IDEのシリアルモニタで見てみました。GPSのppsにはLEDを繋ぎました。
USBシリアルはスイッチサイエンスのFTDI FT232RLです
13:38:48.039 -> 文字化けみたいなの(コピペすると改行がぐちゃぐちゃ)
13:38:48.039 -> 文字化けみたいなの(コピペすると改行がぐちゃぐちゃ)
13:38:48.039 -> 文字化けみたいなの (コピペすると改行がぐちゃぐちゃ)$GNRMC,数字とか
13:38:48.108 -> $GNVTG,数字とか
13:38:48.108 -> $GNGGA,数字とか
13:38:48.108 -> $GNGSA,数字とか
13:38:48.108 -> $GNGSA,数字とか
13:38:48.108 -> $GPGSV,数字とか
13:38:48.108 -> $GPGSV,数字とか
13:38:48.108 -> $GPGSV,数字とか
13:38:48.108 -> $GLGSV,数字とか
13:38:48.155 -> $GLGSV,数字とか
13:38:48.155 -> $GLGSV,数字とか
13:38:48.155 -> $GNGLL,数字とか
13:38:48.155 -> $GNTXT,数字とか
1秒後
↓
13:38:49.044 -> 文字化けみたいなの(コピペすると改行がぐちゃぐちゃ)
13:38:49.044 -> 文字化けみたいなの(コピペすると改行がぐちゃぐちゃ)
13:38:49.044 -> 文字化けみたいなの(コピペすると改行がぐちゃぐちゃ)
13:38:49.077 -> 文字化けみたいなの (コピペすると改行がぐちゃぐちゃ)$GNRMC,数字とか
13:38:49.077 -> $GNVTG,数字とか
以下略
$GNRMCの後のコロンはUTC時刻だと分かりました。
上を見ると毎秒ごとに出力し終わるまで116ミリ秒かかっているようです。
自分のスケッチではwhile (ss.avalable()){なになにとやっているので、GPSからシリアルを取得し終えるまで最低116ミリ秒かかってしまう事も分かりました。
あと、Arduino IDEのタイムスタンプはPCの内蔵時計だと思いますが、毎秒のミリ秒が異るのが気になりました。
上の例だと最初039ミリ秒で、1秒後が44ミリ秒とか。
あとUSBシリアルのRXについているLEDとppsのLEDを見比べると、若干ppsの方が速いようです。具体的に何ミリ秒違うのか分かりません。
スケッチ2やスケッチ5だとシリアルを取得できないのはこの違いなのかなと思いました。 >>602
116ミリ秒かかると書きましたが、毎回違ってました。
今見るとある1秒間の出力では14:17:50.013で始まり14:17:50.085で最後の行が出力されていたので、72ミリ秒でした >>603
続き
iPhoneの連写機能でUSBシリアルのRXとppsのLEDを撮影してみました
ppsが点灯した後にRXが点灯しているようです
ppsの点灯中にRXの点灯も始まっているのでppsの入力中にシリアルを取得するって書けば取得出来るはずなのに実際には出来てないのがよく分かりません。 >>602
文字化けしているのはNMEAメッセージでは無いですね。ubloxモジュール独自のUBXメッセージだと思う。
u-centerのpacket consoleで種別がわかるので確認してみて下さい。
それぞれ別なので、処理に100ms掛かってる訳では無いです。 結局、何をやりたいの?
シリアル出力から誤差数msecの高精度な時刻を取り出したいの? >>602-604
>>580を書いた者だけど、
1ppsの信号の極性が良く判らないんだけど、
スケッチ5で、
while(digitalRead(35) == LOW) { // LOWの間は待つ (=HIGHになったら通過)
}
とやっているのを == HIGH にしたらどうだろうか。
あと、コロンを消す操作は話がややこしくなるのでとりあえずコメントアウトしとく。
ちなみにここは単にdelay(500); とやった後で消せばOK。
それと、動作確認だったら、
例えば61行目に Serial.Println(now_second);
などと書いて、本当にその行まで実行されていて正しい値が入っているか確認すると良い。
あと、頑張っているのに水を差すようで悪いんだけど、
GPSの1PPSはGPS時刻(TAI)で、時報はUTCなので両者のタイミングは一致していない。
(差が0.9秒以内になるように閏秒でときどき調整している)
なので、1ppsのタイミングをU-centerで調整して時報に合うようにしても、たぶん2-3ケ月後
には0.1秒位はズレると思う(地球のふらつき方次第なので予測不能)
もし時報にぴったり合った時計を作りたいならNTPか電波時計を使った方がいいよ。 書き忘れたけど、
GPSからUTCとの補正量が降ってくるので、NMEAセンテンスの時刻はUTCで出力される。
但し、秒以下のタイミングは無保証だと思う。 >>607
へーUTCは自転の角速度に同期してるの?初耳だけど参考資料あったら教えて下さい。GPS時刻とUTCの差分は整数秒だと思っていたよw >>609
う、そう言われると自信が無くなってきた。
地球の自転速度でUTCの1秒の長さが変わっちゃったんじゃダメだよね。
ちょうどうちに同じGPSモジュール(u-blox m8n)があるので、動かして
1ppsのLEDとNictのJSTの時刻のページを見比べたんだけど、
ぴったり一致してました。
つまり、あなたが正しい。
ちなみに、このページ見て現在のずれは0.2秒くらいあると持ってました。
こういうズレはあるんだけど、これがTAIとUTCの位相差では無かった。
http://kuusou.asablo.jp/blog/2020/07/08/9266023 >>606
最終的な目標はみちびきのL1Sの災危通報の緊急地震速報を利用する事です。そして地震の無い通常時は卓上時計よりも正確な時計をLCDに表示させたい。
先月までの実験で、インターネット経由でNTP時計と強震モニタを受信できるようになったので地震のない時は時計を表示して地震があった時はその情報を表示出来るようにはなりました。
ただこれはスケッチ次第ではそれぞれのサービス提供側に迷惑かかってしまっているかも知れないし、またオンライン前提なのでスタンドアロンで動かせるみちびきの時計と災危通報を使いたいと思いました。スタンドアロンなら外出先でも使えるから。あと、自分のスケッチだとM5Stack(ESP32)のWi-FiとBluetoothの同時利用がうまくいかないのでWi-Fiを使わないでBluetoothと外部のGPSモジュールの組み合わせならうまくいくかもって思って。
で、肝心の災危通報が受信出来るモジュールやSpresenseは高いので、まずは他のGPSモジュールで時刻の取得を出来る様になりたいと思いました。今日の>>602、>>605でNMEAメッセージというものの存在が分かったのでおそらく$何々みたいな感じで災危通報のデータが入っているんだろうと思いました。
先月実験していたNTP時計だと自分の視覚聴覚レベルだとNHKの時報や今回手に入れたGPSの1ppsとほぼ同じタイミングで更新されてるので同等のものをGPSで作りたいと思っています。そしてそれがうまくいったら先月から指摘されてるように割り込みとタイマーの学習に進みたくスタンドアロンなら間違えたスケッチ書いたとしても何度スケッチ書き換えても迷惑はかからないと思ったので。
続く ttps://eco.mtk.nao.ac.jp/koyomi/wiki/GPS.html
ttps://ja.wikipedia.org/wiki/世界時
このあたり?
UTCとTAIは両方とも原子時計。
UTCはUT1との誤差が0.9秒以内になるように閏秒が入る。
TAIは閏秒が入らない。
UTCとTAIは整数秒差。UTCに閏秒が入るとその差が変わる。 >>605
どうもありがとうございます
U-Center確認してみます
もしかしたら自分が受信したい$なになにもU-Centerで指定する事出来るのかも知れませんね
>>607
どうもありがとうございます
>== HIGH にしたらどうだろうか。
昨日試したんですが、多分うまくいかなかったのかな?肝心の結果忘れました
ESP32はスケッチ書き換えや配線に時間かかるので明日からはブレッドボード上のAttinyなんかの他のマイコンで試します
1ppsとNHKの時報、NTPの3者は自分の視覚聴覚では同じ、
GPSモジュールを繋いだUSBシリアル上のRXのLEDは遅れてる感じでした。
明日はGPSのLXにLEDを繋いで1ppsのタイミングと合っているのかどうなのか確認してみます 原子時計とかもはや何が正確で何が不正確なのかわからないところまで来てる感じ >>602
あのね、正解さんが言っているようにシリアルにタイミングたよってもだめなの。シリアルからは時刻データだけ抜き出してその次の秒にした上で次のppsで割り込みかけて正秒とするの。 >>615
すみません何を言ってくれているのかやっと理解出来ました
がんばってみます 初心者なんですが以下の感じのプログラムってどうすればいいでしょうか?
Arduino同士をシリアルで繋いで双方のポートの状態をやり取りしたいんですが…
A側のポートBが00000001ならB側のポートCに00000001が出てくる感じです
(逆にB側のポートBが00000010ならA側のポートCに00000010って感じで)
ポート操作で状態を送る事は以下の様にすれば行けるようですが…
void setup() {
Serial.begin(115200);
DDRB = B00000000;
}
void loop() {
byte state = PINB;
Serial.println(state,BIN);
}
受け取るのがserial.readだと1バイトだけみたいで詰んでます…
アドバイス頂ければ幸いです。 >>618
配列にでもいれといて改行が来たら処理。1文字目にポート番号、2文字目にbitデータとかでなんとでもなる。 先日からのGPS時計です。
スケッチ6
http://codepad.org/cwUX3clk
割り込みを試してみました。だいぶん前進した気がします。割り込みの使い方これで合ってます?
1ppsの入力があったら変数をtrueにして、ループ内ではその変数がtrueの場合は時計を表示する様にしました。
無事、LCDの時計は目視では1ppsと同じタイミングで更新されるようになりました。(今のところは当然1秒遅れ)
しかしUTC時刻のままのようで112行目のオフセットの9時間が効いておらず今は午前10時なのに午前1時になってしまっています。
時計のオフセットが効かないのはどんな原因が考えられますか?
>>617
なるほど。どうもありがとうございます。 >>620
自己レス
マイコンで時計を表示する処理とGPSからシリアルが送信し始めるタイミングが被っていてマイコン側でシリアルの取得漏れがあるのかもと思ったので、GPSのシリアルの送信間隔を1000msから250msに変えてみたけど改善しませんでした。
しかしよく考えたら今は午前2時13分と表示されているので時は取得出来ているのは間違いなく、adjustTime(offset * SECS_PER_HOUR);が機能していないだけのようです。 >>621
SEC〜の定義は正しい?変数でなく直で数値でやってみたら?おかしいところがわかってるなら自分でいろいろ試してみたら。
割り込みとカウントアップのテストならGPSでの時刻取得はセットアップで一度だけの方がわかりやすいと思うけど。 >>622
どうもありがとうございます
adjustTimeの中に直で数値入れても変わらなかったので、now_year = year();などの代入の位置をsetup()の最後とloop()の中の最初のifの中に移動させたらなぜかうまくいきました。
ついでにadjustTimeに+1をしたのでこれで現在の時刻がタイミングよく表示されるようになりました
スケッチ7
http://codepad.org/ECWEPTTX
スケッチ6だとダメでこれだとうまくいったのはなぜでしょうか?
setupの中で1度だけ時刻の取得、ある程度(6時間など)たったら取得し直すやり方も試してみます。 >>623
>>610でUTCをちゃんと理解していないことがバレた者です。
ちょっと見たけどスケッチ6がだめで7ならうまく動く理由は判らなかったです。
気になったのは、
clock_refreshは割込みとメインの両方で使われているので、下記のようにvolatile
属性付けて宣言する。
volatile boolean clock_refresh = true;
割込みの起動条件を下記のようにHIGHにしているけど、
attachInterrupt(35, checkPps, HIGH);
RISINGで使うのが一般的だと思う。(M5stackはこうする?)
attachInterrupt(35, checkPps, RISING);
あと割込みの有無(clock_refresh)の判定をif文でごちゃごちゃやってるけど、
ここは皆さんが指摘しているように、
while(clock_refresh == false){
}
とやって、1ppsにきっちり同期させ、その直後にGPSのシリアル受信処理を
やった方が良い。
今のままだとclock_refreshを読みに行く周期が長いので、タイミングによっては
変なことが起きそうで怖い。
まあ、スケッチ7で動いているなら良いのだけど。 >>625
どうもありがとうございます
ppsの入力は毎秒100ms間くらいっぽいので、while(clock_refresh == false){
}
とやると900ms待つ事になるので、毎秒の500ms後のコロンを消す動作が出来なくなってしまうんじゃないかと思って>>623 のようにやりました。実際に試したわけじゃ無いので試してみます。
while(clock_refresh == false){
}
はSetupの最後に書いてこっちも試してみます。
volatile知りませんでした。割り込みで使う変数にはこの宣言が必要なんですね。
割り込みの時にHighとしたのは、インプットのある時だからHighだろうと何も考えずにHighにしました。 先月アドバイスもらったようにコロンにタイマーも試してみます >>625
>>626
NMEAセンテンス受信は以下の部分なんだけど、シリアルの受信バッファが空になると、一旦while文を抜けて次のループで残りを受信します。
while (ss.available()) {
if(gps.encode(ss.read())) {
// snip
}
}
なので
while(clock_refresh == false){
}
でブロックしてしまうと動作しなくなります。
NMEAセンテンスを全て受信する処理にしてから
while(clock_refresh == false){
}
とやれば一番良いのですが補足衛星数などで行数も変わるので結構面倒です。
であれば今のままで、液晶表示の更新所用時間もあるし許容範囲かと。 >>628
なるほど、そういうことだったのか。
対策はありそうだけど、とりあえず今のままでも良さそうだね。
コードのコメントにちょっと書いておくと後で悩まなくてよさげ すいません質問おねがいします。
ライブラリのインストール時のパスが、ドキュメントの下に Arduino\libraries\[目的のライブラリ]となるのですが、エディタで#include〈目的のライブラリ〉
とすると、No such file or directry となります。
他のlibと同じ場所にインストール出来ないのですがどうしたらよいでしょうか? >>630
「スケッチブックの保存場所」は合ってますか? ドキュメントの下のフォルダが管理者権限ではじかれるって何かいじったのかな?
権限がないなら与えればいいのでは? コピー先、C:\Program Files (x86)\Arduino\librariesで良かったんですね。
C:\Program Files\WindowsApps\ArduinoLLC.ArduinoIDE_1.8.51.0_x86__・・・に入れなくて喘いでいました。 コンパイルは通ったんですが、今度は
A fatal error occurred: This chip is ESP32 not ESP32-C3. Wrong --chip argument?
うーん・・・ >>635
その場所でもいいけど、自分のドキュメントの下のフォルダはここだよ?
C:\Users\自分のユーザ名\Documents\Arduino\libraries
>>636
使いたいのはESP32の何?
ESP32-S2やESP32-C3じゃなければVer 2.01じゃなくて
以前のバージョン(1.06とか)を使った方がいいよ ちなみにVersion 2.01とかVersion 1.06はESP32のArduino coreのバージョンね
Version 2.01は新たにESP32-S2やESP32-C3に対応したバージョンだけど
結構仕様が変わってるみたい
ネットにあるスケッチの大半が1.06やそれ以前のバージョン用だと思われます。 ちなみにESP32-C3のCPUコアは今までのXtensaではなくて
RISC-Vになってます
だからXtensaのESP32を使ってるのに
ESP32-C3を選択してると全く違うCPUコア用のビルドになるので全く動作しません >>625
>>628
>NMEAセンテンスを全て受信する処理にしてから
>while(clock_refresh == false){
>}
タイミングがよく分からないので、時計を表示したら
colon_view = falseとして、
以下のようにコロンを消す動作(500ms後)に
colon_view = trueと
while(clock_refresh == false && colon_view == true) {
}
を入れてみました
スケッチ8
http://codepad.org/SrNkiu2t
でもこれだと、1ppsの入力がある間(100msくらい?)は常に44行目からのif動作(時計を表示する)を目に見えないほどの高速で繰り返してそうに思えました。
どうでしょうか? >>637
aliexpress.com/item/32959541446.html
ESP32-CH9102Xと言う奴です。 >>640
自己レス
digitalPinToInterruptのRISINGはピンがhighの時というう事じゃなくて、LowからHighになった時に割り込むようなので95行目でclock_refreshをfalseに代入したとしても1ppsの入力がある間は常に割り込みでtrueに戻るっていう事は無いって事でしょうか? >>642
割り込みは変化したときに1回登録した関数を実行。質問するのはおkだけど日本語リファレンスに書いてあるようなのは調べないと何もできんぞ。 >>643
どうもすみません
ありがとうございます
次回からはちゃんとリファレンスに目を通して実際に色々試してから質問します コンパイル通っても、書き込みが不能になりました。
リセット押しても推しっぱなしでもダメ。 結局ESP32上でなんとかU8g2で128x64のOLED上に点などを描画できたんだけど、
幅いっぱいに点を打っていくと、結構時間がかかりますね。
高速で描画させる方法ってあるのでしょうか。
OLED事態の限界なのでしょうか >>646
スプライト使うのはどうでしょうか?
自分はLavyanGFXのライブラリを使っています >>640
>if動作(時計を表示する)を目に見えないほどの高速で繰り返してそうに思えました。
そうなるのが嫌だから、最初の書き込みの頃からみんなが1ppsに同期させて処理しろ、
つまり1ppsを検出したら処理を順に1回だけ実行しろ、と言ってた訳です。
ただ、>>628が指摘するような問題があるので、ループで繰り返し実行する必要が
あったということ。それでちょっと気持ち悪いので、コメントに明記しておいては、というのが
私の意見。
attachInterrupt(35, checkPps, HIGH);とやると、何度も割り込みが発生する(たぶん)ので
エッジトリガになる、attachInterrupt(35, checkPps, RISING);を使った方が良いとアドバイス
したのだけど、意味が判ってなかったみたいですね。
>>643が言うようにリファレンスをよく読むこと。
あと、状態が判らなかったら、Serial..printlnで値を書き出すとか、ポート操作してLEDを
点灯させるとかやって、自分で調べること。
一つ気になったのは、if文方式でやるとして、1ppsの信号が出ている100msの間だけ
時刻を読むことになると思うので、その期間のNMEAセンテンスに時刻情報が入っていない
と処理が破綻するかもです。 >>649
詳しくありがとうございます。
結果を急ぐんじゃなくて、ひとつひとつその処理の意味を理解してやるようにします。
以前、Arduinoをはじめようという本を買いましたがチラ見だけして終わりました。後半にはリファレンスもあるのでしっかり読みます。
あと、まだちゃんと読んでいませんが、前半には毎日決まった時間に水やりをする作例があったので、GPSの時刻の取得にも応用出来るかも知れないと思いました。
今は毎秒毎にNMEAセンテンスの取得をしてますけど、毎秒(しかも今は毎秒の中でも高速にループしている)はさすがに無駄な処理だと思うので、感覚を空けたり決まった時間にやるのがいいかもと思いました。(この件は先月NTP時計を試していた時にも指摘されました) >>647
情報ありがとうございます、調べてみます! lovyanGFXって320x240からなんですね。
128x64サイズで使いたかったので残念です。 >>646
u8g2で128x64のoledということはSSD1306インターフェースかな。
画面の更新はdisplay.display();でやるけど、この時画面全体のデーターが転送されるので、I2Cで400kbpsなら30msくらいかかる。
1画素修正してもこの時間がかかるので、出来るだけまとめて更新した方が良い。
この転送時間が問題になるならSPIインターフェースを使えば多分10倍速くなるはず。 OLEDをSPI接続。今度やってみたい。
ライブラリはu8g2でインターフェースの設定を変えるだけ? >>655
SPIインターフェースのモジュールに交換して配線も変更する必要がある。
>>653で言いたかったのは、画面全体を書き換えたとしても、I2Cでも秒間30枚の表示が
出来る訳で、あなたのプログラムの書き方がへぼいのでは?と言いたかった SSD1306のライブラリは全部のドット分をRAM上に確保しても
1KBしかメモリを消費しないのでRAM上の仮想バッファに描画してから
画面を更新するコマンドで1画面分をまとめて転送するように作られてるのが多いね
だから画面を更新する頻度を少なくして
なるべく1度にRAM上の仮想バッファに描画しておく方が描画速度が速くなる
ゲームなんかで裏画面に描画してからまとめて表画面に表示するのと同じ感じ デフォルトの遅い通信クロックなら、そりゃあ遅いのは仕方ない。コード出してないから変えた上で遅いといってんのかもしれんけど。 >>656
了解!i2c→SPI 変更のときは
物理的な配線と、u8g2ライブラリをSPIの設定に変えるだけで、スケッチ全体には影響しないと考えていいのね。 >>659
I2C用のSSD1306のOLEDではSPIの接続はできないよ?
SPI用になってるSSD1306のOLEDを買わないと >>656
3日前に始めたのでまだそこまでは出来ません…。 教えて下さい。
ArduinoでRS485通信をしたいのですが、やり方をググると専用のモジュールを使っているサイトばかりです。
Arduino単体でRS485通信ができない理由があるのでしょうか? >>663
それはインターフェース基板のことでは?
たいていのArduino基板は、C-MOSレベルの調歩同期通信しかできないし、
RS-485 I/F ICが載ってる基板は必要になるよ。 >>663
知らんからググってみたら、ノイズに強くて長距離に耐える方式なんだね
単なる個人的な興味なんだけど、具体的にどんな用途に使うの? 例えば:ビニールハウスの温度管理とかモニター
例えば:用水路や雨水貯水層の水位モニター
例えば:工場ラインの異常検出 親機(PC)に複数台の子機(AVRなどを使った制御装置)を接続したLANとか。 GND込みで3本の電線で、長距離通信ができて、ひとつの通信ラインにたくさんのデバイスを接続できるよ。
といっても、その通信手順についてはRS-485自体には決まりがないから、別の規格に従うとか独自のルールを決めるとかが必要。
今ならCANという選択肢もあるけれど、RS-485は古くて、いろいろなデバイスがこれを使ってる。 >>664
ありがとうございます。
すみません、初心者なので殆ど仰ってることが理解できてないのですが、
AVRのUSARTという機能を使ってできないって事なんですかね?
信号線が足りないのでしょうか
>>665
産業用モーターを制御するインバーターと通信をしたいのです あ、すみません
RS232Cとかもそもそも信号の電圧が違うんですね…
その辺を変換してやらないとだめってことなんでしょうか >AVRのUSARTという機能を使ってできないって事なんですかね?
そのUSARTに、RS-485 インターフェースICを繋いでやる必要があります。
https://jp.cuidevices.com/blog/rs-485-serial-interface-explained どんな通信方式もソフトウェアシリアルでやればIC使わなくてもできるよ
電圧レベルの変換は必要だし死ぬほど面倒くさいけど コンパイル終わって書き込み始めたらずっとそのままになってしまっているんですが、どうしたら復活させられますか? Arduino UNO 互換機です。こんなメッセージが出てます。
Problem uploading to board. See https://support.arduino.cc/hc/en-us/sections/360003198300 for suggestions. ループバックしないって事は…
何でですかね…2台も。 >>652
そんな制限あったっけ?
80×160のM5StickCでも使えるけど。 それ以下の解像度は知らんけど。作者に聞いてみるとか。 ID:hnL9EEhsさん、>>676も>>678も説明しなさすぎです。
どんな環境でなんというArduinoでどんなスケッチで何をやってトラブっているのか、とかを、もっと説明しないと Arduino1.8.16で写真の2台にU8gLogoというサンプルプログラムを書き込もうとしたらプログレスバーが右端のままで暫く経ってからProblem uoloading to bordとメッセージが出ます。Esp32では上手く動いています。
https://i.imgur.com/cyjckQ1.jpg
https://i.imgur.com/ucW8rSM.jpg
https://i.imgur.com/aSl5Dzb.jpg
https://i.imgur.com/cpQaR3e.jpg 表示のURLのトラブルシューティングループバックテストをやるとエコーが無いのです。
そこから先は特に書かれていないようなので、つまり2台連続で故障したのかなと思ったわけです。 スケッチの書き込みについては確認できないけど、loopbackができないのはまずいですね。
https://support.arduino.cc/hc/en-us/articles/360020366520
↓これはOKですか。
・Arduino(互換)ボード単体で試しているか(何も繋がない)
・TXとRXの端子は短絡しているか。
・Arduino(互換)ボードはずっとリセットを保持しながら確認しているか。
これでもなおloopbackが効かないとしたら、
・Arduino(互換)ボードのUSBシリアルが壊れている
・ドライバが合っていない
あたりが疑われると思う。でもふたつ同時に壊れたり(あるいは、最初からNGとか)する確率は低そう。 話を戻して悪いけど、RS485トランシーバICのUART以外の少し変った使い方を。
上の写真のTLC485ではJJYデコード信号(デューティ3種の1秒パルス)を20mほど送信。
下ではJJY信号(40KHz変調)をバーアンテナにドライブ。
https://i.imgur.com/IcW3DUI.jpg >>690
それはそれで気にはなった。
お隣の電波時計が、本家の電波と混信して受信したらまずそう。
タイムサーバーからの中継器を使うのって、建物の中とかで受信できない環境で使われるものではあるけれど。
そういえばパソコンのオーディオ出力+アンテナでエミュレートするのもあったはず。 電界は遠くまで伝搬するけれど磁界は近距離で減衰するそうだ
ワイヤーアンテナやエレメントのあるものにつなぐと遠くまで飛ぶがループアンテナやコイルにつないでも近距離しか届かない >>684
なんだか納得いかなかったので、ここに書かれている手順で
https://support.arduino.cc/hc/en-us/articles/360020366520
ループバックテストやって見た。
結果は、UNOの純正品だとOKだったけど、中華なパチ物はダメ。
シリアルピンをオシロで観察すると、純正品はちゃんと信号出てたけど、
中華なUNOは信号が出ていなかった。
このループバックテストはリセットをLOWにすることで、CPUのピンを全部
オープン状態にしておいて、TXとRXをショートさせることで、USBシリアルの
出力を折り返しているんだと思うけど、
中華なUNOはリセット掛かった状態ではUARTの出力が出ない、あるいは出
てもレベルが足らないみたいです。
ということで、そのループバックテストの結果は参考にならないです。 >>694
まじか。
リセットスイッチが、USBシリアル部にも影響するのか… 昨日通信方式の書き込みあったけどI2CやUARTってどのくらい伸ばせる?3芯や4芯のその辺のオーディオケーブルぶったぎって使って数メートルは行ける?それともあくまで基板内配線で長くても数十センチくらい? >>697
I2Cは1mも無理かな
UARTは数mぐらい >>698
ありがとう
UARTで使うケーブルはツイストケーブルとかシールドケーブルとかこだわらなくても大丈夫? >>699
3.3V CMOS信号に期待しすぎ、ケーブルに拘っても確実ではないな。
昔のセントロのプリンタケーブルとかが飛ばした実例。
USBにするのがいいよ。確実に5mの通信距離を確保出来るから。
https://qiita.com/kn1cht/items/cfe4c7549c1e303643f9 >>700
USBはPC専用だと思っていたから思いつかなかったわ
送信側受信側両方でUART-USBの変換かましてその間にUSBケーブル使うのか
おもしろいね マイコン対マイコンで距離を延ばすなら、RS-422が簡単。
通信手順やファームウェアは生のUARTや、RS-232Cから変える必要はないし、
100m超の通信も可。欠点は線が増えること。
http://www.miyazaki-gijutsu.com/series3/denso032a.html
C-MOSレベルのUARTで延ばすなら、数mぐらいが安全だと思う。
その場合、間違ってもTxDとRxDをツイストしないこと。ツイストするなら、TxDとGND、RxDとGND。
フラットケーブルで送るなら、TxDとRxDの間にGNDを挟むべき。 >送信側受信側両方でUART-USBの変換かましてその間にUSBケーブル使うのか
それは無理。USBのデバイス同士はそのままじゃ繋がらない。
どちらか一方がホストでもう一方がデバイスでないと。 >>702
勉強になりました
線も分かれていても隣同士のように近いと混信する可能性もあるのね >>697
何年か前に、I2Cを電話用のモジュラーケーブルで伸ばしてみたら100knpsで5m程度はいけたな。
RS232は規格上は15m程度だったかな。 基板作ったけど、i2cのプルアップやすれちゃった。プルアップしなくても、100 kbpsで10cm位ならなんとかなる? I2Cはプルアップ必須です。
マイコンの内蔵プルアップが使えないかな? あ、すみませんArduinoスレでした。
328PだったらI2Cで初期化したら内蔵プルアップが有効じゃなかったっけ。
実測は別として、内蔵プルアップが最大50kΩ。
I2C静電容量が20pFなら立ち上がり時間は2.2us。100kbps(周期10us)なら大丈夫では。 >>710
その手がありましたか。
計算までして頂きありがとです!! I2Cの話題が出たので…
LiquidCrystal_I2C
っていうキャラクタディスプレイにI2C接続するライブラリ使ってるんですけど、これ信号線の接続がA4とA5なんですよね。
これってソフトウェアシリアルでやってるってことですか? プルアップだけどTinyをI2Cスレーブにして他のマイコンから利用する場合はマスタースレーブ両方ともプルアップする必要ある? >>706
貼ってくれたリンク先読んだけど、
LANケーブルの線のペアの関係を考慮していない接続になっていて、特性インピーダンスやクロストークのことが考慮されていない設計になっている。つまりあまり参考にならない記事だと思った。
ちなみに、その記事の中にリンクがあるスイッチサイエンスのLANケーブルを使ったI2C長距離接続アダプタはそのあたりがちゃんと考慮されていた。 >>706
これはI2Cではないような気がする
伸ばした方にセンサーでもつけて実験してくれたらいいんだがな >>715
GroveだからI2Cかと思ったけどよく見るとボタンとLEDだからデジタル入出力だったわ >>715,716
>>714です
本当だ、スイッチとLEDを延長しているだけで、I2Cは関係なかったです。
お騒がせしました UARTはアナログモデムつなげば地球の裏側でもいける https://aliexpress.com/item/4000285092794.html
ALI眺めてたらこんなRJ45使ってUSB延長するケーブルあったけど、ピンヘッダだから使い勝手よさそう http://codepad.org/XMbapcfQ
atof 10.1 - 10.100000
atof 100.1 - 100.099998
atof 1000.1 - 1000.099976
atof 10000.1 - 10000.099609
atof 100000.1 - 100000.101562
atof 1000000.1 - 100000.101562
floatがよく分からなくなった…100.1でもう駄目なの?23bit分は保証されてる物じゃないの? 100を表現できる128を2^24で割ったら、0.00000763で、これが分解能になるのでは。
桁をそろえてみると
100.099998
000.00000763
となって、最後の98のあたりは誤差になってる。
https://tools.m-bsys.com/calculators/ieee754.php >>722
あー 浮動小数点はその様に表現されてる物なのですか 根本から間違えてましたtnx
シミュレーターの方は色々試しても桁あふれ以外きっちり出てる様な感じがしますが
丸め処理込みの数値なんですかね ウチはLANケーブルでI2Cを8mくらい延ばしてるけど
平気だよ 部屋から屋外に出してるからSTP使ってるけどね
ペアの事あまり考えずにやっちゃったなあ >>701
紹介したCH375、最後まで読んだら「使えませんでした」で終わってたorz
すまん、他の良いのを探してくれ(^-^; >>724
>>722のシミュレータで
上の「数値リテラル→IEEE754内部表現」で、10進数の100.1を入れて変換すると、単精度で
0100 0010 1100 1000 0011 0011 0011 0011
が得られます。
これをそのまま「IEEE754内部表現→数値リテラル」の
指数部に 10000101
仮数部に 10010000011001100110011 を入れて変換すると
1.000999984741211e+2
と、721に書かれた通りの値が出てきます。
さらにその仮数部の下3桁の011を010→011→100と増やすと、100.1をまたいで越してしまうのがわかります。 条件によってLEDを最大5個点灯させたい
出力ピンが足りない場合はI2Cか何かで他のマイコンに繋いでそっちでその5個光らせるといいんでしょうか? >>728
IOエキスパンダ、IOマルチプレクサを使う。
チャーリープレクシングでピン節約。 >>729
ありがとうございます!
他の安いマイコン使うよりも費用や消費電力の面で有利なんでしょうか? >>729
ググってみました
チャーリープレクシングというやり方もあるんですね 動作が全然違うから比較にならんような。DACはHighLOWじゃなくて任意の電圧出力だからエキスパンダーの代わりに使えなくもないが。 >>734
ledの件とは違うけどIOエクスパンダはADCやDACとしては使えないって事ですか? 7セグ用のMAX7219でも1つで64個個別にLED駆動できるよ
https://akizukidenshi.com/catalog/g/gI-15312/
って書いたけどめっちゃ高いな・・・800円w
Aliのパチもんなら半額以下である。普通に使えてる 3.3Vと1.8VでUART通信をする場合のレベル変換だけど4bitとか8bitって何が違いますか?
あと秋月のこのキットの取説にはLV側の最小は2.5と書いてあるから3.3V-1.8V変換にBSS138は使えないんでしょうか?
https://akizukidenshi.com/catalog/g/gK-13837/ IOエクスパンダは通常は汎用デジタルI/Oの拡張だけだと思う。
H/Lを入力したり出力するだけの(しかもそれなりに遅く) >>737
自己レス
4bitは4チャン分8bitは8チャン分でした
I2C用と書かれてるものと書かれてないものの違いがよく分からないんですがプルアップ・プルダウン出来るものがI2C用って事でしょうか? >>739
書いていることに突っ込みどころが多くてレスが付かないのだと思う。
もう少しやりたいことを具体的に書くと良い。
例えばボーレートは?、信号の方向は?なぜ4ビットや8ビットも必要なの?
とりあえずレスしておくと、
秋月のBSS138を使ったレベコンは最小電圧が2.5Vなので使えない。
I2Cのレベコンは双方向用なので、UARTに使うのは間違い。もちろん使えなくは無いけど
そういう変な使い方は、誰もアドバイスしないと思う。やりたいなら勝手にやって。
たぶん1.8Vと3.3Vのロジックの間で通信したいのだと思うけど。
3.3V→1.8Vなら抵抗一つ入れれば済む。
3.3→1.8Vはちょっと面倒でレベル変換ICを使うのが確実だけど、俺ならトランジスタ2つ使っ
てレベル変換する。 間違えた、
×:3.3→1.8Vはちょっと面倒でレベル変換ICを使うのが確実だけど、
〇:1.8V→3.3Vはちょっと面倒でレベル変換ICを使うのが確実だけど、 こんにちは。
SPI通信についてよく分からないのですが教えて下さい。
通信が開始されたとき、マスタとスレーブの間で8ビットのデータが"交換"されるという考えでよろしいですか? まあ、そんなもんだ。
(だったら…とかいう小出し質問は無しにしてくれな) >>743
ありがとうございます。
小出し質問が湧いてしまったのですが、やめておきます。 >>740
>3.3→1.8Vはちょっと面倒でレベル変換ICを使うのが確実だけど、俺ならトランジスタ2つ使ってレベル変換する。
BSS138でのレベル変換を認めるなら、バイポーラトランジスタ1個で済むのでは。
Vgs(th)に比べると、Vbeはずっと小さくて、1.8VでもONするし。 >>745
>>740だけど、確かにそうだ!その手があった Arduinoが最も安価に手に入るところはどこですか?
秋月とAmazonの2つを確認したところ
今のところUNOが2つで1450円でした
もっと安いところはありますか? >>747
>今のところUNOが2つで1450円でした
オフィシャルのものでなくてよくて、あたりはずれがあっていいなら、
Aliexpressあたりで探してみては?
もし、あなたが初学者なら、トラブルがあったときに人に質問しやすい
オフィシャルのものを買う方がいいと思う。 aliとか恐ろしい値段で売ってるけどなんなんあれ?
50円とかatmega328p単体より安いじゃん 昔ならサインスマートのがモノホンと遜色なくてそれでも1800円したな 電子部品なんてもともと中国製じゃなくても安いもんじゃない? >>748
ありがとうございます
こんなサイトがあったとは…
あまりの安さにカルチャーショックを受けました
ただ届くのが遅いのでAmazonの最安を使おうと思います
正規版は今2つもっててそれで勉強中な感じです >>749
> 50円とかatmega328p単体より安いじゃん
今は、Arduino Uno R3(CH340G互換機)も高くなったのと、送料が有料だし
50円で買えないですよ。
一緒に売ってるUSBケーブルかパーツだと思いますが・・・
>>747
私が頻繁に購入していた時期(2017〜2018頃)にAliでの最安値は、
互換機で送料込み280円でした。
今は、ヤフオク・メルカリに出品している長期在庫品の方がAliより
安いですよ
15〜20台前後、Aliから購入したが、一度も不良品は無しでした。 Aliでは今は8ビットのATMega328より、32ビットのESP8266・ESP32の方が安かったり、わけが分からん状態になってる ヤフオクも安いですね
こちらで買おうと思います
質問です
Arduinoを何十個も使ってシンプルなスマートホームを構築しようと思ってるんですが現実的に可能なことでしょうか? お湯の温度を制御したいんですが、防水の温度センサーでオススメありますか? >>758
ありがとうございます。
自分で作るという発想は無かったです。 >>758
横からすまん
高くてもいいから信頼性ある奴だと何になる? >>756
俺はスマートホーム方面に使ってないからわからんけど
スマートホームって簡単なことがほとんどだろうし
出来るんじゃないか?
自信は無い >>763
熱電対だから信頼性が上がる、ということはないよ。
ここでは第一に湯の温度を測るためのセンサーの、防水性や湯の使いみちによっては衛生的なパッケージの仕方が問題になるでしょね。 そうそう
熱電対でもいいんだけど、一番は防水性と耐久性かな
電気ケトルをトライアックで制御する予定
目的は温泉卵を作る Arduinoに複数のピンを繋ぐときの電気の挙動が分かりません
例えばUSB接続で5Vを持ってるとする
全体で5V持ってる1つの電池に他の色々を繋いでると考えればいいのでしょうか? >>769
日本語でおk。複数のピンを繋ぐってのはどういう意味?例えばLEDをIOピンとGNDピンに繋ぐだけでも複数ピンだと思うけど。 >>769
5Vの電池に並列でセンサーとかをつないでるイメージでいいよ。電流だけ気にすればいい。 >>769
・Arduino を USB接続の5V電源で動作させているときに
・Arduino の デジタル出力の複数のピンにそれぞれ何かをつなぐ
ということでしょうか。
(もし違ったら、あなたが考えている接続を絵にしてアップしてください)
複数のピンをそれぞれプログラムで、H(5V)とL(0V)に制御できます。
以下念のため。
デジタル出力は多くの電流を流せません。電池に複数のものをつなぐのと
違って、デジタル出力で、モーターを廻したりはできません。 >>769
うん合ってる
ちなみにその考え方はキルヒホッフの第一法則
自分で考えたあんたは偉い >>768
それだと、ステンレスのシースに入ったセンサーがいいなあ、と思ったが、
そういうのって、すごく高価。
市販のクッキング用温度計から持ってくる方が安そう。 おお、皆さんありがとうです
並列やら独立に近いでようやく掴めました
回路図が書けそうです
ありがとうございました! >>774
中華で安く買えるよ。
熱電対むき出しは反応が早いけど、ステンレスのケースに入れてあると反応が遅い。 >中華で
たしかに。
卵を温めるような量のお湯の上がり下がりなので、それぐらいの反応の
遅さは問題にはなりにくいよ。 >>776
なるほど、分解するのも手ですね
>>776
剥き出しの熱電対って水の中入れて大丈夫なんですかね…?安全性とか 耐水性の水槽用のチューブの中に温度センサ入れて
両端をシリコンコーキングで塞いだことならあるなあ >>779
絶縁と防水は必ずやったほうがいいよな
ただそうすると熱伝導率が悪くなるのが難点 アマゾンで3本900円位のDS18B20使ってるけど防水全く問題ないよ >>781
ガチな業務用じゃなければそれもありですね
安いので怪しくなったら交換すればいいし DS18B20の良い所は校正不要ですぐ使えること
悪いところは精度±0.5℃もあるということ 精度と言っても絶対値のズレと言う感じで、並べて計ると+-1lsbずれてる様なのがあるだけだから
わりと気にならない 最近DS18B20で体温を計ってみたけど、オムロンのデジタル体温計と全く遜色無かった そうだね
10個800円でまとめ買いしたのチェックしたらバラつきはあるものの個々で補正値セットすれば±0.2℃くらいにはなりそうだった
1つのNanoに10個の温度センサー繋げて個別にID管理できるのは何かに使えそうだたけど出番は無かったw
部屋の天井付近と床付近の温度差が7度あれば自動でサーキュレーターが動作する装置を作ったがこの季節だけ活躍している サーキュレーターで今更ふと気付いたけど、うち天井に強弱設定だけで停止出来ない換気ファンが
並んでるんだけど、サーキュレーターでかき回さないと暖かい空気が外に捨てられるだけだよなw 中華から買ったDS18B20ってパラサイトパワーで使えなかったりするんだよな そうそう、しかもIC単体の奴は使えないけど、ケーブル付いた製品は使えるふしぎ
ケーブル付きの4本、単体30個複数の店で買ったけど単体は全部駄目だった
ケーブル付いた奴は正規のチップなのか、両方中華製の偽物で
パラサイトで動く奴はケーブル付きに回されるのか maximのライブラリ使ってる場合は関係ないのでは。 今更ながらFritzing使ってみたが、オリジナルパーツ作るのメンドいね Fritzingは配線が微妙に水平垂直にならずこまったので
使うのやめたが、直っているのかな?
あれで実体配線図書いて「回路図です」って言ってる記事があるが、
目にすると悲しくなる 中華で売ってる安い「DS18B20」は、この「QT18B20」だと思ってる。
スペックは同等だけど正規にライセンスを受けたセカンドソースとは書いてない。
手持ちのパーツでは精度は問題ないみたいなので、ホビー用途ならいいのでは。
http://www.7qtek.com/QT18B20/83.html データシート見るとQT18B20はパラサイトモード非対応の互換チップと言うわけじゃなく、
QT18B20もパラサイトモードに対応してるんだな >>795
それもパラサイトモードに不具合あるの? >>797
動かないね
プルアップ抵抗かなり下げても反応しなかった ここに偽造の見分け方が書いてるな
https://github.com/cpetrich/counterfeit_DS18B20
>ROMアドレスがパターン28-xx-xx-xx-xx-00-00-xx [5]に従わない場合、これは偽物です。
>(MaximのROMは基本的に48ビットカウンターであり、最上位ビットはまだ0です。)
>また、まれなファミリーA2を除いて、偽のセンサーはスクラッチパッドレジスタの予約済みバイト6を正しく調整したり、正しく応答したりしません。 マルチマスタのUART通信において、通信の衝突防止にCSMA/CA方式を実装しようと思います。
通信はASCIIのコマンド形式で12byte。9600bpsです。よってコマンド時間は10msです。
他の機器が通信していたら、乱数時間待ち送信との事ですが、
「他の機器が通信していたら」の部分の実装方法が分かりません。
アドバイス、よろしくです。^_^ うちのは
DeviceCount = 10
Resolution = 12
ParasitePowerMode.
address
0 = 28 ff 64 bc 61 17 04 28
1 = 28 ff e4 7f 62 17 04 b6
2 = 28 ff 46 b5 61 17 04 c0
3 = 28 ff 01 f2 62 17 04 fa
4 = 28 ff a1 83 62 17 04 ee
5 = 28 ff 99 d9 61 17 04 73
6 = 28 ff d5 03 63 17 04 ee
7 = 28 ff fb 91 62 17 04 f9
8 = 28 ff d7 7d 62 17 04 7b
9 = 28 ff ff 7b 62 17 04 b4
00-00-xx が 17-04-xx になってる 初めてminiの互換を買ってみました
USBでパソコンと繋いだところ赤く光りました
ですがデバイスマネージャに『?』とすら認識することなく全く認識しません
この場合どのような問題が考えられるでしょうか? https://i.imgur.com/zx27oJp.jpeg
>>768さんの真似てDS18B20と携帯湯沸かし器で温泉卵作ってみました
湯を64℃にして25、30、35分で試してみたけど30分で黄身のとろみがいい感じです
ここから質問ですが
ソリッドステート・リレーについてよく知らずに買ったのがローレベルトリガーでした
想定してた動作と逆でトリガー入力がハイでリレーはオフになるという事なんですね?
それとESP-WROOM-32では動作せず使えないという理解で合ってますか?
https://ja.ありexpress.com/item/33020082025.html?spm=a2g0s.9042311.0.0.27424c4dcpgk8U >>802
何のminiか知らないけど、Arduino Pro mini なら
書き込み装置が何を使っているかが分からないと答えようが無い。
>>803
70℃なら焼き芋ができるね。 >>802
詳しくないけど
USBケーブルにデータ転送用と充電用あるけどそこは大丈夫?
ケーブル刺したままPC再起動してみるは?
>>805
デンプンの糖化温度ですね やってみます 充電のみのケーブルだと『?』も表示しないのか・・
『?』のところ右クリックでドライバの更新とかできない? >デバイスマネージャに『?』とすら認識すること**なく**
ということなので、「?」の右クリックもできそうにないね。 ごめん 『?』のマークも表示してないのね・・
まずケーブルから疑うかな 皆さんありがとうございます
ケーブルがやっぱり怪しいみたいです
ケーブル自体をデバイスマネージャが
Prolific USB-to-Sirial
とは認識してしまうんですが、USBケーブルにArduinoを抜き差ししてもデバイスマネージャはうんともすんとも言わない感じです >>810
miniならUSBコネクタついてないのでは。基本の情報が足りない。arduinoの商品ページとかケーブルのページが写真とか出せないの? >>810
prolificのUSBシリアルがwindowsから認識されない現象だと思う。
ネットを検索して対処方法を調べると良い 『Prolific USB-to-Sirial』 右クリック プロパティは見た?
使っているUSBシリアル変換モジュールは何か商品ページ示したら誰か解決してくれると思うよ うちはUSBが山ほどあるので電源専のと
データ転送用をシール貼って分けてます >>812
>>813
ありがとうです
どうもこれのようです
右クリックで見たりドライバーをインストールし直したりしたんですがずっと解決しないので普通そうなUSBを買いました
どうもありがとうございました >>815
パチ物のPL2303の問題なら、ここにある
http://www.ifamilysoftware.com/news37.html
対策プログラムを実行すれば直るよ。但しwindows updateがかかると元に戻る。
USBシリアルならCH340がそういう問題が起こらないので使い易い。
これ、昔は馬鹿にしている人が多かったんだけどね。 USBケーブルってのがUSBシリアル変換ケーブルだとしてもそれの動作としては正常のように見えるが。まぁいいか。 >>817
キッチリやってみたのですがやっぱり何故か動かないです
不思議です
ありがとうございました String asdf ="";
asdf ="hudjhdhd"¥;¥2hdheh;"gd(ghdj)jd";
Serial.println(asdf);
エラーになりました
Stringの中に"や;は使えないんですか? >>820
直前に\を入れれば使える
詳しくはエスケープシーケンスでググれ >>821
ありがとうございます
文字列をhttpからダウンロードして切り出す出したくて、まずはローカルの変数に文字列を入れて試していました。
HTTPClient.hを使ってダウンロードする文字列の場合は"や;が何文字目に入ってるかは分からないけどこの場合は気にしなくていいんでしょうか? ESP-WROOMでwifi通信をしたいのですが中々配線図が載ってません
どこかで基本的な配線は載ってないでしょうか? ネタだろ?WiFiに配線もクソもねぇだろ。
サンプルを入れて動かせば良いだけ。ピン付すら不要。 >>824
スケッチ書き込んだら、電源線だけでいいよw >>824
「Hey ESP, Wi-Fi通信始めて」
これだけでいいよ WROOMならICというかモジュール単体でしょ。ESP8266か32かは知らんけど。最初の一個ならUSB刺しただけで動くボード使った方が良いけど。 ×Arduino初心者熱烈大歓迎質問スレ
○Arduino初心者熱烈大歓迎検索代行依頼スレ エスパーすると、モジュール単体を所有していてWiFi接続モデムとして使いたいのではなかろうか?
いくつかの外付け部品をつけて起動し、シリアルから必要なコマンドを送ればつながるよ Arduinoとして使ってたESP32のボードをほかのArduinoのwifi手段として使う場合ESP32にどんなスケッチ書き込んだらよいの? >>834
Wifi機能のあるスケッチ。Wifiといっても子機かアクセスポイントか、サーバかクライアントかでスケッチは別物だけど。構想はもう少し具体的に伝えて。どんな感じのものが作りたいの。 >>835
これまでESP32のボードをArduinoとして使っていたけど、micro bitをArduinoとして使ったとしてこれにはWifi機能が無いけどインターネットに繋ぎたい
手元にEPS32のボードがあるからこれを使いたい >>829
チップ単体を持ってる人は、回路図を先に入手してるはず。
ここで質問してる時点で、まぁ動かすことは不可能だろうな。 >>828
「OK ESP, Wi-Fi通信始めて」
じゃないから動かなかったのか。
ありがとう。 >>836
microbit のシリアル出力から、モデム化したESP32にコマンドを送ってWiFiやデータ通信をすればいいんじゃね?
「microbit ESP32」でググればいっぱい出てくるだろ
bluetoothで繋いでいる例もいくつか見つかった
こっちの方が楽かもな 皆様どうもすいませんでした
>>830
ここを参考にして何とか動きました
本当にありがとうございました >>839
すでにESP32に書き込んであるスケッチやブートローダーはどうするの?
きれいさっぱり消すやり方知りたい 消す必要ないだろ。特にブートローダー消して何がしたいの。 >>841
綺麗サッパリ消すとモデムになるんじゃなく、モデムとしてふるまうプログラムを動かすんだぞ >>841
ESPの製造元のwebから工場出荷時状態のファームと書き込みツールが手に入るので、それを書き込んでやればいい
ESP モデム化 とかでググれば詳細分かると思う >>842
ESP32にAruinoのLチカ書き込まれたままだけどそのままでいいのか? >>840
あんたここまで言われて怒らないの偉いよ
普通に偉い >>845
>>844が言ってるようにATコマンドを使うなら初期のものに書き換える必要がある。ただ、ATコマンドはめんどくさいから個人的にはおすすめしない。ESPでネット繋いで何したいのかにもよるが、ESP+arduinoで自分で機能作った方がライブラリとか充実してるし情報も多い。
ネットに繋いで何がしたいの? アクセスポイントに接続できません、とあるのですがどうすればアクセスポイントに接続できるでしょうか? 電気屋さんに行ってインターネットを一つ買って来る。 LANケーブルってあるだろ?
無ければUSBケーブルでもいいよ
ケツの穴にぶっさせ
それで繋がる 昨日動いてたArduinoが何も変えてないはずなのに動かなくなりました
電力という話ではないです
どのようなことが考えられるでしょうか? 動かないっていうけど曖昧だよなー。モーターとかついてないから俺のも動かないわ。 >>852
ワクチン打ったから、何も接続しなくても5Gに繋がったよ。 EmpathというAPIを使って感情認識した音声をNeopixelで感情ごとに色分けしたいです。Pythonで音声を録音保存→それからEmpath で感情を数値化(ここまでがPython内)→(以降Arduino)シリアル通信で出た感情の数値を持っていく→感情ごとの数値をNeopixeで色分け制御。という感じでやっていきたいのですが調べてもpythonからarduino nanoにempathの数値を持っていく方法がわかりません何かわかる方お願いします。
empathの指定フォーマット
PCM WAVE形式、16bitであること。
データサイズが1.9MB以下であること。
フォーマットがPCM_FLOAT、PCM_SIGNED、PCM_UNSIGNEDいずれかであること。
録音時間が5.0秒未満であること。
サンプリング周波数が11025Hzであること。
チャンネル数が1(モノラル)であること、
ーーーーーーーーーーーーpython code ーーーーーーーーーーーーーーー
import pyaudio #録音機能を使うためのライブラリ
import wave #wavファイルを扱うためのライブラリ
RECORD_SECONDS = 5 #録音する時間の長さ(秒)
WAVE_OUTPUT_FILENAME = "sample.wav" #音声を保存するファイル名
iDeviceIndex = 0 #録音デバイスのインデックス番号
#基本情報の設定
FORMAT = pyaudio.paInt16 #音声のフォーマット
CHANNELS = 1 #モノラル
RATE = 11025 #サンプルレート
CHUNK = 2**11 #データ点数
audio = pyaudio.PyAudio() #pyaudio.PyAudio()
stream = audio.open(format=FORMAT, channels=CHANNELS,
rate=RATE, input=True,
input_device_index = iDeviceIndex, #録音デバイスのインデックス番号
frames_per_buffer=CHUNK)
#--------------録音開始---------------
print ("recording...")
frames = []
for i in range(0, int(RATE / CHUNK * RECORD_SECONDS)):
data = stream.read(CHUNK)
frames.append(data)
print ("finished recording")
#--------------録音終了---------------
stream.stop_stream()
stream.close()
audio.terminate()
waveFile = wave.open(WAVE_OUTPUT_FILENAME, 'wb')
waveFile.setnchannels(CHANNELS)
waveFile.setsampwidth(audio.get_sample_size(FORMAT))
waveFile.setframerate(RATE)
waveFile.writeframes(b''.join(frames))
waveFile.close()
#empathで録音した音声を感情分析
import requests
url ='https://api.webempath.net/v2/analyzeWav'#empathに繋ぐ
apikey = '’#指定したkey
payload = {'apikey': apikey}
wav = "sample.wav"#サンプリングした音声を引き出す
data = open(wav, 'rb')
file = {'wav': data}
res = requests.post(url, params=payload, files=file)
print(res.json())#感情をArduinoに転送
ーーーーーーーーーーーー終了ーーーーーーーーーーーーーーー
これが実行結果の例です。{'error': 0, 'calm's 15, 'anger': 0, "joy': 34, 'sorrow":0, 'energy':30)
ここからどのようにしてArduino nanoに持っていけばいいのでしょうか。またそれ以降の進め方やおすすめのやり方あれば教えていただきたいです。 文字列処理はarduino向きじゃないからpythonのほうでneopixelに向いた形にして送れば。 >>857ありがとうございます
そうした場合ってArduino側はserialで受け取り、NeoPixelで書いていけばいいのでしょうか?
2つ混ざってしまっていて似たようなコードを書いてもエラー吐かれてしまいます。。 Empathって知らないけど、PCからArduinoへのシリアル通信の質問? >>858
コードが正しいかはコードとエラー内容出してもらわんとわからん。
どういう動きにしたいのかも詳しく出してくれないとコード的には正しくても想定とは違ういうこともあり得る。 >>859
簡単に言えばそうです。ただシンプルなやつは出来たんですけどこれにneopixel絡むとよく分からないです。 >>860
例えばempathででたangerの値MAX50がRGBのRで255というように置き換えたいですね。joy=G sorrow=B
のような感じです。 >>863
そうですね!やっぱりそうなるとPythonで制御してから送るべきですよね、、、 そそ、メモリの少ないマイコンにやらせるより、送信側で処理したほうが後々楽だね やっとプログラミングと電子回路が少しだけは分かって実際のものを作ろう、というところに来たんですが
「モーターで鍵のロックをどう回すんだろう?」
「横に動かしたいけどモーターの円運動を直線運動に変更?どう実際にするんだ」
などなどと言ったところでつまづいてしまいました
皆さんはどうやってこういうのを学びましたか? >>867
そりは電子工学じゃなくて機械工学の分野なんで別の視点で調べないといきなりは
無理筋じゃないかな
とりあえず最低限で「歯車 wiki」見てごらん >>853
IDEやライブラリのアップデートとか? >>867
よめ子はステッピングモーターを往復運動させてやっていたな >>869
そういえばちょうどアップデートしてました
ありがとうございます
これっぽいですね 接触不良で動かないことが多いんですが
接触不良の箇所を効率よく確認するにはどうしたらいいでしょうか? >>868
>>870
ありがとうございます
歯車って凄いですね
人類の英智に感動しました
ここで知ったものをモノタロウで買おうと思います 入門者が増えてきたような気がする・・・
人口が増えるのはいいことだね Arduino CCからUno Miniとかいうバカ高いの出たみたいね
化粧箱入りのやつ 記念商品であって、その価格でずっと出すわけでもなかろうと思うが。 a collector’s item for serious Arduino lovers >>874
テスターは持ってたんですが使い方がよくわかってなかったみたいです
調べてみます https://i.imgur.com/oQoGjCT.jpeg
DS18B20 2個とmoisture sensor v1.2 1枚繋いだところ温度は正常で湿度の値が4095になり
DS18B20を外すと湿度は正常になりますが温度が-127になります
どこをどう直したら温度と湿度両方表示できますか?
スケッチはネットから拾いつなぎ合わせたもので解かっておりませんが宜しくお願いします
#include <OneWire.h>
#include <DallasTemperature.h>
#define ONE_WIRE_BUS 32
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
DeviceAddress temp1 = {0x28,0x65,0xB1,0x56,0xB5,0x1,0x3C,0x35};
DeviceAddress temp2 = {0x28,0x46,0x4,0x75,0xD0,0x1,0x3C,0x2F};
void setup(void) {
Serial.begin(9600);
}
void loop(void) {
int humi = analogRead(A0);
sensors.requestTemperatures();
Serial.print(sensors.getTempC(temp1));
Serial.print(" ");
Serial.print(sensors.getTempC(temp2));
Serial.print(" ");
Serial.println(humi);
delay(1000);
} >>882
GND[ESP32<->ブレッドボード]間の接触不良とか? pinModeの設定してないのが気になるけど問題とは関係無いのかな
ESP32はpinMode(ANALOG)らしいぞ >>882
全部繋がずに、一つ一つ繋いでスケッチ書いて、確認してみたら? ESP32のAD変換は1Vまでだけど、その湿度モジュールの出力電圧範囲はどうなってんの? 1VなのはESP8266のモジュール単体だけじゃないの
ESP8266でもDevkit的な物は分圧されていて1-3.3Vとか、ESP32はアッテネータ内蔵 一つずつ試すとOKですが
DS18B20とmoisture sensor v1.2を1個ずつで同時に繋ぐと湿度の方がだめでした
DS18B20の5Vピンを抜くと湿度OKになります。(>>882の時と同じ状況)
analogReadの値が空中3300 水中1380と表示されます
#include <OneWire.h>
#include <DallasTemperature.h>
#define ADC_PIN 36
#define ONE_WIRE_BUS 32
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
void setup(void) {
Serial.begin(9600);
pinMode(ADC_PIN, INPUT);
}
void loop(void) {
int humi = analogRead(ADC_PIN);
sensors.requestTemperatures();
Serial.print(sensors.getTempCByIndex(0));
Serial.print(" ");
Serial.println(humi);
delay(1000);
} ESP32はINPUTじゃなくANALOGってADC用の定義があるらしい
多分アッテネータの設定とかするんだと思うけど、一つずつの場合動くなら問題無いのかな pinMode(ADC_PIN, ANALOG);に変えてみてもだめでしたね
Arduino Pro Miniで>>882のスケッチでONE_WIRE_BUS 10に変えて試したら温度と湿度正常に表示されOKでしたが
ESP-WROOM-32ではmoisture sensorから僅かに発信音が聞こえる事に気づきました。Pro Miniでは無音で正常に動きます。
ESP-WROOM-32の場合
回路図の赤バツのところ外すとmoisture sensor正常動作し
黄色の線ところで外すとmoisture sensor動作しません
4.7kの抵抗が影響してるようです?
https://i.imgur.com/cUruNWW.jpeg 質問すみません。
1つのPCから、複数のM5Stackのセンサ値を、Bluetooth接続(シリアル通信)で取得可能ですか?
ペアリングしたら、COMが割り当てられるみたいだから、いけそうな気がしてますが、、 >>893
DS18B20は動いてるからONE WIREのポートを他の若い番号に変えても無意味かね
確かGPIO32以上は扱いが別だったと思うけど、動くならそれに対応していないわけじゃないんだよね >>895
>>882のスケッチでONE_WIRE_BUSを25とか14ピンに変えたらうまくいきました
センサーからの発振音も消えました
個別では動くのでピンを変えてみる発想は出来ませんでした
これで先に進めます。大変ありがとうございます
他の皆さんにもコメント頂き感謝しております onライトを消したいのですが
pin名などはありますか? >>896
アドバイスした者ではないけど気になっていたので動いて良かった。
ついでだからアドバイスすると、
ESP32のロジックレベルは3.3Vだから、DS18B20も3.3Vで動かした方が良い。プルアップの4.7kも3.3Vに接続。
回路図でDS18B20を裏と表の2種類の状態で書いているけど、間違いの元になるのでどちらかに統一した方が良い。普通はマーキングがそのまま読める向きで書く。
回路図はBsch3Vの画面をスクショして作ったみたいだけど、もしそうだったら、カラーでメタファイルに書き出してから編集すると綺麗だし、グリッドの点も無くなる。 >>898
https://i.imgur.com/uPrTjSv.jpeg
ご教示ありがとうございます 描き直してみました
14ピンに変えてから赤バツや黄色のところで外す検証はしてませんが
どちらでも湿度は正常だろうと思います >>899 仕事速いね
印刷オプションでカラー印刷を指定しておくとメタファイルもカラーになるので見易くなるよ。 >>897
onのライトはいじれないはず
Lのライトなら操作できるんだがな >>901
なるほど 勉強になります
イメージファイル出力でカラーのpngが出来ました >>899
全然関係ない質問で恐縮なのですが、こういった図面というのはなんのソフトで作成されているのですか? >>904
>>898にも出てますが水魚堂のBSch3Vです atmega328で7セグLED時計を動かし
ESP(8266 or 32)でntp使って較正しようとしています
ESPで全てをやらないのは大喰らいだからです
較正のタイミングはatmegaで制御するわけですが
deepsleepしてるESPを起こすのと、ESPの電源を切っておいてその都度on/offするのと
どちらが良いと思いますか?
理由付きでアドバイス貰えるとありがたいです >>907
同じじゃない?
一番省電流なDeepsleepからの復帰は電源 https://akizukidenshi.com/catalog/g/gM-07245/
この秋月のリモコンとArduinoのサンプルにあるIRremoteのスケッチを
使って受信する実験しているのですが、Protocol:UNKNOWNとなって
認識できません。
このリモコンはNEC準拠となっているのですが、なぜうまく認識できないんでしょうか? >>910
Hash値は?
Debugモードでもやってみた? >>911
Hash値って何ですか?
Debugモードなんてあるんですか? >>912
>Protocol:UNKNOWNとなって
その表示をキャプってここに貼ってみ あと、使った受信モジュールの型番書いて
組んだ回路の写真も貼って 人にものを頼むときは、面倒くさいのが正解なことが多いね。 お金払ってやってもらうサービスだと相手が慣れてるから楽だけどな
ガソリンスタンドのメンテナンスとか、カーショップのタイヤ交換、オイル交換、ホムセンの木材カットetc 現物を見せて、直にコミュニケーションするから楽なことってあると思う。
ネットで木材のカットを依頼するなら、
あいまいでいろいろ解釈したり、エスパーしないといけないようなことではなくて、
最低限ラフでもいいから図面を出すと思うんだ。 DeepSleepより省電力なコプロセッサってのがあったかな
アセンブリで書くことになるみたいだけど >>915,916が質問者なら、クズ野郎
お前が情報出さないから答えられへんのやろ、馬鹿者
件の秋月のリモコンでちゃんとNECと認識してる例が見つかるわけで
ならば、質問者の配線ミスかスケッチの問題か受信モジュールの問題なのに
質問者はそのどれも情報出してない (・д・)チッ メンドクセー カイトウシャ ダナー BLEについて質問です
条件に応じて複数のESP32端末のLEDを光らせたい
A 条件を送信する端末(ESP32 1台)
B 条件を受信してLEDを光らせる端末(ESP32複数台)
セントラルがBでペリフェラルがAなんでしょうか?
ひとつのペリフェラルから複数のセントラルに同時に接続出来ますか? >>926
ブロードキャストを使えば多数の相手に同時に送信できる
あるいはESP-NOWなら高速にMACアドレスを指定して特定の相手に送信できる(相手が多数なら高速に相手を変えて送信する)
いずれも到達が保証されてないので注意
格安wifiモジュール「esp8266」「esp32」 6個目
自分が最近↑のスレで教わった >>927
どうもありがとうございます
ブロードキャスト方式とコネクション方式がある事分かりました
ブロードキャスト方式だと到達保証がないとの事ですが多数で同時受信出来るんですね
データはダダ漏れっぽいですけど第三者からは読めないように暗号化は可能ですか?
ESP-NOWは初めて聞いた言葉なので該当スレ見てきます >>929
昨晩また、途中でへたってしまって、すごい気まずい空気になった。 >>ID:7N10hm4V
この小僧は言われた情報をきちんと出さなきゃ自分が損だと気付かないのか
ま、だからいつまでも猿のままなんだろうけどw >>930
試しにBLEのブロードキャストを試してみたら簡単に送信と受信が出来ました
だけどWifiと同時に使おうとするとリセットがかかってしまってダメでした
コードはこれです
http://codepad.org/v5FXAjnp
27行目までは動くんですが29行目のBLEの初期化の部分で、
abort() was called at PC 0x401adcee on core 1
ELF file SHA256: 0000000000000000
Backtrace: ほにゃらら
Rebooting...
になってしまいました
なにがいけないのかどなたか教えてほしいです。
よろしくお願いします。 >>933
ごめん全然わからない
>>927のスレに移って聞くほうが良いと思う >>933
自己レス
BLEDevice::init("ESP32");
をWifi接続の前に持ってきてもリセットがかかってしまったけど今度は
E (7474) wifi:Error! Should enable WiFi modem sleep when both WiFi and Bluetooth are enabled!!!!!!
というエラーも表示されていたので、
WiFi.setSleep(false);
をコメントアウトしたらloop()に進んでくれました
ただ、M5StackのボタンAがチャタリングするのでその対策としてWiFi.setSleep(false);しないといけないので困りました >>933
abort() was called at PC 0x401adcee on core 1
でググると色々出てくるよ、見てみたら? >>935
チャタリングとちょっと違うけど
自分はBLEだけ使っていて数十分に一回ボタンAが押してないのにONになるので
10msのループで3回連続でONだったら押された処理をするようにプログラムしてる >>937
ググってみたけどよく分かりませんでした
>>938
そういう対処方法あるんですね
ありがとうございました JSONをBLEで送りたいんですけどうまくいきません
ArduinoJsonのStaticJsonDocument<1024> json_doc;
の型って何になるんでしょうか? >>938
ちなみに、10msのタイミングをとるのには millis() 使うの? BLEだと一度に送信できるデータは20バイト、ESP-NOWだと250バイトだそうでした
1キロバイトだとどちらも大きすぎるみたいですね >>942
遅らせるのはdelay()だな
全体の処理が止まっては困る場合はloop()の最後にdelay(t)などと書いてloop()がt ms間隔で実行されるようにして
loop()中でボタンチェックのルーチンを呼び出す
ボタンチェックのルーチンは押すときのチャタリング除去だけなら,,,
呼び出されたらボタンのポートの値を調べて,ONなら押された回数k=k+1(kはグローバル変数にする)
kが閾値以上になった場合,ボタンが押された処理を呼び出してしてからk=0してリターン.閾値未満ならリターン.
ポートがOFFならk=0してリターンする >>944
あ、そうか、処理ルーチンの方はdelay()入れなきゃいいだけだよね。
ついでといっちゃなんだけど、
- ダブルクリック
- 長押し
の判別ルーチンを最小限のステップで書いたらどうなるか、誰か教えて下さい!! >>945
Webでググって調べたほうがいいと思う
(自作で作ったけどたぶん「最小限のステップ」ではないと思うのでやめとく) 書込装置を使って書き込む
というのはどんな時に使うんでしょうか? ヒューズの書き換えとかブートローダーの書き換えとか
素のAVRマイコンに書き込むときとか
UnoやNano(シリアルコンバータ内蔵)を使ってる分には、そんなにお世話にならない >>948
その書込装置とは具体的にはどんな装置を指すんですか? 「AVRライター」で検索
新しく買わなくてもUnoやNanoも汎用書き込み装置に出来るよ>ArduinoISP prominiより先にAVRが出てくるArduinoスレです pro miniやnanoなんですが
はんだ付けせずに上手く配線を繋ぐ方法はありますか?
手作業で当てるのではなくちゃんと固定したいです pro miniやnanoはブレッドボードに挿したりピンにコネクタを挿したりするだけで特にはんだ付けは必要無い
未完成のマイコンを購入すると最初にピンを自分ではんだ付けする必要があるが
その事を言ってるんだろうか 「手作業で当てる」を3分ぐらい考えたが分からなかった 主語が抜けてるからなあ
何を手作業で当てるかわからん ピンだけはんだ付けされていないpro miniとか買った。
手作業だとピンがまっすぐはんだ付け出来ないから治具使って真っ直ぐに固定したい
かな? 自分の場合ヘッダピン立てて一箇所だけハンダ付けした後、曲がってたら
その一箇所を熱しながら調整して問題なくなってから一列ハンダ付けする 俺はめんどくせーから
━━━━━━━━ ←nano, pro miniとかモジュールとか
┃┃┃┃┃┃ ←ヘッダピン
━[ブレッドボード]━━
ブレッドボード上で組み立ててそのままハンダ 魚捌けないのに丸ごと1匹買ってきたバカな主婦みたいな…
そんなにはんだ付けやりたくないとかワガママ言うなら
それはもうメルカリかなんかで処分してしまって
ハンダ付け済みのに買いなおせばいいんじゃね ハンダ付け出来るようになろう
動作確認とかなら
スルーホール用テストワイヤ TP−200
とかあるね 補足 ワイヤーの先はブレッドボードに挿してそちらにLED すいません
ハンダはやってます
ただピンも付いてないちゃんとした状態を完成品のために残したくて
はんだ付けしない状態で試作品を作れないか悩んでました スルーホールに挿せば簡単にリード線が出せる物がある。秋月で探せ。 >>964
>ただピンも付いてないちゃんとした状態を完成品のために残したくて
完成品には何も接続しない、ということですか? なるほど、組み込み用にピンヘッダを付けたくないってことね
取るときにめんどくさいからな
ICクリップやチェック端子を買って好きなようにコネクタを自作すればいい というか写真見たらNano持ってるんならNanoで試作すればいいだけでわ?
同じATMega328なんだからスケッチも全く同じでしょ アンカ間違った
間違い>>968
訂正 >>964 おおお
皆さんありがとうございます
正にこんなのが欲しかったんですよ
安いので一つ一つ買って自分に合うのを試してみます
本当にありがとうです >>966
三枚目で黄色のチェック端子が密集している箇所は
どうなっているんですか?
どれがどれだか分からなくなるんじゃないですか? VCC,GND,RESETと、MOSI,MISO,SCKの6ピンしかないからピンの配置は覚えられるよ
あとは結線を間違えないようにICクリップやコードの色で分けたたり ピンじゃなくて電線をはんだ付けして使えばいいのよ。 Arduino IDEってMicrochip Studioに比べると
機能も少なくて使い辛いですよね。 初心者(マイコンを生業としない人たち)には機能が少ないほうがわかりやすい/始めやすい
Arduinoはそういうコンセプトで作られた
マイコンをバリバリに使える人はMicrochipStudioでもVS Codeでもなんでも自分の好きなやつ使って開発環境作ればいい 2個しかボタンが無くて操作カンタンとかいう装置、目的の機能に行き着くまで26回もボタン押さなきゃいけないし
「戻る」が無いからちょっとでも間違うと13回も操作回数が増える
それ以来俺は見かけが簡単そうに見えるものは警戒するクセがついた 10年くらい前の安物中華製MP3プレーヤーなんかそうだったね。 32bit系だとだいたいJTAGデバッガ対応だしな。
今は32bit系も安くなったし、あえて8bitや16bitに拘らなくても良いんじゃないか? VSCode使いたいけどインクルードパスの設定がどうしてもうまくいかなくてビルド出来ない
みんなは使えてるの? このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 57日 6時間 45分 27秒 5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/
▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php レス数が1000を超えています。これ以上書き込みはできません。