盛夏来了,又热又潮,不知道家里的气候如何,想着买个温湿度计,但是物价飞涨,工资不涨,没钱买啊!不如自己做个,应该不难,于是开始动手制作。
这个作品的两个主角是数字温湿度传感器 DHT11和LCD4884 Shield 点阵液晶显示器,好像很简单,就是把DHT11的温湿度值采样到Arduino控制器里,然后对采样值进行处理,按照格式发送到LCD4884显示器中显示出来。我也就花了1天半的时间搞出来的。
LCD4884显示器板子直接插在Arduino UNO控制板的母槽引脚上,它与Arduino板子形成层叠关系,但是并未把Arduino可用的端口挡住,因为LCD4884板子上把Arduino的5个模拟端口和6个数字端口引出来了,并布局到LCD4884板子上,以便使用。 于是DHT11温湿度传感器用并排的三根杜邦线插在了模拟端口5上。
把Arduino控制板和DHT11传感器用双面胶带粘在电池盒背面,再把电池盒的电源插头插到Arduino UNO的电源插座,于是我家的温湿度测量计硬件系统就这样快速搭建完成。至于软件系统的编制,我下面慢慢谈。先介绍LCD4884显示器。
LCD4884 shield的一款48x84点阵液晶显示器,Arduino叠层设计,可直接插接到大部分Arduino控制器上使用,可显示中文、英文、图片等。模块具有5个模拟扩展端口和6个数字扩展端口,可连接DFRobot公司大部分的模拟或数字传感器,还具有一个小型的手机摇杆,可实现5个按键操作。LCD4884 shield是制作互动作品不可多得的显示器。
Arduino系统之所以好用,不仅是单片微机本身编程容易,而且给它的外设编程时,只要程序稍复杂些,大都从可以网络上或者厂家得到相应的库文件,LCD4884自然也有好用的库文件,针对Arduino UNO,LCD4884的库文件请下载:
。
LCD4884库文件请放在Arduino IDE软件文件夹里的libraries文件夹里,这个库文件就可用了,如下图。(双击图片,都可以放大看图的)
在Arduino IDE编程环境里,打开库文件里自带的LCD4884样例程序,哇塞,蛮长的,还有些复杂,都是LCD4884板子上的小型手机摇杆“惹得祸”!我这个作品不需要那个摇杆,只需要LCD显示即可,所以我删去了一些“没用的”程序段。
先做做实验,让屏幕显示:“温度:34'C”和”湿度:52 %“。程序如下(有详细注释):
(注意:程序中itoa()函数作用是,把整数数值转换为字符串,不能转换带小数点的浮点数。)- #include "LCD4884.h" //声明LCD4884库函数
- #include "Word1_cn.h" //内含汉字“温度:”的点阵数组的头文件
- #include "Word2_cn.h" //内含汉字“湿度:”的点阵数组的头文件
- int num1;
- int num2;
- char string1[10];//温度值字符串变量
- char string2[10];//湿度值字符串变量
- void setup()
- {
- lcd.LCD_init( );//初始化LCD4884
- lcd.LCD_clear( ); //清屏
- //把温度值整数部分转换为字符串
- num1=34;
- itoa(num1,string1,10);
- //把湿度值整数部分转换为字符串
- num2=52;
- itoa(num2,string2,10);
- }
- //主程序
- void loop()
- {
- //LCD第6列第1行,显示汉字“温度:”,字体12,显示三个汉字
- lcd.LCD_write_chinese(6,1, Word1_cn,12,3,0,0);
- //LCD第42列第1行,显示温度值整数部分字符,普通显示
- lcd.LCD_write_string(42, 1,string1,MENU_NORMAL);
- //显示温度单位
- lcd.LCD_write_string(54, 1,"'C",MENU_NORMAL);
- //LCD第6列第4行,显示汉字“湿度:”,字体12,显示三个汉字
- lcd.LCD_write_chinese(6,4, Word2_cn,12,3,0,0);
- //LCD第42列第4行,显示湿度值整数部分字符,普通显示
- lcd.LCD_write_string(42,4, string2,MENU_NORMAL);
- //显示湿度单位
- lcd.LCD_write_string(54,4," %",MENU_NORMAL);
- delay(500);//延时0.5s
- }
复制代码 看看上面程序,LCD4884可以显示汉字,是通过字模软件提取每个汉字的字模点阵数组来实现的。程序中“温度:”和”湿度:“的字模点阵数组,分别放在红色字体标注的”Word1_cn“和”Word2_cn“头文件里,头文件可以用windows操作系统自带的“记事本”编辑和保存,只不过要记住,文件扩展名为”*.h“。现在问题是用什么字模软件,如何使用它,如何提取它生成的字模点阵字节数据。
LCD汉字字模软件请下载:http://115.com/file/c25immia#
lcd汉字取模软件.zip
这个字模软件是绿色软件,无需安装,解压后,点击字模软件文件夹里的启动图标,运行软件。请按照图示的步骤顺序操作,然后可以看到,字体为12的”温度:“的点阵数组是什么!
全文见博客文章:http://www.eefocus.com/zhang700309/blog/12-06/280255_7a0b3.html
|