Arduino

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

4
Arduinoモーターシールドのオレンジ/白のピンの使用法
このようなArduinoモーターシールドをMegaボードに接続しました。 ボード上のオレンジと白のピンブロックに関する詳細情報を知りたいのですが。Arduinoのウェブサイトは、以下の情報を持っていますが、それはのためにそれらを使用するのが最適であるか、どのピンがピンなどのデータにマッピングされているかのいずれかの説明を与えるものではありません A2およびA3に接続された2つのアナログ入力(白)のTinkerKitコネクタ。 ピンD5およびD6のPWM出力に接続された2つのAanlog出力用のTinkerKitコネクタ(中央がオレンジ色)。 TWIインターフェイス用のTinkerKitコネクタ(4ピンの白)、1つは入力用、もう1つは出力用。 私がやりたいことは、ボードにサーボを接続し、オレンジ色のOUTブロックの1つを使用できることを望んでいました。私はこれが可能かどうか疑わしい例を見つけることに成功していません。差し込むだけですが、シールド/メガ/サーボを揚げるのが怖いです。おそらく不合理な恐怖ですが、現時点では別のものを買う余裕はありません! ブロックのどのピンがデータ、vcc、outに割り当てられているかわかりません。そのため、誰かが私に答えて感謝していることを知っている場合は、 また、理解できないのは面倒なので、TWIコネクタは何のためのものですか? 私は本当にいくつかの答えを使うことができるので、これがあまりにも一般的な質問ではないことを願っています!
9 pins  shields  motor 

4
ループ外で変数を宣言することとループ内で静的に宣言することの違いは何ですか?
これらは、ループ(または任意の関数)の外で変数を保持できる2つの方法です。 最初に、ループの外側のグローバルスコープで宣言できます。 void setup() { Serial.begin(9600); } int count = 0; void loop() { Serial.println(count); count++; delay(250); } ループ内で静的に宣言することもできます。 void setup() { Serial.begin(9600); } void loop() { static int count = 0; Serial.println(count); count++; delay(250); } これにより、どのような違いがありますか?


8
5ガロンの水差しが空になっているかどうかを判断する最良の方法
私は、5ガロンの青い水のボトルの1つから水を得るエスプレッソマシンを持っています(私はそれを配管しますが、ここの水はWAAAAYが強すぎます)。 誤ってボトルの水を使い果たしてしまうと、エスプレッソマシンのロータリーポンプが壊れてしまい、コストのかかる間違いになります。 ある種の磁気フロートセンサーをウォーターボトル内に設置できることはわかっていますが、数週間に1回交換する必要があるため、ボトル内に別のものがあると、交換が難しくなり、微生物汚染が発生しやすくなります。ボトルから水を汲み上げるポンプは、ふたにしっかりとシールを形成し、その下またはそれを介して実行されるものは、そのシールを危険にさらします。 ボトルの外側から水位が低いかどうかを検出するために使用できるものはありますか?レーザーセンサーのような?

3
正確な水温管理
私は次の設定をしています: Arduino Duemilanove 光リレーに接続された小型給湯器(PWMは問題ありません) 防水DS18B20温度センサー 不明な量の水(ただし、温度センサーとヒーターは常に水中にあります)。 温度センサーの読み取り値に基づいて、水温を正確に制御するにはどうすればよいですか?正確には、温度センサーの精度(この場合は±0.5°C)までを意味します。すべてがArduinoで実行されるため、追加のデータストレージや処理能力は利用できません。デバッグには、明らかにコンピュータを使用できます。 PIDを実行してみましたが、本当に難しいようです オーバーシュートを避ける-最初に、または(冷たい)水が追加されたときに目標温度を超える 冷水を加えた後、適切に安定させます。
9 pwm  pid 

2
無効なピン番号を使用するとどうなりますか?
関連: 実行時エラーがあるとどうなりますか? この質問は上記のものと似ていますが、これは別の状況です。 int pin = 999; pinMode(pin, OUTPUT); digitalWrite(pin, HIGH); この場合はどうなりますか?コンパイラはそれをキャッチするかもしれませんが、乱数を使用した場合、IDEはそれをキャッチしますか?

5
Arduinoはどのようにして特定の(つまり56 kHz)キャリア周波数を出力できますか?
私は、2点間でデータをワイヤレスで送信するための自由空間光学プロジェクトに取り組んでいます。これを達成するために、送信機には56 kHzの搬送周波数でパルスするArduino Unoに接続されたIR LEDを使用し、受信機には56 kHzのIR検出器モジュールを持つ2番目のArduinoを使用しています。 キャリア周波数を作成するために、pin highコマンドとpin lowコマンドの間にdelayMicroseconds()を使用してみました。この種の方法は機能しますが、周波数は常に同じであるとは限らず、信号をパルスするための追加の遅延(つまり、関数を呼び出してデクリメントするのに必要な時間)によって、信号が変化する可能性があります。 ATmega328のデータシートを読むと、チップのタイマーを使用してより正確なパルスを設定する方法があるようです。それは可能ですか?可能であれば、タイマーを使用して56 kHzパルスをどのように作成しますか?


