Led関数

このページをスマホなどでご覧になる場合は、画面を横長にする方が読みやすくなります。

書式

int8_t Led(uint8_t LedNo, uint8_t state=MGLCD_LED_OFF)

対応オブジェクト型

対応バージョン

Ver. 0.22以降

説明

LEDの点灯モードの設定、LED点灯モードの取得、またはLEDの個数の取得を行う。

LEDの点灯モードには次の3種類ある。

点灯モード 意味
MGLCD_LED_OFF LEDが消灯する
MGLCD_LED_ON LEDが点灯する
MGLCD_LED_BLINK LEDが点滅する

LEDの点灯モードを設定するには、第1引数(LedNo)にLEDの番号(1~LEDの個数-1)、第2引数(state)に点灯モードを指定する。第2引数には上の表で説明した定数以外にもMGLCD_LED_TOGGLEを設定する事ができ、その場合、LEDの点灯モードが反転する(元々MGLCD_LED_OFFだった場合はMGLCD_LED_ONになり、元々MGLCD_LED_ONだった場合はMGLCD_LED_OFFになる)

LEDの点灯モードを取得するには、第1引数(LedNo)にLEDの番号(1~LEDの個数-1)、第2引数(state)にMGLCD_GET_LED_STATEを指定する。この場合、第1引数で指定されたLEDの、点灯モードが返り値となる。

LEDの個数を取得するには、第1引数(LedNo)にMGLCD_GET_LED_NUMを指定し、第2引数(state)を省略する。この場合、LEDの個数が返り値となる。

Led関数の具体的な使用の仕方については、後述の使用例を参考にすること。

引数

返り値

LEDの点灯モードを設定する場合は、設定後の点灯モード(MGLCD_LED_OFF、 MGLCD_LED_ON、MGLCD_LED_BLINKのいずれか)を返す。

LEDの点灯モードを取得する場合は、点灯モード(MGLCD_LED_OFF、 MGLCD_LED_ON、MGLCD_LED_BLINKのいずれか)を返す。

LEDの個数を取得する場合は、LEDの個数を返す。

引数が不正な数であったり、あるいはシリアル回線においてエラーが発生した場合には、負の値を返す。

使用例

// 122X32モノクログラフィックLCDシールド等を使って、シールド上のLEDを制御するスケッチ
#include <MGLCD.h>

MGLCD_serial MGLCD(&Serial,500000); // Serialを500kbpsで使用
// Arduino Uno、Arduino Mega 2560などの場合は、上の行を変更せずに使用する。
// Arduino Leonardoの場合は、&Serialを&Serial1に書き換える。

// Led関数からの返り値を解析して表示する関数
void PrintResult(const int result)
{
  if(result==MGLCD_LED_OFF) {
    MGLCD.println("MGLCD_LED_OFF");
  } else if(result==MGLCD_LED_ON) {
    MGLCD.println("MGLCD_LED_ON");
  } else if(result==MGLCD_LED_BLINK) {
    MGLCD.println("MGLCD_LED_BLINK");
  } else if(result==MGLCD_LED_TOGGLE) { // 実際にはMGLCD_LED_TOGGLEが返り値になる事はないはずだが、念のため
    MGLCD.println("MGLCD_LED_TOGGLE");
  } else if(result<0) {
    MGLCD.println("エラー ハッセイ");
  } else {
    MGLCD.println("ヨキセヌ カエリチ");    
  } // if
} // PrintResult

void setup()
{
  while(MGLCD.Reset()); // LCDの初期化
  MGLCD.SetCodeMode(MGLCD_CODE_UTF8); // 文字コードをUTF8にして、カタカナをそのまま表示できるようにする。
} // setup

