找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 4626|回復(fù): 12
打印 上一主題 下一主題
收起左側(cè)

用紅外測(cè)速度

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:260698 發(fā)表于 2018-1-3 15:49 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
用到兩個(gè)紅外傳感器,第一個(gè)檢測(cè)到就開始計(jì)時(shí),第二個(gè)紅外檢測(cè)到時(shí)就停止計(jì)時(shí),目前主要問(wèn)題是怎么計(jì)算這個(gè)時(shí)間的程序。傳感器的信號(hào)下接到p2.0和p2.1。

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:97438 發(fā)表于 2018-1-3 17:15 | 只看該作者
//你要的計(jì)時(shí)最長(zhǎng)時(shí)間是多少?還有計(jì)時(shí)的精度要是多少?這里給你寫個(gè)簡(jiǎn)單的程序。
//有不懂可以一起討論一下。
#include"STC15F2K60S2.H"
#define uint unsigned int
#define uchar unsigned char
sbit        SensorA        =P2^0;
sbit        SensorB        =P2^1;
uint        CNT=0;

void Timer0Init(void)                //1毫秒@12.000MHz                //計(jì)時(shí)精度1ms
{
        AUXR |= 0x80;                //定時(shí)器時(shí)鐘1T模式
        TMOD &= 0xF0;                //設(shè)置定時(shí)器模式
        TL0 = 0x20;                //設(shè)置定時(shí)初值
        TH0 = 0xD1;                //設(shè)置定時(shí)初值
        TF0 = 0;                //清除TF0標(biāo)志
        TR0 = 1;                //定時(shí)器0開始計(jì)時(shí)
        ET0=1;
}

void time_r1_() interrupt 1
{
        CNT++;
        if(CNT==60000)                                                                //最大計(jì)時(shí)量60000ms
        {
                CNT=0;
        }
}

void main()
{
        uint Resust=0;
        Timer0Init();
        EA=1;
        while(1)
        {
                if(SensorA==1)                                                                //當(dāng)傳感器a檢測(cè)到時(shí)
                {
                        CNT=0;                                                                                        //從0開始計(jì)時(shí)
                }
                if(SensorB==1)                                                                //當(dāng)傳感器B檢測(cè)到時(shí)
                {
                        Resust=CNT;                                                                        //存儲(chǔ)計(jì)數(shù)結(jié)果
                }

        }
}
回復(fù)

使用道具 舉報(bào)

板凳
ID:97438 發(fā)表于 2018-1-3 17:16 | 只看該作者
測(cè)速度??和用霍爾傳感器測(cè)速差不多。上面給你寫的是計(jì)時(shí)的,不適合的話再說(shuō)~~~
回復(fù)

使用道具 舉報(bào)

地板
ID:7485 發(fā)表于 2018-1-3 18:59 | 只看該作者
檢測(cè)到第一個(gè)紅外傳感器就開始計(jì)時(shí)(或啟動(dòng)定時(shí)器),檢測(cè)到第二個(gè)傳感器信號(hào)就停止計(jì)時(shí),就可以讀出過(guò)程時(shí)間了。如果是成品的傳感器的輸出是高低電平,可以直接作為單片機(jī)的輸入信號(hào),和按鍵的差不多。如果傳感器的輸出電壓不是5V,可以分壓再接入。
回復(fù)

使用道具 舉報(bào)

5#
ID:260698 發(fā)表于 2018-1-3 21:24 | 只看該作者
luoluoluo136 發(fā)表于 2018-1-3 17:16
測(cè)速度??和用霍爾傳感器測(cè)速差不多。上面給你寫的是計(jì)時(shí)的,不適合的話再說(shuō)~~~

謝謝你啊,計(jì)時(shí)時(shí)間大概0-5s。用手模擬。
回復(fù)

使用道具 舉報(bào)

6#
ID:260698 發(fā)表于 2018-1-3 21:24 | 只看該作者
ahshmj 發(fā)表于 2018-1-3 18:59
檢測(cè)到第一個(gè)紅外傳感器就開始計(jì)時(shí)(或啟動(dòng)定時(shí)器),檢測(cè)到第二個(gè)傳感器信號(hào)就停止計(jì)時(shí),就可以讀出過(guò)程時(shí) ...

主要是程序不會(huì)寫,51小白。
回復(fù)

使用道具 舉報(bào)

7#
ID:260698 發(fā)表于 2018-1-3 21:30 | 只看該作者
ahshmj 發(fā)表于 2018-1-3 18:59
檢測(cè)到第一個(gè)紅外傳感器就開始計(jì)時(shí)(或啟動(dòng)定時(shí)器),檢測(cè)到第二個(gè)傳感器信號(hào)就停止計(jì)時(shí),就可以讀出過(guò)程時(shí) ...

對(duì),傳感器是高低電平,我需要程序得到時(shí)間再轉(zhuǎn)換成速度(路程已經(jīng))
回復(fù)

使用道具 舉報(bào)

8#
ID:266627 發(fā)表于 2018-1-5 18:25 | 只看該作者
設(shè)置一個(gè)函數(shù),專門用于更新系統(tǒng)時(shí)間吧,每10ms中斷一次,每次加1.

這樣第一個(gè)傳感器發(fā)生中斷時(shí),記錄下時(shí)間T0,第二個(gè)傳感器記錄為T1。
兩者相減,就是兩者差。

這樣好處是其他函數(shù)也可利用系統(tǒng)時(shí)間,不用時(shí)時(shí)想著定時(shí)器中斷這些底層的事。
回復(fù)

使用道具 舉報(bào)

9#
ID:290576 發(fā)表于 2019-1-17 21:10 | 只看該作者
樓主 可以把電路圖分享下不?
回復(fù)

使用道具 舉報(bào)

10#
ID:679068 發(fā)表于 2021-6-2 19:20 | 只看該作者
ahshmj 發(fā)表于 2018-1-3 18:59
檢測(cè)到第一個(gè)紅外傳感器就開始計(jì)時(shí)(或啟動(dòng)定時(shí)器),檢測(cè)到第二個(gè)傳感器信號(hào)就停止計(jì)時(shí),就可以讀出過(guò)程時(shí) ...

我寫出來(lái),似乎計(jì)算不了~~
回復(fù)

使用道具 舉報(bào)

11#
ID:420836 發(fā)表于 2021-6-3 08:30 | 只看該作者
這將使用紅外二極管對(duì)來(lái)模擬飛行時(shí)間測(cè)量。 它類似于兩個(gè)接近開關(guān)。 當(dāng)?shù)谝粋(gè)開關(guān)被觸發(fā)時(shí),啟動(dòng)定時(shí)器,當(dāng)?shù)诙䝼(gè)開關(guān)被觸發(fā)時(shí)停止定時(shí)器。 兩個(gè)開關(guān)之間的距離除以時(shí)間,你就得到了速度。
回復(fù)

使用道具 舉報(bào)

12#
ID:775776 發(fā)表于 2021-6-3 17:51 | 只看該作者
精度是個(gè)問(wèn)題 stm32有現(xiàn)成的 計(jì)算脈沖寬度的歷程 精度是us
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表