迷你强 发表于 2013-8-21 12:39:34

arduino增强包使用教程--第二课-- OCROBOT MANGOII 1602液晶屏显示当前气压实验

本帖最后由 迷你强 于 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
发布地址:www.geek-workshop.com
作用:让液晶屏显示两行内容,分别显示当前气压与温度

*/
/*======通用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秒跟新一次
}



整体运行演示视频

http://player.opengg.me/player.php/sid/XNTk4OTA2MTIw/v.swf

chqiyi 发表于 2013-8-21 16:01:07

首占沙发,强烈支持强哥发教导贴,谢谢!

tanbocandy 发表于 2013-8-22 15:25:52

好贴必须顶的

____消失灬 发表于 2014-1-7 15:06:35

应该是把 Pa 换成 kPa把   hPA是什么单位   而且 1kPa = 1000Pa
标准大气压是101.325kPa

Friday 发表于 2014-8-8 08:23:19

看起来很不错

24k纯金 发表于 2015-12-28 15:06:08

1602液晶屏 LCD1602A 显示 蓝屏
页: [1]
查看完整版本: arduino增强包使用教程--第二课-- OCROBOT MANGOII 1602液晶屏显示当前气压实验