SUPPORT
h_top1.jpg

CU-Uシリーズ(キャラクタLCD互換 I/F対応モジュール)に表示させる

CU-Uシリーズ(キャラクタLCD互換 I/F対応モジュール)に表示させる

 今回は、文字表示型表示管モジュールを4ビットパラレル接続でつないでみました。基板はグラフィックLCD互換I/Fで作ったものを流用しています。
 
 電源はArduinoの5Vより供給できます。

使用部品
  • 蛍光表示管モジュール
    CU24025-UW1J
    キャラクタタイプLCDモジュールのコンパチブルモデル、4ビットパラレル接続。
  • Arduino本体
    Arduino Uno R3
    Arduino本体で、もっとも販売数が多いそうです。
  • その他
    ピンヘッダ・ソケット、半田・配線材料 等
    適切なものをご用意ください。
回路図
lcd_char_kairozu.gif
サンプルスケッチ(サンプルプログラム)

「スケッチ」とは、本開発環境でのプログラムを指します。下記はVFDモジュールを表示させるためのサンプルスケッチです。

 スケッチのダウンロードはこちら


/*
** VFDシールド プログラム
**
** ノリタケ伊勢電子製 CU-Uを4ビットパラレルで
** つないでみました。
**
**
*/

// ピン配置

int vfd_RS = 7; // VFDコネクタ 4番ピン
int vfd_E = 6; // VFDコネクタ 6番ピン
int vfd_D7 = 5; // VFDコネクタ 14番ピン
int vfd_D6 = 4; // VFDコネクタ 13番ピン
int vfd_D5 = 3; // VFDコネクタ 12番ピン
int vfd_D4 = 2; // VFDコネクタ 11番ピン

// 作成した関数のプロトタイプ
void vfd_command(unsigned char onebyte);
void vfd_write(unsigned char message[],int L);
void vfd_put(unsigned char onebyte);

// the setup routine runs once when you press reset:
// リセット後に1回だけ実行されるプログラム
void setup() {

    // initialize the digital pins
    pinMode(vfd_RS, OUTPUT);
    pinMode(vfd_E, OUTPUT);
    pinMode(vfd_D7, OUTPUT);
    pinMode(vfd_D6, OUTPUT);
    pinMode(vfd_D5, OUTPUT);
    pinMode(vfd_D4, OUTPUT);

    digitalWrite(vfd_E, LOW);

    vfd_command(0x33); // ensure 8bit mode
    vfd_command(0x33); // ensure 8bit mode
    vfd_command4(0x20); // change to 4bit mode

    vfd_put(0x00); //100% brightness
    vfd_command(0x08);
    vfd_command(0x01);
    vfd_command(0x0f);
    vfd_command(0x06);


    }

// the loop routine runs over and over again forever:
// 繰り返し実行されるプログラム
void loop() {
    int i;
    i=0;
while(1){
    vfd_command(0x01);
    delay(10);
    vfd_command(0x80);
    delay(1);

    vfd_put(0x48);
    vfd_put(0x65);
    vfd_put(0x6c);
    vfd_put(0x6c);
    vfd_put(0x6f);

    if(i==1) {vfd_put(0x31); i=0;} else {vfd_put(0x30); i=1;}

    delay(2000);
}
}


void vfd_put(unsigned char onebyte)
{
    digitalWrite(vfd_RS, HIGH);
    digitalWrite(vfd_E, LOW);

    if((onebyte & 0x80 ) != 0) { digitalWrite(vfd_D7, HIGH);} else { digitalWrite(vfd_D7, LOW); }
    if((onebyte & 0x40 ) != 0) { digitalWrite(vfd_D6, HIGH);} else { digitalWrite(vfd_D6, LOW); }
    if((onebyte & 0x20 ) != 0) { digitalWrite(vfd_D5, HIGH);} else { digitalWrite(vfd_D5, LOW); }
    if((onebyte & 0x10 ) != 0) { digitalWrite(vfd_D4, HIGH);} else { digitalWrite(vfd_D4, LOW); }

    delay(1);
    digitalWrite(vfd_E, HIGH);
    delay(1);
    digitalWrite(vfd_E, LOW);

    if((onebyte & 0x8 ) != 0) { digitalWrite(vfd_D7, HIGH);} else { digitalWrite(vfd_D7, LOW); }
    if((onebyte & 0x4 ) != 0) { digitalWrite(vfd_D6, HIGH);} else { digitalWrite(vfd_D6, LOW); }
    if((onebyte & 0x2 ) != 0) { digitalWrite(vfd_D5, HIGH);} else { digitalWrite(vfd_D5, LOW); }
    if((onebyte & 0x1 ) != 0) { digitalWrite(vfd_D4, HIGH);} else { digitalWrite(vfd_D4, LOW); }

    delay(1);
    digitalWrite(vfd_E, HIGH);
    delay(1);
    digitalWrite(vfd_E, LOW);
}

void vfd_command(unsigned char onebyte)
{
    digitalWrite(vfd_RS, LOW);
    digitalWrite(vfd_E, LOW);

    if((onebyte & 0x80 ) != 0) { digitalWrite(vfd_D7, HIGH);} else { digitalWrite(vfd_D7, LOW); }
    if((onebyte & 0x40 ) != 0) { digitalWrite(vfd_D6, HIGH);} else { digitalWrite(vfd_D6, LOW); }
    if((onebyte & 0x20 ) != 0) { digitalWrite(vfd_D5, HIGH);} else { digitalWrite(vfd_D5, LOW); }
    if((onebyte & 0x10 ) != 0) { digitalWrite(vfd_D4, HIGH);} else { digitalWrite(vfd_D4, LOW); }

    delay(1);
    digitalWrite(vfd_E, HIGH);
    delay(1);
    digitalWrite(vfd_E, LOW);

    if((onebyte & 0x8 ) != 0) { digitalWrite(vfd_D7, HIGH);} else { digitalWrite(vfd_D7, LOW); }
    if((onebyte & 0x4 ) != 0) { digitalWrite(vfd_D6, HIGH);} else { digitalWrite(vfd_D6, LOW); }
    if((onebyte & 0x2 ) != 0) { digitalWrite(vfd_D5, HIGH);} else { digitalWrite(vfd_D5, LOW); }
    if((onebyte & 0x1 ) != 0) { digitalWrite(vfd_D4, HIGH);} else { digitalWrite(vfd_D4, LOW); }

    delay(1);
    digitalWrite(vfd_E, HIGH);
    delay(1);
    digitalWrite(vfd_E, LOW);

}
void vfd_command4(unsigned char onebyte)
{
    digitalWrite(vfd_RS, LOW);
    digitalWrite(vfd_E, LOW);

    if((onebyte & 0x80 ) != 0) { digitalWrite(vfd_D7, HIGH);} else { digitalWrite(vfd_D7, LOW); }
    if((onebyte & 0x40 ) != 0) { digitalWrite(vfd_D6, HIGH);} else { digitalWrite(vfd_D6, LOW); }
    if((onebyte & 0x20 ) != 0) { digitalWrite(vfd_D5, HIGH);} else { digitalWrite(vfd_D5, LOW); }
    if((onebyte & 0x10 ) != 0) { digitalWrite(vfd_D4, HIGH);} else { digitalWrite(vfd_D4, LOW); }

    delay(1);
    digitalWrite(vfd_E, HIGH);
    delay(1);
    digitalWrite(vfd_E, LOW);

}

 


当ウェブサイトでは、お客さまによりよいサービスをご提供するため、Cookieを使用しています。
Cookieを無効にする方法を含め、当社のCookieの使用については「個人情報保護方針」をお読みください。

OK