Arduino

Arduinoと互換性のあるオープンソースのハードウェアおよびソフトウェアの開発者向けのQ&A

3
ArduinoでRFID-RC522を使用するにはどうすればよいですか?
私は地元のメーカースペースのプロジェクトに取り組んでいます。予算が限られているため、eBayでRFID-RC522 el'cheap'o RFID / NFCリーダーを使用することを望んでいましたが、SPIベースのボードをいくつか受け取りましたが、それらは機能しますが、それらのコード例は限られています。 私はいくつかの異なるライブラリを見つけ、これに落ち着きました:https : //github.com/ljos/MFRC522 問題は、オンラインで入手可能なすべてのコードが、人々が翻訳してArduinoライブラリにハッキングした一部の中国人のPythonコードから生成されたように見えることです。 コードは機能しますが、Mifareカードは4、7、または10バイトのUIDを持つことを目的としており、サンプル/ライブラリは5バイトのシリアル番号を返します。 ドキュメントはなく、NXPデータシートは理解不能です...さらに、ほとんどのカードで動作するようですが、ISO 14443標準に準拠するMastercard PayWaveカードでは動作しません。MFRC500をベースにしたより高価なRDM880リーダーは問題なく動作し、優れたライブラリを備えていますが、コストがかかるため実装は不可能です。 だから、誰かがこのNXP MFRC522ベースのユニットがすべてのISO 14443カードからUIDを読み取るのを手伝ってくれる? #include <SPI.h> #include <MFRC522.h> #define RFID_SS 10 #define RFID_RST 5 MFRC522 rfid( RFID_SS, RFID_RST ); void setup() { SPI.begin(); Serial.begin(115200); rfid.begin(); } void loop() { byte data[MAX_LEN]; byte uid[5]; if ( rfid.requestTag( MF1_REQIDL, data …
11 rfid 

1
PROGMEMを使用してフラッシュメモリに書き込むことはできますか?
Arduinoのドキュメントについて、私は引用します: http://playground.arduino.cc/Learning/Memory 注:フラッシュ(PROGMEM)メモリは、プログラムの書き込み時にのみ装着できます。>プログラムの実行が開始された後は、フラッシュの値を変更できません。 そしてPROGMEMの説明: http://arduino.cc/en/Reference/PROGMEM データをSRAMではなくフラッシュ(プログラム)メモリに保存します。Arduinoボードで利用可能なさまざまなタイプのメモリの説明があります。 PROGMEMキーワードは可変修飾子であり、pgmspace.hで定義されたデータ型でのみ使用する必要があります。これは、通常はSRAMにではなく、「この情報をフラッシュメモリに書き込む」ようコンパイラーに指示します。 だから私たちはできるかできないか?それとも同じではないのですか?

1
電源制御マイクロコントローラーでバッテリー寿命を延ばしますか?
この記事では、バッテリー寿命を延ばす方法について説明します。低電力コントローラーを使用して、必要な場合にのみArduinoの電源を入れます。著者は、この方法はArduinoのスリープモードを使用するよりもかなり少ない電力を使用すると述べています。 このアプローチには欠点がありますか?どのバリアントを作成する必要がありますか?(TPS61240バリアントは、もはや利用できないCircuits @ Homeからの何かを使用しているようです。)回路図または詳細な手順へのリンクに感謝します。 背景:主電源のない環境にあるセンサーデバイスを構築しています。センサーはウェイクアップする必要があります。毎時、例えば 温度センサー。SMSを送信してから、スリープに戻ります。
11 battery 

1
10-15mの距離のワイヤーを使用してRaspberry PiとArduinoを(両方の方法で)通信するにはどうすればよいですか?
私はホームオートメーションの個人プロジェクトを開始しており、ラズベリーpiとarduino Unoボードを持っています。 私はラズベリーpiと私のarduinoを通信したいのですが、私のラズベリーがarduinoとの間で信号を読み書きできる必要があります。 それらの間の距離は、約10〜15メートルになると思います。 何が必要ですか?目標を達成するために必要なワイヤまたはその他のコンポーネントの種類 繰り返します。ラズベリーpiとarduinoをワイヤレスで通信したくありません。 ありがとう!
11 serial  uart 

2
Hitachi HD44780 LCDスクリーンの輝度の変更
私はプロジェクトを仕上げています-LEDゲームの目覚まし時計。これは時計なので、電力を節約する方法が必要です。現在、私のUno R3 +は政治家のように消費されています。私の質問は、Hitachi HD44780 16x2 LCDスクリーンでのみ、画面をオフにしたり、ソフトウェアを使用してバックライトをオフにしたりする方法です。または、1つのコンポーネントにスリープモードを設定するにはどうすればよいですか?私がそれをオフにすることを計画している方法は、超音波距離計を使用することです。近づくと、画面がオンになります。私が言うことが意味をなさない場合は、明確にするように依頼してください、私は少し急いでいます。
11 arduino-uno  lcd 

