2015-5-11 14:32:43 [显示全部楼层]
9891浏览
查看: 9891|回复: 6

[讨论] 温湿度传感器SI7021代码求教

[复制链接]
我的SI7021连接UNO,使用如下代码正常测得数据,连接2560后,出现的负值,而且数值一直无变动,请问需要修改哪里?
#include <Wire.h>

const int ADDR =0x40;
int X0,X1,Y0,Y1,Y2,Y3;
double X,Y,X_out,Y_out1,Y_out2;

void setup()
{
   Serial.begin(9600);   

   Wire.begin();                                   
   delay(100);  
   Wire.beginTransmission(ADDR);
   Wire.endTransmission();

   pinMode(13,OUTPUT);                             
}
void loop()
{
   /**发送温度测量命令**/       
   Wire.beginTransmission(ADDR);                    
   Wire.write(0xE3);                               //发送读温度命令
   Wire.endTransmission();

   Serial.print("Temp");Serial.print("\t");Serial.println("RH");

   /**读取温度数据**/
   digitalWrite(13,HIGH);                          //LED亮开始读数据
   Wire.requestFrom(ADDR,2);                       //回传数据

   if(Wire.available()<=2);
   {
     X0 = Wire.read();
     X1 = Wire.read();
     X0 = X0<<8;
     X_out = X0+X1;
   }

   /**计算并显示温度**/
   X=(175.72*X_out)/65536;                        
   X=X-46.85;
   Serial.print(X);Serial.print("C");Serial.print("\t");

   /**发送湿度测量命令**/       
   Wire.beginTransmission(ADDR);                     
   Wire.write(0xE5);
   Wire.endTransmission();

   /**读取湿度数据**/       
   Wire.requestFrom(ADDR,2);
   if(Wire.available()<=2);
   {
     Y0 = Wire.read();Y2=Y0/100; Y0=Y0%100;
     Y1 = Wire.read();
     Y_out1 = Y2*25600;
     Y_out2 = Y0*256+Y1;
   }

   /**计算并显示湿度**/
   Y_out1 = (125*Y_out1)/65536;                     
   Y_out2 = (125*Y_out2)/65536;
   Y = Y_out1+Y_out2;
   Y=Y-6;
   Serial.print(Y);Serial.println("%");

   digitalWrite(13,LOW);                           
   delay(1000);
}

Cain  初级技匠

发表于 2015-5-11 16:48:27

本帖最后由 Cain 于 2015-5-11 16:49 编辑

怎么接线的?上连线图。另外注意I2C的口,uno和mega复用的位置是不一样的,不要接A4,A5,mega有专门的20,20引脚用作SDA,SCL
回复

使用道具 举报

大连林海  初级技神

发表于 2015-5-12 07:27:54

有问题你 建议把连线图也一起放出来 大家可以清晰的看清 能结合连线 再分析代码 有的时候 代码没有问题 是因为接线:P
回复

使用道具 举报

wangshizf  学徒
 楼主|

发表于 2015-5-12 13:23:43

感谢楼上二位。
设备不在手边没法上图,mega接的20、21引脚的。
回复

使用道具 举报

wangshizf  学徒
 楼主|

发表于 2015-5-12 13:23:52

感谢楼上二位。
设备不在手边没法上图,mega接的20、21引脚的。
回复

使用道具 举报

VincenChang  见习技师

发表于 2015-8-13 11:28:44

楼主问题解决了么,我也遇到这个问题了,弄不明白。
回复

使用道具 举报

juliuke  学徒

发表于 2015-11-19 13:58:06

I2C接口的温湿度传感器AM2320,相关的资料找奥松电子下载咨询
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
关于楼主

楼主的其它帖子

上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail