Arduinoプログラミング言語の紹介

Arduinoボード用のプログラムをどのように書くことができますか? Arduinoは、ネイティブで、Arduinoプログラミング言語またはArduino言語と呼ばれる言語をサポートしています。

Arduinoボード用のプログラムをどのように書くことができますか?

Arduinoは、ネイティブで、Arduinoプログラミング言語またはArduino言語と呼ばれる言語をサポートしています。

この言語はに基づいています配線開発プラットフォームは、これに基づいています処理、これに精通していない場合は、p5.jsに基づいています。これは、非常にオープンソースの方法で、他のプロジェクトに基づいて構築されたプロジェクトの長い歴史です。 Arduino IDEは、Processing IDEと、その上に構築されたWiringIDEに基づいています。

Arduinoを使用する場合、通常、Arduino IDE(統合開発環境)を使用します。これは、すべての主要なデスクトッププラットフォーム(macOS、Linux、Windows)で利用できるソフトウェアであり、統合ライブラリをサポートするプログラミングエディターとArduinoプログラムを簡単にコンパイルしてコンピュータに接続されたボードにロードする方法。

Arduinoプログラミング言語は基本的にC ++上に構築されたフレームワークです。従来の用語では実際のプログラミング言語ではないと主張することもできますが、これは初心者の混乱を避けるのに役立つと思います。

Arduinoプログラミング言語で書かれたプログラムはスケッチ。スケッチは通常、.ino拡張機能(Arduからino)。

「通常」との主な違いCまたはC ++は、すべてのコードを2つの主要な関数にラップすることです。もちろん、2つ以上持つことができますが、Arduinoプログラムは少なくともそれら2つを提供する必要があります。

1つは呼ばれますsetup()、もう一方はloop()。 1つ目は一度呼び出され、プログラムの起動時に2つ目はプログラムの実行中に繰り返し呼び出されます。

私たちは持っていませんmain()プログラムのエントリポイントとして、C / C ++で慣れているように機能します。スケッチをコンパイルすると、IDEは最終結果が正しいC ++プログラムであることを確認し、基本的に前処理によって不足している接着剤を追加します。

それ以外はすべて通常のC ++コードであり、C ++はCのスーパーセットであるため、有効なCはすべて有効なArduinoコードでもあります。

問題を引き起こす可能性のある違いの1つは、複数のファイルにプログラムを生成できますが、それらのファイルはすべて同じフォルダーにある必要があることです。プログラムが非常に大きくなる場合は、取引を破る制限になる可能性がありますが、その時点で、ネイティブC ++セットアップに簡単に移行できます。これは可能です。

Arduinoプログラミング言語の一部は、Arduinoボードが提供する機能と簡単に統合できる組み込みライブラリです。

あなたの最初のArduinoプログラムは確かにライトをLEDでオンにしてからオフにすることを含みます。そのためには、pinMode()delay()そしてdigitalWrite()関数、および次のようないくつかの定数HIGHLOWOUTPUT

このように、正規の最初のArduinoプロジェクト(「Hello、World!」):

#define LED_PIN 13

void setup() {
    // Configure pin 13 to be a digital output
    pinMode(LED_PIN, OUTPUT);
}

