前言
大家都知道AIDA64可以用作副屏来显示电脑的一些参数如CPU温度、GPU温度什么的,但是身边没有副屏怎么办,这时我看到了B站UP主 会飞的阿卡林的一个视频(av77823747),用数码管来显示。这是个好办法但是为什么不用lcd来显示呢,自带背光看得更清楚,而且能显示的东西更多,需要四条数码管来显示的lcd只需要一块。所以我就想到了做一个基于arduino和AIDA64的lcd1602屏。
硬件
1、UNO板
2、带IIC的lcd1602
3、杜邦线若干
4、数据线(串口通信、烧写程序,一般uno都自带)
硬件连接
GND 接 GND
VCC 接 5V
SDA 接 A4
SCL 接 A5
左边LCD右边UNO
Uno板连电脑我就不说了是个人都会
软件
1、 AIDA64(下面称为AD64)不用说必备我用的是Extreme版的;
预先步骤:打开AD64左上角文件——设置——LCD
就这样不选启用POS VFD支持,然后选择lcd项目
像我这样就是设置好了分别是CPU温度、内存使用率、GPU温度、主音量,可以自定义,然后应用。
2、 虚拟串口软件(如果是想二次开发必备,用成品忽略);
3、 串口调试软件(同上)。
数据分析
用串口调试软件读数据(一开始就做了CPU和GPU的温度)
可以看到这是ad64发来的数据帧(16进制)
字符串
通过上面两张图不难发现43为起始位(C)20(空格)## 标题47(G),43和47后面都跟了7位。所以我们只要提取出开头一个字符再取7位就是我们要的。
代码
直接上代码
#include "16HEX.h"
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,20,4);
char frame1[8] = {
}; //用于存储AIDA64从串口发来的信息 CPU XX-C cup温度
char frame2[8] = {
}; //用于存储AIDA64从串口发来的信息 CPU XX-C gpu温度
char frame3[8] = {
}; //用于存储AIDA64从串口发来的信息 Mem XX% 内存使用率
char frame4[8]