3
Optibootブートローダーにはどのような選択肢がありますか?
最近のほとんどすべてのArduinoボードはOptibootブートローダーを使用しています。以前使用されていたATmegabootと比較して、これはフラッシュの点で小さく(約1.5KB)、アップロード速度が速く(115.2k対57.6k)、スケッチをより速く開始します(リセット後の待機中の遅延はより短くなります)。 Optibootブートローダーに代わるものはありますか?具体的には、小さな(フラッシュの観点から)ブートローダーはありますか?彼らにはどんな違いがありますか?
11 bootloader 

3
シリアル通信用のArduinoの高精度タイミング
Arduino Unoを使用して、シリアルポート経由で時間と電圧の情報をPythonに送信し、プロットします。ただし、連続するタイムスタンプ間の間隔のタイミングが時間の経過とともに増加しているようで、プロットに影響を与えます。これは、ボーレートが9600に設定されている場合に特に当てはまります。この場合、最初の時間差はおそらく1320で、比較的短い時間の後に16400に増加します。このレートを最大115200 bpsにすると、比較的長い送信を行った後でも、変化は遅くなり、目立たなくなります。約1340から1500です。時間はすべてマイクロ秒単位で示されます。 この影響を軽減または排除できるかどうか、そしてそれが存在する理由が理解できない場合は知りたいです。これを引き起こす割り込みと遅延について読みましたが、手元にある電子機器の複雑さを十分に理解していないので、知りたいです。 タイミングの精度を上げることはできますか? このタイミングの変化の原因は何ですか? これが私が現在持っているものです: #include <eHealth.h> extern volatile unsigned long timer0_overflow_count; float fanalog0; int analog0; unsigned long time; byte serialByte; void setup() { Serial.begin(9600); } void loop() { while (Serial.available()>0){ serialByte=Serial.read(); if (serialByte=='S'){ while(1){ fanalog0=eHealth.getECG(); // Use the timer0 => 1 tick every 4 us time=(timer0_overflow_count << …

2
PROGMEMで配列の代わりにポインターを使用できないのはなぜですか?
現在、一部のライブラリを変更して、プロジェクトでSRAMが不足しないように、文字列の格納にRAMではなくフラッシュを使用するようにしています。 ライブラリの一部の文字列は、次のように宣言されています。 const char *testStringA = "ABC"; これは、私がこれを通常行う方法とは異なります。 const char testStringB[] = "DEF"; ただし、これら2つはconstと宣言され、宣言で初期化された場合は同等であると思います。どちらもコードで正常に動作します。 これらをフラッシュに移動しようとしました: const prog_char *testStringC PROGMEM = "GHI"; その後、これが機能しないことがわかりました。印刷されたとき、それはゴブルデコックを生産していました。 ただし、次の一般的なパターンに従います。 const prog_char testStringD[] PROGMEM = "JKL"; 正常に動作します。 私は分解で見ることができます: 00000068 <testStringC>: 68: 04 01 .. 0000006a <_ZL11testStringD>: 6a: 4a 4b 4c 00 JKL. そのため、ポインターがクリアされ、PROGMEMによって文字列/配列が初期化されなくなります。 どうしてこれなの? コード例: #include <avr/pgmspace.h> …
11 progmem  pointer 

2
Arduinoに触れる前に知っておくべきことは何ですか?
コンピュータをいじくり始める前に、電源をオフにして、静電気に注意するなど、注意すべき基本的なガイドラインがあります。自分もボードも害したくない場合、Arduinoボードを使用するときにどのガイドラインに注意する必要がありますか。Arduinoに触れる必要がある3種類のアクティビティと、私が尋ねていること: ワイヤー、コンポーネントのレイアウト、ブレッドボードのセットアップ。 実行中のセットアップのデバッグ。 どこかにボードを移動して取り付けます。
11 safety 

3
Arduinoで洗えるウェアラブルテクノロジー
質問:電子機器が組み込まれた衣類を洗濯用にどのように準備しますか? 背景:「ウェアラブル技術」向けに設計されたいくつかのArduinoボード/クローンがあります。(Lilypadなど)。LEDライトパターン、マイク、GPS、またはその他の回路を備えたウェアラブル技術は興味深いコンセプトですが、水と電気が混ざりがちです。 ウェアラブル技術を使って洗濯できるように準備するために、大規模な回路を取り外し可能にすると思います。しかし、必然的に、一部の電子機器は多かれ少なかれ永久的に布に固定されます。これらの電子機器(縫い付けられたArduino Lilypadなど)を洗濯機(好ましい-手洗いでも可能ですが、洗濯機の方がはるかに簡単です)にするために何ができるでしょうか。
11 safety 

1
Arduinoライブラリの移植に必要な手順は何ですか?
Adafruit CC3000とそのArduinoライブラリを別のプラットフォームで使用したい。この場合は、Arduinoピン互換のPSOC4 Pioneer Kitです。これはARM Cortex M0ベースのプラットフォームです。 私の質問は、次のようにライブラリを移植するにはどうすればよいですか?手順、主要ファイルなどは何ですか? 明らかな問題の1つは、PSOC CreatorがC ++をサポートしていないことです。 良い点の1つは、Arduino DueボードがAtmel SAM3X8E ARM Cortex-M3 CPUに基づいていることです。 注:この質問がトピックから外れていると思われる場合は、頭の上くださいこの質問のArduino互換性のあるデバイス上の質問は、このリストに適切であるかどうかにあなたの意見を表明するためにArduinoのメタに。
11 library 

