④Arduinoで楽しもう!
■本記事の内容 (この記事は15分で読めます)
Arduino投稿記事は、他のシリーズもマガジンで整理して、読み返したい時に見つけやすく、見て頂いた方に便利なものにしていきたいと考えております。
9.スケッチ(プログラム)とはどういったものか
広義的な意味で「スケッチ」はArduinoにおけるプログラムのことです。
そのプログラムで書いたことしかコンピューターはやってくれません。
さらに指示した内容に間違いがあるとやってくれません。
(コンパイルでエラーが出ます)
一言一句正しくないとやってくれません。。。
裏を返すと、
プログラムは命令きちんと従って動いてくれるとても素直な子です。
言語でも、僕らが使う自然言語とは違い 命令形しかありません。
いわゆる 何々しなさい!って感じです。
その命令(~しなさい!)を具体的に組み合わせることで構成されます。
その命令形にも、大きく構成は『3種類』あります
『順次処理』・『反復処理』・『分岐処理』の3種類です
『順次処理』は
① 入力端子から数値を入力しろ! ⇒ ② 入力した値に この数値をかけろ! ⇒ ③ 計算結果を出力しろ!
・・・命令を順々に処理していく処理を言います
さらに 順次処理は、”入力処理”・”出力処理”・”演算処理” の3つにわけられます
『反復処理』は、同じ処理を 例えば100回必要なときに、100回もスケッチ記述するのを省いてくれます
●for文 ●while文 ●do~while文 などが代表例です。
『分岐処理』は、上記処理を 場合分け(条件によって処理)してくれます。
例えば 入力して電圧が一定以上(閾値はスケッチに数値記載)だったら、Highで、これ以下ならLowといったぐあいに。
自然言語にすると、「Aだった場合は、Bをする。そうじゃなかったら Cにする」ってイメージです
●if~else文 ●switch~case文 など。
人間の頭の中では、日常生活であたりまえのように毎日やってますよね!
そして、Arduinoボードにアップロードして実行するひとまとまりのコードを意味します。
ひとまとまりって表現しましたが、意味のあるかたまり といった表現でも良いかと思います。
処理をひとまとめにして、それぞれを一種の部品のようにすると頭がクリアになります。
意味のあるかたまりは、1回記述しておけば、ライブラリに保存し何度も再利用することができます。
まとめると
「構造化プログラミング(構造化思考)」・・・全体像を見極め、構成要素を整理する ことが非常に重要になってきます。
10.具体例でスケッチを深堀り
前回記事でも何度か、例で取り上げてた
LEDチカチカ(Lチカ)を具体例にとります!
「ファイル」->「スケッチ例」->「01.Basics」->「Blink」
「Blink」のサンプルスケッチは以下となります。
void setup() {
pinMode(LED_BUILTIN, OUTPUT);
}
void loop() {
digitalWrite(LED_BUILTIN, HIGH);
delay(1000);
digitalWrite(LED_BUILTIN, LOW);
delay(1000);
}
この具体例でわかるのが、「setup」と「loop」という2つの関数が出てきてますね。電源が投入されると1回だけsetupが実行され、その後loopが延々と繰り返されます!
『setup関数』のところは 入出力ピンなどの初期設定
『loop関数』のところは メインとなる処理
通常頭を悩ますのは、このloop関数のところです(笑)
また、この2つの関数に続いて、中括弧で囲んだ内部にそれぞれで行う処理の中身記載します。
結果的に、
LED点灯→1000ミリ秒待つ→LED消灯→1000ミリ秒待つ→LED点灯→1000ミリ秒待つ→LED消灯→1000ミリ秒待つ→LED点灯→…
という動作を繰り返します。
ということで今回の記事はここまでになります。
ここまで読んでいただき、ありがとうございます。
☛最後に下図の書籍はお薦めとなります!
よろしければサポートお願いします!!