(引数なし)まとめ最後にスケッチ(コード、プログラム)の関数化についてArduinoはC/C++をベースにしています。そのため、スケッチ(コード、プログラム)を機能ごとに分割して特定の仕事をこなすモジュールを作成するといったことが簡単にできます。このモジュールの単位のことを関数(function)と呼びます。スケッチ(コード、プログラム)のなか、頻繁に行われる処理をモジュール化することで1つの関数としてまとめます。関数を呼び出す(コール)すると処理が実行され、処理が終了したらコールした位置へ戻ってきます。Arduinoに慣れてきて、スケッチ(コード、プログラム)が複雑に長くなってしまわないように関数化は必須な作業です。使えるようになりましょう。スケッチ(コード、プログラム)を関数化することのメリットメリットはいくつかありますが私が考える一番のメリットは、「デバックが容易」といったところでしょうか。一度、関数化してクローズさせてしまえば問題があったときにクローズしている中だけでデバックができるなどが可能です。その他にも関数化することでスケッチ(コード、プログラム)が見やすくなる。(※重要!)同じ処理を何度も書かずに済む。スケッチ(コード、プログラム)のサイズを小さくする。スケッチが小さくなるのでメモリの使用量が減る。メリットがたくさんあります。同じ作業の繰り返しに関しては関数化することをお勧めします。公式ホームページでは以下にて説明がなされています。objects....www.arduino.ccでは、さっそく関数化について解説していきます。関数化するには2つの手段があります。戻り値を返す関数というのは、関数が何かの作業をし、その作業結果を返すという処理のことです。関数に対して、作業をさせるために情報を渡す(引数と言う)場合もあります。実際の例で説明していきます。例1.2つの数字の足し算をする関数。yは関数に渡される引数となります。ここでは、int型の整数を2つ引数としています。内で囲まれた箇所が、func_add関数が処理する作業となります。yを実行してresultに格納。resultの結果を戻り値として返すということになります。実際のスケッチに組み込んだサンプルコードがこちら。シリアルモニタに計算結果を表示するサンプルスケッチです。result;}例2.2つの数字の足し算をする関数。result;}func_addが関数名、関数に渡す引数がない場合は()内になにも記載しなくてOK。内で囲まれた箇所が、func_add関数が処理する作業となります。yを実行してresultに格納。resultの結果を戻り値として返すということになります。実際のスケッチに組み込んだサンプルコードがこちら。シリアルモニタに計算結果を表示するサンプルスケッチです。戻り値を返さない関数というのは、関数に何かの作業だけをさせ、その作業結果をスケッチ内で特に利用しない場合に利用します。関数に対して、作業をさせるために情報を渡す(引数と言う)場合もあります。・・・){処理に必要なコードを記述;}void:戻り値がない場合はvoidとなります。実際の例で説明していきます。(引数あり)こんなんでも、関数にできちゃいますよという例です。xは関数に渡される引数となります。ここでは、int型の整数を1つ引数としています。内で囲まれた箇所が、func_led関数が処理する作業となります。xに定義されたデジタル入出力ピンをHIGH、LOWにすることでLEDをON、OFFしています。実際のスケッチに組み込んだサンプルコードがこちら。デジタル入出力、8、9番ピンに接続されたLEDをON、OFFするサンプルスケッチです。同じことを2回、記述しなくても良いことをわかりやすくしたサンプルです。(引数なし)例1を引数なしで記述してみました。delay(500);}func_ledが関数名、引数なしとなります。内で囲まれた箇所が、func_led関数が処理する作業となります。デジタル入出力の8番ピンをHIGH、LOWにすることでLEDをON、OFFしています。実際のスケッチに組み込んだサンプルコードがこちら。デジタル入出力の8番ピン接続されたLEDをON、OFFするサンプルスケッチです。同じLEDを3秒、5秒のインターバルを設けてON、OFFさせています。こちらも同じことを2回、記述しなくても良いことをわかりやすくしたサンプルです。スケッチ(コード、プログラム)の関数化」いかがだったでしょうか?Arduinoに色んなことをさせようと考えると、スケッチ(コード、プログラム)がどんどん複雑になっていきます。そんなときは、ぜひ関数化してわかりやすいスケッチを書くようにすると良いと思います。デバックが容易ですし、後で見てもわかりやすいです。次回の番外編も、スケッチについて何か情報を発信したいと考えています。最後に疑問点、質問などありましたら気軽にコメントください。この電子部品の解説をしてほしい!などなどなんでもOKです。リンク切れなどあればコメントいただけると助かります。Arduino入門編、番外編、お役立ち情報などなどサイトマップで記事一覧をぜひご確認ください。Arduino入門編で使用しているUNOはAmazonにて購入可能です。互換品とは言え、Arduinoはオープンソース。複製して販売するのもライセンス的に問題なし。そのため互換品の品質も悪くなく、それでいて値段は安いです。正規品本体の値段程度で豊富な部品が多数ついています。学習用、遊び用、お試し用には安価な互換品がおすすめです。Yahoo!上記のものでも十分に多数の部品が入っていますが、最初からもっと多数の部品が入っているこちらもお勧めです。番外編はarduinoの基本的なことを書いていく予定です。今回は、arduinoの「I2C通信」について解説していきます。【電源供給方法】Arduinoへの電源供給は一般的に、USBと外部電源の2通りの給電方式があります。本記事では、Arduinoの給電方式について解説しています。番外編はarduino自身の基本的な内容を記事にする予定です。今回は、arduinoの「UART通信」について解説していきます。fritzingUNOの実際の回路を写真で掲載しても、接続がわかりずらいかなと考えていました。前々から「fritzing」を利用して回路を描くことで、わかりやすくしたいと考えていました。変数のスコープ(ローカル変数、グローバル変数)今回は、重要なことなんだけと初心者、入門レベルではあまり意識していない?「変数のスコープ(ローカル変数、グローバル変数)」について解説します。EEPROM)本日は、Arduinoのメモリについて。Arduinoに複雑なことをさせようとすると、スケッチが巨大化していきます。メモリ不足といった事態に陥ります。入門編程度のスケッチで遊んでいる分にはメモリ不足になるということはないでしょう。コメントをキャンセルメールアドレスが公開されることはありません。