新聞中心

        EEPW首頁 > 測試測量 > 設計應用 > 大型貨車超載超速實時檢測系統

        大型貨車超載超速實時檢測系統

        作者: 時間:2014-04-18 來源:網絡 收藏

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

        第四章 模塊設計與實現

        4.1稱重模塊設計

        側重模塊有硬件和軟件部分,硬件部分負責采集貨車重量數據、車體傾斜角數據,軟件部分負責對數據進行預處理和處理,硬件部分這里不多介紹,主要說軟件部分,對預處理數據的處理流程如下:

        圖4.1 數據處理流程

        (1)預處理程序:

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

        2010.6.28定。測重程序:weight.c。

        IOA0為串行讀入數據位,IAO1為脈沖發送位。

        精度:16位,一位符號位。一次連續讀出五組轉換的數據放在weight[5]中,經觀察,前兩個數據無效。

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

        #include SPCE061A.h

        void main()

        {

        long count[4],weight[4][8],weightA[4];//weightA測量的3到8哥數據的平均值

        unsigned int n,k=0,i;

        long weightS=0;

        *P_IOA_Dir=0x0010;//A1口輸出脈沖,A0口輸入數據

        *P_IOA_Attrib=0x001F;

        *P_IOA_Data=0x0000; //設置PD_SCK為低,啟動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) //只讀取五個數據,放在weight數組中

        {

        /等待P_IOA0收到DOUT的第一個低電平,轉換完成

        while(*P_IOA_Data0x0002) *P_Watchdog_Clear = C_WDTCLR;

        for(n=1;n=25;n++) //25個脈沖

        {

        *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]) //若第一位數據為1,則以負數處理

        count[i]=0xffffffff;

        }

        }

        }//for(n=1;n=25;n++) //25個脈沖

        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),只讀取五個數據,放在weight數組中

        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);//用傾角傳感器測量角度

        *P_IOA_Data=0x0002; //設置PD_SCK為高,60um,HX711和和壓力傳感器進入斷電狀態

        return weightA;

        }

        (2)主程序相關程序流程圖

        運動前超載處理流程圖如圖4.2:

        相關說明:

        標志K

        K= -1 靜止且不超載

        K=0 初次靜止超載

        K=1 運動超載

        K=2 停車后超載

        countR 取數據次數

        countW, 超載次數

        v 車速度

        m 車載重量

        tR 車啟動時間

        tS 停車時間

        圖4.2 運動前超載處理流程圖

        運動停車后超載處理程序圖如圖4.3:

        運動中超載處理流程圖如圖4.4:

        相關說明:

        標志K

        K= -1 靜止且不超載

        K=0 初次靜止超載

        K=1 運動超載

        K=2 停車后超載

        countR 取數據次數

        countW, 超載次數

        v 車速度

        m 車載重量

        tR 車啟動時間

        tS 停車時間

        圖4.3 運動后停車超載處理程序圖

        圖4.4 運動中超載處理流程圖小車運動前超載處理程序如下[25]

        稱重傳感器相關文章:稱重傳感器原理
        傾角傳感器相關文章:傾角傳感器原理


        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 阜新市| 灵武市| 沾化县| 酒泉市| 泾川县| 新野县| 琼中| 商水县| 连山| 五大连池市| 永清县| 延津县| 南乐县| 天柱县| 辽阳县| 东阳市| 沈丘县| 东至县| 金溪县| 龙口市| 利津县| 辽中县| 新源县| 宜君县| 廉江市| 花垣县| 绥滨县| 平山县| 华蓥市| 嘉善县| 曲沃县| 甘谷县| 衡阳县| 读书| 广昌县| 嵩明县| 香格里拉县| 海宁市| 万源市| 六枝特区| 五大连池市|