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

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


5
C ++以外のプログラミングオプション
C ++以外のプログラミング言語を使用してArduinoをプログラミングできますか?もしそうなら、どのプログラミング言語ですか?コードをコンパイルしてArduinoにロードするには、どのソフトウェアが必要ですか?

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++ 

5
Arduinoとコンピューター上の処理スケッチの間の遅延を減らす
現在、Arduinoプロジェクトブックのプロジェクト#14にいます。 Arduinoを使用してラップトップで処理スケッチを制御しようとしています。これは、ポテンショメータを使用して画像の背景を制御することにより実現されます。 Arduinoコード: void setup(){ Serial.begin(9600); } void loop(){ Serial.write(analogRead(A0)/4); } 処理: //imports serial library import processing.serial.*; //setups the serial object Serial myPort; //creates an object for the image PImage logo; //variable to store background color int bgcolor = 0; void setup(){ colorMode(HSB,255); logo = loadImage("http://arduino.cc/logo.png"); size(logo.width,logo.height); println("Available serial ports"); …

4
Arduinoで真に乱数を取得する
Arduinoで真の(擬似ではなく)乱数を取得するための最良の方法、または少なくとも可能な限り最良の近似は何ですか?私の理解では、関数randomSeed(analogRead(x))は十分にランダムではありません。 可能であれば、メソッドは基本的なArduinoセットアップのみを活用する必要があります(追加のセンサーはありません)。外部センサーを使用したソリューションは、基本的なセットアップよりもランダム性が大幅に改善される場合に歓迎されます。

2
コンピューターなしのISPとしてのArduino
ispとして動作するように設定された1つのarduinoにデータとしてファームウェアをプリロード(コンピューターなどを使用)し、そのarduinoを使用してispインターフェースを別のインターフェースにプラグインし、ファームウェアをアップロードする方法を知っているか、知っていますか? 明確にするために-本格的なコンピューターに直接接続することなく、arduinoスケッチをアップロードできるようにする方法を探しています。 理想的な手順は次のとおりです。 新しいスケッチ/ファームウェアを書く ファームウェアのコンパイル コピーファームウェアをデータとしてArduino Aに書き込みます(Arduino AはISPとして動作するように設定されています) Arduino Aをコンピューターから切り離す 別の場所で、ISPヘッダーを使用してArduino AをArduino Bに接続します 何らかの方法(プッシュボタンなど)を使用すると、Arduino Aがトリガーされ、プリロードされたファームウェアがArduino Bにアップロードされます。 ファームウェアのアップロードはSPIインターフェースを介した単なるバイト交換であるため、理論的には機能すると想定していますが、現実はわかりません。 私が考えているシナリオは、arduinoを(永久に)自分のコンピューターから離れた場所にインストールする場合です(ラップトップを持っていないか、手に入れたくない)再プログラムするのは面倒ですそれ。 私が検討したもう1つの方法は、DILパッケージのATMEGAを使用することです再プログラムするたびにチップ。

