タグ付けされた質問 「programming」

Arduinoのプログラム(またはスケッチ)の一部としてソースコードを設計および作成するプロセス。Arduinoボードへのコードのアップロードに関する質問については、代わりに[uploading]タグを使用してください。

3
makefile互換のスケッチを書く方法は?
Arduino IDEを使用して、またはオプションでGCCとメイクファイルを使用して、スケッチを作成/アップロードできるように、スケッチを書きたいと思います。 関数宣言を上部に含めることは知っていますが、私のスケッチがコンパイラーによって有効なC ++と見なされるようにするために、他に何かすることはありますか? アップデート1 Arduino IDEが.inoおよび.pdeファイルに対して行うことを理解することは問題ありませんが、私の質問には無関係なので、これは重複ではありません。私が知りたいのは、「Arduino IDE と g ++の両方で有効と見なされるようにプログラムを作成する方法です。 (?)のmakefile公式ここで利用可能ではメイクファイルを使用した場合の対処方法を説明代わりに IDEの: # The Arduino environment does preliminary processing on a sketch before # compiling it. If you're using this makefile instead, you'll need to do # a few things differently: # # - Give your program's file a …

2
UNO R3の2番目のMCUをキーボードエミュレーションに使用できますか?
続いてArduinoの宇野R3で第2回ICSPヘッダは何?これがどのようにハッキングされて私たちの利益になるのか疑問に思っていました。 たとえば、そのファームウェアを書き換えて、UNOがマウス/キーボード入力として認識されるようにすることはできますか?これは、ブートローダープロセスの後で行うことができ、アップロードプロセスをそのままにできますか? IOが限られているため、機能が制限されている可能性があります。加えて、利用可能なスペースがどれだけのコードであるか私にはわかりません。

3
Arduinoボードの総エネルギー使用量を測定する方法
現在取り組んでいるプロジェクトがあります。私たちは緑の壁を作りました、それは壁の植物で構成されています これで、底部にポンプがあり、すべての植物に水を供給しています。いつポンプをつけるかを決めるarduinoボードがあります。それを動かすのはソーラーパネルと風力タービンです。ソーラーパネルとタービンを使用して節約したエネルギー量を知りたいのですが。 質問: その日の00h00から使用されたエネルギー量をWhでどのように測定しますか?図書館はありますか?またはこれはArduinoでは不可能ですか? どうもありがとう。 いくつかのものを片付けるために いいえ、ポンプはArduinoピンから直接燃料を供給されていません。モーターシールドを使用しています。 はい、回路にアキュムレータがあります。太陽光と風力はバッテリーを充電し、次にコンポーネントに電力を供給します。 ポンプだけでなく、消費されたエネルギー全体を知りたいのですが。

3
millis()を使用したArduinoの時間維持は正確または正確ではありませんか?
私はArduinoを使用していくつかのデータを記録しています。Arduinoのスケッチでは、このmillis()関数も使用したので、測定している各値が取得された時間を追跡できます。しかし、タイミングがおかしいことに気づきました。たとえば、実際の30秒は、10秒(構成例)としてのみ出力されます。 Arduinoの遅延機能が使用時間の維持に影響を与えると言ってmillis()いいのですか?言い換えると、50ミリ秒の遅延があると仮定すると、millis()関数はその期間も停止し、接続が継続するまで継続するということですか?いくつかのデータをプロットしてみたところ、経過時間を考えるとデータのピークの頻度が高すぎることがわかりました。それで、それがこのタイミングのミスマッチの理由であるかどうかを知りたいのですが、そうであれば、各サンプルが発生する時間を維持できるようにこれを修正するにはどうすればよいですか? ここにいくつかのコンテキストを与えるために私のスケッチです: #include <eHealth.h> unsigned long time; // The setup routine runs once when you press reset: void setup() { Serial.begin(9600); } // The loop routine runs over and over again forever: void loop() { float ECG = eHealth.getECG(); time = millis(); Serial.print(time); Serial.print(" "); Serial.print(ECG, 5); Serial.println(""); delay(50); …

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); } これにより、どのような違いがありますか?


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

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

