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