Arduino初心者熱烈大歓迎質問スレ part20
■ このスレッドは過去ログ倉庫に格納されています
http://www.arduino.cc/
【質問者心得】
・スレに一応目を通してから質問しましょう
・回答者はエスパーではありません。状況が分かるように詳しく書きましょう
詳しく書いてくれないと、答える方も困ってしまいます。答えようがないのです
【回答者心得】
・すぐにググレカスと言う前に「○○でググれカス」って言うような大人の余裕を見せつけてやりましょう
・節度ある初心者さんには、特に優しくね
【分裂騒ぎ】
おさまった模様。くわしくはぐぐれ。
前スレ
Arduino初心者熱烈大歓迎質問スレ part19 [無断転載禁止]©2ch.net
http://rio2016.2ch.net/test/read.cgi/denki/1500745528/
過去スレ
Arduino初心者熱烈大歓迎質問スレ part18 [無断転載禁止]©2ch.net
http://rio2016.2ch.net/test/read.cgi/denki/1485192244/
Arduino初心者熱烈大歓迎質問スレ part15
http://rio2016.2ch.net/test/read.cgi/denki/1451893274/
Arduino初心者熱烈大歓迎質問スレ part17
http://rio2016.2ch.net/test/read.cgi/denki/1471967293/
Arduino初心者熱烈大歓迎質問スレ part16
http://wc2014.2ch.net/test/read.cgi/denki/1451909868/
関連スレ
【Arduino】フィジカル・コンピューティング4【OSC】
http://wc2014.2ch.net/test/read.cgi/denki/1407830304/
学研マイコン Japanino ジャパニーノで遊ぶスレ 3
http://kamome.2ch.net/test/read.cgi/denki/1286354827/ >>200
本来のUSB仕様だとたしかに500mAまでなので、今回は給電専用のUSBを使うこと前提にしています。
ACから5Vを取り出すのが確実なのは分かりますが、今回はバイクに載せるので、できるだけ扱いやすいUSBに拘っています。 本来のUSBの限界こえてるってわかってんなら、まず5V1Aをはき出せる出力がUSB端子の電源のことをUSBと略すのをやめようぜ
回答する前に本来のUSBじゃダメだけど大丈夫?といちいち確認されるのも無駄でしょ なんかバイク燃やしそうで危なっかしいね。
電源を何から取るのか分からんが
バイクのバッテリーなら各所にヒューズ入れてね。
リチウムイオン電池のモバイルバッテリーは、危ないからダメ。衝撃で最悪火を噴くよ。 アマゾンのリンクが何も分かっていない感を出しているけど大丈夫なのか? 俺も初心者でよく分からんけど
初心者スレなんだから分かってる人が教えてあげたらいいんじゃね? バイクのバッテリーからUSBのコネクタを使って5V 1A以上取り出すっていうことでいいのかわからんが、
そう解釈するとして、こういうのじゃいかんのか?
https://www.amazon.co.jp/dp/B01MF93TRO/ >>201
acから5ボルトってどういうことですか?
(ここらへんの解釈をちゃんと整理していかないとほんとにバイク燃やしそう)
リレーを使っての電源取り出し方法はわかりますか? >>208
常識的に解釈すればこんな感じでは。
>(商用電源の)ACから(AC-DCアダプタを使って)5Vを取り出すのが確実なのは分かりますが、
>今回は(商用電源が使えない)バイクに載せるので、できるだけ扱いやすいUSB(接続のモバイルバッテリからの供給)に拘っています。 https://www.amazon.co.jp/KiloNext-バイク用-USBポート-防水キャップ-ブルーLED付き/dp/B01MF93TRO
こういうのじゃないのか >>209
なるほどそっちか。ACってオルタネーターのことを言ってると思い込んでて混乱してました ぜんぜんArduinoと関係ない話題ばかりだな
それよりStar Ottoはどうなったんだ? バイク板で似たような質問してる子と同一人物なのかな? そこら中で赤の他人を「子」呼ばわりしているのも同一人物なのかな?
掲示板弁慶って、とてもあわれだね。 「子」
自分は大人、自分の方が立場が上、って主張したいのだろうが、
こんな所で自分から言うところが何だかミジメで哀れっぽいな。
二人をよく知っている周りの人間が言うなら分らないこ事も無いが。 スリープのPOWER_DOWNで『徹底的』に消費電力を抑える場合は、
・ADコンバータを無効
・アナログコンパレータを禁止
・ウォッチドッグタイマーの禁止
・BODをオフ
ぐらいですか?あと、使わないピンのモードを、
OUTPUTかINPUT、HIGHかLOWどっちにすればいいですか?
徹底的に待機電力を抑えたいのです。 オープンになっているピンなら、C-MOSのICならプルアップ設定の入力か、出力(HでもLでも)で良いのでは? 「C-MOSの」は余分でした。Arduino前提だもの。
徹底的に下げたいなら、USB-シリアル通信のICが載ってるものは避けるとか
レギュレータでの消費電流も見直すとか、が必要かもですね。 >>218-221
Pro Miniなんですが、電源LEDとレギュレーターは取っちゃいました。
ピン設定ははOUTPUTならハイでもローでもどちらでもいいんですね。
ありがとうござました。 質問です!
ArduinoにPS2のケーブルを繋いで、ArduinoをPS2のコントローラーとして
機能させるライブラリって存在しませんか?
PS2のコントローラーをArduinoにつなぐサンプルは見つかったのですが、
逆が見つかりませんでした。
http://www.billporter.info/2010/06/05/playstation-2-controller-arduino-library-v1-0/
Arduinoは基本的なコードが書ける程度の初級者です。
「このあたり勉強するとわかるよ」的なアドバイスでもかまいません。
配線とプロトコルを解説しているサイトも見つけたのですが、
PS2コンのプロトコルをArduinoで送信するやり方がわかりません。
以上、よろしくおねがいします。 >>223
コントローラーの基板乗っ取りが一番簡単そうだけどな。
コントローラを分解して、ボタンの基板のところにはんだ付け。
リレー回路組んでarduinoで接続。 >>223
ttp://magicpuppet.org/rollingswitch.html
ttp://magicpuppet.org/rolling_switch_technical_document.pdf >>225
ありがとうございます!まさにこんな資料を探していました。
>>224もありがとうございます! アルディーノ初心者です(始めて4時間です)
Arduino Uno
DHT11温湿度モジュール(Temperature and Humidity Sensor)[DFR0067]
4桁7segLED(カソードコモン)(OSL40562-LB)
上記の部品を手に入れまして、温湿度計が作りたいです。
早い話
ttp://tsukutta.hatenablog.com/entry/2014/08/14/094815
と同じものを作りたくて
回路、スケッチをそのまま真似したのですが
コンパイルエラーとなり書き込みが出来ません
DHT11のデータをPCで読み込むためのソフト?はダウンロードしたのですが
それでも直りません
これから試行錯誤するつもりですが、どなたか新たに必要なソフトないしは正しいスケッチを教えていただけないでしょうか?
温度だけでもかまいません。とにかく表示させたいです <MsTimer2.h> というライブラリがないと予想。
ttp://www.geocities.jp/zattouka/GarageHouse/micon/Arduino/TIMERtoLED/TIMERtoLED.htm
とか参考になれば。。。 >>228
うちの環境では全くエラー出ないよ。
測定結果もちゃんとシリアル・モニターに表示される。
つまり、リンク先のスケッチに間違いはない。 >>228
調べた感じでは何かソフトが足りないという感じの内容のようです
>>229
<MsTimer2.h>と同じワードがエラーメッセージにありました!
ダウンロードしてみます!
申し訳ないのですが睡眠をとらせていただきます
ありがとうございました<(_ _)> 232です
昨日のarduinoですが無事起動しました
ありがとうございました
これから温度によってLEDの色が変わるようにしていこうと思います! >>233
解決したら、その経緯を報告するのが筋。
といっても、このキャラに高望みは無理か…。 >>234
この流れなら>>232でやると言っていた内容そのままなんじゃないかな?
ちゃんと報告している方だ。 質問する
自分は寝る
報告は無い
ゆとりってこんなもん >>237
悪いなんて言ってない。
「ゆとり」を分析してみただけ。
あえて言うなら、悪いのは「ゆとり」でなくお前のような事なかれ主義。 >>236
質問する、質問に答える、お礼を言う
これだけでいいだろ
それが嫌なら答えなくていいぞ >>238
では、事なかれ主義になれ。
楽だぞ、そんなんじゃ生きているのがツライだろ?
良い診療内科を紹介してやってもいいw 遅くまでレスを待つ人が出てこないように、その日はもう書かずに落ちると宣言したことに「こんなもん」と言う。
「こんなもん」と言っておいて「悪いとは言ってない」と言う。
報告があったのに報告がないと言ってしまう。
「ゆとり」とひっくるめてこうだ、って分析ごっこ。そんな分析ごっこは聞いて不快になる人はいても、得をする人ってたいしていない。
たしなめられたら自分のことは棚に上げて相手を事なかれだと言う。
初心者スレで憂さ晴らしやめて。 >>241
なんの
つつ鏡
返しだ!
リエントラントでスタックレベルならぬ「つ」レベルが深くなる、ハハハ。
IDコロ助を相手に大人げない事をしてしまった。
いつもならアホの相手は深入りしないのだが、
少し5輪競技の成績も悪いしイライラしてたので・・・。
皆の衆、下らないやり取りスマン。 IDEが吐くメッセージすら読まないヤツがマイコン使うようななったんだ。
ことの良し悪し関係なく、もう何でもありの時代なのよ。 >>233
DHT11よりもBME280の方が、価格、寿命、寸法、ソフトの書きやすさで優れていると思う。
精度はなんとも言えないけど、経験としてはDHTは湿度センサが狂いやすい。
換装の例
↓
http://intellectualcuriosity.hatenablog.com/entry/2017/12/14/212651 そんなに嫌ならテンプレに追加して息苦しいスレに育てれば シリアル通信しているデバイスの間にかまして、パケットをフィルタしたいんですが
デバイス - Arduino - ホスト
|
デバッグモニタ(PC)
シリアルが3系統必要になります。
HardwareSerial + SoftwareSerial*2を使えば解決できると思ったのですが、
全く受信できません(スケッチは以下の通り)
void loop()
{
s1.listen();
while (s1.available() > 0) {
int b = s1.read();
char buf[10];
sprintf(buf, "1:%d", b);
Serial.println(buf);
}
s2.listen();
while (s2.available() > 0) {
int b = s2.read();
char buf[10];
sprintf(buf, "2:%d", b);
Serial.println(buf);
}
}
同時受信を実現しているライブラリってないのでしょうか >>247
megaかdue使えばいいのに
互換品なら安いよ というか、そのプログラムのwhileの中を直さないとだめだね
どっちかが受信したら、受信したポートのデータを受け取る様にしないと >>248
できれば、Nanoサイズが欲しいんですよね
なんだったら値段もNanoが・・・
>>249
これはまだそれぞれのポートから受けとったデータを
PCデバッガに転送するだけ(動作確認用)です
>>250
Hardware+Softwareならできます。
Software*2同時が無理っぽいんです
マルチポートの確認用のデバイスは、同じくArduinoで
void loop() {
count = (count + 2) % 256;
s1.write(count);
s2.write(count + 1);
delay(500);
}
こんなスケッチを用意しました
>>247のスケッチで、s1かs2どちらかのブロックをコメントアウトすると
当然のように受信し出すんです。 ちなみに、mega互換は先ほど発注しました。
これで間違いなく動く物ができてから、Nanoに落とし込めないか検討するべきですね
>できれば、Nanoサイズが欲しいんですよね
>なんだったら値段もNanoが・・・
これはくだらないこだわりでした >>252
>>248はハードウェアシリアルが4つあるからという意味で、
ソフトシリアルでやるなら通信速度を犠牲にして
タイマー割り込みを併用するしかないと思うよ シリアルを受信してPCに送信するならLeonardでもできそうだがどうなんだろう ソフトシリアルで実現することに労力使う意味があるとは思えないけど
↓こんなところも参考にしてみたら
ttps://garretlab.web.fc2.com/arduino_reference/libraries/standard_libraries/SoftwareSerial/index.html 今更かもしれないけど…
デバッグ側が通信内容を垂れ流すだけで良いのであれば、デバッグ側をsoftwareSerialにしてしまえば解決するような。
あいたHardwareSerialをデバイス側かホスト側に割り当てれば、SoftwareSerialの待ち受けは1つで良いし。
デバイスorホストがPCでない場合、ArduinoのオンボードUSBシリアルが使えなくなるから割と面倒ではあるけど レーザーモジュール関連を眺めてると皆受光側は汎用のCdSを使われていますが、
レーザーの波長にしか反応しない明るい所でも使える専用の受光モジュール的な物は
存在しないのでしょうか? >>258
レーザー受光用にCdSなんぞ使わんのじゃないか?
Photo Diodeだろう nanoでon500ms,1hzの方形波のon時間
を測りたい。方形波はrtc3231から
出力。インプットキャプチャで
立ち上がりと立ち下がりで割り込み、
その時のタマー1のicr1と、
タイマー1のカウンタが
オーバーフローした回数から
時間を計算。この流れでおかしな
ところがありますか?
ロジアナで方形波と、立ち上がりと
立ち下がりをキャプチャできている
ことは確認しました。
参考サイトがあればうれしいです 何言ってるか微妙に分からんからスケッチ貼っちゃうといい。
個人的には0.5秒サイクルならもっと適当でもいいと思うけど、まぁ現状測れてるんなら #include <DS3232RTC.h> //http://github.com/JChristensen/DS3232RTC
#include <Streaming.h> //http://arduiniana.org/libraries/streaming/
#include <Time.h> //https://github.com/PaulStoffregen/Time
#include <TimeLib.h> //https://github.com/PaulStoffregen/Time
#include <Wire.h> //http://arduino.cc/en/Reference/Wire
#define echoPin 8 // Echo Pin
volatile unsigned long timer1_overflow_count = 0;//volatile 割りこみ関数、メイン関数間で共有する時使用
volatile unsigned long pulse_count = 0;
volatile bool tgle_catch = true;
volatile bool wait = true;
ISR(TIMER1_OVF_vect)//timer1がオーバーフローした際に呼ばれる。オーバーフローまで4ms弱ある
{
timer1_overflow_count++;
}
ISR(TIMER1_CAPT_vect)
{
cli();//割りこみ禁止
pulse_count = ICR1;
if(tgle_catch){
digitalWrite(10, HIGH);TCCR1B = 0b00000001;//timer1 インプットキャプチャ立ち 下がり でON 分周比1 カウント開始
}else{
digitalWrite(9, HIGH);TCCR1B = 0b01000001;//timer1 インプットキャプチャ立ち上がりでON 分周比1 カウント開始
}tgle_catch = !tgle_catch;
wait = false;
sei();//割りこみ許可
} Arduino uno同士をi2c接続しています(master, slave)
この場合、slave側からはi2c接続のOLEDであるとか、多chモータドライバの類は
制御できないと考えて良いですか?
masterのメモリ残量がきついのでOLEDの処理だけでもslaveに移せたらうれしいのですが >>265
上手くプログラミングできるかどうかは分からないけど
元のmaster側がi2cにアクセスしない時間を保証できるなら
slave側はその間にmasterに設定し直してi2cアクセスするようにすれば
可能だと思う(終わったらslaveに戻す) >>260
コードは見てないけど、不具合がないならいんじゃないかね。 廃車したカーバッテリーをArduinoにつないで
ソーラーパネルで充電しながら常夜灯など簡単な器具を使う場合
ソーラーでの充電が十分ならチャージを切断し、
電力が下がりすぎればバッテリーが壊れるので利用を停止
こんなものを作りたいんだけど
Arduinoでは自分が使っている電圧を調べることできる?
また、Arduinoで同じような事をやってる人のHPなど知ってる人がいたら教えて欲しい >>270
ありがとう
ただ、偉い複雑だね
元々、逆流防止のダイオード一個だけの簡単なものを考えてて
ただ、過放電でバッテリーを壊したくないから監視するだけの
シンプルな設計でやりたいんだけど良い方法無いかな?
リンクはありがたいけど初心者には複雑すぎて理解できない><
12Vのバッテリーを昼充電して夜ちょっと使いたい arduinoが動作しなくなる前に負荷を遮断するのなら
電源をDCジャックから入力、その電圧がVin端子にも出るから
Vin端子から抵抗で分圧してアナログ端子に入れて測れるよ、必要なのは抵抗2本だけ
バッテリーから動作電源と測定の電源に分けて入力しても同じだけどw
「arduino 電圧測定 分圧抵抗」 とかで検索してヒントになるかな
電圧表示にLCDとか使うとリンク先のように複雑になるけど
電圧に応じてLEDを点灯させる程度ならスケッチもさほど複雑にならなさそう >>268
不具合があったけど
自己解決しました。
まだ誤差が59μsあるんだけど
コンパイルにo3の最適化しても
だめだったので、あと発振子を変えてみるつもりですがマイコンの限界かなと思ったり。 >>272
ありがとう
12Vだから電圧は抵抗分圧で落とす必要があるわけか
それならシンプルで簡単に制御できそう
ただ、Arduinoで電圧測定をしている説明を見ると、必ず電池でArduinoを起動させて、別の電池の電圧を測ってる
何となくイメージなんだけど、起動している電源からそのままアナログ端子に差し込むと感覚的に壊れそうなイメージがあって不安だった
一般にこんな事は起こらないの? どうやってチャージのon/offをするつもりなん? >>275
チャージの方はソーラーパネルに逆流防止のダイオードを付けるだけ
5Wの補充電用の物だから多分過充電にはならないと思う
不安がでそうだと
消費側同様、とりあずはリレーかな
他はフォトカプラやSSRか
まだあまりしっかりとは考えてない >>267
そんな事も可能なんですか、私の知識では無理そうですが覚えておきます
ありがとうございます >>269
>>274
開発途中までは思わぬトラブル回避で別電源を用意して試験して
ある程度めどがついたら充電対象のバッテリに依存するように設計変更したらよろしいのではないでしょうか >>273
UNOとかNanoはセラミック発振子だろそれでクリスタルRTCを測ってもね、
しかし年末に購入した中華DS3231も4個中2個が周波数が32.780KHzと
RTCとして使い物にならず他1個も不良でまともそうなのは1個だけだった。
UNOのクロック測ったら-25KHzで2009は+1.7KHzでした。 >>279
DS3231使ってるけど、そんな精度低いもんかな。
32kHz出力は使ったこと無いんだけど。
RTCとして使えないってことは、時計も盛大にずれるって事? >>279 >>282
DS3231が内部で温度とともに校正値を変化させているとはいっても 32.780kHz は異常。
366ppmって、並みの水晶でもでかすぎる。
考えられるふたつのこと。
32.780kHz を測った測定器の誤差が大きい。
中華DS3231が実は怪しいもの(偽造、テストに通らなくて廃棄されたもの)。 >>280
>流石にセラロックはねーって
これを見て最初、
「セラロックでRTCを評価するなんて、さすがに無いよなあ」という同意なのか
「UNOにセラロックが使われていることは、さすがに無いだろ」という反論なのか分からなかった。
よく見たらリンク先が回路図だったから、前者だったのだと安心した。
ともかく、
システムクロックを動かしてるオシレータは、水晶であってもRTCの水晶ほどにはシビアに合わさない。
それを使ってRTC精度を測るのはナンセンスですね。 で、>>279さんは、どんな測定器で周波数を測定したんでしょ? >>258
検出器の前に干渉フィルターを置けば?
レーザーの発光線幅よりも、フィルターの通過帯域の半値幅は遥かに広くて10 nm以上ありますが、他の波長はカットできますよ。 >>282
中華DS3231の話でテストしているわけでもないのでたまに不良品に当たるわけです。
発振周波数が12Hzもずれてると1日で30秒も進みますそんなRTC使いますか?
>>283
4個中2個は32.768KHz残りの2個が32.780KHzと12Hzずれたものがあったので
一応HPのユニバーサルカウンタでも確認しています。
購入した中華DS3231は1個245円ですのではなからバッタ物と認識していますが
ググッてもそんな悪評が見つからないのでここまで当りを引くとは思いませんでした。
>>286
確認に使ったのはルビで自家校正したHP53131A、校正したのは2年ぐらい前かな。 >>288
良品(と思われるもの)はちゃんとした周波数に見えてるのですね。
http://www.avrfreaks.net/forum/does-frequent-reading-slows-down-ds3231-rtc
↑DS3231を頻繁に読むとスピードが遅くなるか? というスレなのですけど、
中華品だからじゃないのか、という疑いも書かれています。
Digikeyでの価格と中華モジュール価格の差がとても大きいし注意は必要かもしれないですね。 >>289
>良品(と思われるもの)はちゃんとした周波数に見えてるのですね。
はい、半分の2個は32.768KHzを出力しています。
使用しているモジュールは以下と同じものです。
https://ht-deko.com/arduino/rtc_ds3231.html そういえばAliのRTC
どこで買ったか忘れたけど一次電池のボタン電池が付属してたけどこれに勝手に充電されてた
一歩間違えると過充電爆発するんじゃないかと不安になり、チャージ回路のパターンを切断したわ
もし買う予定ならお気を付けあれ
精度については良く覚えてないけど100円ショップの時計程度だと思う
ただ、どうしても精度が欲しいならGPSや電波時計からモジュールを取り出して使った方が良いんじゃないかな nano、センサー、モーターはバッテリーとDCDCコンバータで動かしながら
nanoにマイクロusb刺してデータを表示させたいんだけどできますか?
usbのハブがあるけどpcが壊れないか不安です。 >>293
GNDを共通にして大丈夫かどうか、とか、電圧次第ですけど、
心配だったら「USBアイソレータ」をひとつ持っておくと良いのではないかと思います。
俺は自作しましたが、基板だけの安い既製品もあります。
https://strawberry-linux.com/catalog/items?code=12284 PWM出力を0の時にPWMが最大出力にさせるにはどうすれば良いですか?
アナログ入力からの/4で、その数値が低い時にPWM出力を大きくしたいのです vs-codeで質問ですが、サンプル含めて既にある ino を開くのはいいんですが
新規に ino を作るときはどうしたらいいのでしょうか。
setup と loop だけの話ですが、スケルトンを作ってくれないのか、と >>295
そんなのLチカサンプル開いて、
setup()とloopの中身削除して名前を付けてセーブでいいんじゃないの? void setup() {} void loop() {}
↑これをIMEの単語登録に「スケルトン」で登録! ■ このスレッドは過去ログ倉庫に格納されています