FC2ブログ

迷走の果て・Tiny Objects

迷走する日々の覚え書きです。自分で分かってることは省略してますので、念のため。

16桁6行7セグメントLCDを試す(3)Arduinoにつないでみる

動作画像arduino

今まではPSoC1で試してたのですが、Arduinoにつないでみました。

とりあえずのスケッチです。PSoC1からの移植。
全セグメントを表示するだけです。急いだのでコメントは付けていません。
(う~む、スケッチを綺麗に貼り付ける方法がわからん^^;;)

void setup()
{

#define SYS_EN 0b100000000010
#define LCD_ON 0b100000000110
#define BIAS2_2 0b100001000000
#define BIAS2_3 0b100001001000
#define BIAS2_4 0b100001010000
#define BIAS3_2 0b100001000010
#define BIAS3_3 0b100001001010
#define BIAS3_4 0b100001010010

#define CS1 0
#define CS2 1
#define CS3 2
#define CS4 3
#define CS5 4
#define CS6 5
#define WR 6
#define DATA 7

pinMode(CS1 , OUTPUT);
pinMode(CS2 , OUTPUT);
pinMode(CS3 , OUTPUT);
pinMode(CS4 , OUTPUT);
pinMode(CS5 , OUTPUT);
pinMode(CS6 , OUTPUT);
pinMode(WR , OUTPUT);
pinMode(DATA , OUTPUT);

digitalWrite(CS1, HIGH);
digitalWrite(CS2, HIGH);
digitalWrite(CS3, HIGH);
digitalWrite(CS4, HIGH);
digitalWrite(CS5, HIGH);
digitalWrite(CS6, HIGH);
digitalWrite(WR, HIGH);
digitalWrite(DATA, HIGH);

for (int i = 1 ; i <= 6 ; i++) {
WriteCommand(i, SYS_EN);
WriteCommand(i, LCD_ON);
WriteCommand(i, BIAS2_4);
}
delay(500);
for (int i = 1 ; i <= 6 ; i++) {
for (int addr = 0 ; addr < 32 ; addr++) {
WriteData(i, addr, 0b0000);
}
}
delay(500);
for (int i = 1 ; i <= 6 ; i++) {
for (int addr = 0 ; addr < 32 ; addr++) {
WriteData(i, addr, 0b1111);
}
}
}

void loop()
{

}

void WriteData(int line, int addr , int data)
{
int bitdata = 0x1400 | (addr << 4) | data ;
CS_LOW(line);
for (int i = 1 ; i <= 13 ; i++) {
if ((bitdata & 0x1000) == 0) {
digitalWrite(DATA, LOW);
}
else {
digitalWrite(DATA, HIGH);
}
bitdata <<= 1;
digitalWrite(WR, LOW);
digitalWrite(WR, HIGH);
}
CS_HIGH(line);
}

void WriteCommand(int line, int bitdata)
{
CS_LOW(line);
for (int i = 1 ; i <= 12 ; i++) {
if ((bitdata & 0x0800) == 0) {
digitalWrite(DATA, LOW);
}
else {
digitalWrite(DATA, HIGH);
}
bitdata <<= 1;
digitalWrite(WR, LOW);
digitalWrite(WR, HIGH);
}
CS_HIGH(line);
}

void CS_HIGH(int line)
{
switch (line) {
case 1: digitalWrite(CS1, HIGH);
break;
case 2: digitalWrite(CS2, HIGH);
break;
case 3: digitalWrite(CS3, HIGH);
break;
case 4: digitalWrite(CS4, HIGH);
break;
case 5: digitalWrite(CS5, HIGH);
break;
case 6: digitalWrite(CS6, HIGH);
break;
default: break;
}
}
void CS_LOW(int line)
{
switch (line) {
case 1: digitalWrite(CS1, LOW);
break;
case 2: digitalWrite(CS2, LOW);
break;
case 3: digitalWrite(CS3, LOW);
break;
case 4: digitalWrite(CS4, LOW);
break;
case 5: digitalWrite(CS5, LOW);
break;
case 6: digitalWrite(CS6, LOW);
break;
default: break;
}
}
関連記事
スポンサーサイト



コメント

コメントの投稿

管理者にだけ表示を許可する

トラックバック

この記事へのトラックバックURL
https://edycube.blog.fc2.com/tb.php/884-adb8996e

 | HOME | 

文字サイズの変更

プロフィール

edy

最新記事一覧(サムネイル画像付き)

M5StickC バッテリーの電圧、放電電流、充電電圧を測ってみる 2019/10/21
OLEDの焼き付き 2019/10/13
M5StackにMLX90640をつないでみる(3)視野角の違うセンサーの比較 2019/10/11
M5StackにMLX90640をつないでみる(2) 2019/10/10
M5Stackにミニサーマルカメラユニット(MLX90640)をつないでみる(1) 2019/10/09
M5StickCにNCIR(MLX90614)をつなぐ(2) 2019/10/06
M5StickC NCIR(MLX90614) 2019/10/05
M5StickCと ENV hat 2019/09/28
エモグラスを使ったハローウィンの電飾 2019/09/22
ターンテーブル 2019/09/16

全記事表示リンク

全ての記事を表示する

リンク

このブログをリンクに追加する

月別アーカイブ

10  09  08  07  06  05  04  03  02  01  12  11  10  09  08  07  06  05  04  03  02  01  12  11  10  09  08  07  06  05  04  03  02  01  12  11  10  09  08  07  06  05  04  03  02  01  12  11  10  09  08  07  06  05  04  03  02  01  12  11  10  09  08  07  06  05  04  03  02  12  11  10  09  07  05  04  03  04  03  01  12  11  10  08  07  06  05  03  02  01  12  11  10  09  08  07  06  05  04  03  02  01  12  11  10  09  08  07  06  05  04  02  01  12  10  09  08  07  06  05  04  03  02  01  12  11  10  09  08  07  06  05  03  02  01  12  11  10  09  08  07  06  05  04  03  02  01  12  10  09  08  07  06  05  04  03  02  01 

カテゴリ

プログラミング (0)
freescale (1)
AVR (3)
テルミン (16)
緊急警報放送 (3)
78K (1)
PSoC (295)
地上デジタル放送 (2)
電子工作 (490)
HX711 (2)
ACS712 (6)
DDS (3)
数学 (6)
パソコン (16)
PLC (14)
未分類 (42)
ブログ関係 (20)
スカイプ (37)
ロボット (1)
LTSpice (8)
OCXO (0)
arduino (35)
maxima (1)
フランクリン発振回路 (3)
GPS (3)
DTMF (1)
Linux (1)
KOMAINO (7)
Android (1)
obniz (7)
M5Stack (5)
Analog Discovery (1)

タグリスト

最近のコメント

最近のトラックバック

メールフォーム

名前:
メール:
件名:
本文:

検索フォーム

アクセス

RSSリンクの表示

ブログリンク

Template by たけやん