此代码已经从Adafruit传感器库修改。请在这里下载或复制并粘贴以下为黑色素描。这需要一些知识的Arduino和井手你可以阅读在这里。
液晶显示器(8,9,4,5,6,7);
/ *这个驱动程序使用统一的传感器库Adafruit(adafruit_sensor), 的传感器数据和一些辅助提供了一个通用型的功能。 使用这个驱动程序你还需要下载adafruit_sensor 库,它包括在。
你也应该分配一个唯一的ID,该传感器使用的 Adafruit传感器API以便你能识别这种特殊的 传感器在任何数据记录,等分配一个唯一的ID,只是 下面的构造函数提供一个适当的值(12345 是本例中默认使用)。 连接 =========== 连接SCL模拟5 连接SDA模拟4 连接VDD 3.3V直流 连接地共同点 历史 ======= 2013 /军/ 17更新的高度计算(KTOWN) 2013 /月/ 13的第一个版本(KTown) * / adafruit_bmp085_unified BMP =;
//设置变量的计算压力 const int numreadings = 50滚动平均;
浮子读数[ numreadings ];//读数从模拟输入 int readindex = 0;//当前阅读 总分= 0的指数;//运行总 浮动平均= 0;//平均 / ************************************************************************** / / * 显示一些基本信息对该传感器从统一 传感器API sensor_t型(更多信息请看adafruit_sensor)
************************************************************************** / / * Arduino设置功能(自动调用启动) * / / ************************************************************************** / 虚空(void) { 设置串口。开始(9600); 串行out.println(“压力传感器测试”);串行。println(;
为(int thisreading = 0;thisreading < numreadings;thisreading ++){ 读数[ thisreading ] = 0; } / * * / 如果初始化传感器!BMP。begin()) { /有个问题检测…请检查连接* / 串口打印(“抱歉,没有BMP085检测…检查你的接线或I2C地址!”); 而(1);
//显示 液晶。开始(16,2);// initalising显示器尺寸(16柱、2行) 液晶。设置灯光(0,0);//设置光标到第一行第一柱 液晶。打印(“临时”); 液晶。设置灯光(0,1); 液晶印刷(”压力;
}
/ ************************************************************************** / / * Arduino的循环功能,称为一次“设置”完成(你自己的代码 应该去这里) * / / ************************************************************************** / 无效循环(void){ / *获得一个新的传感器事件* / sensors_event_t事件; BMP。GetEvent(事件); / *显示结果(气压测量HPA)* / 如果(事件。压力) { / *显示大气压力在HPA * / 串口打印(“压力”); 串口打印(事件。压力); println(”系列。);HPA 精度要求的压力 / *计算高度合理* *海平面气压你此刻的数据* *转换,以及。如果你没有这些价值观,一个“通用”的价值 * * 1013.25 hPa可用(定义为sensors_pressure_sealevelhpa * *传感器。H),但这并不是理想的,从一天到另一天给 变* *结果。* * * * 通常可以通过看天气 *网站或从环境信息中心附近的任何大* 机场找到当前气压值。* * * * 为例,巴黎、法国你可以检查当前意味着 *压力和海平面:http://bit.ly/16au8ol * / / *首先我们从BMP085 * / 浮温度电流; BMP。gettemperature(温度); 串口打印(。“温度”); 串口打印(温度); println(串行;
/ *然后将大气压力,和SLP海拔* / / * 更新下一行的当前更好的结果* / 浮sealevelpressure = sensors_pressure_sealevelhpa SLP; 串口打印(“高度”); 串口打印(BMP。pressuretoaltitude(sealevelpressure, 事件。压力)); 串行out.println(“M”); println系列;
液晶显示器,设置灯光(5,0); 液晶。打印(温度); 液晶。打印((char)223); 液晶印刷(”;
/ /减去最后阅读: 总=总读数[ readindex ]; /读取传感器: 读数[ readindex ] =事件。压力; /添加阅读总: 总=总+阅读[ readindex ]; /前进到下一个位置阵列;
/如果我们在数组的…最后 如果(readindex > = numreadings ){ //…环绕的开始: readindex = 0;
//计算平均: 平均=总/;
延迟(1); 液晶。设置灯光(5,1); 液晶。打印(平均值);//打印平均压力 液晶。打印(“帕”);} 其他 { 串行out.println(“传感器错误”); } 延迟