找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 24926|回復(fù): 17
收起左側(cè)

基于51單片機(jī)的紅外反射式光電傳感器測速機(jī)的簡易設(shè)計(jì)

  [復(fù)制鏈接]
ID:135102 發(fā)表于 2017-7-1 21:16 | 顯示全部樓層 |閱讀模式
光電傳感器——基于紅外反射式的測速機(jī)

引言

在工程實(shí)踐中,經(jīng)常會遇到各種需要測量轉(zhuǎn)速的場合。轉(zhuǎn)速是電動機(jī)極為重要的一個(gè)狀態(tài)參數(shù),在很多運(yùn)動系統(tǒng)的測控中,都需要對電機(jī)的轉(zhuǎn)速進(jìn)行測量,不論是直流調(diào)速系統(tǒng)還是交流調(diào)速系統(tǒng),只有轉(zhuǎn)速的高精度檢測才能得到高精度的控制系統(tǒng)。迄今為止,測速可分為兩類:模擬電路測速和數(shù)字電路測速。隨著微電子技術(shù)的發(fā)展,計(jì)算機(jī)技術(shù)的廣泛應(yīng)用,出現(xiàn)了以計(jì)算機(jī)為核心的數(shù)字測速裝置。這樣的速度測量裝置測量范圍寬、工作方式靈活多變、適應(yīng)面廣,具有普通數(shù)字測速裝置不可比擬的快速性、精確性和優(yōu)越性。

一:設(shè)計(jì)思路

用一個(gè)紅外發(fā)光二極管和一個(gè)接受紅外光的二極管組成一套光電管。當(dāng)檢測到物表面為黑色時(shí),反射光很弱,接收端檢測到的光線可以忽略,使接收端呈現(xiàn)一種狀態(tài),例如開關(guān)管截止;當(dāng)被檢測物表面為白色時(shí),反射光強(qiáng)烈,發(fā)射端發(fā)射的紅外線被接收端全部接收,使接收端呈現(xiàn)另一種相反的狀態(tài),例如開關(guān)管開通。這兩種相反的狀態(tài)表現(xiàn)在電路中,就是高低電平組成的脈沖信號。由此,我想到用一個(gè)比較器來比較兩種接受到的信號,從而輸出“0”“1”兩種高低電平,并把兩種信號傳給單片機(jī)進(jìn)行統(tǒng)計(jì),然后利用設(shè)定算法進(jìn)行計(jì)算,最后通過數(shù)碼顯示管顯示計(jì)算結(jié)果。

二:所需模塊

本測速系統(tǒng)共有兩個(gè)模塊構(gòu)成,一個(gè)為光電傳感器部分,用于接收光信號并轉(zhuǎn)換為電信號,即高低電平信號;另一個(gè)為單片機(jī)部分,用于接收高低電平信號并通過內(nèi)部計(jì)算,然后再通過數(shù)碼顯示管顯示測出的結(jié)果。

  • 光電傳感器部分

(1)LM339工作原理及管腳圖:

LM339類似于增益不可調(diào)的運(yùn)算放大器。每個(gè)比較器有兩個(gè)輸入端和一個(gè)輸出端。

兩個(gè)輸入端中的一個(gè)稱為同相輸入端,用“+”表示,另一個(gè)稱為反相輸入端,用“-”表示。當(dāng)用作比較兩個(gè)電壓時(shí),任意一個(gè)輸入端加一個(gè)固定電壓做參考電壓(也稱為門限電平,它可選擇LM339輸入共模范圍的任何一點(diǎn)),另一端加一個(gè)待比較的信號電壓,當(dāng)“+”端電壓高于“-”端時(shí),輸出管截止,相當(dāng)于輸出端開路。當(dāng)“-”端電壓高于“+”端時(shí),輸出管飽和,相當(dāng)于輸出端接高電位。兩個(gè)輸入端電壓差別大于10mV就能確保輸出能從一種狀態(tài)可靠地轉(zhuǎn)換到另一種狀態(tài),因此,把LM339用在弱信號檢測等場合是比較理想的。

LM339的輸出端相當(dāng)于一只不接集電極電阻的晶體三極管,在使用時(shí)輸出端到正電源一般須接一只電阻(稱為上拉電阻,選3-15K)。選不同阻值的上拉電阻會影響輸出端高電位的值。因?yàn)楫?dāng)輸出晶體三極管截止時(shí),它的集電極電壓基本上取決于上拉電阻與負(fù)載的值。

