“(SKU:RB-05L009)8*8點(diǎn)陣模塊”的版本間的差異

來自ALSROBOT WiKi
跳轉(zhuǎn)至: 導(dǎo)航、 搜索
?例子程序
?例子程序2
 
(未顯示1個用戶的6個中間版本)
第2行: 第2行:
 
[[文件:ewg1.jpg|500px|有框|右]]
 
[[文件:ewg1.jpg|500px|有框|右]]
 
==產(chǎn)品概述 ==
 
==產(chǎn)品概述 ==
?
:還在為驅(qū)動點(diǎn)陣連接復(fù)雜的接線煩惱嗎?還在為 Arduino 控制器屈指可數(shù)的 I/O 資源犯愁嗎?2013 最新推出的 8X8  LED  Matrix  Module  v1.0 點(diǎn)陣模塊是哈爾濱奧松機(jī)器人科技有限公司研發(fā)的一款易安裝、易連接、可拓展的 8X8 點(diǎn)陣模塊。此模塊采用高速的 74HC595 串并轉(zhuǎn)換芯片。SPI 接口,僅需要 3 根信號線即可驅(qū)動多塊 8x8 點(diǎn)陣屏,最大限度的節(jié)省您寶貴的 Arduino 控制器 I/O 資源。行列信號全部傳輸完畢后再更新顯示,顯示亮麗,可靠性高。適合于 Arduino UNO328 控制器、STC 單片機(jī)、AVR 單片機(jī)等。
+
還在為驅(qū)動點(diǎn)陣連接復(fù)雜的接線煩惱嗎?還在為 Arduino 控制器屈指可數(shù)的 I/O 資源犯愁嗎?2013 最新推出的 8X8  LED  Matrix  Module  v1.0 點(diǎn)陣模塊是哈爾濱奧松機(jī)器人科技有限公司研發(fā)的一款易安裝、易連接、可拓展的 8X8 點(diǎn)陣模塊。此模塊采用高速的 74HC595 串并轉(zhuǎn)換芯片。SPI 接口,僅需要 3 根信號線即可驅(qū)動多塊 8x8 點(diǎn)陣屏,最大限度的節(jié)省您寶貴的 Arduino 控制器 I/O 資源。行列信號全部傳輸完畢后再更新顯示,顯示亮麗,可靠性高。適合于 Arduino 控制器、STC 單片機(jī)、AVR 單片機(jī)等。
 +
 
 
==規(guī)格參數(shù)==
 
==規(guī)格參數(shù)==
 
# 產(chǎn)品名稱:8*8點(diǎn)陣模塊  
 
# 產(chǎn)品名稱:8*8點(diǎn)陣模塊  
?
# 產(chǎn)品貨號:RB-05L009
+
# 產(chǎn)品貨號:RB - 05L009
?
# 工作電壓:DC5V
+
# 工作電壓:DC 5V
 +
# 接口類型:SPI
 
# 產(chǎn)品類型:顯示輸出  
 
# 產(chǎn)品類型:顯示輸出  
 
# 制作工藝:FR4雙面噴錫  
 
# 制作工藝:FR4雙面噴錫  
?
# 固定孔尺寸:3.2mm
+
# 固定孔尺寸:3.2 mm
?
# 對角固定孔間距:22.67mm
+
# 對角固定孔間距:22.67 mm
?
# 固定孔距板邊緣:7.93mm
+
# 固定孔距板邊緣:7.93 mm
 
# 人性化設(shè)計(jì):可級聯(lián)應(yīng)用顯示
 
# 人性化設(shè)計(jì):可級聯(lián)應(yīng)用顯示
 
# 工作溫度:10℃-30℃
 
# 工作溫度:10℃-30℃
第17行: 第19行:
 
# 重量:12g  
 
# 重量:12g  
 
# 產(chǎn)品尺寸:32mm x 32mm x 23mm
 
# 產(chǎn)品尺寸:32mm x 32mm x 23mm
 +
 
==使用方法==
 
