IoT のための電子工作入門

ホーム > ArduinoArduino > Arduino 上の LED を点滅させる

Arduino 上の LED を点滅させる

ここでは Arduino の最初のプロジェクトとして、Arduino Uno 上の LED を点滅させてみましょう。

ボード上の LED 点滅は、 「Arduino プログラミングの Hello world」とも言うべき基本的なものです。

Arduino では、 Arduino ボード上にアップロードされて実行されるプログラムの単位をスケッチ (Sketch) といいます。

ここでは Arduino Software (IDE) の利用方法及びスケッチのアップロード方法について、具体的に説明します。

LED の点滅 ~ Arduino の Hello world

今回は開発環境として Linux (Ubuntu) を利用しています。 デスクトップ上のアイコンをダブルクリックすると Arduino Software を起動します。

次のように空のスケッチのテンプレートがロードされた状態でエディタが開きます。

setup() という名前の関数と loop() という名前の関数があります。

setup() 関数はスケッチの実行開始時、すなわち、電源を入れた直後、またはボードをリセットした後に一度だけ呼ばれます。変数の初期化や、ピンモードの設定、ライブラリの初期化などを行うのに適しています。

loop() 関数は setup() が呼ばれた後に、繰り返し呼び出されます。

Wiring と Processing

ちなみに Arduino Software (IDE) と言われていますが、実際のところ Wiring (ワイアリング) という電子工学向けの プロトタイプ開発用プラットフォームが元になっています。これは C/C++ 言語で記述された各種ライブラリが集められていて、 それらを単純なルールで C 言語から利用できる仕組みです。(setup 関数や loop 関数という仕組みもその一環です)

そしてさらに Wiring というプロジェクト自体が、もともと Processing 言語の環境から派生しています。 スケッチという考え方は Processing から来てます。

スケッチの作成と動作確認

さて先にスケッチを保存してしまいましょう。File メニューから Save を選択します。

今回は ~/arduino/projects の下に、blink1 という名前で保存します。

すると次のように blink1 という名前のディレクトリが作成され、その中にスケッチが保存されます。

ちなみにスケッチファイルの拡張子は .ino です。Ardu"ino" の ino です。

次のコードを記述します。

const int LED_PIN = 13;

void setup() {
  pinMode( LED_PIN, OUTPUT );
}

void loop() {
  digitalWrite( LED_PIN, HIGH );
  delay( 1000 );
  digitalWrite( LED_PIN, LOW );
  delay( 1000 );
}

さて、話は戻って上記コードを書いて、画面上部左端のチェックマークが書いてある Verify ボタンを押すと、 問題がなければ次のようにコンパイルが正しく行われます。

スケッチのアップロード

スケッチができたら、Arduino ボードにアップロードしましょう。

ここでは Arduino Uno を使います。

IDE の Tool メニューでボードを選択します。

さらに IDE の Tool メニューでポートを選択します。

Ubuntu ではシリアルポートへの読書きのパーミッションを与えるために、次のようにグループ名をみつけてそれにユーザーを追加します。ここでは dialout がグループ名です。

$ ls -l /dev/ttyACM*
$ sudo adduser $USER dialout

ツールバー内の 右向き矢印ボタンが Upload ボタンです。これを押すとアップロードが実行されます。

次のようにボード内の LED が点滅すれば成功です。

尚、一般的な Arduino ボードではあらかじめ LED が点滅するようになっているので、このスケッチをアップロードしただけでは、 スケッチの内容が実現されてるかどうか分かりにくいかもしれません。

delay の時間を変更することによって、点滅のスピードを変更することができますので試してみるとスケッチ通りに動いていることが分かると思います。

ホーム > ArduinoArduino > Arduino 上の LED を点滅させる