網(wǎng)上賣的HX710B氣壓模塊,只有4元錢,其中電壓放大的部分,使用的是HX710B差分ADC模塊,真正的氣壓傳感器使用的則是PSG010系列。它們被標定可以測量0~40kPa范圍,實際根本達不到,實測基本在101kPa~104kPa左右的范圍上,返回的數(shù)據(jù)就不再變化了。也就是只有標定的十分之一范圍左右。 因此這個東西真想不出來它能有什么用途,范圍太小了。只是它很便宜。 這個東西使用的是單線的SPI,有一個時鐘引腳SCK,所以按照DataSheet直接讀就行。網(wǎng)上大體有兩個版本的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那樣,直接被寫成了庫,淘寶商家會直接提供這個資料,叫“小水位模塊”,加了調(diào)零和轉換,用著也是各種奇怪的反應。還不如直接讀數(shù)據(jù)了。 |
|
來自: 新用戶5228KeDY > 《待分類》