2
オブジェクトメモリを静的に割り当てます。動的に初期化しますか?
コンストラクターがパラメーターを渡されるオブジェクトがあります。コンパイル時にパラメーター値がわかっている場合は、オブジェクトを静的に構築できます。 static FOOOBJ foo(3); (それは実際には静的に、つまりコンパイラーによって行われるのではなく、実際にセットアップ中に行われることを理解しています)。 しかし、コンパイル時にパラメーター値がわからない場合でも、オブジェクトにスペースを事前に割り当てておきますが、実行時にそのスペースにオブジェクトを構築します。別の.initialize()方法なしでそれを行うことができますか?

2
ArduinoでのOOPとインライン
私はかなり長い間プログラミングをしていますが、ArduinoとAVRプログラミングは初めてです。これらのマイクロコントローラーのプログラミングに関して私が持っている主な質問は、オブジェクト指向クラスでのコードの設計と多くの例で見た従来のインラインプログラミングでは大きな違いがあるということですか? 言い換えれば、Arduino / AVRコントローラーの世界では、クラスを利用してメモリとパフォーマンスを節約したり、その逆を行ったりしますか? たとえば、クラスがあるとします。 class SomeClass(){ private: int x; int y; public: void foo(); void bar(); } SomeClass thisClass; thisClass.foo(); thisClass.bar(); 次のように、よりインラインでプログラムを設計すると、パフォーマンスやメモリが向上しますか? int x; int y; void foo(){ /*** Do something ***/}; void bar(){ /*** Do more stuff ***/}; Stack ExchangeとGoogleでいくつか検索してみましたが、見つけることができた最も近いものを探している答えが見つかりませんでした。このStack Exchangeの質問でした。 私がこれについて尋ねている理由は、できるだけ軽量である必要があるプロジェクトがあり、この環境で自分のプログラムをどのように設計すればよいのかわからないためです。 編集する 答えてくれてありがとう、これは物事に光を当てています。はっきりしない点が1つあります。 次のようにu8glibを利用する設計中のクラスがあるとします。 class UserInterface{ private: …

3
マンチェスター図書館はAttiny85のためにコンパイルされません
Attiny85を使用してワイヤレスセンサーを作成しています。arduino unoにデータを送信したいので、315 MHzのRFリンクキットをSpark Funから購入しました。Attiny85にはTXがないため、マンチェスターライブラリを使用することにしましたが、Attiny85ではコンパイルできません。 私はこのブログの手順に従いました:http : //mchr3k-arduino.blogspot.mx/2012/01/wireless-sensor-node-part-2.html?showComment=1338749638806#c853067277980266192 これが私が使用しているコードです: #include <WProgram.h> //otherwise it says it can't find Arduino.h #include <Manchester.h> //include the library to comunicate #define TxPin 2 //the pin that is used to send data int sensorPin = 4; int ledPin = 3; int count = 50; void setup(){ pinMode …

2
変化する電圧をArduinoに読み込む
使用Arduinoのナノ及び変流器(CT)を、私は120 V 60Hzの線に流れる電流を検出しようとしています。 回路 CTは0-1 Vその仕様に従って出力します。この出力はバイアスされていますAREF/2= 2.5V。 analogRead 価値観 x軸はADCサンプルのインデックス番号を表し、y軸はADC値(0〜1024)を表します。サンプリングレートは約9 kHzです。ピーク間差は約1026サンプルです。 この波形はCTに期待するものですか?値が連続的に変化するのではなく、値が平坦な領域があるのはなぜですか? さらに、プロットの曲線部分を見ると、Arduinoが512上下の値を512交互に読み取っているのはなぜですか?なお、上記の値を読み出し、512以下、値、512その値以上の、512など。 analogReadセットアップにかかった時間は110マイクロ秒と測定され、波形のピーク間に1026個のサンプルがあります。つまり、60 Hzのラインを検出しているので60のピークが予想されますが、1秒間に約9のピークが存在することになります。これから何を作りますか?コンデンサーC1が回路にありますが、これと関係がありますか? これらのanalogRead値は、RMS電圧を計算するために使用するのに適していますか?これの最終的な目標は、ワイヤを流れるRMS電流を決定した後で電力使用量を計算することです。 プロットの値を取得するために使用されるスケッチ void setup() { Serial.begin(9600); } void loop() { double sensorValue = analogRead(1); Serial.println(sensorValue) } analogReadバンプ領域の実際のデータポイント 487 534 487 535 488 537 484 536 487 538 486 536 484 540 484 539 485 540 483 …
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.