4
スケッチがなぜそれほど多くのスペースとメモリを占有するのですか?
このスケッチをYún向けにコンパイルすると: int led = 7; void setup() { pinMode(led, OUTPUT); } void loop() { digitalWrite(led, HIGH); } 私は得る: Sketchは5,098バイト(17%)のプログラムストレージスペースを使用します。 最大は28,672バイトです。グローバル変数は、153バイト(5%)の動的メモリを使用し、ローカル変数用に2,407バイトを残します。最大は2,560バイトです。 BareMinimumスケッチをコンパイルしても: void setup() { // setup } void loop() { // loop } 私は得る: Sketchは4,548バイト(15%)のプログラムストレージスペースを使用します。 最大は28,672バイトです。グローバル変数は151バイト(5%)の動的メモリを使用し、ローカル変数用に2,409バイトを残します。最大は2,560バイトです。 最低限のスケッチが、割り当てられたプログラムストレージスペースの15%を占めるのはなぜですか?そして、なぜ非常にシンプルなスケッチがプログラムのストレージスペースの17%を占めるのですか?Arduinoのウェブサイトによると: プログラムに多くの文字列を含めると、使いやすくなります。たとえば、次のような宣言char message[] = "I support the Cape Wind project.";は、SRAMに33バイトを入れます(各文字は1バイトに「\ 0」ターミネータを加えます)。 ただし、これらのスケッチのいずれでも宣言された文字列はありません。 私が指定していない他のライブラリ/クラスをインポートまたは使用する可能性があるようです。システムのデフォルトライブラリをインポートするのでしょうか?それとも別のものですか?

6
Arduinoで1回実行するためのコード
質問: Arduinoの起動ごとに1回だけ実行する場合、どこにコードを配置しますか? 背景:私は、Arduinoを使用して、電源の再投入ごとに1回実行する必要があるタスクを実行する傾向があります。(たとえば、ロボットは、電源を入れるたびに1回だけ前進する必要があります。それ以上は、テーブルから落ちる可能性があります。) 標準のArduino IDEの「テンプレート」はと関数で構成されloop()ていsetup()ます。setupコードは、電源サイクルごとに一度実行され、そしてloopそれが終わるたびに再起動されます。 「1回のタスク」をコーディングする2つのアプローチがあります。 方法1:「1回ループ」 void setup() { //do setup stuff } void loop() { //do task while(1) ; //Repeat forever, preventing function from re-starting } 方法2:「セットアップのみ」 void setup() { //do setup stuff //do task } void loop() { //do nothing } より詳細な質問形式: これらの方法の1つは、ハードウェア/ソフトウェアの意味から「より良い」ものですか?(たとえば、setup機能に非常に長い時間しか実行できないような「特別な」何かがありますか?) また、ハードウェア/ソフトウェアの観点から同じ場合、「ベストプラクティス」またはコードを記述する標準的な方法はありますかArduinoコミュニティのこれらの状況のた​​めに?

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++ 

4
リアルタイムクロックがPCから間違った時間を取得するのはなぜですか?
リアルタイムクロックでPCの時刻を設定します。ただし、次のスケッチを実行すると、リアルタイムクロックは、PCの時刻よりも32〜33秒早い時刻を報告します。 #include <Wire.h> #include "RTClib.h" RTC_DS1307 RTC; void setup () { Serial.begin(57600); Wire.begin(); RTC.begin(); if (! RTC.isrunning()) { Serial.println("RTC is NOT running!"); // following line sets the RTC to the date & time this sketch was compiled // uncomment it & upload to set the time, date and start run …

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

3
誰かが、タイマーのセットアップに使用されるこの奇妙なコードを説明できますか?
他の人が書いたスケッチを見ていると、次のようなコードに出会うことがあります。 TCCR1A = 0; TCCR1B = 0; TCNT1 = 34286; TCCR1B |= (1 << CS12); TIMSK1 |= (1 << TOIE1); 私が知っているのは、それがタイミング/タイマーと関係があることです(私はそう思います)。このようにコードを解読(および作成)するにはどうすればよいですか?どのようなものがありTCCR1A、TCCR1B、TCNT1、CS12、TIMSK1、とTOIE1?

3
ワイヤレスブロードキャストと同時に多くのArduinoをプログラミングする
相互に独立した多くのマイクロコントローラーベースのデバイスを用意しますが、すべて同じプログラムを実行します。 ワイヤレス放送で同時に全員に番組をアップロードしたい。理想的には、ユーザーは自分のコンピューターにUSBコントローラーを接続し、まるで1つのデバイスをプログラミングしているかのようにArduino環境からプログラムをアップロードします。 私が話していることをよりよく理解するには、このビデオをご覧ください。これはAtmelマイクロコントローラーで達成されましたが、カスタムメイドの非Arduinoブートローダーです。 「Arduino赤外線プログラミング」のGoogle検索から、この興味深いプロジェクトが思い付きました。主な欠点は、リセットボタンを手動で押す必要があることです。理想的には、デバイスがデフォルトで低電力状態になり、コントローラーからの信号を感知したときにプログラムを受信するためにウェイクアップすることを望みます。それでも、これは私にとって良い出発点になるかもしれません。 Arduinosに精通している人から、これが実現可能であると考えるかどうかについて、私が飛び込む前にいくつかの視点を知りたかっただけです。

4
I / Oピンを定義する最良の方法は何ですか?
私は次のような定義を読みます const int ledPin = 9; そしてまた #define ledPin 9 私は次のような定義を知っています int ledPin = 9; これを変更しない場合(通常は変更しない場合)は悪い習慣ですが、Arduinoプログラムではこれを何度か目にしています。他の2つのうちどちらが好ましいですか?

3
すべての配線は正しいのに、LCD 16 * 2に文字が表示されないのはなぜですか?
最近、私は典型的な16 * 2 LCD(液晶ディスプレイ)ディスプレイをArduino Unoにリンクし、すべてのピンをリ​​ンクしました。 これが私の接続です:(最初にLCDピン) 1 = GND、2 = + 5v、4 = 11、6 = 12、11 = 5、12 = 4、12 = 3、14 = 2、15 =バックライトプラス、16 =バックライトマイナス #include <LiquidCrystal.h> // initialize the library with the numbers of the interface pins LiquidCrystal lcd(12, 11, 5, 4, 3, 2); void setup() { // …

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