下圖(1a)給出了一個(gè)LM399的基本單限比較器。輸入信號Uin為待比較電壓,把它加到同相輸入端,在反相輸入端接一個(gè)參考電壓(門限電平)Ur。當(dāng)輸入電壓Uin>Ur時(shí),輸出為高電平UOH。圖(1b)為其傳輸特性。圖(1c)為LM339的管腳圖。

1.001.jpg 1.002.jpg (c)

圖(1)LM339工作原理圖及管腳圖

(2)整體連線圖:如下圖(2)所示:

1.003.jpg

圖(2) 比較型光電傳感器整體電路圖

在上圖中, LED燈相當(dāng)于一個(gè)紅外線發(fā)射管,JP1是紅外線接收管,接收光強(qiáng)在上面轉(zhuǎn)換成電流,在R上成為電壓信號。當(dāng)光線照射到白色面上時(shí),光線反射強(qiáng)烈,光線照射到黑色面上時(shí),光線反射較弱。因此當(dāng)光照在不同顏色面上時(shí),阻值會發(fā)生明顯的變化。將阻值的變化值與RA1的標(biāo)準(zhǔn)值進(jìn)行比較,就可以從LM339輸出邏輯電平給單片機(jī)。

  • 單片機(jī)部分

(1)單片機(jī)外部連線圖:如下圖(3)所示

1.004.jpg

圖(3)單片機(jī)連線圖

在上接線圖中,可在數(shù)碼管與單片機(jī)之間接上一個(gè)分壓電阻,起到保護(hù)作用。單片機(jī)型號選89C51或89C52都行。在試驗(yàn)板上把圖(1)中的2管腳(邏輯電平輸出管腳)和圖(2)中的12管腳(中斷輸入管腳)連接,即可構(gòu)成整個(gè)測速系統(tǒng)。

(2)單片機(jī)內(nèi)部主程序流程圖

主程序是控制單片機(jī)系統(tǒng)按照預(yù)定的操作方式運(yùn)轉(zhuǎn),它完成人機(jī)對話和各種控制功能,是單片機(jī)系統(tǒng)程序的框架。主程序的主要任務(wù)是完成系統(tǒng)自檢、初始化、處理鍵盤命令等功能。在本實(shí)驗(yàn)中,未涉及到鍵盤命令。

本系統(tǒng)的主程序流程如下圖(4)所示。

1.005.jpg     1.006.jpg

    圖(4)主程序流程圖           圖(5)外部中斷0 中斷程序流程圖

    在該測速系統(tǒng)的程序中,主程序執(zhí)行的過程中共執(zhí)行了3 個(gè)中斷程序,即外部中斷0 中斷、外部脈沖計(jì)數(shù)0 中斷和定時(shí)器1 中斷。圖(5)所示為外部中斷0 中斷程序流程圖。外部中斷0 中斷程序主要用于測速起始。當(dāng)測速開始時(shí),執(zhí)行外部中斷0 中斷,外部脈沖計(jì)數(shù)加1,并判斷T0、T1 是否開啟,若沒有開啟則開啟,再判斷1S 定時(shí)到了沒有,若1S 定時(shí)到計(jì)算轉(zhuǎn)速,并關(guān)INT0、T0、T1 軟件清零。

圖(6)為T0 中斷程序流程圖。T0 對內(nèi)部時(shí)鐘脈沖計(jì)數(shù), T0 為8 位定時(shí)器,1S 定時(shí)的內(nèi)部時(shí)鐘脈沖超過了T0 上限,故采用軟件延時(shí)計(jì)數(shù)。圖(7)為T1 中斷程序流程圖,T1 定時(shí)1S, 當(dāng)一秒定時(shí)到,則置位標(biāo)志位。

1.007.jpg                    1.008.jpg

圖(6)T0 中斷程序流程圖           圖(7)T1 中斷程序流程圖

三:測速原理

首先,選一小型直流電機(jī),在其軸上固定一張圓形硬紙片,以此來代替被測物。其次把此圓形紙片平均分成6等分,并把其中的三塊涂黑(具體見實(shí)物)。再次,用光電管正對圓形紙片。最后,啟動整個(gè)系統(tǒng)就可以進(jìn)行測速了。

