ここから質問投稿すると、最大4000ポイント当たる!!!! >>

arduinoに超音波センサと東芝のモータードライバを使ってセンサの値に応じてモーターを動くプログラムを書いているものなのですが

電源不足なのか知りませんがArduinoのーledが一瞬つくもののすぐ消えてしまいます。
しかしセンサを抜くとつくようになります。
電池を昇圧してDC給電してもpcからUSB給電しても同じです。
電池はものすごい暑くなります。
対処法はなんでしょうか

A 回答 (2件)

症状から超音波センサを繋ぐと以上に大きな電流が流れて電池の電圧が下がりLEDが一瞬ついてすぐ消えてしまってるようです。



超音波センサの型番は?その超音波センサとaruduinoと電源の接続回路はどうなってますか?
可能性としては超音波センサの電源をプラスとマイナスを逆につないでしまってる。この場合はセンサーは壊れてしまってる可能性が大きいです。
それから全体の相互の接続が分かるような回路図も提示してもらった方がアドバイスしやすいです。
    • good
    • 1

電池がものすごく熱いってことは配線間違ってます。


ショートしてとんでもない電流が流れているんです。
対処法はその間違いを探すこと以外にありませんね。
    • good
    • 1

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aと関連する良く見られている質問

QArduino繰り返し

Arduinoのwhile文等で疑問があります。
while 文は条件文と実行文があったと思うのですが
実行文終わるまで条件文の確認は行われないのですか。
条件文の確認の頻度はどのくらいですか。

Aベストアンサー

> 実行文終わるまで条件文の確認は行われないのですか。
はい。

while文の処理は以下のとおりです。
1. 条件文を確認する。
2. trueならば、実行文を実行する。falseならば、while文を抜ける。
3. 1に戻る。

たぶん「条件文がtrueの間、実行文を実行する」みたいな説明を見て、「実行文の実行と同時に条件文を確認する」ような解釈をしてしまったのだと思いますが、
そのような処理マルチスレッドやマルチコアでなければできません。

QArduinoやRaspberry PiにおけるSPI通信の挙動について

電子工作向けのプログラミングの勉強をしておりますが、SPI通信で気になることがあって質問させていただきました。

ArduinoやRaspberry Pi向けのOSに含まれるSPI関連のAPIを使うと、数バイトを一度に送受信することができます。

