0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

ArduinoのBlinkスケッチを書く

0
Last updated at Posted at 2017-06-13

ArduinoにおけるHelloWorld的な存在である、LEDが点滅するプログラム(スケッチ)を設計した上で書いてみる。

リポジトリ:demo-blink https://github.com/pixtc/demo-blink

回路

電源(5V)→ 抵抗(270Ω)→ ダイオード(赤色・1.8V:12mA)→ 13番ピン

の順に接続する。

プログラム

定数を定義(define.h)

プログラムの可読性を高めるため、定数を定義する。

# define LED 13  // LEDピン番号

# define LED_ON  HIGH  // LED点灯
# define LED_OFF LOW   // LED消灯

LEDについて用意する関数とグローバル変数

LEDについて、下の表に示される関数を定義する。

関数名 戻り値型 引数 説明
InitLed void void LEDを初期化する
TickLed void void LEDを駆動させる

また、下の表に示されるグローバル変数を定義する。

変数名 変数型 キーワード 説明
NowLed boolean static LEDの点灯・消灯の状態を格納する

LEDを初期化する(InitLed)

# include "define.h"

static boolean NowLed;  // LEDの点灯・消灯

/*
 * LEDを初期化する
 */
void InitLed(void){
  NowLed = LED_OFF;
  pinMode(LED, OUTPUT);        // デジタルピンを出力に設定する
  digitalWrite(LED, NowLed);  // LEDを消灯する
}

LEDを駆動させる(TickLed)

# include "define.h"

static boolean NowLed;  // LEDの点灯・消灯


/*
 * LEDを駆動させる
 */
void TickLed(void){

  // LEDが点灯中
  if(NowLed) {
    NowLed = LED_OFF;
  }
  
  // LEDが消灯中
  else {
    NowLed = LED_ON;
  }

  digitalWrite(LED, NowLed);  // LEDを点灯もしくは消灯する
}

メインのスケッチ

# include "define.h"

void setup(){
  InitLed();   // LEDを初期化する
}

void loop(){
  TickLed();   // LEDを駆動する
  delay(500);  // 500ms待機する
}

動作を確認

コンパイルして動作を確認すると、LEDが500msごとに点滅と消灯を繰り返す。

0
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?