ロボット技術

ArduinoでLEDをチカチカと点滅させよう! Arduinoプログラムの第1歩

本記事で学べること
  • Arduinoによる電子工作の基本のキ
  • LED(発光ダイオード)の点滅方法
  • タイマー(内部カウント)の使い方

 

Arduinoを使った電子工作では、色々なものが作れます。

しかし、いきなり複雑なモノを作ろうとすると挫折もしやすいです。

そこで、Arduinoによる電子工作のはじめの一歩として、LEDを点滅させるというとってもシンプルなシステムがあります。

通称Lチカです。

 

今回の記事では、Arduinoを使ったLED(発光ダイオード)が点滅するシステムを紹介します。

 

 

LED点滅システムの構成

今回は、一定時間ごとに発光ダイオード(LED)がONとOFFを繰り返して点滅するシステムを作成します。

 

システムの構成図は下図のようになります。

 

まず、システムの入力として、Arduino内のタイマーを使用します。

タイマーは、LEDのONとOFFを切り替える時間を計測します。

 

そして、タイマーからの情報をもとに、ArduinoプログラムでLEDに送る信号(電圧)を作成します。

 

最後に、Arduinoから出力された信号がLEDに送られることで、LEDが点滅します。

 

このシステムを実現するため、次に電子回路とプログラムを作成します。

 

 

使用するArduinoとLチカ用電子回路

今回の記事では、下リンクのようなArduino Unoを用いたシステムを作成します。

 

Arduino Unoを持っていない方のため、おすすめのArduino Unoセットのリンク(Amazon)も貼っておきます。

ELEGOO Arduino UNO R3 スターターキット

このArduinoセットは、メインのArduino Uno基板の他に色々なセンサ等がセットになっています。

そのため、電子工作を始める方におすすめです。

 

もちろん他の種類のArduinoでも大丈夫です。

 

今回の記事では、システム入力に使用するタイマーとして、Arduino内に用意されている関数を使用します。

そのため、外付けで何かを付ける必要はありません。

 

また、出力のLEDについてもArduino基盤上に最初から用意されているLEDを使います。

なので、今回の記事で紹介するLEDを点滅させるシステムを実現するためには、Arduino本体基盤があれば良いです。

もちろん外付けのLEDを使っても、本記事で紹介する考え方でLチカは出来ます。

 

 

LEDを点滅させるプログラム

Lチカ用プログラムは、以前の記事で紹介したArduinoプログラムの基本構造を意識して作成していきます。

const int LED_PIN = 13;

void setup() {
  // put your setup code here, to run once:
  pinMode(LED_PIN, OUTPUT);
}

void loop() {
  // put your main code here, to run repeatedly:
  digitalWrite(LED_PIN, HIGH);
  delay(500);
  digitalWrite(LED_PIN, LOW);
  delay(500);
}

 

以下に、各構造(変数宣言、初期設定、メイン)について説明します。

 

変数の宣言

const int LED_PIN = 13;

まず変数宣言の部分で、出力するArduinoのピン番号を設定します。

今回は、Arduino基板上に設置されているLEDを使うために、ピン番号を13と宣言します。

 

setup関数で初期設定

void setup() {
  // put your setup code here, to run once:
  pinMode(LED_PIN, OUTPUT);
}

次に、setup関数で初期条件を設定します。

今回は、ピン13番を出力として使うために、pinMode関数を使って宣言をします。

 

pinMode関数を使うことで、指定のピンについて入力か出力に設定することが出来ます。

今回は、LED_PINと定義されている13番ピンを、出力(OUTPUT)として設定しています。

 

loop関数でメイン処理

void loop() {
  // put your main code here, to run repeatedly:
  digitalWrite(LED_PIN, HIGH);
  delay(500);
  digitalWrite(LED_PIN, LOW);
  delay(500);
}

そして、メインとなるloop関数を作成します。

loop関数内では、一定時間ごとにLEDのONとOFFを繰り返す信号を出力します。

 

まず、digitalWrite関数を使ってLED_PIN(ピン13番)をHIGHにしてLEDをONにします。

このLEDがONの状態を一定時間保持するために、wait関数を使用します。

wait関数は引数として入力した数字×ミリ秒(1000分の1秒)の間、次の処理の実行を待ちます。

今回は500としたので500ミリ秒(0.5秒)としました。

 

設定した時間が経過した後、digitalWrite関数を使ってLOWにしてLEDをOFFにします。

そして、また一定時間(0.5秒)を待つためにwait関数を用います。

 

loop関数では、この4行の命令文を繰り返します。

 

この4行のプログラムを繰り返すと

LEDがON → 待つ → LEDがOFF → 待つ → LEDがON → …

となることで、LEDを1秒周期で点滅させることが出来ます。

 

 

まとめ

今回の記事では、Arduinoを使ってLED(発光ダイオード)を点滅させるシステムの作り方を紹介しました。

 

紹介したようにLEDの点滅はとてもシンプルです。

しかし、入力や出力の考え方をしっかり理解すれば、同様の考え方で他にも色々なものが作れます。

 

 

あわせて読みたい

Arduinoでイルミネーションを作ろう!複数の外付けLEDを制御する クリスマスの時期にツリーを彩るイルミネーションはとてもキレイです。 ArduinoとLED(発光ダイオード)を使う...
ArduinoでLEDの明るさを調整しよう!PWM制御でアナログ電圧を出力する HIGH(5V)とLOW(0V)のみのデジタル電圧信号とは異なり、アナログ電圧信号では中間の電圧を取り扱うことが出来ます。 ...

COMMENT

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です