You are here

CL0802-STATION

CL0802-STATIONの概要

CL0802-STATION は基本的で利用範囲の広い8文字X2行の文字液晶ディスプレイを装備し、I2CでArduinoやPICに接続できる文字表示拡張ボードキットです。
CL0802-STATION はArduino の入門者にはもちろん、Arduino の基本機能を一通り習得し、応用に取り組みたい人が手元に置いておくと重宝する文字液晶拡張ボードです。

5Vと3.3Vの両方に対応しているので、以下のような多彩なMCUで利用できます。


  • 5Vと3.3VのArduinoボード
  • 5Vと3.3VのPIC16/18/24/32
  • ESP-WROOM-02/32

CL0802-STATIONの組み立て例

CL0802-STATION の特徴を以下に示します。


  • コンパクトな基板上に基本的な入出力装置を搭載しています。
  • 文字液晶ディスプレイ、タクトスイッチ、LEDのすべてを2本のI2Cインターフェースのみで制御できます。
  • 液晶ディスプレイは8文字X2行の文字表示が可能です。
  • 6個のタクトスイッチを搭載しています。
  • 2個のLEDを搭載しています。
  • 電源電圧は5V~3.3Vに対応しており、Arduino UNO/MEGAだけでなく、Arduino M0, ESP-WROOM-02, ESP-WROOM-32などでも利用できます。
  • 電子工作で広く利用されているArduinoの拡張ボードとして開発されており、LiquidCrystalに準じたライブラリで手軽に独自のスケッチを行えます。

ネットショップ:


CL0802-STATIONの利用法

CL0802-STATIONの組み立て例

接続端子:


  1. GND
  2. 5V(信号電圧が3.3Vの場合には、3.3V)
  3. SDA
  4. SCL
  5. NC: 無接続

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の内蔵プルアップ機能を利用するため、キットにはプルアップ抵抗は含まれていません。


開発ソフト: