タグ付けされた質問 「c++」

C ++は、Arduino IDEのプログラミングに使用される標準言語です。ただし、Arduino IDEには多くのライブラリが組み込まれているため、「main」などの関数はスケッチコードで直接呼び出されません。オンラインのほとんどのArduinoコードはこの言語で書かれています。

20
Arduinoの他のIDEとは何ですか?
基本的なArduino IDEには、コード補完、コードの折りたたみ、フォルダーの整理など、他のIDEにある高度な機能が多くありません。CまたはC ++でのプログラミングを可能にし、これらの側面を改善できるIDEは他にありますか?

9
C ++対Arduino言語?
Arduinoを使用するときの各言語の利点は何ですか? これは良い一般的な質問だと思いますが、誰かが私に助言を与えたいかどうか尋ねる理由について少し付け加えます。 私はJavaScript、PHPなどの前処理された言語の経験があり、JavaやVisual Basicなどの言語をいじっています。言い換えれば、私はプログラミング技術と古典的およびプロトタイプのオブジェクト指向の両方を知っていますが、ハードウェアと直接通信することについては何も知りません。 オクトコプターを作成していますが、オブジェクト指向のアプローチが最も簡単だと考えています。(ソフトウェアには非常に多くの機能があります...)しかし、私はC ++で書いたことはありません。 これは他の人を助けるはずのQ&Aサイトであるため、冒頭に提示した一般的な質問のみが非常に重要ですが、私の状況についてコメントをいただければ幸いです。
81 c++  arduino-ide 


3
定数に#defineまたはconst intを使用する方が良いですか?
Arduinoは奇妙なハイブリッドであり、組み込みの世界(従来はC環境)でC ++機能が使用されます。実際、多くのArduinoコードは非常にCに似ています。 Cは伝統的#defineに定数にsを使用していました。これにはいくつかの理由があります。 を使用して配列サイズを設定することはできませんconst int。 const intcaseステートメントラベルとしては使用できません(ただし、これは一部のコンパイラで機能します) constを別ので初期化することはできませんconst。 より多くの理由については、StackOverflowでこの質問を確認できます。 それでは、Arduinoには何を使用すべきでしょうか?私は傾向がありますが#define、一部のコードconstはブレンドを使用しており、一部のコードはブレンドを使用しています。

3
クラスとオブジェクト:実際に使用する必要のあるファイルタイプはいくつですか?
C ++やCの経験はありませんが、C#のプログラミング方法を知っていて、Arduinoを学んでいます。私はスケッチを整理したいだけで、Arduino言語には限界がありますが、Arduinoプログラミングにはオブジェクト指向のアプローチが必要です。 だから私はあなたがコードを整理するためにあなたが次の方法(網羅的なリストではない)を持つことができることを見てきました: 単一の.inoファイル。 同じフォルダー内の複数の.inoファイル(IDEが呼び出して「タブ」のように表示するもの)。 同じフォルダーに.hおよび.cppファイルが含まれている.inoファイル。 上記と同じですが、ファイルはArduinoプログラムフォルダ内にインストールされたライブラリです。 次の方法も聞いたことがありますが、まだ機能していません。 同じ単一の.inoファイルでC ++スタイルのクラスを宣言します(聞いたことはありますが、動作することはありません-それは可能ですか?)。 [推奨されるアプローチ]クラスが宣言されている.cppファイルを含むが、.hファイルを使用しない(このアプローチが必要ですか? コードをよりパーティション化するためにクラスのみを使用したいことに注意してください。私のアプリケーションは、ボタン、LED、ブザーのみを含む、非常にシンプルなものでなければなりません。
20 programming  c++  class 


