新聞中心

        EEPW首頁 > 測(cè)試測(cè)量 > 設(shè)計(jì)應(yīng)用 > 大型貨車超載超速實(shí)時(shí)檢測(cè)系統(tǒng)

        大型貨車超載超速實(shí)時(shí)檢測(cè)系統(tǒng)

        作者: 時(shí)間:2014-04-18 來源:網(wǎng)絡(luò) 收藏

        本文引用地址:http://www.104case.com/article/259120.htm

        第四章 模塊設(shè)計(jì)與實(shí)現(xiàn)

        4.1稱重模塊設(shè)計(jì)

        側(cè)重模塊有硬件和軟件部分,硬件部分負(fù)責(zé)采集貨車重量數(shù)據(jù)、車體傾斜角數(shù)據(jù),軟件部分負(fù)責(zé)對(duì)數(shù)據(jù)進(jìn)行預(yù)處理和處理,硬件部分這里不多介紹,主要說軟件部分,對(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ù)無效。

        ****************************************************************/

        #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)說明:

        標(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)說明:

        標(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)文章:傾角傳感器原理


        評(píng)論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 景泰县| 东乡县| 饶阳县| 柞水县| 如东县| 通化县| 始兴县| 浑源县| 涡阳县| 个旧市| 北碚区| 洪雅县| 苍溪县| 江安县| 梅州市| 越西县| 崇仁县| 靖州| 密山市| 贵南县| 寻乌县| 徐汇区| 阿勒泰市| 罗山县| 宜川县| 如皋市| 冷水江市| 黑龙江省| 拉孜县| 通州区| 沁阳市| 吴堡县| 原平市| 邵武市| 麻江县| 渭源县| 宣化县| 东源县| 延长县| 来安县| 资中县|