Python/Arduino学習記録,備忘録

コツコツ学んだ学習記録と備忘録。現在Python,Arduino勉強中。

【Arduino#2】void setup()とvoid loop()

前回【Arduino#1】Introduction - Python初心者のやってみた集,兼備忘録において,Blinkというスケッチを用いた。今回はスケッチの書き方について,Blinkを例にまとめる。

1. void setup()とvoid loop()

スケッチはvoid setup()void loop()で構成されている。書き方はC言語/C++を参考にすればよい。

大まかには,

  • void setup():スケッチが実行された時に1度だけ実行される指令を書く
  • void loop() :繰り返し実行される指令を書く

という違いがある。
上記を踏まえてBlinkのスケッチを見てみよう。

2. Blinkスケッチ

Arduino - Blinkに公開されているBlinkについてみる。
以下が,そのスケッチ(一部抜粋)である。

void setup() {
  // initialize digital pin LED_BUILTIN as an output.
  pinMode(LED_BUILTIN, OUTPUT);
}

void loop() {
  digitalWrite(LED_BUILTIN, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(1000);                       // wait for a second
  digitalWrite(LED_BUILTIN, LOW);    // turn the LED off by making the voltage LOW
  delay(1000);                       // wait for a second
}

上記では,

  • void setup()での指令を「13番pinを出力pinと設定」
  • void loop()での指令を「デジタルの13番pinにHIGHを出力(13番pinを5Vとする)」→「1000ms (1s)待つ」→「デジタルの13番pinにLOWを出力(13番pinを0Vとする)」→「1000ms (1s)待つ」→…(繰り返し)

とするスケッチになっている。

ここで,各々の関数についてまとめる。基本的にはArduino Referenceで説明されている。

pinMode(LED_BUILTIN, OUTPUT);
//pinMode(pin番号, OUTPUT / INPUT / INPUT_PULLUP);
//戻り値:なし

pinの動作を入力(INPUT, INPUT_PULLUP)か出力(OUTPUT)に設定する関数
ここで,LED_BUILTINはArduino言語の特殊な定数である(参考:Arduino Reference)。
ほとんどのボードでは13番pinを指定していると考えてよいみたいだ。
また,入力には2種類あるが,慣れるまではINPUTを用いる予定。
INPUT:普通の入力
INPUT_PULLUP:マイコン内部のプルアップ抵抗を利用する(回路簡素化できる)

digitalWrite(LED_BUILTIN, HIGH);
digitalWrite(LED_BUILTIN, LOW);
//digitalWrite(pin番号, HIGH / LOW);
//戻り値:なし

指定したpinにHIGHかLOWを設定する関数
基本的には,HIGH=5V,LOW=0Vだが,3.3VのボードではHIGH=3.3Vと設定される。

 delay(1000);
//delay(時間[単位はms]);
//戻り値:なし

指定した時間だけプログラムを止める関数
ここで,設定する時間はunsigned long型である。