void loop()
{
  int result; // Led関数からの返り値
  
  MGLCD.Led(0,MGLCD_LED_OFF); // 0番目のLEDを消灯

  MGLCD.ClearScreen(); // 画面の消去
  delay(200); // 0.2秒停止
  MGLCD.println("LED ノ カズヲ シュトク");
  result=MGLCD.Led(MGLCD_GET_LED_NUM); // 制御可能なLEDの数を取得
  MGLCD.println(result); // 返り値の表示
  result=MGLCD.Led(0,MGLCD_GET_LED_STATE); // 0番目のLEDの点灯状態を取得
  PrintResult(result); // 返り値の表示
  delay(5000); // 5秒停止

  MGLCD.ClearScreen(); // 画面の消去
  delay(200); // 0.2秒停止
  MGLCD.println("LED ヲ テントウ");
  result=MGLCD.Led(0,MGLCD_LED_ON); // 0番目のLEDを点灯
  PrintResult(result); // 返り値の表示
  result=MGLCD.Led(0,MGLCD_GET_LED_STATE); // 0番目のLEDの点灯状態を取得
  PrintResult(result); // 返り値の表示
  delay(5000); // 5秒停止

  MGLCD.ClearScreen(); // 画面の消去
  delay(200); // 0.2秒停止
  MGLCD.println("LED ヲ ショウトウ");
  result=MGLCD.Led(0,MGLCD_LED_OFF); // 0番目のLEDを消灯
  PrintResult(result); // 返り値の表示
  result=MGLCD.Led(0,MGLCD_GET_LED_STATE); // 0番目のLEDの点灯状態を取得
  PrintResult(result); // 返り値の表示
  delay(5000); // 5秒停止

  MGLCD.ClearScreen(); // 画面の消去
  delay(200); // 0.2秒停止
  MGLCD.println("LED ヲ テンメツ");
  result=MGLCD.Led(0,MGLCD_LED_BLINK); // 0番目のLEDを点滅
  PrintResult(result); // 返り値の表示
  result=MGLCD.Led(0,MGLCD_GET_LED_STATE); // 0番目のLEDの点灯状態を取得
  PrintResult(result); // 返り値の表示
  delay(5000); // 5秒停止

  MGLCD.ClearScreen(); // 画面の消去
  delay(200); // 0.2秒停止
  MGLCD.println("LED ノ ジョウタイ ノ ハンテン");
  result=MGLCD.Led(0,MGLCD_LED_TOGGLE); // 0番目のLEDの状態を反転(元々MGLCD_LED_BLINKだったので、エラー発生)
  PrintResult(result); // 返り値の表示
  result=MGLCD.Led(0,MGLCD_GET_LED_STATE); // 0番目のLEDの点灯状態を取得
  PrintResult(result); // 返り値の表示
  delay(5000); // 5秒停止

  MGLCD.ClearScreen(); // 画面の消去
  delay(200); // 0.2秒停止
  MGLCD.println("LED ヲ ショウトウ");
  result=MGLCD.Led(0,MGLCD_LED_OFF); // 0番目のLEDを消灯
  PrintResult(result); // 返り値の表示
  result=MGLCD.Led(0,MGLCD_GET_LED_STATE); // 0番目のLEDの点灯状態を取得
  PrintResult(result); // 返り値の表示
  delay(5000); // 5秒停止

  MGLCD.ClearScreen(); // 画面の消去
  delay(200); // 0.2秒停止
  MGLCD.println("LED ノ ジョウタイ ノ ハンテン");
  result=MGLCD.Led(0,MGLCD_LED_TOGGLE); // 0番目のLEDの状態を反転(元々MGLCD_LED_OFFだったので、LED点灯)
  PrintResult(result); // 返り値の表示
  result=MGLCD.Led(0,MGLCD_GET_LED_STATE); // 0番目のLEDの点灯状態を取得
  PrintResult(result); // 返り値の表示
  delay(5000); // 5秒停止

  MGLCD.ClearScreen(); // 画面の消去
  delay(200); // 0.2秒停止
  MGLCD.println("LED ノ ジョウタイ ノ ハンテン");
  result=MGLCD.Led(0,MGLCD_LED_TOGGLE); // 0番目のLEDの状態を反転(元々MGLCD_LED_Oだったので、LED消灯)
  PrintResult(result); // 返り値の表示
  result=MGLCD.Led(0,MGLCD_GET_LED_STATE); // 0番目のLEDの点灯状態を取得
  PrintResult(result); // 返り値の表示
  delay(5000); // 5秒停止
} // loop

写真1、実行画面1
写真1、実行画面1
写真2、実行画面2
写真2、実行画面2
写真3、実行画面3
写真3、実行画面3
写真4、実行画面4
写真4、実行画面4
写真5、実行画面5
写真5、実行画面5
写真6、実行画面6
写真6、実行画面6
写真7、実行画面7
写真7、実行画面7
写真8、実行画面8
写真8、実行画面8

関連ページ

Arduino 電子工作
このサイトの記事が本になりました。
書名:Arduino 電子工作
ISBN:978-4-7775-1941-5
工学社の書籍の内容の紹介ページ
本のカバーの写真か書名をクリックすると、Amazonの書籍購入ページに移動します。