用Arduino读取HX711应变片专用模块
HX711模塊是內置信號放大的24位有符號差分模/數(A/D)轉換模塊。它內置了最大128倍增益,能夠把微小的信號(幾mV)進行量化。HX711有2路通道(A通道與B通道),通信過程簡單,但是采樣率比較低(10Hz/80Hz),廣泛應用于電子秤等使用應變片進行壓力或拉力測量場所。
HX711的輸入電路以橋式電路為主,經典芯片外圍電路如下圖所示:
HX711模塊給的實例程序大部分是51單片機的程序,博主對此進行了翻譯,寫出了HX711的Arduino驅動程序,以下為程序內容:
uint8_t HX_SCK = D3;
uint8_t HX_DT = D4;
long count0;
void setup() {
? // put your setup code here, to run once:
? Serial.begin(115200);
? pinMode(HX_SCK, OUTPUT);
? pinMode(HX_DT, INPUT);
? ReadCount();
? delay(100);
? count0 = 0;
? for(int i=0; i<8; i++)
??? count0 += ReadCount();
? count0 /= 8;
}
void loop() {
? // put your main code here, to run repeatedly:
? long count = ReadCount() - count0;
? Serial.println(count);
? delay(100);
}
long ReadCount()
{
? digitalWrite(HX_SCK, LOW);
? while(digitalRead(HX_DT));
? unsigned long count = 0;
? for(int i=0; i<24; i++)
? {
??? digitalWrite(HX_SCK, HIGH);
??? count <<= 1;
??? digitalWrite(HX_SCK, LOW);
??? if(digitalRead(HX_DT)) count |= 1;
? }
? digitalWrite(HX_SCK, HIGH);
? if(count & 0x00800000) count |= 0xFF000000;
? digitalWrite(HX_SCK, LOW);
? return (long)count;
}
總結
以上是生活随笔為你收集整理的用Arduino读取HX711应变片专用模块的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 正弦波发生器的设计
- 下一篇: 谈谈 Ops(一):我的运维经历