8
利用可能なすべてのArduinoライブラリの中央リポジトリはどこにありますか?
現在; 新しいハードウェアで新しいArduinoプロジェクトを開始するとき、私が最初に行うことは、このハードウェアのArduinoサポートをもたらすサードパーティライブラリを探すことです。 私が最初に見る場所は: Arduinoプレイグラウンド GitHub グーグル 一般的に、サポートライブラリがないか、いくつかの異なるライブラリ(1つだけが見つかることは非常にまれです)が、さまざまなレベルのドキュメント、さまざまなレベルのテストでさまざまな場所に見つかります... 必要なライブラリを見つけたら(場合によっては、いくつか試してみる必要があります)、Arduinoライブラリフォルダーにダウンロードし、使用しましたが、忘れてしまいました。 このプロセスは面倒です。 さまざまなオプションを使用した手動検索、必ずしも十分に文書化されていない Arduinoライブラリへの手動ダウンロードとインストール プロセスにバージョン管理はありません(ライブラリのすべてのバージョンは同じ名前を持っているため、Arduinoライブラリフォルダーに共存できません)。 arduinoで利用可能なすべてのライブラリを備えた中央リポジトリがあればよいのですが、次のものがあります。 説明(サポートされているハードウェア、サポートされているボード) ソースコード ドキュメンテーション バージョン また、プロジェクトのビルド時にこのリポジトリにアクセスするためのツール(Arduino IDEまたは外部)。 実際、Arduinoの一種の魔術師です。 かつてArduinoフォーラムでいくつかの議論が行われたのを見てきましたが、彼らはどこにもリードしていなかったようです: Arduino Libraries Census and Repository Arduino Libraryダウンローダー Arduinoライブラリダウンローダー(2) (コミュニティや個人から、なぜそうではないのか)何かを使用可能にする他のオプションはありますか?
11 library 

1
Arduino Unoおよび同様のボードで割り込みはどのように機能しますか?
ATmega328Pプロセッサを使用するArduino Unoおよび関連するボードでの割り込みの仕組みを説明してください。次のようなボード: うの ミニ ナノ プロミニ リリーパッド 特に議論してください: 割り込みを使用する目的 割り込みサービスルーチン(ISR)の作成方法 タイミングの問題 重要なセクション データへのアトミックアクセス 注:これは参考質問です。

2
floatをchar *に変換するにはどうすればよいですか?
電気工学スタック交換でこの質問をし、ここに向けられました: かなり自明です。floatをchar *に変換するにはどうすればよいですか?フロートの「抵抗」が常に更新されているコードがあります。変数「result」を更新して、「resistance」の値を取得できるようにしたいと思います。役立つ場合に備えて、以下にコードの一部を示します。 const char * result = ""; float resistance = 2.5; result = resistance; //This bit (obviously) doesn't work ご協力いただきありがとうございます!
11 arduino-uno  c++  c  float 

5
ESP8266(12e)のボーレートを永久に変更する方法は?
重要:使用しないでAT+IPR=9600ください!(更新を参照) 115,200ボーで通信するESP8266 12Eモジュールがあります。私はSoftwareSerialのArduino Nanoでそれを使用するので、物事が乱雑になります。ESPモジュールのボーレートを下げる必要があることがわかりました。 私はそれを行う方法についてこのリンクを見つけました。 不思議なんだけど これは恒久的な変更ですか、それともモジュールに電源を投入した後で毎回行う必要がありますか? SoftSerialを介してArduinoからコマンドを送信することで同じことを達成できますか?ええと、私は試したのでそうではないと思いますし、常にAT+CIOBAUD=9600やでエラーが発生しAT+IPR=9600ます。 ESP8266の新しいファームウェアバージョンでは、ボーレートはデフォルトで9,600に設定されています。誰かがこれを確認できますか?そうであれば、この新しいファームウェアをフラッシュする方が良いですか? モジュールのベンダー: Ai-Thinker Technology Co.,Ltd. ファームウェアの現在のバージョンは0.3.0だと思います。送信する AT+GMRと、次のようになります。 sending AT+GMR response: ?AT¥TJÕ¨H(Q�²•ÉÍ¥½¹é‚r¢‚r‚r‚BÕ��Â’‚ŠªŠ¢Ò¢ªÒªÂJm SDK versioo:0.3.0 Ai�½½ ‚Šj ボーレートが高すぎるため、やはり一部のゴミです。 モジュールの他の情報: sending AT+RST response: ?AT+RST OK WRT "%M <99CT ets Jan 8 2013,rst catse:2, boot lode:(3,7) load 0x40100000ntail 4 chksum 0x89 ld tail 4 chm3 tail …

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.