==使用方法==
?
===使用硬件===  
+
===工作原理===
?
* Carduino UNO 控制器 * 1個
+
通過 74HC595 移位寄存器連接 8*8 點(diǎn)陣液晶模塊,模塊與單片機(jī)之間使用 SPI 進(jìn)行通信,只需要占用三個IO接口,兩片 74HC595 模塊使用級聯(lián)的方式連接,實(shí)現(xiàn)串行輸入并行輸出,來控制點(diǎn)陣液晶。
?
* Carduino UNO 傳感器擴(kuò)展板 v5.0 * 1個
+
===編程原理===
?
* 8X8 LED Matrix Module v1.0 * 1個
+
本例子程序中需要使用一個擴(kuò)展程序語句,介紹如下:<br/>
?
* 3P 通用連接線 * 1條
+
* shiftOut()語句
 +
描述:將一個數(shù)據(jù)的一個字節(jié)一位一位的移出。從最高有效位(最左邊)或最低有效位(最右邊)開始。依次向數(shù)據(jù)腳寫入每一位,之后時鐘腳被拉高或拉低,指示剛才的數(shù)據(jù)有效。<br/>
 +
語法:<br/>
 +
shiftOut(dataPin, clockPin, bitOrder, value)<br/>
 +
參數(shù):<br/>
 +
* dataPin:輸出每一位數(shù)據(jù)的引腳(int)
 +
* clockPin:時鐘腳,當(dāng)dataPin有值時此引腳電平變化(int)
 +
* bitOrder:輸出位的順序,最高位優(yōu)先或最低位優(yōu)先
 +
* value: 要移位輸出的數(shù)據(jù)(byte)
 +
注意:<br/>
 +
dataPin和clockPin要用pinMode()配置為輸出。 shiftOut目前只能輸出1個字節(jié)(8位),所以如果輸出值大于255需要分兩步。<br/>
 +
<pre style='color:blue'>
 +
//最高有效位優(yōu)先串行輸出
 +
int 數(shù)據(jù)= 500;
 +
//移位輸出高字節(jié)
 +
shiftOut(dataPin, clock, MSBFIRST, (data >> 8)); 
 +
//移位輸出低字節(jié)
 +
shiftOut(data, clock, MSBFIRST, data);
 +
//最低有效位優(yōu)先串行輸出
 +
data = 500;
 +
//移位輸出低字節(jié)
 +
shiftOut(dataPin, clock, LSBFIRST, data); 
 +
//移位輸出高字節(jié)
 +
shiftOut(dataPin, clock, LSBFIRST, (data >> 8));
 +
</pre>
 +
===實(shí)驗(yàn)例程===
 +
====使用硬件====  
 +