4
スケッチを本当に縮小する方法
テスト目的で、できるだけ小さいスケッチを作成したいと思います。問題は、BareMinimumスケッチを(空のセットアップとループを使用して)コンパイルすると、Unoに466バイト、Leonardoになんと4,242バイトを取得することです。余分な関数を持たない独自のコード(つまり、millis()およびのTimer0 delay())を作成する方法はありますか?また、Leonardoのキーボード/マウス機能を無効にできるようにしたいと思います。

2
依存関係を管理する方法は?
Loggingのような依存関係を含めたいのですが。そのページでそれは言う: zipファイルをダウンロード Loggingフォルダーを「libraries \」に配置します。 これが(Mavenの考え方で)Arduinoプロジェクトの依存関係を管理する方法であるとは信じたくありません。つまり、私のパッケージをチェックアウトするすべての人は、これらの手順をローカルで繰り返す必要があります(またはバージョン管理に「ライブラリ」を含めますか)依存関係管理のベストプラクティスは何ですか?
9 library 

2
Arduino Unoには2つのクリスタルがありますか?
この写真を見てください: ボード上の「大きな銀色」のもの(赤)は、Arduinoの有名な16 MHzクリスタルであることにほとんどの人が同意していると思います。それはごく最近まで私が信じていたものです。 私は退屈していたので、Arduino Unoを見ると、別のクリスタル(黄色)のように見えることがわかりました。それはプロミニにあるもののように見えます。XTALピンの近くにもあります。2回目に回路図を調べたところ、ボード上に2つのクリスタルがあるようです。 これらの2つのうち実際にXTALピンに接続されているのはどれですか。なぜ2つあるのですか。

4
Arduinoボードプリプロセッサのリスト#defines
Arduino IDE内でボードを選択すると、プリプロセッサ定義が舞台裏のファイルの1つに追加されます。 多くの狩猟と幸運の後、私はこの定義の形式が次のとおりであることを発見しました: #define ARDUINO_<PROCESSOR-DESCRIPTOR>_<BOARDNAME> 簡単に推測できるものもありますが(ARDUINO_AVR_UNOたとえば)、他のものはそうではありません。プロマイクロでは、速度に応じて、定義に「16」または「8」が追加されています。5Vと3.3Vで定義が異なるかどうかはわかりません。Mega2560の定義を推測することはできませんでしたが、明白なことは何もありません。 質問1:可能な定義の存在にリストはありますか? 質問2:BoardX -5VとBoardX -3.3Vの間で、コンパイルとプリプロセッサの関与に関する違いはありますか?この違いはどのように定義されていますか?

10
Arduinoで正弦(および余弦)を計算するさまざまな方法(および最速)
私のシステム(ロボットアーム)の角度を計算するために、Arduino Unoボードを使用しています。角度は、ADCの全範囲を使用した、ADCからの実際の10ビット値(0〜1023)です。ここでは、正弦と余弦の両方が正である第1象限(0〜90度)でのみ動作するので、負の数の問題はありません。私の疑問は3つの質問で表すことができます。 Arduinoでこれらの三角関数を計算する別の方法は何ですか? 同じことをする最も速い方法は何ですか? Arduino IDEにはsin()関数とcos()関数がありますが、Arduinoは実際にそれらをどのように計算しますか(ルックアップテーブルや近似などを使用する場合と同様)。それらは明白な解決策のように見えますが、実際に試す前に、実際の実装を知りたいと思います。 PS:私は、Arduino IDEの標準コーディングとアセンブリコーディングのほか、言及されていないその他のオプションにも対応しています。また、デジタルシステムでは避けられないエラーや近似の問題もありません。ただし、可能であれば、起こり得るエラーの範囲について言及しておくとよい

2
Arduino IDEから未使用のボードを削除する
現在のプロジェクトでは、UNOボードとLeonardoボードを同時にプログラミングしています。 私が所有していない他の18枚のボードのため、[ Tools ]メニューで2つのボードを切り替えるのに時間がかかりすぎます。 これらのボードを[ツール]メニューから削除する方法はありますか?

2
20 MHzのArduino?
ArduinoがAVRが指定されている周波数である20 MHzで動作しないのはなぜですか。現在、16 MHzで実行しているため、20%のパフォーマンスを無駄にすることはありません。 ブートローダーのボーレートの唯一の例外を除いて、16 MHzの共振器を20 MHzのタイプに置き換えても何の影響もないと思います。またはありますか? Arduinoの設計者が16 MHzを選択した理由を誰かが知っていますか?

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