稱重傳感器hX711 的頭文件,含實例
Hx711 KEYWORD1
setScale KEYWORD2
setOffset KEYWORD2
getValue KEYWORD2
getAverageValue KEYWORD2
getWeight KEYWORD2
0.png (39.43 KB, 下載次數(shù): 183)
下載附件
2017-5-26 16:16 上傳
Arduino程序:
HX711.h頭文件:
- #ifndef HX711_h
- #define HX711_h
- #include "Arduino.h"
- class Hx711
- {
- private:
- int DOUT;//定義數(shù)據(jù)引腳
- int SCK;//定義時鐘引腳
- float scale;//定義比例系數(shù)
- long offset;//定義補償值
- public:
- Hx711(int IO_DOUT,int IO_SCK);//構(gòu)造函數(shù)
- void setScale(float IO_scale);//設(shè)置比例系數(shù)
- void setOffset(long IO_offset);//設(shè)置補償值
- long getValue();//采集一次ADC值
- long getAverageValue(char IO_times);//采集ADC平均值
- float getWeight(char IO_times);//得出重量值
- };
- #endif
復(fù)制代碼
HX711.cpp 文件:
- #include "HX711.h"
- #include "Arduino.h"
- //int DOUT;//定義數(shù)據(jù)引腳
- //int SCK;//定義時鐘引腳
- //float scale;//定義比例系數(shù)
- //long offset;//定義補償值
- //int times;//定義采集次數(shù)
- Hx711::Hx711(int IO_DOUT,int IO_SCK)//構(gòu)造函數(shù)
- {
- DOUT = IO_DOUT;
- SCK = IO_SCK;
- pinMode(SCK, OUTPUT);//設(shè)置IO口工作方式
- pinMode(DOUT, INPUT);
- }
- void Hx711::setScale(float IO_scale)//設(shè)置比例系數(shù)
- {
- scale = IO_scale;
- }
- void Hx711::setOffset(long IO_offset)//設(shè)置補償值
- {
- offset = IO_offset;
- }
- long Hx711::getValue()//采集一次ADC值
- {
- unsigned long Count;
- unsigned char i;
- digitalWrite(SCK,LOW);
- Count = 0;
- while(digitalRead(DOUT) == 1);//低電平時數(shù)據(jù)可以輸出
- for(i=0;i<24;i++)//循環(huán)讀取數(shù)據(jù)
- {
- digitalWrite(SCK,HIGH);
- Count = Count<<1;
- digitalWrite(SCK,LOW);
- if(digitalRead(DOUT) == 1) Count++;//最低位置1
- }
- digitalWrite(SCK,HIGH);
- Count = Count^0x800000;//最高位置0
- digitalWrite(SCK,LOW);//128增益
- return Count;
- }
- long Hx711::getAverageValue(char IO_times)//采集ADC平均值
- {
- long sum=0;
- char i;
- for(i=0;i<IO_times;i++)
- {
- sum += getValue();
- }
- return sum/IO_times;
- ……………………
- …………限于本文篇幅 余下代碼請從51黑下載附件…………
復(fù)制代碼
下載:
HX711.zip
(8.6 KB, 下載次數(shù): 297)
2017-5-26 09:39 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|