void loop() { // Turn on the LED digitalWrite(LED_PIN, HIGH); // Wait 1 second (1000 milliseconds) delay(1000); // Turn off the LED digitalWrite(LED_PIN, LOW); // Wait 1 second delay(1000); }

これはすべてArduinoプログラミング言語の一部です、または私たちはそれを呼ぶほうがいいですスイートまたは図書館

他の言語のサポート

念のため、この言語とIDEを使用してArduinoをプログラムすることに限定されないことに注意してください。プロジェクトは、とりわけ、Node.jsコードを使用して実行できるようにするために存在します。ジョニーファイブプロジェクト、Pythonコードを使用pyserialとコードを移動しますゴボット、しかし、Arduinoプログラミング言語は間違いなく、これらのデバイスを操作するためのネイティブで標準的な方法であるため、ほとんどのチュートリアルに基づいて表示される言語です。

Arduinoプログラミング言語の組み込み定数

Arduinoは私たちが使用できる2つの定数を設定します

HIGH高レベルの電圧に相当し、ハードウェアによって異なる場合があります(ArduinoNanoのような3.3Vボードでは> 2V、ArduinoUnoのような5Vボードでは> 3V)LOW低レベルの電圧に相当します。繰り返しますが、正確な値は使用するボードによって異なります

次に、3つの定数を組み合わせて使用できます。pinMode()関数:

  • INPUTピンを入力ピンとして設定します
  • OUTPUTピンを出力ピンとして設定します
  • INPUT_PULLUPピンを内部プルアップ抵抗として設定します

私たちが持っている他の定数はLED_BUILTIN、オンボードピンの番号を指します。これは通常、番号と同じです。13

これに加えて、C / C ++定数がありますtrueそしてfalse

Arduino数学定数

  • M_PI定数円周率(3.14159265358979323846
  • M_E定数e
  • M_LN10 the natural logarithm of the number 10.
  • M_LN2 the natural logarithm of the number 2.
  • M_LOG10E the logarithm of the e to base 10.
  • M_LOG2E the logarithm of the e to base 2.
  • M_SQRT2 the square root of 2.
  • NANNAN(数値ではない)定数。

Arduinoプログラミング言語の組み込み関数

このセクションでは、Arduinoプログラミング言語によって提供される組み込み関数のリファレンスを作成します。

プログラムライフサイクル

  • setup()この関数は、プログラムの起動時、およびArduinoのシャットダウンと再起動時に1回呼び出されます。
  • loop()この関数は、Arduinoプログラムの実行中に繰り返し呼び出されます。

I / Oの処理

次の関数は、Arduinoデバイスからの入力と出力の処理に役立ちます。

デジタルI / O

  • digitalRead()デジタルピンから値を読み取ります。パラメータとしてピン番号を受け入れ、を返しますHIGHまたはLOW絶え間ない。
  • digitalWrite()書き込みHIGHまたはLOWデジタル出力ピンへの値。ピン番号を渡し、HIGHまたはLOWパラメータとして。
  • pinMode()ピンを入力または出力に設定します。ピン番号とINPUTまたはOUTPUTパラメータとしての値。
  • pulseIn()からデジタルパルスを読み取りますLOWHIGHそしてLOW再び、またはからHIGHLOWとにHIGH再びピンに。プログラムは、パルスが検出されるまでブロックします。ピン番号と検出するパルスの種類(LHLまたはHLH)を指定します。オプションのタイムアウトを指定して、そのパルスの待機を停止できます。
  • pulseInLong()と同じですpulseIn()ただし、実装が異なり、割り込みがオフになっている場合は使用できません。より正確な結果を得るために、割り込みは通常オフになっています。
  • shiftIn()ピンから一度に1ビットずつデータのバイトを読み取ります。
  • shiftOut()1バイトのデータを一度に1ビットずつピンに書き込みます。
  • tone()ピンで方形波を送信します。これは、ブザー/スピーカーがトーンを再生するために使用されます。ピンと周波数を指定できます。デジタルピンとアナログピンの両方で動作します。
  • noTone()停止しますtone()ピンに生成された波。

アナログI / O

  • analogRead()アナログピンから値を読み取ります。
  • analogReference()アナログ入力の上限入力範囲に使用される値を設定します。デフォルトでは、5Vボードでは5V、3.3Vボードでは3.3Vです。
  • analogWrite()アナログ値をピンに書き込みます
  • analogReadResolution()のデフォルトのアナログビット解像度を変更できますanalogRead()、デフォルトでは10ビット。特定のデバイス(Arduino Due、Zero、MKR)でのみ動作します
  • analogWriteResolution()のデフォルトのアナログビット解像度を変更できますanalogWrite()、デフォルトでは10ビット。特定のデバイス(Arduino Due、Zero、MKR)でのみ動作します

時間関数

  • delay()パラメータとして指定されたミリ秒数の間、プログラムを一時停止します
  • delayMicroseconds()パラメータとして指定されたマイクロ秒数の間、プログラムを一時停止します
  • micros()プログラムの開始からのマイクロ秒数。オーバーフローのため、約70分後にリセットされます
  • millis()プログラムの開始からのミリ秒数。オーバーフローのため、約50日後にリセットされます

数学関数

  • abs()数値の絶対値
  • constrain()数値を範囲内に制限し、使用法を見る
  • map()ある範囲から別の範囲に数値を再マップし、使用法を見る
  • max()最大2つの数字
  • min()最小2つの数字
  • pow()累乗された数値の値
  • sq()数の二乗
  • sqrt()数値の平方根
  • cos()角度の余弦
  • sin()角度の正弦
  • tan()角度のタンジェント

注:必要に応じて、さらに多くの組み込み数学関数があります。ここに記載されています

英数字の操作

  • isAlpha()文字がアルファ(文字)かどうかを確認します
  • isAlphaNumeric()文字が英数字(文字または数字)であるかどうかを確認します
  • isAscii()charがASCII文字であるかどうかをチェックします
  • isControl()文字が制御文字
  • isDigit()文字が数字かどうかをチェックします
  • isGraph()charが印刷可能なASCII文字であり、コンテンツが含まれているかどうかを確認します(たとえば、スペースではありません)。
  • isHexadecimalDigit()文字が16進数であるかどうかをチェックします(AF 0-9)
  • isLowerCase()文字が小文字であるかどうかをチェックします
  • isPrintable()charが印刷可能なASCII文字であるかどうかをチェックします
  • isPunct()文字が句読点(コンマ、セミコロン、感嘆符など)であるかどうかを確認します
  • isSpace()文字がスペースかどうかを確認し、改ページ\f、改行\n、 キャリッジリターン\r、水平タブ\t、または垂直タブ\v
  • isUpperCase()文字が大文字かどうかをチェックします
  • isWhitespace()文字がスペース文字であるか水平タブであるかを確認します\t

乱数の生成

  • random()疑似乱数を生成する
  • randomSeed()疑似乱数ジェネレータを任意の初期数で初期化します

Arduinoでは、ほとんどの言語と同様に、実際に乱数を取得することは不可能であり、シーケンスは常に同じであるため、現在の時刻をシードするか、(Arduinoの場合)次のことができます。アナログポートから入力を読み取る

ビットとバイトの操作

  • bit()ビットの値を計算します(0 = 1、1 = 2、2 = 4、3 = 8…)
  • bitClear()数値変数のビットをクリア(0に設定)します。数値、および右から始まるビットの数値を受け入れます
  • bitRead()数字を少し読んでください。数値、および右から始まるビットの数値を受け入れます
  • bitSet()数値の1ビットに設定します。数値、および右から始まるビットの数値を受け入れます
  • bitWrite()数値の特定のビットに1または0を書き込む数値、右から始まるビットの番号、および書き込む値(0または1)を受け入れます。
  • highByte()ワード変数(2バイト)の上位(左端)バイトを取得します
  • lowByte()ワード変数(2バイト)の下位(右端)バイトを取得します

割り込み

  • noInterrupts()割り込みを無効にします
  • interrupts()割り込みが無効にされた後、割り込みを再度有効にします
  • attachInterrupt()デジタル入力ピンを割り込みにすることができます。ボードが異なれば、許可されるピンも異なります。公式ドキュメントを確認してください
  • detachInterrupt()を使用して有効にした割り込みを無効にしますattachInterrupt()

その他の電子機器チュートリアル: