折腾了几个小时终于显示了,总结一下,网友们可以借鉴避免走弯路。
注意几点很重要:
1,屏幕主板供电必须的GND和VCC,3.3伏和5伏都行。开始只把BLA ,BLK供电,屏幕亮了就进行软件设置了,不要着急,这样不会显示文字的。
2,屏幕对比度调整要注意,否则显示不出来以为接线错误,在主板后面有个很小的十字调节钮,用刀片的尖端才拧的着,线也接对了,软件也设置了。就是不显示,对比度调整到不显示时也能看到黑色的底才行。
3,用串行接口PSB悬空即可,屏幕亮度供电最好用软件控制,接线BLA为正极,BLK接地,其他引脚不用接。
4,要修改驱动库的引脚定义和实际接线一定要一致。
有两种驱动库,LCD12864RSPI.h可以直接驱动显示汉字,比较方便。显示汉字发送汉字GBK编码即可,我做的编码工具,。链接:https://pan.baidu.com/s/1J5GfZkbNstJeR0AjkYExFQ?pwd=1234
用U8G2_ST7920_128X64_F_SW_SPI u8g2 库不能直接显示汉字,要自己转换汉字字模,可能我还不会,反正用LCD12864RSPI极其方便显示汉字。
#include "LCD12864RSPI.h"
#define AR_SIZE(a) sizeof(a) / sizeof(a[0])
//在LCD12864RSPI.h中要设置 arduino uno 引脚 e=2,rw=3,rs=4
unsigned char show1[] = "lizhiyong.net";
unsigned char messageString[] = {
0xC0,
0xEE,
0xD6,
0xC7,
0xD3,
0xC2,
}; //李智勇机器人
int potpin = A0; //定义模拟接口0
int ledpin = 13; //定义数字接口13
int val = 0; //将定义变量val,并赋初值0
char strval[] = "lzy";
char farray[20] ;
void setup() {
Serial.begin(9600); //设置波特率为9600
LCDA.Initialise(); // 屏幕初始化
delay(100);
}
void loop() {
LCDA.CLEAR(); //清屏
delay(100);
LCDA.DisplayString(0, 1, messageString, AR_SIZE(messageString)); //第一行第2格开始
delay(100);
LCDA.DisplayString(2, 1, show1, AR_SIZE(show1));
; //第三行第二格开始,显示网址
val = analogRead(potpin); //读取模拟接口0 的值,并将其赋给val
//int voltage = map(val,0,1023,0,4.84*100);
float voltage = val * (4.84 / 1023.0);
String stringOne = String(voltage, 3); //直接用String类数据转换float 太方便了
// memcpy(farray, &voltage, sizeof(farray));
String strval = String(val); //直接用String类数据转换
//itoa(val, strval, 10);
//itoa(voltage, strval1, 10); 不能用整数转换
//sprintf(strval1,"%f",voltage);
//strcat( strval," / ");
//strcat(strval,stringOne.c_str());//用String 类 可以直接转换C 字符数组c_str()
strval=strval+" / "+stringOne;
const char *str = strval.c_str();
Serial.println( str); //显示出val 的值
LCDA.DisplayString(1, 1, str,strval.length());
; //第三行第二格开始,显示网址
delay(1000);
LCDA.CLEAR(); //清屏
//LCDA.DrawFullScreen(logo0);
//delay(3000);
}
3
审核编辑 黄宇
-
液晶屏
+关注
关注
18文章
714浏览量
42772 -
Arduino
+关注
关注
187文章
6462浏览量
186611
发布评论请先 登录
相关推荐
评论