starsdown 发表于 2012-7-23 21:43:57

【求助】SHT1x库与Arduino 1.01不兼容啊

搞了个SHT10,结果发现网上找的库用不了,后来用Arduino 0023试了一下完全正常。

再测试一下发现应该是校检第二个时钟出错了(Ack Error 1),然后把库里的sendCommandSHT拉出来单测了一下,确定是这个子程序有问题。
开始以为是shiftout命令有问题,然后用digitalWrite命令重写了一遍,发现问题同样存在。
请各位大侠帮忙找找原因。

下面是附图,取湿度的命令是00101,去温度是00011。前三位地址是000。


这部分代码见下面……把Arduino.h换成Wprogram.h在0023下运行就不会报错……#include <Arduino.h>

#define dataPin10
#define clockPin 11

void setup(){
Serial.begin(9600);
int gTempCmd= 0b00000011;

sendCommandSHT(gTempCmd, dataPin, clockPin);
}

void loop(){
}

void sendCommandSHT(int _command, int data, int clock){
int ack;

// Transmission Start
pinMode(data, OUTPUT);
pinMode(clock, OUTPUT);
digitalWrite(data, HIGH);
digitalWrite(clock, HIGH);
digitalWrite(data, LOW);
digitalWrite(clock, LOW);
digitalWrite(clock, HIGH);
digitalWrite(data, HIGH);
digitalWrite(clock, LOW);


// The command (3 msb are address and must be 000, and last 5 bits are command)
shiftOut(data, clock, MSBFIRST, _command);
/*digitalWrite(data, LOW);
digitalWrite(clock, HIGH);
digitalWrite(clock, LOW);//1
digitalWrite(clock, HIGH);
digitalWrite(clock, LOW);//2
digitalWrite(clock, HIGH);
digitalWrite(clock, LOW);//3
digitalWrite(clock, HIGH);
digitalWrite(clock, LOW);//4
digitalWrite(clock, HIGH);
digitalWrite(clock, LOW);//5
digitalWrite(clock, HIGH);
digitalWrite(clock, LOW);//6
digitalWrite(data, HIGH);
digitalWrite(clock, HIGH);
digitalWrite(clock, LOW);//7
digitalWrite(clock, HIGH);
digitalWrite(clock, LOW);//8
*/



// Verify we get the correct ack
digitalWrite(clock, HIGH);
pinMode(data, INPUT);
ack = digitalRead(data);
if (ack != LOW) {
    Serial.println("Ack Error 0");
}
digitalWrite(clock, LOW);
ack = digitalRead(data);
if (ack != HIGH) {
    Serial.println("Ack Error 1");
}
}

迷你强 发表于 2012-7-23 21:50:05

不懂帮顶

飞翔的红猪 发表于 2012-7-24 07:57:47



我这个试试,1.01的库

starsdown 发表于 2012-7-24 08:50:21

飞翔的红猪 发表于 2012-7-24 07:57 static/image/common/back.gif
我这个试试,1.01的库

谢谢了,不过还是用不了,我已经和原作者联系过了,好像确实存在这个问题

飞翔的红猪 发表于 2012-7-24 10:12:32

再检查一下你的硬件是否符合要求,有时缺的就是一个合适的上拉电阻,湿度低字节就可能全是ff。。

starsdown 发表于 2012-7-25 09:48:05

飞翔的红猪 发表于 2012-7-24 10:12 static/image/common/back.gif
再检查一下你的硬件是否符合要求,有时缺的就是一个合适的上拉电阻,湿度低字节就可能全是ff。。

直接买的焊好的,所以应该没有问题。而且在1.0里测试了,完全没问题的

弘毅 发表于 2012-7-25 18:20:22

我今天自己做了一个sht10模块,1.0.1下稳定运行。。。明天我写个帖子,把代码和库发出哈。

maybachwang 发表于 2012-12-11 10:29:55

我的读数有问题啊~~~-40几度

37℃画面感 发表于 2013-1-29 16:28:46

飞翔的红猪 发表于 2012-7-24 07:57 static/image/common/back.gif
我这个试试,1.01的库

今天遇到问题,下了这个. 好使...

muggle 发表于 2013-8-11 14:21:46

飞翔的红猪 发表于 2012-7-24 10:12 static/image/common/back.gif
再检查一下你的硬件是否符合要求,有时缺的就是一个合适的上拉电阻,湿度低字节就可能全是ff。。

你的这个库好用,可以用在IDE1.0.2上面,而且店主确实忘了10k电阻,谢谢提醒!
页: [1]
查看完整版本: 【求助】SHT1x库与Arduino 1.01不兼容啊