大型貨車超載超速實(shí)時(shí)檢測(cè)系統(tǒng)
第四章 模塊設(shè)計(jì)與實(shí)現(xiàn)
4.1稱重模塊設(shè)計(jì)
側(cè)重模塊有硬件和軟件部分,硬件部分負(fù)責(zé)采集貨車重量數(shù)據(jù)、車體傾斜角數(shù)據(jù),軟件部分負(fù)責(zé)對(duì)數(shù)據(jù)進(jìn)行預(yù)處理和處理,硬件部分這里不多介紹,主要說(shuō)軟件部分,對(duì)預(yù)處理數(shù)據(jù)的處理流程如下:
圖4.1 數(shù)據(jù)處理流程
(1)預(yù)處理程序:
/*******************************************************************
2010.6.28定。測(cè)重程序:weight.c。
IOA0為串行讀入數(shù)據(jù)位,IAO1為脈沖發(fā)送位。
精度:16位,一位符號(hào)位。一次連續(xù)讀出五組轉(zhuǎn)換的數(shù)據(jù)放在weight[5]中,經(jīng)觀察,前兩個(gè)數(shù)據(jù)無(wú)效。
****************************************************************/
#include SPCE061A.h
void main()
{
long count[4],weight[4][8],weightA[4];//weightA測(cè)量的3到8哥數(shù)據(jù)的平均值
unsigned int n,k=0,i;
long weightS=0;
*P_IOA_Dir=0x0010;//A1口輸出脈沖,A0口輸入數(shù)據(jù)
*P_IOA_Attrib=0x001F;
*P_IOA_Data=0x0000; //設(shè)置PD_SCK為低,啟動(dòng)HX711的A/DC和和壓力傳感器
for(i=0;i4;i++)
for(n=0;n8;n++) //初始化weight[]
weight[i][n]=0;
for(n=0;n4;n++)
weightA[n]=0;
for(i=0;i4;i++)
count[i]=0;
while(k=8) //只讀取五個(gè)數(shù)據(jù),放在weight數(shù)組中
{
/等待P_IOA0收到DOUT的第一個(gè)低電平,轉(zhuǎn)換完成
while(*P_IOA_Data0x0002) *P_Watchdog_Clear = C_WDTCLR;
for(n=1;n=25;n++) //25個(gè)脈沖
{
*P_IOA_Data=0x0010; //上升沿
*P_Watchdog_Clear = C_WDTCLR;
*P_IOA_Data=0x0000; //下降沿
if(n=16) //接收16位
{
for(i=0;i4;i++)
{
count[i]=count[i]1; //左移1位
count[i]=count[i]|((*P_IOA_Data(0x0001i))>>i); //串行接收一位
if(n==1count[i]) //若第一位數(shù)據(jù)為1,則以負(fù)數(shù)處理
count[i]=0xffffffff;
}
}
}//for(n=1;n=25;n++) //25個(gè)脈沖
for(i=0;i4;i++)
weight[i][k]=count[i];
k++;
for(i=0;i4;i++)
count[i]=0;
*P_Watchdog_Clear = C_WDTCLR;
}//while(k=4),只讀取五個(gè)數(shù)據(jù),放在weight數(shù)組中
for(n=0;n4;n++)
{
for(i=2;i8;i++)
weightA[n]=weight[n][i]+weightA[n];
weightA[n]=weightA[n]/7-198;
}
for(n=0;n4;n++)
weightS=weightS+weightA[n];
weightS=weightS/sin(A);//用傾角傳感器測(cè)量角度
*P_IOA_Data=0x0002; //設(shè)置PD_SCK為高,60um,HX711和和壓力傳感器進(jìn)入斷電狀態(tài)
return weightA;
}
(2)主程序相關(guān)程序流程圖
運(yùn)動(dòng)前超載處理流程圖如圖4.2:
相關(guān)說(shuō)明:
標(biāo)志K
K= -1 靜止且不超載
K=0 初次靜止超載
K=1 運(yùn)動(dòng)超載
K=2 停車后超載
countR 取數(shù)據(jù)次數(shù)
countW, 超載次數(shù)
v 車速度
m 車載重量
tR 車啟動(dòng)時(shí)間
tS 停車時(shí)間
圖4.2 運(yùn)動(dòng)前超載處理流程圖
運(yùn)動(dòng)停車后超載處理程序圖如圖4.3:
運(yùn)動(dòng)中超載處理流程圖如圖4.4:
相關(guān)說(shuō)明:
標(biāo)志K
K= -1 靜止且不超載
K=0 初次靜止超載
K=1 運(yùn)動(dòng)超載
K=2 停車后超載
countR 取數(shù)據(jù)次數(shù)
countW, 超載次數(shù)
v 車速度
m 車載重量
tR 車啟動(dòng)時(shí)間
tS 停車時(shí)間
圖4.3 運(yùn)動(dòng)后停車超載處理程序圖
圖4.4 運(yùn)動(dòng)中超載處理流程圖小車運(yùn)動(dòng)前超載處理程序如下[25]:
稱重傳感器相關(guān)文章:稱重傳感器原理 傾角傳感器相關(guān)文章:傾角傳感器原理相關(guān)推薦
技術(shù)專區(qū)
- FPGA
- DSP
- MCU
- 示波器
- 步進(jìn)電機(jī)
- Zigbee
- LabVIEW
- Arduino
- RFID
- NFC
- STM32
- Protel
- GPS
- MSP430
- Multisim
- 濾波器
- CAN總線
- 開(kāi)關(guān)電源
- 單片機(jī)
- PCB
- USB
- ARM
- CPLD
- 連接器
- MEMS
- CMOS
- MIPS
- EMC
- EDA
- ROM
- 陀螺儀
- VHDL
- 比較器
- Verilog
- 穩(wěn)壓電源
- RAM
- AVR
- 傳感器
- 可控硅
- IGBT
- 嵌入式開(kāi)發(fā)
- 逆變器
- Quartus
- RS-232
- Cyclone
- 電位器
- 電機(jī)控制
- 藍(lán)牙
- PLC
- PWM
- 汽車電子
- 轉(zhuǎn)換器
- 電源管理
- 信號(hào)放大器
評(píng)論