【Arduino】タイマー割り込み処理でLED点滅

スポンサーリンク

この記事では、Arduinoのタイマー割り込み機能(TIMER2)を利用してLED点滅を点滅させる方法について紹介します。(ソースコード付き)

スポンサーリンク

割り込み処理

割り込み処理とは、通常のプログラムの実行を強制的に中断し,別のプログラム処理を割り込ませる処理です。
割り込み処理の終了後は、また元のプログラムを続行します。

Arduinoの割り込み処理

Arduinoでは、loop関数を処理中にTIMER2割込みが入ると、loop( )を一時中断し、割り込み関数を処理して再びloop( )を再開します。
《タイマー割込みを利用する為のスケッチをダウンロード》

Arduinoで割り込み処理を実装

①下記サイトから、「MsTimer2.zip」ファイルをダウンロードします。
http://playground.arduino.cc/Main/MsTimer2

②「MsTimer2.zip」ファイルをを解凍します。
ArduinoIDEがインストールされているフォルダにあるlibrariesフォルダ内に解凍したフォルダ「MsTimer2」をコピーします。
(デフォルトはC:\Program Files\arduino-○○○\libraries)

③ArduinoをパソコンとUSBケーブルで接続し、Arduino IDEを起動します。

③上部メニューバーから「ファイル」→「スケッチの例」→「MsTimer2」→「FlashLed」を選択します。

④サンプルプログラムが表示されます。「検証」ボタン→「マイコンボードに書き込む」ボタンをクリックしていき、Arduinoに書き込みします。

⑤書き込みが終われば、内蔵13番LEDが1秒毎に点滅します。

回路構成

ソースコード

サンプルプログラムのソースコードは下記の通りです。

このサンプルでは、500ms毎に割り込み処理(flash関数)を呼び出しています。
flash関数では、LEDをON/OFFしているだけです。
尚、MsTimer2::stop( ) でタイマー割り込みを停止させることができます。

スポンサーリンク

シェア&フォローお願いします!