基于Arduino的hx711压力传感器压力实现(使用42步进电机)
功能:利用HX711模块读取压力值,之后通过步进电机实现压力的反馈。
HX711接线图如图所示。HX711模块的代码详解部分:参见以下两个博客
HX711:https://zhidao.baidu.com/question/264369483509377325.html
https://blog.****.net/github_27587443/article/details/71864003
hx711读数为0.000(最大量程5Kg,小数点厚=后三位有效数字),步进电机按照煤千分位走2步(步进电机1.8°,无细分)的设计进行(百分位20步,十分位200步,个位2000步),附上代码:代码临时改写还有很多问题,应该增加一个中断判断每次的压力量,不应每次使x进行复位,以后有时间会继续修改:
#include <motor.h>
#include <HX711.h>
float Weight = 0;
void setup()
{
Serial.begin(9600);
Init_motor();
Init_Hx711();
Serial.print("Welcome to use!\n");
Get_Maopi();
delay(3000);
}
void loop()
{
delay(100);
int x = 0;
Weight = Get_Weight(); //计算放在传感器上的重物重量
Serial.print(float(Weight/1000),3); //串口显示重量
Serial.print(" kg\n"); //显示单位
Serial.print("\n"); //显示单位
delay(200); //延时1s
x = abs(Weight);
int x_1 = x/100;//x/100 *1 circle
PUT_N_ForwardCircle(x_1);
int x_2 = (x%100)/100; //x%100/10 1/10;
PUT_N_ForwardCircle(x_2);
int x_3 = (((x%100)/10)%10)*2;
PUT_N_Up_Step(x_3);
delay(1000);
PUT_N_BackCircle((x_1)+(x_2));
PUT_N_Down_Step(x_3);
}
最后附上两个库文件:链接:https://pan.baidu.com/s/1633oNp55u8pZXTYYzjswxQ 密码:ivit