ただ、ウィキペディア英語版(https://en.wikipedia.org/wiki/Serial_Peripheral_Interface_Bus)によると、SPI通信時は、1クロックで1ビットのデータの送信と受信が同時に行われていると解釈できます。また、ざっと調べる限り、PICマイコンで送受信を同時に実装する場合、1バイト送信したら、1バイトの受信を待たないと正しく動作しないようです。

上記のようなAPIを利用した送受信が機能しているのであれば、一方がマルチバイトデータを送信しているときは、同時に相手側の機器からもダミーのバイトデータを送信していると解釈してもよいのでしょうか。あるいは、一通りの受信が終わるまで相手側は待機状態に入っている、もしくは、対象の機器の挙動にたいしてケース・バイ・ケースで対応する必要があるのでしょうか。

電子工作向けのプログラミングの勉強をしておりますが、SPI通信で気になることがあって質問させていただきました。

ArduinoやRaspberry Pi向けのOSに含まれるSPI関連のAPIを使うと、数バイトを一度に送受信することができます。

ただ、ウィキペディア英語版(https://en.wikipedia.org/wiki/Serial_Peripheral_Interface_Bus)によると、SPI通信時は、1クロックで1ビットのデータの送信と受信が同時に行われていると解釈できます。また、ざっと調べる限り、PICマイコンで送受信を同時に実装する場合、1バイト...続きを読む

Aベストアンサー

>SPI通信時は、1クロックで1ビットのデータの送信と受信が同時に行われていると解釈できます。
そうですね
>また、ざっと調べる限り、PICマイコンで送受信を同時に実装する場合、
>1バイト送信したら、1バイトの受信を待たないと正しく動作しないようです。
それはそのモジュールだかがそういう作りになってるだけです。

大概は8ビットを1文字として、意味ないヌルコードなら受け取っても捨てればいいし
それ以外のコードなら双方の約束に従って解釈し動作すればいい

>あるいは、一通りの受信が終わるまで相手側は待機状態に入っている、
>もしくは、対象の機器の挙動にたいしてケース・バイ・ケースで対応する必要があるのでしょうか。

SPI通信は「データ送受信」の信号形態を規定するものであり
データの中身とかは規定してません。
送受信双方の設計者が自由自在勝手気ままに決めればいいです。

Qarduino

arduinoって同時にプログラム実行できないんでしょうか。例えばシリアル通信中にLチカをして通信状態確認するとか。回答よろしくお願いします。

Aベストアンサー

>arduinoって同時にプログラム実行できないんでしょうか。

できません。
ちなみにマルチコアなどでない限りPCでも同時に実行できるのは1つの命令が基本です。
# 最近はマルチコアも普通になってきていますが。

>例えばシリアル通信中にLチカをして通信状態確認するとか。

処理を細切れにして実行するようにスケッチを作成すれば可能です。

シリアルの受信バッファにデータがあったら1文字(1Byte)読み込んで配列に格納。なかったら次の処理へ。
時間を取得して、前回のLED点灯(または消灯)から一定時間過ぎていたらLEDを消灯(または点灯)。
シリアルからの受信データがある程度貯まったら内容判定して必要な処理を実行、

というかんじでループ中に細切れに処理していきます。
# シリアル送信も1ループ中に1文字(1Byte)だけ送信。とか。

QArduinoIDEのコンパイル結果の表示

Arduino言語で書かれたプログラムがArduinoIDEでどのような機械語に翻訳されているか、ちょっと興味があり確かめてみたくなりました。
コンパイル結果を機械語(アセンブラ)で表示する方法教えてください。

ArduinoIDEのオプションなど探してみたのですが、表示方法がみつからなかったので、よろしくお願いします。

Aベストアンサー

>ArduinoアセンブラでLチカ
>http://qiita.com/TakeoChan/items/8362eaf53cf199262cb7

>【Arduino】アセンブラ入門 その1
>http://nn-hokuson.hatenablog.com/entry/2017/09/11/194125

>arduinoの逆アセンブラーリスト
>http://blog.goo.ne.jp/cookchant/e/2e7d037ebaea8f7d395773b44966c9b9

 こういう感じらしいです。

QArduinoでターミナル等に触ると誤動作する

Arduino Unoで図のような回路を組んでいます。
なぜか矢印のターミナルに触るとその先のスイッチがONになったと勘違いした動作をします。
なぜこのようになってしまうかと対策など、ご存知の方に教えていただけたらとおもいます。

最初はこの回路でなく、内蔵プルアップにしました(その時は4.7kΩは無かった)。内臓プルアップでこれと同じ誤動作が起きたのでそれを止めてこの形になりました。

ターミナルに触ると言うのはドライバの先やテスターのプローブの片方だけが触れると言う意味です。それは手持ちで、身体やその物のどこか一部が別の場所に触れていると言う事はありません。

図は、実際の基板のレイアウトとほぼ同じです。ターミナルの列から上はユニバーサル基板に乗っていて半田付けされています。Arduinoの電源はUSB経由です。

Aベストアンサー

回答NO.2です。
 すみません、回路でLEDの抵抗3本の共通ラインはGNDにつながってたのを見落としてました。
回路図を書き直して添付しました。この回路でそういう現象が起きるという事はAC電源の誘導電圧が大きいとしか考えられませんので添付図のように電解コンデンサC1とC2(それぞれ10uF/10V)を追加すれば誤動作はなくなると思います。

Qarduino

arduino
http://d.hatena.ne.jp/kougaku-navi/20140501/p1
のサイトで
if ( Serial.available() >= sizeof('H') + sizeof(int) ) {
がわかりません。
どなたかこの H について教えてください。
またかっこでintっちゅうのもわかりません。intって名前なかったんじゃぁ。

よろしくお願いします。

Aベストアンサー

>if ( Serial.available() >= sizeof('H') + sizeof(int) ) {
>がわかりません。
>どなたかこの H について教えてください。

’H’という1文字を送るのに何バイトか…という算出に使っているものと思います。
が……'H'だと文字リテラルになりますが、環境によってはint型に拡張される場合も…
その場合は正しい値にならないことになるんですが…arduinoの場合にどうなるのかは未確認です。

>またかっこでintっちゅうのもわかりません。intって名前なかったんじゃぁ。

int型が何バイトか…というのに使います。
なので……ヘッダのHの文字とint型でデータサイズの受信まで終わっていないとその条件式は真にならない。
ということに。
# 実際にはヘッダとして'a'とか送信してもいいわけですが、その後の処理で「読み捨てられ」ます。

QPIC16F1827の変数の最大値

コンパイラー:XC8
8bitマイコンのPIC16F1827でタイマーを使わず
long変数に36000000を入れてメインループが一周するごとに
delay_ms(10);でマイナスしてカウントダウンするプログラムを書きましたが、
普通にコンパイルは通りましたが、実際に動くかわかりません。
(PICの取扱店が遠方なので。通販という手もありますが部品1つ買うのに送料が。。。)
ですので、質問させていただきました。
CPUが8bitなので255までしかダメなのかと思い、longはコンパイルに通らないと思いましたが、
何事もなくコンパイル出来たので頭の中が???状態です。
どなたかご教示お願いします。

Aベストアンサー

>CPUが8bitなので255までしかダメなのかと思い、longはコンパイルに通らないと思いましたが、
>何事もなくコンパイル出来たので頭の中が???状態です。

機械語としては8Bitでも、組み合わせて対応することは可能でしょう。
コンパイラがそのような組み合わせたコードを出力すればいいだけなのでビルドが通ったのならば動作するものと思われます。
他のところとかにバグがなければ…ですが。

4BitCPUを載せた電卓が0~15までの数値でしか計算できない。という制限があったわけでもないでしょう。

Q電子工作のLEDの種類について

最近になって、Arduinoを使った電子工作を始めた初心者です。
LEDには、クリアなものと、曇ったような半透明のものがあると思うのですが、後者の半透明のものはなんと呼ぶのでしょうか。
どこかで手に入れた工作キットに半透明の緑色のLEDが入っており、それがたいへん見やすく気に入ったのでもっとほしいと思うのですが、Amazonのサイトではクリア(にみえる)ものしか見つけられませんでした。工作キットの製造元等はわかりません。
秋月電子のサイトで検索したところ「抵抗内蔵」のものが半透明のようなのですが、半透明タイプ=抵抗内蔵、ということなのでしょうか。
半透明タイプ=抵抗内蔵、ということであれば、抵抗内蔵のものを買うようにしますが、もし半透明タイプのものを買うことができれば、ありがたいと思っています。よろしくお願いします。

Aベストアンサー

>Amazonでは扱ってないんでしょうね。

Amanzonで、「Diffused LED」で検索すると出てきますが、品切れですね。

あなたが購入されたキットは下記のメーカーのものではありませんか?
https://www.amazon.co.jp/s/ref=bl_dp_s_web_2127209051?ie=UTF8&node=2127209051&field-brandtextbin=Elegoo

こういった激安品を試されるのもいいかなと思います。
https://www.amazon.co.jp/HiLetgo-LED%E3%83%80%E3%82%A4%E3%82%AA%E3%83%BC%E3%83%89%E7%AE%A1-5%E8%89%B2%E7%A8%AE%E9%A1%9ELED%E3%83%80%E3%82%A4%E3%82%AA%E3%83%BC%E3%83%89%E3%83%90%E3%83%83%E3%82%B0-%E5%90%8420pcs%E5%90%88%E8%A8%88100pcs-%E4%B8%A6%E8%A1%8C%E8%BC%B8%E5%85%A5%E5%93%81/dp/B012HY275W/ref=sr_1_73?s=toys&ie=UTF8&qid=1502274757&sr=1-73

あるいは拡散キャップを取り付けるのもよいと思います。

秋月電子なら下記のような低輝度(150~250mcd位)のものなら良いのではないでしょか。最近の高輝度タイプの1/10~1/100の明るさです。
http://akizukidenshi.com/catalog/g/gI-03874/

感覚的に「その辺のDIYショップの電子工作コーナーに普通にある」というイメージなんですが。

参考までに。

>Amazonでは扱ってないんでしょうね。

Amanzonで、「Diffused LED」で検索すると出てきますが、品切れですね。

あなたが購入されたキットは下記のメーカーのものではありませんか?
https://www.amazon.co.jp/s/ref=bl_dp_s_web_2127209051?ie=UTF8&node=2127209051&field-brandtextbin=Elegoo

こういった激安品を試されるのもいいかなと思います。
https://www.amazon.co.jp/HiLetgo-LED%E3%83%80%E3%82%A4%E3%82%AA%E3%83%BC%E3%83%89%E7%AE%A1-5%E8%89%B2%E7%A8%AE%E9%A1%9ELED%E3%83%80%E3%82%A4%E3%82%AA%...続きを読む

Qarduino unoについて質問させていただきます。arduino1台でロータリーエンコーダと超音

arduino unoについて質問させていただきます。arduino1台でロータリーエンコーダと超音波センサーの処理を同時に行うことは可能でしょうか?
詳しく説明しますと、ロータリーエンコーダでモーターを回転数制御し一定の動きをさせた後、超音波センサーで壁との平行をとるという流れを考えています。この処理を1台で出来ないものでしょうか?

回答の程宜しくお願い致します。

Aベストアンサー

マイコンの絶対的な処理能力を超えない範囲なら、複数の仕事をさせることは可能です。ただ、素のarduinoだと少し工夫がいりますが。

何をやるのかわかりませんが、例えば、模型の車を等速で歩くくらいのスピードでまっすぐ走らせたい、みたいなことなら余裕でできるでしょうけど、ドローンを時速100km/hで飛ばしたいとかになると、AVRマイコンでは力不足です。

Qarduinoを使ってプログラミングしてるのですが、二つのプログラミングを一つにするって可能ですか?

arduinoを使ってプログラミングしてるのですが、二つのプログラミングを一つにするって可能ですか?
ちなみに一つにしようとしているのは、
距離センサーとジョイスティックでモーター制御をするプログラムです

Aベストアンサー

もちろん可能です。
実現できるかどうかはプログラマのスキル次第です。


人気Q&Aランキング