xixi223 发表于 2017-3-14 11:21:54

恳请各位朋友大神帮忙,关于1个UNO机接几个传感器模块

我目前在搞毕,题目是<关于arduino单片机对气压和温湿度进行实时监测>,在论坛看了教程,我买了2个传感器模块,一个DHT11和一个BMP180,我把他们分开在UNO上单独工作,用BMP180单独接UNO,用DHT11单独接UNO,他们都能正常运行(有图),

问题来了:老师要的是把2个模块合在一个单片机上,然后进行显示,可我不知道怎么把2个传感器放在一个单片机上运行啊...

hnyzcj 发表于 2017-3-14 11:39:10

代码合在一起就OK了

xixi223 发表于 2017-3-14 16:20:35

hnyzcj 发表于 2017-3-14 11:39
代码合在一起就OK了

直接叠加吗?

Ricky 发表于 2017-3-14 20:50:39

现有代码放上来,然后我们看看帮你合。

xixi223 发表于 2017-3-14 22:14:30

Ricky 发表于 2017-3-14 20:50
现有代码放上来,然后我们看看帮你合。
好的,谢谢你,我下午的时候按自己的想法把代码糅合了起来,然后用UNO编译了一下,没问题,还没效验,恳请你指导下我这样糅合代码会不会把发生串口报错之类的
代码如下:
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <dht11.h>
#include <Adafruit_BMP085.h>
LiquidCrystal_I2C lcd(0x3F,16,2);//设置LCD的地址为0x3F,可以设置2行,每行16个字符
dht11 DHT;
Adafruit_BMP085 bmp;
#define DHT11_PIN 4
void setup(){
lcd.init();                        // LCD初始化设置
lcd.backlight();                  // 打开LCD背光
Serial.begin(9600);                // 串口开启,设置串口波特率9600
bmp.begin();                     //BMP180开始工作
lcd.setCursor(9, 0);             //光标移到第1行,第10个字符
lcd.print("T(C): ");             //LCD屏显示”T(C):”
lcd.setCursor(0, 1);            //光标移到第2行,第1个字符
lcd.print("AirP(Pa): ");      //LCD屏显示"AirP(Pa): "
}

void loop(){
int chk;                                       //chk用于存储DHT11传感器的数据
chk = DHT.read(DHT11_PIN);                  //读取DHT11传感器的数据
Serial.print("Humidity = ");                  //串口监视器显示"Humidity = "   
Serial.print(DHT.humidity,1);                  //串口显示DHT11测得的湿度值
Serial.print("Temp(C) = ");                     //串口监视器显示"Temp(C) = "   
Serial.print(DHT.temperature,1);               //串口显示DHT11测得的温度值
Serial.print("AirPressure(Pa) = ");                //串口监视器显示"AirPressure(Pa) = "
Serial.print(bmp.readPressure());             //串口监视器显示BMP180测得的气压数值
                                             // 计算假设标准海拔气压是的高度
                                          // 1013.25毫巴= 101325帕/压力
Serial.print("Alti(m) = ");               //串口监视器显示"Alti(m) = "
Serial.print(bmp.readAltitude());          //串口监视器显示标准海拔气压所换算的高度数值
      // 根据当前的海拔气压计算精确的当前高度
Serial.print("Real Alti(m) = ");         //串口监视器显示"Real Alti(m) = "
Serial.print(bmp.readAltitude(101500));   //串口监视器显示当前的真实高度数值

//LCD显示气压温湿度值
lcd.setCursor(5, 0);                  //第一行第6个字符开始显示
lcd.print(DHT.humidity,1);            //显示DHT测得的湿度
lcd.setCursor(14, 0);               //第一行第15个字符开始显示
lcd.print(DHT.temperature,1);         //显示DHT测得的温度
lcd.setCursor(9, 1);                  //第二行第10个字符开始显示
lcd.print(bmp.readPressure());      //显示BMP测得的气压
delay(1000);
}

Ricky 发表于 2017-3-16 15:51:10

xixi223 发表于 2017-3-14 22:14
好的,谢谢你,我下午的时候按自己的想法把代码糅合了起来,然后用UNO编译了一下,没问题,还没效验,恳 ...

不会。 合的蛮好的!

Rockets 发表于 2017-3-19 00:11:43

帮你编辑了一下,用了代码控件,现在看起来比较舒服了。

20060606 发表于 2020-8-14 05:38:07

xixi223 发表于 2017-3-14 22:14
好的,谢谢你,我下午的时候按自己的想法把代码糅合了起来,然后用UNO编译了一下,没问题,还没效验,恳请 ...

试试就知道了
页: [1]
查看完整版本: 恳请各位朋友大神帮忙,关于1个UNO机接几个传感器模块