Arduinoで遊ぶページ

Arduinoで遊んだ結果を残すページです。
garretlab
サンプルプログラム解説

概要

LEDの点灯・消灯する関数を定期的に実行させ、LEDの明るさを変化させます。

プログラム

定義等

#include <Arduino.h>
#include <Ticker.h>

// attach a LED to GPIO 21
#define LED_PIN 21

Ticker tickerSetHigh;
Ticker tickerSetLow;

LEDを接続するピン番号をLED_PINとして定義します。

tikerSetHighとtickerSetLowは、それぞれ、Ticker型の変数で、定期的に実行する関数の設定を行うためのものです。

setPin()

void setPin(int state) {
  digitalWrite(LED_PIN, state);
}

digitalWrite()を利用して、LED_PINに接続したLEDを点灯(stateがHIGH)、消灯(stateがLOW)します。

setup()

void setup() {
  pinMode(LED_PIN, OUTPUT);
  digitalWrite(1, LOW);

  // every 25 ms, call setPin(0)
  tickerSetLow.attach_ms(25, setPin, 0);

  // every 26 ms, call setPin(1)
  tickerSetHigh.attach_ms(26, setPin, 1);
}

pinMode()を使って、LED_PINを出力モードに設定します。次に、digitalWrite()で、1番ピンをLOWにします。ただ、なぜ1番ピンをLOWにするかはよくわかりません。LED_PINの気もしますが…

19行目のattach_ms()で、25ミリ秒ごとに、setPin()を呼び出すように設定します。このとき、setPin()に対して、attach_ms()の第3引数の0を渡します。0を渡すので、LEDを消灯します。

22行目のattach_ms()は、26ミリ秒ごとに、setPin()を呼び出します。こちらは、setPin()への引数は1なので、LEDを点灯させます。

25ミリ秒ごとに消灯、26ミリ秒ごとに点灯するので、650ミリ秒周期で明るさが変化します。

loop()

void loop() {

}

何もしません。

バージョン

1.0.0



メニューを表示するためにJavaScriptを有効にしてください。

Arduinoで遊ぶページ
Copyright © 2018 garretlab all rights reserved.
inserted by FC2 system