本帖最后由 迷你强 于 2013-8-30 10:04 编辑
本实验基础平台:F101入门套件 + F102进阶套件 或 F101+F102增强套包 或 MANGO II + F102进阶套件
本课内容包括两个部分,第一部分是上次的驱动1602液晶显示器,第二部分是从气压计读取当前气压值与温度,并且显示在屏幕上。
BMP085的驱动库并不是arduino IDE内置的,所以我们需要先下载驱动
http://wiki.ocrobot.com/doku.php?id=zh:sensor:bmp085
可参照wiki说明下载库文件并且解压缩释放到<你的arduino主目录>/libraries/下,重新启动arduino IDE即可正常调用此库
然后我们来看设计图
我们参考上图来连接好电路。
这样,我们就初步搭好电路了,BMP085气压传感器是I2C通讯接口的传感器,OCROBOT MANGO II板的I2C 接口是A4 A5,其他如2560 或莱昂纳多板请参考主板标示进行连接
程序如下
- /*
- 作者:迷你强
- 时间:2013年8月21日
- IDE版本号:1.0.4
- 发布地址:[url]www.geek-workshop.com[/url]
- 作用:让液晶屏显示两行内容,分别显示当前气压与温度
-
- */
- /*======通用I2C驱动库调用======*/
- #include <Wire.h>
-
- /*========BMP085气压计库调用=====*/
- #include <Adafruit_BMP085.h>
- Adafruit_BMP085 bmp;
- /*==========LCD库调用 =======*/
- #include <LiquidCrystal.h>
-
- LiquidCrystal lcd(12, 11, 5, 4, 3, 2); //定义传输IO口,可根据实际情况调整IO口使用
-
- void setup() {
-
- lcd.begin(16, 2); // 定义显示屏类型,目前定义为1602 每行16个字符共2行
- bmp.begin(); //初始化气压计
- }
-
- void loop() {
- lcd.clear(); //LCD清空屏幕
-
- /*=====数据采集=====*/
- float temp = bmp.readTemperature(); //读取温度数据 (BMP085)
- long pa = bmp.readPressure(); //读取气压数据 (BMP085)
- float hpa = pa /100.0 ; //将Pa换算成hPa
-
- /*=====显示内容=====*/
- lcd.print("Atm:");
- lcd.print(hpa);
- lcd.print("hPa"); //显示第一行内容,当前气压值
- lcd.setCursor(0, 1); //换行到第二行开始位置
- lcd.print("TEMP:"); //显示第二行内容,当前温度值
- lcd.print(temp,1); //保留温度的1位有效小数
- lcd.print("C");
- delay(10000); //控制屏幕刷新速度,每10秒跟新一次
- }
复制代码
整体运行演示视频
|