因?yàn)楫?dāng)紅外線照到面黑色時(shí),反射光很弱,接收端檢測到的光線可以忽略,當(dāng)照到白色面時(shí),反射光強(qiáng)烈,發(fā)射端發(fā)射的紅外線幾乎被接收端全部接收,因此,檢測到的信號經(jīng)過比較電路輸出后,會給單片機(jī)輸入高低兩種電平。所以,在編程中,假定在1S時(shí)間內(nèi)共檢測到n個(gè)低電平信號,那么此電機(jī)的轉(zhuǎn)速為 1.009.jpg 。

四:整體電路圖及實(shí)物圖

見附一圖所示。

五:所需器件

名稱

型號

個(gè)數(shù)

價(jià)格

51單片機(jī)

STC89C51RC

1件

9元

光電管


1套

5元

四電壓比較器

LM339

1件

1.5元

四位數(shù)碼顯示管

12管腳

1件

5元

1/4電阻

0.47K,1K,3.3K,10K,

各10個(gè)(備用)

0.8元

電位器

103(10K)

2個(gè)

1元

瓷片電容

22PF,104(100nF)

各10個(gè)(備用)

2元

萬用版


1塊

3元

電池盒


1個(gè)

1元

PIC座

20,40腳

(2+1)個(gè)

1元

排針

40PIN

2排

1元

晶振

12M

1個(gè)

1元

復(fù)位開關(guān)


1個(gè)

0.1元

LED燈


5個(gè)

0.5元

共計(jì):

31.9元

六:總結(jié)

本設(shè)計(jì)的光電傳感器測速機(jī)能夠快速檢測到電機(jī)橫截面上的黑白相間的面,并通過單片機(jī)編寫測速程序,用數(shù)碼管顯示。但本設(shè)計(jì)的測速系統(tǒng)的整體性能只能滿足一般小型電機(jī)和一些要求不高的測速,并且在其測速時(shí),還需要在被測物上安裝一個(gè)黑白相間的圓盤,這對某些被測物體來說是不太好實(shí)現(xiàn)的,即其是存在一定的局限性的。除此之外,其精確度也不盡完美。

但整體來說,此測速系統(tǒng)還是具有可行性的。當(dāng)我們需要知道某電機(jī)的轉(zhuǎn)速而又缺少測速裝置時(shí),就可以用此套系統(tǒng)來進(jìn)行測速。它的簡單性,方便性和快捷性也是某些測速裝置不可比擬的。至于其缺點(diǎn),由于設(shè)計(jì)者水平目前有限,暫不能完美解決,只待以后對此方面有較多理解后在解決,同時(shí)也希望對此精通的師生給予指點(diǎn),從而進(jìn)行改進(jìn)測速方法,提高整個(gè)系統(tǒng)的測速性能。

附一:整體電路圖

1.010.jpg

