“SKU:RB-05L007A LCD12864液晶搖桿擴(kuò)展板”的版本間的差異
來自ALSROBOT WiKi
(以“右 ==產(chǎn)品概述== 奧松機(jī)器人推出的LCD 12864液晶搖桿擴(kuò)展板采用全新12864G-0088液晶屏為主體顯示...”為內(nèi)容創(chuàng)建頁面) |
(→?例子程序) |
||
第28行: | 第28行: | ||
===例子程序=== | ===例子程序=== | ||
? | |||
? | |||
? | |||
? | |||
? | |||
? | |||
? | |||
? | |||
? | |||
? | |||
<pre style='color:blue'> | <pre style='color:blue'> | ||
#define cs_mini12864 2 //片選 低電平片選 | #define cs_mini12864 2 //片選 低電平片選 |
2018年10月15日 (一) 16:21的版本
目錄 |
產(chǎn)品概述
奧松機(jī)器人推出的LCD 12864液晶搖桿擴(kuò)展板采用全新12864G-0088液晶屏為主體顯示器件。此擴(kuò)展板采用Arduino疊層板設(shè)計(jì)理念,可直接插接到Arduino UNO、Arduino mega328、Arduino mega2560、Arduino ADK控制器上使用,可以清晰顯示中文、英文、字符、圖片等;板上添加五向微型搖桿,方便實(shí)現(xiàn)人機(jī)互動;同時(shí)本板還具有5個(gè)模擬擴(kuò)展接口和8個(gè)字?jǐn)U展接口;其中各數(shù)字接口均分別用黑色、紅色、黃色排針來區(qū)別電源地、電源正極和信號IO管腳;即方便操作又具有防呆的作用;而且擴(kuò)展接口可連接各種傳感器模塊,如溫度濕度傳感器、三軸加速度計(jì)等,是制作顯示互動作品不可獲缺的顯示器。
規(guī)格參數(shù)
- 產(chǎn)品名稱:LCD12864液晶搖桿擴(kuò)展版
- 產(chǎn)品貨號:RB-05L007A
- 工作電壓:3.3V
- 點(diǎn)陣:128x64
- 視窗尺寸:39.8mm x25.5mm
- 顯示顏色:白色背光黑色文字
- 工作溫度:0°C~+85°C
- 數(shù)據(jù)類型:數(shù)字輸入
- 尺寸:70mm x 53mm
接口定義
- S:信號接口
- V:電源正極
- G/GND:電源地
- RST:同Arduino復(fù)位接口
- 3V3:同Arduino 3.3V接口
- VCC:同Arduino 5V接口
- VIN:同Arduino VIN接口
使用方法
連接示意圖
如圖所示,將12864液晶搖桿擴(kuò)展板與 Arduino 控制器連接在一起
例子程序
#define cs_mini12864 2 //片選 低電平片選 #define rst_mini12864 3 //物理重置.低電平有效 #define rs_mini12864 4 //寄存器選擇 1:數(shù)據(jù)寄存器 0:指令寄存器 #define sck_mini12864 5 //時(shí)鐘 #define sda_mini12864 6 //數(shù)據(jù) //上面的腳可以自己修改 #define Display 0xAF //顯示開啟 #define Power 0x2F //電源全開 #define VO 0x24 //對比度調(diào)節(jié) #define AllPoint 0xA4 //非全屏顯示 #define ADCset 0xA1 //負(fù)向,131-4 #define COMset 0xc0 //com0-com63 #define ELECTVO 0x81 //亮度調(diào)節(jié) 調(diào)節(jié)顏色 不同的模塊需要不同的 ELECTSET #define ELECTSET 0x2a //亮度數(shù)值 調(diào)節(jié)顏色 不同的模塊需要不同的 數(shù)值 #define BIASSET 0xA2 //占空比1/9 unsigned char ao[]={0x00,0x00,0xFC,0x04,0x54,0xE6,0x45,0xF4,0x44,0xE4,0x54,0x04,0xFC,0x00,0x00,0x00, 0x88,0x88,0x4B,0x48,0x29,0x28,0x18,0x0D,0x18,0x28,0x29,0x48,0x4B,0x88,0x88,0x00};/*"奧",0*/ unsigned char song[]={0x10,0x10,0xD0,0xFF,0x90,0x10,0x80,0x60,0x1E,0x00,0xE0,0x07,0x18,0x60,0x80,0x00, 0x04,0x03,0x00,0xFF,0x00,0x03,0x20,0x70,0x2C,0x23,0x20,0x20,0x24,0x38,0x60,0x00};/*"松",1*/ unsigned char ji[]={0x10,0x10,0xD0,0xFF,0x90,0x10,0x00,0xFE,0x02,0x02,0x02,0xFE,0x00,0x00,0x00,0x00, 0x04,0x03,0x00,0xFF,0x00,0x83,0x60,0x1F,0x00,0x00,0x00,0x3F,0x40,0x40,0x78,0x00};/*"機(jī)",2*/ unsigned char qi[]={0x80,0x80,0x9E,0x92,0x92,0x92,0x9E,0xE0,0x80,0x9E,0xB2,0xD2,0x92,0x9E,0x80,0x00, 0x08,0x08,0xF4,0x94,0x92,0x92,0xF1,0x00,0x01,0xF2,0x92,0x94,0x94,0xF8,0x08,0x00};/*"器",3*/ unsigned char ren[]={0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0x3F,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x80,0x40,0x20,0x10,0x0C,0x03,0x00,0x00,0x00,0x03,0x0C,0x10,0x20,0x40,0x80,0x00};/*"人",4*/ void send_8bit_mini12864(unsigned char d) //傳8位數(shù)據(jù),高位先傳 { for(int i=0;i<8;i++) //循環(huán)8次,每次發(fā)送1個(gè)最高位 { digitalWrite(sck_mini12864,0); //時(shí)鐘拉低,一位數(shù)據(jù)開始 if(d&0x80) //與上10000000,最高位如果是1,就數(shù)據(jù)位就高 digitalWrite(sda_mini12864,1); else //與上10000000,最高位如果是0,就數(shù)據(jù)位就低 digitalWrite(sda_mini12864,0); digitalWrite(sck_mini12864,1); //一位數(shù)據(jù)發(fā)送完畢,時(shí)鐘拉高 d<<=1; // d|ddddddd0 拋掉最高位,其余數(shù)據(jù)左移一位,最低位填0 } } void write_cmd_mini12864(unsigned char cmd) //寫命令 { digitalWrite(cs_mini12864,0); //片選拉低,選中芯片 digitalWrite(rs_mini12864,0); //rs為低,寫入命令 send_8bit_mini12864(cmd); //寫入8位命令 } void write_dat_mini12864(unsigned char dat) //寫數(shù)據(jù) { digitalWrite(cs_mini12864,0); //片選拉低,選中芯片 digitalWrite(rs_mini12864,1); //rs為高,寫入數(shù)據(jù) send_8bit_mini12864(dat); //寫入8位數(shù)據(jù) } void mini12864_cl() //清屏,其實(shí)就是把所有的地址全部填成0 { unsigned char x,y; for(y=0;y<8;y++) { write_cmd_mini12864(0xb0+y); write_cmd_mini12864(0x10); write_cmd_mini12864(0x00); for(x=0;x<132;x++) write_dat_mini12864(0); } } void mini12864_Init() //初始化 { pinMode(cs_mini12864,OUTPUT); //設(shè)置各個(gè)I/O為輸出 pinMode(rst_mini12864,OUTPUT); pinMode(rs_mini12864,OUTPUT); pinMode(sck_mini12864,OUTPUT); pinMode(sda_mini12864,OUTPUT); digitalWrite(cs_mini12864,LOW); digitalWrite(rst_mini12864,LOW); //物理重置 delay(200); digitalWrite(rst_mini12864,HIGH); delay(1000); write_cmd_mini12864(0xe2); //軟件重置 delay(200); //以下為初始設(shè)置,具體請參考數(shù)據(jù)手冊 write_cmd_mini12864(0x24);//對比度 write_cmd_mini12864(0x81);//SET ELECTRONIC VOLUME write_cmd_mini12864(0x20);//set pm: 通過改變這里的數(shù)值來改變電壓 write_cmd_mini12864(0x2f);//set power control write_cmd_mini12864(0xa2);//BR=1/9 write_cmd_mini12864(0xa0);//set seg direction write_cmd_mini12864(0xc8);//set com direction write_cmd_mini12864(0x40);//set scroll line //write_cmd(0xa6);//set inverse display a6 off, a7 on //write_cmd(0xa4);//set all pixel on write_cmd_mini12864(0xaf);//開顯示 mini12864_cl(); //清屏 } void mini12864_address(unsigned char page,unsigned char column) { digitalWrite(cs_mini12864,0); //片選拉低,選中芯片 column=column-1; page=page-1; write_cmd_mini12864(0xb0+page); write_cmd_mini12864(((column>>4)&0x0f)+0x10); write_cmd_mini12864(column&0x0f); } void full_dispaly() { int i,j; for(i=0;i<8;i++) { digitalWrite(cs_mini12864,0); //片選拉低,選中芯片 mini12864_address(i+1,0); for(j=0;j<128;j++) { write_dat_mini12864(0xff); } } } void disp_graphic_32X32(unsigned char page,unsigned char column,unsigned char *dp) { unsigned char i,j; digitalWrite(cs_mini12864,0); //片選拉低,選中芯片 for(j=0;j<4;j++) { mini12864_address(page+1,column); for(i=0;i<31;i++) { write_dat_mini12864(*dp); dp++; } } digitalWrite(cs_mini12864,1); //片選拉低,選中芯片 } void display_graphic_16x16(unsigned char page,unsigned char column,unsigned char *dp) { unsigned char i,j; digitalWrite(cs_mini12864,0); //片選拉低,選中芯片 for(j=0;j<2;j++) { mini12864_address(page+j,column); for (i=0;i<16;i++) { write_dat_mini12864(*dp); /*寫數(shù)據(jù)到LCD,每寫完一個(gè)8 位的數(shù)據(jù)后列地址自動加1*/ dp++; } } digitalWrite(cs_mini12864,1); //片選拉低,選中芯片 } void display_graphic_8x16(unsigned char page,unsigned char column,unsigned char *dp) { unsigned char i,j; digitalWrite(cs_mini12864,0); //片選拉低,選中芯片 for(j=0;j<2;j++) { mini12864_address(page+j,column); for (i=0;i<8;i++) { write_dat_mini12864(*dp); /*寫數(shù)據(jù)到LCD,每寫完一個(gè)8 位的數(shù)據(jù)后列地址自動加1*/ dp++; } } digitalWrite(cs_mini12864,1); //片選拉低,選中芯片 } void setup() { mini12864_Init(); //初始化液晶 } void loop() { full_dispaly(); delay(2000); mini12864_cl(); //清屏 display_graphic_16x16(4,24,ao); display_graphic_16x16(4,24+16,song); display_graphic_16x16(4,24+32,ji); display_graphic_16x16(4,24+48,qi); display_graphic_16x16(4,24+64,ren); delay(5000); } }
程序效果
程序下載到 Arduino 控制器之后就可以顯示出漢字“奧松機(jī)器人”了。
產(chǎn)品相關(guān)推薦
產(chǎn)品購買地址
周邊產(chǎn)品推薦
Arduino 8位靜態(tài)數(shù)碼管 掃描顯示器 SPI LED 數(shù)碼管
Arduino 8*8點(diǎn)陣模塊 單色 8X8 LED Matrix Module
Carduino UNO R3 控制器