网上卖的HX710B气压模块,只有4元钱,其中电压放大的部分,使用的是HX710B差分ADC模块,真正的气压传感器使用的则是PSG010系列。它们被标定可以测量0~40kPa范围,实际根本达不到,实测基本在101kPa~104kPa左右的范围上,返回的数据就不再变化了。也就是只有标定的十分之一范围左右。 因此这个东西真想不出来它能有什么用途,范围太小了。只是它很便宜。 这个东西使用的是单线的SPI,有一个时钟引脚SCK,所以按照DataSheet直接读就行。网上大体有两个版本的Arduino代码,一种不使用库,硬读,直接返回raw: const int HX_OUT_PIN = 2; const int HX_SCK_PIN = 3; enum HX_MODE { NONE, DIFF_10Hz, TEMP_40Hz, DIFF_40Hz}; const byte HX_MODE = DIFF_40Hz; void setup() { pinMode(HX_SCK_PIN, OUTPUT); pinMode(HX_OUT_PIN, INPUT); Serial.begin(9600); } void loop() { Serial.println(readHX()); } unsigned long readHX() { // pulse clock line to start a
reading for (char i = 0; i < HX_MODE;
i++) { digitalWrite(HX_SCK_PIN, HIGH); digitalWrite(HX_SCK_PIN, LOW); } // wait for the reading to finish while (digitalRead(HX_OUT_PIN)) {} // read the 24-bit pressure as 3
bytes using SPI byte data[3]; for (byte j = 3; j--;) { data[j] = shiftIn(HX_OUT_PIN, HX_SCK_PIN,
MSBFIRST); } data[2] ^= 0x80; // see note // shift the 3 bytes into a large
integer long result; result += (long)data[2] <<
16; result += (long)data[1] << 8; result += (long)data[0]; return result; } 还有一种是类似HX711那样,直接被写成了库,淘宝商家会直接提供这个资料,叫“小水位模块”,加了调零和转换,用着也是各种奇怪的反应。还不如直接读数据了。 |
|
来自: 新用户5228KeDY > 《待分类》