CL0802-STATION は基本的で利用範囲の広い8文字X2行の文字液晶ディスプレイを装備し、I2CでArduinoやPICに接続できる文字表示拡張ボードキットです。
CL0802-STATION はArduino の入門者にはもちろん、Arduino の基本機能を一通り習得し、応用に取り組みたい人が手元に置いておくと重宝する文字液晶拡張ボードです。
5Vと3.3Vの両方に対応しているので、以下のような多彩なMCUで利用できます。
CL0802-STATIONの組み立て例
CL0802-STATION の特徴を以下に示します。
ネットショップ:
CL0802-STATIONの組み立て例
接続端子:
CL0802-STATIONの文字液晶ディスプレイの操作にはST7032ライブラリ、GPIO MCP23008の操作にはMCP23008ライブラリを使用します。
ライブラリに関しては以下のページを参照しダウンロードしてください。
ライブラリの利用例として、タクトスイッチを押すと、対応するLEDが点灯したり、文字液晶ディスプレイに対応する数値が表示されるスケッチを示します。
下記のスケッチは、Arduinoの多くのボードの他、ESP-WROOM-02/32上のArduinoスケッチでも稼働します。
#include <ST7032.h> #include <MCP23008.h> ST7032 lcd(PWR3V3) ; // LCDの稼働電圧は3.3V MCP23008 gpio(4) ; // I2Cアドレス0x24(4) #define LED1 6 #define LED2 7 void setup() { lcd.begin(16, 2); lcd.print("SW Test"); gpio.begin(MCP23008_CL0802) ; // CL0802_STATION用の初期化 } void loop() { uint8_t i ; char buff[] = " " ; // 文字LED用の8文字の空白文字列 // タクトスイッチ0,1の変化はLEDに gpio.digitalWrite(LED1, !gpio.digitalRead(0)); gpio.digitalWrite(LED2, !gpio.digitalRead(1)); // タクトスイッチ2-5の変化は文字液晶に for (i = 2; i < 6; i++) { buff[(i - 2) * 2] = gpio.digitalRead(i) ? '_' : '1' + i ; } lcd.setCursor(0, 1) ; lcd.print(buff) ; delay(100) ; }
上記のスケッチは、MCP23008ライブラリの、CL0802-STATIONに対応した初期化機能を利用した例です。
上記のスケッチと機能的には同等ですが、MCP23008を基本的なGPIOの操作機能で初期化した例を以下に示します。
#include <ST7032.h> #include <MCP23008.h> ST7032 lcd(PWR3V3) ; // LCDの稼働電圧は3.3V MCP23008 gpio(4) ; // I2Cアドレス0x24(4) #define LED1 6 #define LED2 7 // I/Oエクスパンダの初期化 void initSWandLED() { gpio.begin() ; // デフォルトの初期化 // タクトスイッチ端子をプルアップ付入力で初期化 for (uint8_t i = 0; i < 6; i++) gpio.pinMode(i, INPUT_PULLUP) ; // LED端子を出力で初期化し消灯 gpio.pinMode(LED1, OUTPUT) ; gpio.pinMode(LED2, OUTPUT) ; gpio.digitalWrite(LED1, LOW) ; gpio.digitalWrite(LED2, LOW ) ; } void setup() { lcd.begin(16, 2); lcd.print("SW Test"); initSWandLED() ; } void loop() { uint8_t i ; char buff[] = " " ; // 文字LED用の8文字の空白文字列 // タクトスイッチ0,1の変化はLEDに gpio.digitalWrite(LED1, !gpio.digitalRead(0)); gpio.digitalWrite(LED2, !gpio.digitalRead(1)); // タクトスイッチ2-5の変化は文字液晶に for (i = 2; i < 6; i++) { buff[(i - 2) * 2] = gpio.digitalRead(i) ? '_' : '1' + i ; } lcd.setCursor(0, 1) ; lcd.print(buff) ; delay(100) ; }
CL0802-STATIONの回路図を示します。
CL0802-STATIONの回路図
回路図ではタクトスイッチにプルアップ抵抗が配置されていますが、通常利用ではMCP23008の内蔵プルアップ機能を利用するため、キットにはプルアップ抵抗は含まれていません。