附二:程序源代碼

  1. #include
  2. #define uint unsigned int
  3. uint temp,qian,bai,shi,ge,aa,n;
  4. sbit dula=P0;
  5. sbit wela=P1;
  6. sbit zd=P3^2;
  7. uint code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};

  8. void display(uint qian,uint bai,uint shi,uint ge);            
  9. void delay (uint z);
  10. void init();

  11. void main()
  12. {            
  13.               EA=1;//開總中斷
  14.               EX0=1;//開外部中斷0
  15.               init();//初始化子程序
  16.               while(1)
  17.               {
  18.                 display(qian,bai,shi,ge);
  19.               }
  20. }

  21. void delay(uint z)
  22. {
  23.               uint x,y;
  24.               for(x=z;x>0;x--)
  25.                             for(y=110;y>0;y--);
  26. }

  27. void display(uint qian,uint bai,uint shi,uint ge)
  28. {
  29.               P0=table[qian];
  30.               P1=0xf7;
  31.               delay(1);
  32.             
  33.               P0=table[bai];
  34.               P1=0xfb;
  35.               delay(1);
  36.             
  37.               P0=table[shi];
  38.               P1=0xfd;
  39.               delay(1);
  40.             
  41.               P0=table[ge];
  42.               P1=0xfe;
  43.               delay(1);
  44. }

  45. void exter0() interrupt 0
  46. {
  47.     n++;
  48.               while(zd==0);                           
  49. }

  50. void init()
  51. {            
  52.               wela=0;
  53.               dula=0;
  54.               temp=0;
  55.               TMOD=0x01;
  56.               TCON|=0X04;
  57.               TH0=(65536-50000)/256;
  58.               TL0=(65536-50000)%256;
  59.               EA=1;
  60.               ET0=1;
  61.               TR0=1;            
  62. }

  63. timer0() interrupt 1
  64. {
  65.               TH0=(65536-50000)/256;
  66.               TL0=(65536-50000)%256;
  67.               aa++;
  68.               if(aa==20)
  69.               {
  70.                 aa=0;
  71.                 temp=20*n;
  72.                 n = 0;
  73. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復(fù)制代碼

完整論文下載(word格式 可編輯):

基于51單片機(jī)的紅外反射式光電傳感器測速機(jī)的簡易設(shè)計(jì).doc (9.44 MB, 下載次數(shù): 656)



評分

參與人數(shù) 2黑幣 +10 收起 理由
嘖嘖嘖嘖嘖嘖嘖 + 5 贊一個(gè)!
多德 + 5 很給力!

查看全部評分

回復(fù)

使用道具 舉報(bào)

ID:314925 發(fā)表于 2018-4-23 22:34 | 顯示全部樓層
有仿真圖碼
回復(fù)

使用道具 舉報(bào)

ID:333232 發(fā)表于 2018-5-18 20:06 | 顯示全部樓層
MARK   
回復(fù)

使用道具 舉報(bào)

ID:371957 發(fā)表于 2018-7-15 14:37 | 顯示全部樓層
569852038@qq.com樓主能把附件發(fā)郵箱嗎?謝謝
回復(fù)

使用道具 舉報(bào)

ID:397429 發(fā)表于 2018-9-13 20:10 | 顯示全部樓層
有沒有仿真圖?可以發(fā)我郵箱840523598@qq.com嗎謝謝

回復(fù)

使用道具 舉報(bào)

ID:323384 發(fā)表于 2018-11-30 22:09 | 顯示全部樓層
請問有實(shí)物圖嗎?可以發(fā)一下嗎?謝謝你!
回復(fù)

使用道具 舉報(bào)

ID:457523 發(fā)表于 2019-1-2 11:05 | 顯示全部樓層
有沒有protes的仿真啊
回復(fù)

使用道具 舉報(bào)

ID:463161 發(fā)表于 2019-1-6 17:39 | 顯示全部樓層
本帖最后由 hejianjun 于 2019-1-22 15:50 編輯

感謝,資料很有用
回復(fù)

使用道具 舉報(bào)

ID:485625 發(fā)表于 2019-3-13 15:30 | 顯示全部樓層
這程序能不能稍微解釋一下呀 看不懂
回復(fù)

使用道具 舉報(bào)

ID:508262 發(fā)表于 2019-4-9 21:00 | 顯示全部樓層
這個(gè)程序怎么樣
回復(fù)

使用道具 舉報(bào)

ID:433690 發(fā)表于 2019-5-5 13:29 | 顯示全部樓層
贊一個(gè)
回復(fù)

使用道具 舉報(bào)

ID:509185 發(fā)表于 2019-5-16 00:05 | 顯示全部樓層
為什么運(yùn)行不出來?求解
回復(fù)

使用道具 舉報(bào)

ID:599401 發(fā)表于 2019-8-24 10:10 來自手機(jī) | 顯示全部樓層
學(xué)習(xí)了,感謝分享
回復(fù)

使用道具 舉報(bào)

ID:634694 發(fā)表于 2019-11-3 11:28 | 顯示全部樓層
有沒有圖啊
回復(fù)

使用道具 舉報(bào)

ID:634898 發(fā)表于 2019-11-3 20:16 | 顯示全部樓層
單片機(jī)大牛 51黑有您更精彩
回復(fù)

使用道具 舉報(bào)

ID:643578 發(fā)表于 2019-11-17 13:03 來自手機(jī) | 顯示全部樓層
感謝分享
回復(fù)

使用道具 舉報(bào)

ID:847179 發(fā)表于 2020-11-22 10:11 | 顯示全部樓層
MARK  
回復(fù)

使用道具 舉報(bào)

ID:65237 發(fā)表于 2020-11-25 21:12 | 顯示全部樓層
做好標(biāo)記 下次好用
回復(fù)

使用道具 舉報(bào)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

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

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

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