スケッチがどのように動作し、Arduinoにアップロードされるのか理解します。
LAST REVISION: 2022/08/19 17:23
Arduinoを始めるためのガイド(Windows 、MacOS、Linux)では、LEDを点滅させるスケッチをアップロードしました。子のチュートリアルでは、スケッチの各部がどのように動作するかを学びます。
Arduinoで使うプログラムをスケッチと呼びます。Arduinoにアップロードし、実行するコードの単位です。
コメント
Blinkの最初の数行はコメントです。
|
|
スケッチを実行するとき、/*
と*/
の間にあるものはArduinoによってすべて無視されます。各行の先頭にある*
はコメントをきれいに見せるためのもので、必要ではありません。人間がコードを読むためのもので、プログラムが何をするのかや、どのように動作するのか、なぜそのように書いたのかなどを説明します。スケッチにコメントを書き、コードを修正したときに更新することは、いいことです。他の人がコードから学んだりコードを修正するときに役に立ちます。
短い一行コメントという別のスタイルのものもあります。これは//
で始まり、行末までがコメントです。例えば、以下の行では、
|
|
“LED connected to digital pin 13"というメッセージがコメントです。
変数
変数はデータを格納するための場所です。名前と型、値を持ちます。例えば、上記のBlinkのスケッチでは、ledPin
という名前で、int
型、初期値が13の変数を宣言しています。ArduinoのどのピンがLEDに接続しているのかを示すために使われています。コードでledPin
という現れるたびに、その値が取得されます。この場合、プログラムを書く人はledPin
という変数を作成せずにピン番号を指定する全ての場所で13と書くこともできました。変数を利用する利点は、LEDを他のピンに接続することが簡単になることです。変数の初期値を設定する1行だけを編集するだけで済みます。
しかし、変数の値がスケッチの動作中に変化することはよくあります。例えば、入力から読み取った値を変数に格納することができます。スケッチで変数を利用するにより多くの情報があります。
関数
関数(プロシージャやサブルーチンとも呼ばれます)は、スケッチのどこからでも利用できる、名前を持つコードの集まりです。例えば、Blinkの例にあるsetup()
関数の定義を以下に示します。
|
|
1行目は、“setup"というような名前等の関数に関する情報を提供します。名前の前後の文字列は戻り値の型とパラメータを示します。これらについては後で説明します。{
と}
の間のコードは関数のボディと呼ばれます。関数が何をするのかを表します。
既に定義されている関数(スケッチ内やArduino言語)を呼び出すことができます。例えば、pinMode(ledPin, OUTPUT);
は、ledPin
とOUTPUT
という二つのパラメータを渡し、pinMode()
という関数を呼び出します。これらのパラメータは、どのピンをどのモードに設定するのかを決定するために、pinMode()
関数で利用されます。
pinMode()、digitalWrite()、digitalRead()
pinMode()
関数はピンを入力か出力に設定します。利用するには、設定するピンの番号と定数のINPUTもしくはOUTPUTを渡します。入力として設定した場合、ピンは押しボタンのようなセンサーの状態を検出することができます。これは、digitalRead Serial Tutorialで説明されています。出力のときは、LEDのようなアクチュエータを制御することができます。
digitalWrite()
関数はピンに値を出力します。例えば、以下の行は、
|
|
ledPin
(13番ピン)をHIGHもしくは5Vを出力します。LOWを書くと、ピンを接地もしくは0Vにします。
delay()
は次の行に進む前に、指定した値(ミリ秒)だけArduinoを待たせます。1秒は1000ミリ秒なので、以下の行は、
|
|
1秒間の遅延を起こします。
setup()とloop()
全てのArduinoのスケッチには、setup()
とloop()
という二つの特別な関数がそんざいします。setup()
はスケッチが開始したときに一度だけ呼ばれます。ピンのモードの設定やライブラリの初期化を行うのに適した場所です。loop()
はスケッチの心臓部で、繰り返し呼ばれます。それぞれの関数で何もしない場合でも、スケッチには両方の関数を含める必要があります。
演習
- LEDが100ミリ秒点灯、1000ミリ秒消灯するようにコードを修正しなさい。
- スケッチが開始したときにLEDが点灯し、その後点灯したままになるようにコードを修正しなさい。
参照
オリジナルのページ
https://docs.arduino.cc/learn/programming/sketches
最終更新日
October 23, 2022