* [http://m.gharee.com/goods-546.html Carduino UNO R3 控制器] * 1個
 +
* [http://m.gharee.com/goods-147.html Carduino UNO 傳感器擴(kuò)展板 v5.0] * 1個
 +
* [http://m.gharee.com/goods-107.html 8 * 8 LED Matrix Module v1.0] * 1個
 +
* [http://m.gharee.com/goods-107.html 3P 通用連接線] * 1條
 
* 2P 電源線 * 1組
 
* 2P 電源線 * 1組
?
* USB 數(shù)據(jù)通信線 * 1條
+
* [http://m.gharee.com/goods-90.html USB 數(shù)據(jù)通信線] * 1條
?
===接線方法===
+
====接線方法====
?
:通過 SPI 通信方式中的 DIN、CLK、LTH 對 LED 點(diǎn)陣進(jìn)行控制。DIN 為數(shù)據(jù),CLK為時鐘,LTH 為鎖存。
+
通過 SPI 通信方式中的 DIN、CLK、LTH 對 LED 點(diǎn)陣進(jìn)行控制。DIN 為數(shù)據(jù),CLK為時鐘,LTH 為鎖存。
?
:8X8 點(diǎn)陣模塊的 DIN、CLK、LTH 分別連接到 Arduino 傳感器擴(kuò)展板的數(shù)字 4、5、6 引腳,VCC、GND 分別連接到傳感器擴(kuò)展板的任意一個 V、G 端口。最后連接Arduino 控制器至計(jì)算機(jī)。  
+
8 * 8 點(diǎn)陣模塊的 DIN、CLK、LTH 分別連接到 Arduino 傳感器擴(kuò)展板的數(shù)字 4、5、6 引腳,VCC、GND 分別連接到傳感器擴(kuò)展板的任意一個 V、G 端口。最后連接Arduino 控制器至計(jì)算機(jī)。 如下圖所示:
?
===例子程序===  
+
整體連接圖:
 +
[[文件:02L00901.png|500px|有框|居中]]
 +
接線細(xì)節(jié)圖:
 +
[[文件:02L00902.png|700px|有框|居中]]
 +
 
 +
====例子程序1====  
 
<pre style='color:blue'>
 
<pre style='color:blue'>
?
const int DINPin = 4;            // 數(shù)據(jù)引腳  連接到數(shù)字 4 口
+
//Pin connected to ST_CP of 74HC595
?
const int CLKPin = 5;             // 時鐘引腳  連接到數(shù)字 5 口
+
int latchPin = 6;//定義LTH引腳為D6
?
const int LTHPin = 6;             //鎖存引腳  連接到數(shù)字 6 口
+
//Pin connected to SH_CP of 74HC595
?
byte LieScan[16] = {                                    //列掃描,點(diǎn)陣只點(diǎn)亮一行
+
int clockPin = 5;//定義CLK引腳為D5
?
0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F
+
//Pin connected to DS of 74HC595
?
};
+
int dataPin = 4;//定義DIN引腳為D4
?
byte HanZi_1[] = {
+
int tab[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};
?
0x1c,0x3e,0x7e,0xfc,0xfc,0x7e,0x3e,0x1c            //心形圖案
+
void setup() {
?
};  
+
  //set pins to output because they are addressed in the main loop
?
byte HanZi_2[] = {
+
  pinMode(latchPin, OUTPUT);
?
0x1c,0x3e,0x7e,0xfc,0xfc,0x7e,0x3e,0x1c            //心形圖案
+
  pinMode(clockPin, OUTPUT);
?
};
+
  pinMode(dataPin, OUTPUT);
?
byte HanZi_3[] = {  
+
}
?
0x1c,0x3e,0x7e,0xfc,0xfc,0x7e,0x3e,0x1c            //心形圖案
+
 
?
};  
+
void loop() {
?
void setup() {  
+
  for(int i = 0; i < 8; i++){
?
pinMode(DINPin,OUTPUT);         //設(shè)置數(shù)據(jù)引腳為輸出
+
    for(int j = 0; j < 8; j++){
?
pinMode(CLKPin,OUTPUT);         //設(shè)置鎖存引腳為輸出
+
      digitalWrite(latchPin, LOW);  
?
pinMode(LTHPin,OUTPUT);         //設(shè)置時鐘引腳為輸出
+
      shiftOut(dataPin, clockPin, LSBFIRST, tab[i]);//掃描顯示每一列
?
}  
+
      shiftOut(dataPin, clockPin, LSBFIRST, 0xff); //將行顯示設(shè)置為低電平
?
void loop() {  
+
      digitalWrite(latchPin, HIGH);  
?
for(unsigned char times_1 = 0;times_1 <250;t imes_1++) {   //持續(xù)刷新 250 次
+
      delay(50);   
?
for(char x = 0;x <9;x++) {
+
    }
?
}
+
  }
?
shiftOut( DI NP in, CLKP in, MSBFIRST, LieScan[x]);    // 先選擇列
+
    for(int i = 0; i < 8; i++){
?
shiftOut( DI NP in, CLKP in, MSBFIRST, HanZi_1[x]);  // 再送行數(shù)據(jù)
+
    for(int j = 0; j < 8; j++){
?
digit alWr ite(LTHP in, LOW);     //刷新顯示
+
      digitalWrite(latchPin, LOW);
?
digit alWr ite(LTHP in, HIGH); 
+
      shiftOut(dataPin, clockPin, LSBFIRST, 0x00);//將列顯示設(shè)置為高電平
?
}
+
      shiftOut(dataPin, clockPin, LSBFIRST, tab[i]); //掃描顯示每一行
?
for(unsigned char times_2 = 0;times_2 <250;t imes_2++) {  //持續(xù)刷新 250 次
+
      digitalWrite(latchPin, HIGH);  
?
for(char x = 0;x <8;x++) {
+
      delay(50);   
?
shiftOut( DI NP in, CLKP in, MSBFIRST, LieScan[x]);   // 先選擇列
+
    }
?
shiftOut( DI NP in, CLKPin, MSBFIRST, HanZi_2[x]);   // 再送行數(shù)據(jù)
+
  }
?
digit alWr ite(LTHP in, LOW);     //刷新顯示
+
?
digit alWr ite(LTHP in, HIGH);   
+
?
}  
+
?
}  
+
?
for(unsigned char times_3 = 0;times_3 <250;t imes_3++) {   //持續(xù)刷新 250 次
+
?
for(char x = 0;x <8;x++) {  
+
?
shiftOut( DI NP in, CLKP in, MSBF IRST, LieS can[x]);   //先選擇列
+
?
shiftOut( DI NP in, CLKP in, MSBFIRST, HanZi_3[x]);   // 再送行數(shù)據(jù)
+
?
digit alWr ite(LTHP in, LOW);     //刷新顯示
+
?
digit alWr ite(LTHP in, HIGH);   
+
?
}  
+
 
}  
 
}  
 
</pre>
 
</pre>
 +
====程序1效果====
 +
點(diǎn)陣液晶分別以行掃描和列掃描顯示
 +
 +
====例子程序2====
 +
<pre style='color:blue'>
 +
const int DINPin = 4;        //數(shù)據(jù)引腳 連接到數(shù)字P4口
 +
const int CLKPin = 5;        //時鐘引腳 連接到數(shù)字P5口
 +
const int LTHPin = 6;        //鎖存引腳 連接到數(shù)字P6口
 +
 +
byte LieScan[16] = {                        //列掃描,點(diǎn)陣只點(diǎn)亮一列
 +
  0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F
 +
};
 +
byte HanZi_1[] = {
 +
  0x1c,0x7c,0x7e,0x3f,0x3f,0x7e,0x7c,0x1c    //顯示心形圖案
 +
};
 +
void setup() {
 +
  pinMode(DINPin,OUTPUT);      //設(shè)置數(shù)據(jù)引腳為輸出
 +
  pinMode(CLKPin,OUTPUT);      //設(shè)置鎖存引腳為輸出
 +
  pinMode(LTHPin,OUTPUT);      //設(shè)置時鐘引腳為輸出
 +
}
 +
void loop() {
 +
  for(unsigned char times_1 = 0;times_1 <250;times_1++) {  //持續(xù)刷新250次
 +
    for(char x = 0;x <8;x++) {
 +
      shiftOut(DINPin, CLKPin, MSBFIRST, LieScan[x]);  //先選擇列
 +
      shiftOut(DINPin, CLKPin, MSBFIRST, HanZi_1[x]);  //再送行數(shù)據(jù)
 +
      digitalWrite(LTHPin, LOW);    //刷新顯示
 +
      digitalWrite(LTHPin, HIGH);
 +
    }
 +
  }
 +
}
 +
</pre>
 +
 +
====程序2效果====
 +
點(diǎn)陣液晶屏顯示為心形圖案
 +
 +
====例子程序3====
 +
<pre style='color:blue'>
 +
const int DINPin = 4;        //數(shù)據(jù)引腳 連接到數(shù)字P4口
 +
const int CLKPin = 5;        //時鐘引腳 連接到數(shù)字P5口
 +
const int LTHPin = 6;        //鎖存引腳 連接到數(shù)字P6口
 +
 +
byte LieScan[16] = {                        //列掃描,點(diǎn)陣只點(diǎn)亮一行
 +
  0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F
 +
};
 +
byte HanZi_1[] = {
 +
  0x04,0xFA,0x89,0xBA,0xC0,0x1C,0x40,0xFF    //創(chuàng)
 +
};
 +
byte HanZi_2[] = {
 +
  0x4A,0xAE,0xFB,0x2E,0x4A,0xFC,0x0A,0xF9    //新
 +
};
 +
byte HanZi_3[] = {
 +
  0x04,0x02,0x24,0x40,0x40,0x24,0x02,0x04    //^_^
 +
};
 +
void setup() {
 +
  pinMode(DINPin,OUTPUT);      //設(shè)置數(shù)據(jù)引腳為輸出
 +
  pinMode(CLKPin,OUTPUT);      //設(shè)置鎖存引腳為輸出
 +
  pinMode(LTHPin,OUTPUT);      //設(shè)置時鐘引腳為輸出
 +
}
 +
void loop() {
 +
  for(unsigned char times_1 = 0;times_1 <250;times_1++) {  //持續(xù)刷新250次
 +
    for(char x = 0;x <8;x++) {
 +
      shiftOut(DINPin, CLKPin, MSBFIRST, LieScan[x]);  //先選擇列
 +
      shiftOut(DINPin, CLKPin, MSBFIRST, HanZi_1[x]);  //再送行數(shù)據(jù)
 +
      digitalWrite(LTHPin, LOW);    //刷新顯示
 +
      digitalWrite(LTHPin, HIGH);
 +
    }
 +
  }
 +
  for(unsigned char times_2 = 0;times_2 <250;times_2++) {  //持續(xù)刷新250次
 +
    for(char x = 0;x <8;x++) {
 +
      shiftOut(DINPin, CLKPin, MSBFIRST, LieScan[x]);  //先選擇列
 +
      shiftOut(DINPin, CLKPin, MSBFIRST, HanZi_2[x]);  //再送行數(shù)據(jù)
 +
      digitalWrite(LTHPin, LOW);    //刷新顯示
 +
      digitalWrite(LTHPin, HIGH);
 +
    }
 +
  }
 +
  for(unsigned char times_3 = 0;times_3 <250;times_3++) {  //持續(xù)刷新250次
 +
    for(char x = 0;x <8;x++) {
 +
      shiftOut(DINPin, CLKPin, MSBFIRST, LieScan[x]);  //先選擇列
 +
      shiftOut(DINPin, CLKPin, MSBFIRST, HanZi_3[x]);  //再送行數(shù)據(jù)
 +
      digitalWrite(LTHPin, LOW);    //刷新顯示
 +
      digitalWrite(LTHPin, HIGH);
 +
    }
 +
  }
 +
}
 +
</pre>
 +
====程序3效果====
 +
在 8 * 8 LED Martix Module模塊上輪流顯示“創(chuàng) 新 ^_^”
  
?
===程序效果===
 
?
[[文件:ewg2.jpg|500px|有框|居中]]
 
 
==產(chǎn)品相關(guān)推薦==
 
==產(chǎn)品相關(guān)推薦==
 
[[文件:erweima.png|230px|無框|右]]
 
[[文件:erweima.png|230px|無框|右]]

2016年4月5日 (二) 16:47的最后版本


Ewg1.jpg

目錄

產(chǎn)品概述

還在為驅(qū)動點(diǎn)陣連接復(fù)雜的接線煩惱嗎?還在為 Arduino 控制器屈指可數(shù)的 I/O 資源犯愁嗎?2013 最新推出的 8X8 LED Matrix Module v1.0 點(diǎn)陣模塊是哈爾濱奧松機(jī)器人科技有限公司研發(fā)的一款易安裝、易連接、可拓展的 8X8 點(diǎn)陣模塊。此模塊采用高速的 74HC595 串并轉(zhuǎn)換芯片。SPI 接口,僅需要 3 根信號線即可驅(qū)動多塊 8x8 點(diǎn)陣屏,最大限度的節(jié)省您寶貴的 Arduino 控制器 I/O 資源。行列信號全部傳輸完畢后再更新顯示,顯示亮麗,可靠性高。適合于 Arduino 控制器、STC 單片機(jī)、AVR 單片機(jī)等。

規(guī)格參數(shù)

  1. 產(chǎn)品名稱:8*8點(diǎn)陣模塊
  2. 產(chǎn)品貨號:RB - 05L009
  3. 工作電壓:DC 5V
  4. 接口類型:SPI
  5. 產(chǎn)品類型:顯示輸出
  6. 制作工藝:FR4雙面噴錫
  7. 固定孔尺寸:3.2 mm
  8. 對角固定孔間距:22.67 mm
  9. 固定孔距板邊緣:7.93 mm
  10. 人性化設(shè)計(jì):可級聯(lián)應(yīng)用顯示
  11. 工作溫度:10℃-30℃
  12. 工作濕度:10%~90% 無凝結(jié)
  13. 重量:12g
  14. 產(chǎn)品尺寸:32mm x 32mm x 23mm

使用方法

工作原理

通過 74HC595 移位寄存器連接 8*8 點(diǎn)陣液晶模塊,模塊與單片機(jī)之間使用 SPI 進(jìn)行通信,只需要占用三個IO接口,兩片 74HC595 模塊使用級聯(lián)的方式連接,實(shí)現(xiàn)串行輸入并行輸出,來控制點(diǎn)陣液晶。

編程原理

本例子程序中需要使用一個擴(kuò)展程序語句,介紹如下:

  • shiftOut()語句

描述:將一個數(shù)據(jù)的一個字節(jié)一位一位的移出。從最高有效位(最左邊)或最低有效位(最右邊)開始。依次向數(shù)據(jù)腳寫入每一位,之后時鐘腳被拉高或拉低,指示剛才的數(shù)據(jù)有效。
語法:
shiftOut(dataPin, clockPin, bitOrder, value)
參數(shù):

  • dataPin:輸出每一位數(shù)據(jù)的引腳(int)
  • clockPin:時鐘腳,當(dāng)dataPin有值時此引腳電平變化(int)
  • bitOrder:輸出位的順序,最高位優(yōu)先或最低位優(yōu)先
  • value: 要移位輸出的數(shù)據(jù)(byte)

注意:
dataPin和clockPin要用pinMode()配置為輸出。 shiftOut目前只能輸出1個字節(jié)(8位),所以如果輸出值大于255需要分兩步。

//最高有效位優(yōu)先串行輸出
int 數(shù)據(jù)= 500;
//移位輸出高字節(jié)
shiftOut(dataPin, clock, MSBFIRST, (data >> 8));  
//移位輸出低字節(jié)
shiftOut(data, clock, MSBFIRST, data);
//最低有效位優(yōu)先串行輸出
data = 500;
//移位輸出低字節(jié)
shiftOut(dataPin, clock, LSBFIRST, data);  
//移位輸出高字節(jié)
shiftOut(dataPin, clock, LSBFIRST, (data >> 8)); 

實(shí)驗(yàn)例程

使用硬件

接線方法

通過 SPI 通信方式中的 DIN、CLK、LTH 對 LED 點(diǎn)陣進(jìn)行控制。DIN 為數(shù)據(jù),CLK為時鐘,LTH 為鎖存。 將 8 * 8 點(diǎn)陣模塊的 DIN、CLK、LTH 分別連接到 Arduino 傳感器擴(kuò)展板的數(shù)字 4、5、6 引腳,VCC、GND 分別連接到傳感器擴(kuò)展板的任意一個 V、G 端口。最后連接Arduino 控制器至計(jì)算機(jī)。 如下圖所示: 整體連接圖:

02L00901.png

接線細(xì)節(jié)圖:

02L00902.png

例子程序1

//Pin connected to ST_CP of 74HC595
int latchPin = 6;//定義LTH引腳為D6
//Pin connected to SH_CP of 74HC595
int clockPin = 5;//定義CLK引腳為D5
//Pin connected to DS of 74HC595
int dataPin = 4;//定義DIN引腳為D4
int tab[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};
void setup() {
  //set pins to output because they are addressed in the main loop
  pinMode(latchPin, OUTPUT);
  pinMode(clockPin, OUTPUT);
  pinMode(dataPin, OUTPUT);
}

void loop() {
  for(int i = 0; i < 8; i++){
    for(int j = 0; j < 8; j++){
      digitalWrite(latchPin, LOW); 
      shiftOut(dataPin, clockPin, LSBFIRST, tab[i]);//掃描顯示每一列
      shiftOut(dataPin, clockPin, LSBFIRST, 0xff); //將行顯示設(shè)置為低電平
      digitalWrite(latchPin, HIGH); 
      delay(50);  
    }
  }
    for(int i = 0; i < 8; i++){
    for(int j = 0; j < 8; j++){
      digitalWrite(latchPin, LOW);
      shiftOut(dataPin, clockPin, LSBFIRST, 0x00);//將列顯示設(shè)置為高電平
      shiftOut(dataPin, clockPin, LSBFIRST, tab[i]); //掃描顯示每一行
      digitalWrite(latchPin, HIGH); 
      delay(50);  
    }
  }
} 

程序1效果

點(diǎn)陣液晶分別以行掃描和列掃描顯示

例子程序2

const int DINPin = 4;         //數(shù)據(jù)引腳 連接到數(shù)字P4口
const int CLKPin = 5;         //時鐘引腳 連接到數(shù)字P5口
const int LTHPin = 6;         //鎖存引腳 連接到數(shù)字P6口

byte LieScan[16] = {                         //列掃描,點(diǎn)陣只點(diǎn)亮一列
  0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F
};
byte HanZi_1[] = {
  0x1c,0x7c,0x7e,0x3f,0x3f,0x7e,0x7c,0x1c    //顯示心形圖案
};
void setup() {
  pinMode(DINPin,OUTPUT);      //設(shè)置數(shù)據(jù)引腳為輸出
  pinMode(CLKPin,OUTPUT);      //設(shè)置鎖存引腳為輸出
  pinMode(LTHPin,OUTPUT);      //設(shè)置時鐘引腳為輸出
}
void loop() {
  for(unsigned char times_1 = 0;times_1 <250;times_1++) {  //持續(xù)刷新250次
    for(char x = 0;x <8;x++) {
      shiftOut(DINPin, CLKPin, MSBFIRST, LieScan[x]);  //先選擇列
      shiftOut(DINPin, CLKPin, MSBFIRST, HanZi_1[x]);  //再送行數(shù)據(jù)
      digitalWrite(LTHPin, LOW);    //刷新顯示
      digitalWrite(LTHPin, HIGH);
    }
  }
}

程序2效果

點(diǎn)陣液晶屏顯示為心形圖案

例子程序3

const int DINPin = 4;         //數(shù)據(jù)引腳 連接到數(shù)字P4口
const int CLKPin = 5;         //時鐘引腳 連接到數(shù)字P5口
const int LTHPin = 6;         //鎖存引腳 連接到數(shù)字P6口

byte LieScan[16] = {                         //列掃描,點(diǎn)陣只點(diǎn)亮一行
  0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F
};
byte HanZi_1[] = {
  0x04,0xFA,0x89,0xBA,0xC0,0x1C,0x40,0xFF    //創(chuàng)
};
byte HanZi_2[] = {
  0x4A,0xAE,0xFB,0x2E,0x4A,0xFC,0x0A,0xF9    //新
};
byte HanZi_3[] = {
  0x04,0x02,0x24,0x40,0x40,0x24,0x02,0x04    //^_^
};
void setup() {
  pinMode(DINPin,OUTPUT);      //設(shè)置數(shù)據(jù)引腳為輸出
  pinMode(CLKPin,OUTPUT);      //設(shè)置鎖存引腳為輸出
  pinMode(LTHPin,OUTPUT);      //設(shè)置時鐘引腳為輸出
}
void loop() {
  for(unsigned char times_1 = 0;times_1 <250;times_1++) {  //持續(xù)刷新250次
    for(char x = 0;x <8;x++) {
      shiftOut(DINPin, CLKPin, MSBFIRST, LieScan[x]);  //先選擇列
      shiftOut(DINPin, CLKPin, MSBFIRST, HanZi_1[x]);  //再送行數(shù)據(jù)
      digitalWrite(LTHPin, LOW);    //刷新顯示
      digitalWrite(LTHPin, HIGH);
    }
  }
  for(unsigned char times_2 = 0;times_2 <250;times_2++) {  //持續(xù)刷新250次
    for(char x = 0;x <8;x++) {
      shiftOut(DINPin, CLKPin, MSBFIRST, LieScan[x]);  //先選擇列
      shiftOut(DINPin, CLKPin, MSBFIRST, HanZi_2[x]);  //再送行數(shù)據(jù)
      digitalWrite(LTHPin, LOW);    //刷新顯示
      digitalWrite(LTHPin, HIGH);
    }
  }
  for(unsigned char times_3 = 0;times_3 <250;times_3++) {  //持續(xù)刷新250次
    for(char x = 0;x <8;x++) {
      shiftOut(DINPin, CLKPin, MSBFIRST, LieScan[x]);  //先選擇列
      shiftOut(DINPin, CLKPin, MSBFIRST, HanZi_3[x]);  //再送行數(shù)據(jù)
      digitalWrite(LTHPin, LOW);    //刷新顯示
      digitalWrite(LTHPin, HIGH);
    }
  }
}

程序3效果

在 8 * 8 LED Martix Module模塊上輪流顯示“創(chuàng) 新 ^_^”

產(chǎn)品相關(guān)推薦

Erweima.png

購買地址

8*8點(diǎn)陣模塊

周邊產(chǎn)品推薦

Arduino LCD12864 點(diǎn)陣液晶擴(kuò)展板 12864液晶屏
Arduino 12864點(diǎn)陣液晶 51單片機(jī)

相關(guān)問題解答

8*8點(diǎn)陣模塊桃心呼吸燈效果 求助
8x8點(diǎn)陣程序燒進(jìn)去,顯示的圖案沒有規(guī)律

相關(guān)學(xué)習(xí)資料

用戶手冊
奧松機(jī)器人技術(shù)論壇