5
構造体とクラスを使用する場合、どのようなオーバーヘッドやその他の考慮事項がありますか?
組み込みシステムのCでは、従来、構造体を使用して構造化データを保持しています。 ArduinoはC ++をテーブルに追加するため、代わりにクラスを使用できます。 非常に似ていると考えられる2つの異なるデータ構造があるとします。 typedef struct { int valueOne; int valueTwo; int valueThree; } value_t; そして: class Value { public: int valueOne; int valueTwo; int valueThree; } 記憶に関しては、これはどのような違いをもたらしますか? 私はまだ構造テクニックが頻繁に使用されているのを見ています-これはなぜですか?

1
IFステートメントでグローバルが表示されないのはなぜですか?
私はArduinoプログラミングにかなり慣れていません。次のコードのコンパイルに問題があります。 const int relay1 = 10; //Power Relay 1 const int relay2 = 11; //Power Relay 2 const int relay3 = 12; //Toggle Relay const int button1 = 3; const int button2 = 4; const int button3 = 5; //---Button States---\\ int button1State; //Current state of Button 1 int button2State; …

4
便宜上、セットアップとループが提供されていますか?
Arduinoスケッチは通常、機能setupをloop備えています。これらの機能は便宜上提供されているだけですか、それとも実際には特別な目的がありますか?(例:セットアップとループで許可または許可されていない操作があります) これらの2つのコードは同等ですか? クラシック void setup() { pinMode(LED_BUILTIN, OUTPUT); } void loop() { digitalWrite(LED_BUILTIN, HIGH); delay(1000); digitalWrite(LED_BUILTIN, LOW); delay(1000); } ループなし void setup() { pinMode(LED_BUILTIN, OUTPUT); while(true) { digitalWrite(LED_BUILTIN, HIGH); delay(1000); digitalWrite(LED_BUILTIN, LOW); delay(1000); } } void loop() { } たとえば、mainメソッドやその他のエントリポイントを提供して、セットアップやループなしでコードを記述することは可能ですか?
13 programming  c++ 

3
文字列パラメータを持つ関数
私のメインループ内には次の文字列があります: String string1; string1をパラメーターとして受け取り、それを使用してこの文字列をSMSとして送信する関数があります。 sendSMS(string1); これはsendSMS()関数です(パラメーターなし): void sendSMS() { sms.beginSMS(remoteNumber); sms.print(finalstr); sms.endSMS(); lcd.setCursor(0, 0); lcd.print("Message sent!"); delay(10000); } 私の質問は: 文字列入力パラメーターをsendSMSに配置するにはどうすればよいですか? sendSMS()の関数プロトタイプも使用する必要がありますか?(3回表示されるように、1つはプロトタイプに、1つは宣言に、1つは呼び出しにあります)。または、メインloop()の前に関数プロトタイプを使用する必要はありませんか?
11 programming  c++ 

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 

2
.ino Arduino SketchはGCC-AVRで直接コンパイルできますか?
さて、ArduinoとC ++やその他の同様の質問など、ウェブ全体でこれらの質問を見てきました。また、回答の大部分は、抽象化された情報以外の方法ではコンパイルの違いにさえ触れません。 私の質問は、.cppファイルまたは他の同様のc ++ファイル拡張子に変更された.inoファイルがGCC-AVRを使用してコンパイルされる方法の(設定ではなく)実際の違いを解決することを目的としています。少なくともArduinoヘッダーファイルを含める必要があることはわかっていますが、それ以上に、たとえばGCC-AVRなどを使用して.inoを.cppファイルにコンパイルすると、コンパイルエラーが発生します。簡単にするために、古典的な瞬きの例を使用して違いを説明しましょう。または、より良いコードスニペットを使用する場合は、必ず、スニペットを回答に含め、違いを完全に説明してください。 どちらがより良い使用方法またはツールであるかについての意見はありません。 ご参考までに。開発にPlatformioを使用していて、コンパイル中にバックグラウンドで変換プロセスが発生していることに気付きました。そこで実際に何が起こっているのかを理解しようとしているので、Arduinoでコーディングすると、「純粋な」C ++バージョンも理解できます。 事前に私の質問にあなたの思慮深い回答をありがとう。

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 …


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