【分享帖】底盘控制 工程实践 底盘任务3
13071
0
19
2018-03-30
工程实践——底盘任务3
工程实践任务3:实现停货区停车,然后上货、卸货。
实现效果GIF如下图所示,请耐心等待显示。
图1
一:压力传感器实现有无货物的判断。
电阻应变式压力传感器。带线端固定 另一端承受压力 输出电压信号。
图2
图称重传感器的使用:
1、平行梁式称重传感器使用时要按悬臂梁方式安装,具体安装方式可以参考图5。
2、传感器的变形量是很微小,在安装、使用过程中要特别注意!不要超载。
3、如果在外力撤除后不能恢复圆形状,发生塑性变形,则传感器就损坏了。
4、传感器有四根线链接外电路,红线为电源正极输入,黑线为电源负极输入,白线为信号输出1,蓝(或者绿)线为信号输出2。
5、为保证精度,一般不要随意调整线长。
安装方法:
1、传感器一端通过螺丝孔固定,另一端保持悬空状态,按标签指示方向施加重力,特别要注意,不要直接按压白色覆胶部分,以免破坏本传感器。
2.全桥结构,四引线,使用简单,加5-10V驱动电压,受力变化直接输出为电压信号。
3.接线方式:红线电压+E,黑线电压-E,绿线信号+S,白线信号-S。
图3
电阻桥式压力传感器的工作原理如下所述:
将应变片黏贴到受力的力敏型弹性元件上,当弹性元器件受力产生变形时,应变片产生相应的变化,进而使电阻阻值发生变化,有力引起的阻值变化转换为电压的变化,通过测量输出电压的数值再通过相应的计算即可得出测量的物体的重量。
图4
HX711模块是一款AD转换模块,采用24位高精度A/D转换芯片HX711,是一款专为高精度电子秤而设计的。输入电路可配置为提供桥压的电桥式(如压力,称重)传感器模式。
串口通讯线由管脚PD_SCK和DOUT组成,用来输出数据,选择输入通道和增益。当数据输出管脚DOUT为高电平时,表明A/D转换器还未准备好输出数据,此时串口时钟输入信号PD_SCK应为低电平。当DOUT从高电平变低电平后,PD_SCK应输入25至27个不等的时钟脉。其中第一个时钟脉冲的上升沿将读出输出24位数据的最高位(MSB),直至第24个时钟脉冲完成,24位输出数据从最高位至最低位逐位输出完成。第25至27个时钟脉冲用来选择下一次A/D转换的输入通道和增益,参见表1。
表1
表1输入通道和增益选择
PD_SCK的输入时钟脉冲数不应少于25或多于27,否则会造成串口通讯错误。当A/D转换器的输入通道或增益改变时,A/D转换器需要4个数据输出周期才能稳定。DOUT在4个数据输出周期后才会从高电平变低电平,输出有效数据。
压力传感器连接线
图5
压力传感器读取参考程序:
uint32_t get_weight(void)
{
uint8_t dt;
uint32_t count = 0;
write_digital_io(DIGI_IO6, 0);//ADSK,给IO6一个低电平。
while(1)
{
read_digital_io(DIGI_IO5, &dt);//读取IO5的电平状态。
if (dt == 0) //如果IO5为低电平,就跳出死循环
break;
}
for (uint8_t i = 0; i < 24; i++)
{
write_digital_io(DIGI_IO6, 1); //ADSK=1;
count = count<<1;
write_digital_io(DIGI_IO6, 0); //ADSK=0;
read_digital_io(DIGI_IO5, &dt);
if(dt) count++;
}
write_digital_io(DIGI_IO6, 1); //ADSK=1;
count = count^0x800000;
write_digital_io(DIGI_IO6, 0); //ADSK=0;
return count;//函数返回值为count
}
重量计算:
weight = 5.0 * get_weight() / 16777215.0;
注意事项
1.所有数字输入管脚,包括RATE,XI和PD_SCK管脚,芯片内均无内置拉高或拉低电阻。这些管脚在使用时不应悬空。
2.建议使用通道A与传感器相连,作为小信号输入通道;通道B用于系统参数检测,如电池电压检测。
3.建议使用PNP管S8550与片内稳压电源电路配合。也可根据需要使用其他MOS或双极晶体管,但应注意稳压电源的稳定性。
4.无论是采用片内稳压电源或系统上其他电源,建议传感器和A/D转换器使用同一模拟供电电源。
5.的输入时钟脉冲数不应少于25或多于27,否则会造成串口通讯错误。
图6
④ 如果安装连接正确,会在Debug模式下获得weight的数据。
文章标签
请问这篇文章对你有用吗?
【分享帖】底盘控制 工程实践 底盘任务3