当前位置 - 股票行情交易網 - 股票行情 - 由光電傳感器感應的單片機控制電動機系統

由光電傳感器感應的單片機控制電動機系統

樓主妳這裏的光電開關又叫光電對管(壹個紅外發射管和壹個基極內接的感光三極管)?因為這是循跡小車我選用rpr220,我以上傳電路圖

我補充壹句光電耦合器原理也類似光電對管只不過把發光管和感光管鑲嵌在內部,而且值得註意的是光電耦合器規格只有多少電壓的,我沒有聽說有多少電流的,要用光耦還不如用三極管更直接。其實不推薦使用光耦做驅動,我的電路就是使用l298n驅動12v電機

順便說壹下,電路圖裏有壹個電機接壹個電容主要是針對電機調速,而我的電機靈敏度不好,加壹個電容起緩沖作用,而l298芯片的電路典型法中沒有。

我最近做了個循跡小車結題報告如下。。。

其實是否用光電隔離取決於妳驅動的電機的電流大小如果電流不到1安不用光電耦合也行。。。光耦驅動好像不行,不太穩定

測速用碼盤的話最好做的越密越好,否則實際運行中輪子會晃動等等很多原因使結果誤差很大,因為壹般光電開關都會有聚光器,很小的晃動都能感覺到

循跡小車

制作人:李靜

摘要:通過制作小車可以加深對單片機控制的熟練程度,同時初步學習項目開發的過程。

小車按照給定的路線行走,有定時,顯示運行時間,計時,粗測行走距離等功能。

壹、?設計任務:

1、設計要求

(1)自動尋跡小車開始處於設置模式下,通過按鍵設置運行時間,完成設置時間後,按下開始鍵小車啟動,同時顯示當前運行的時間。

(2)小車按指定路線運行,自動區分直線軌道和彎路軌道,在指定彎路處拐彎,實現靈活前進、轉彎等功能。

(3)小車行走在預設的時間後,自動停止,數碼管顯示行走的時間,3秒後顯示行走距離。

(4)中途可以按右鍵強制停止,提前結束,顯示行走時間,距離。

2、小車循跡的原理

這裏的循跡是指小車在白色地板上循黑線行走,通常采取的方法是紅外探測法。

紅外探測法,即利用紅外線在不同顏色的物體表面具有不同的反射性質的特點,在小車行駛過程中不斷地向地面發射紅外光,當紅外光遇到白色紙質地板時發生漫反射,反射光被裝在小車上的接收管接收;如果遇到黑線則紅外光被吸收,小車上的接收管接收不到紅外光。單片機就是否收到反射回來的紅外光為依據來確定黑線的位置和小車的行走路線。紅外探測器探測距離有限,壹般最大不應超過3cm。

二、?方案論證:

根據設計要求,本系統主要由控制器模塊、電源模塊、尋跡傳感器模塊、直流電機及其驅動模塊、電壓比較模塊等模塊構成。

為較好的實現各模塊的功能,我們分別設計了幾種方案並分別進行了論證。

3.1車體設計

方案1:購買玩具電動車。購買的玩具電動車具有組裝完整的車架車輪、電機及其驅動電路。但是壹般的說來,玩具電動車具有如下缺點:首先,這種玩具電動車由於裝配緊湊,使得各種所需傳感器的安裝十分不方便。其次,這種電動車壹般都是前輪轉向後輪驅動,不能適應該題目的方格地圖,不能方便迅速的實現原地保持坐標轉90度甚至180度的彎角。再次,玩具電動車的電機多為玩具直流電機,力矩小,空載轉速快,負載性能差,不易調速。而且這種電動車壹般都價格不菲。因此我們放棄了此方案。

方案2:自己制作電動車。經過反復考慮論證,我們制定了左右兩輪分別驅動,前萬向輪轉向的方案。即左右輪分別用兩個轉速和力矩基本相同的直流電機進行驅動,車體首部裝壹個萬向輪。由此可以輕松的實現小車坐標不變的90度轉彎。

在安裝時我們保證兩個驅動電機同軸。當小車前進時,左右兩驅動輪與前萬向輪形成了三點結構。這種結構使得小車在前進時比較平穩,可以避免出現後輪過低而使左右兩驅動輪驅動力不夠的情況。為了防止小車重心的偏移,前萬向輪起支撐作用。

對於車架材料的選擇,我們經過比較選擇了鋁合金。用有鋁合金做的車架比塑料車架更加牢固,比鐵制小車更輕便,美觀。

3.2控制器模塊

方案1:采用stc宏晶公司的stc89c52單片機作為主控制器。stc89c5是壹個低功耗,高可靠性,超低價,無法解密,高性能的8位單片機,片內含32k空間的可反復擦寫100,000次的Flash只讀存儲器,?32個IO口,且stc系列的單片機可以在線編程、調試,方便地實現程序的下載與整機的調試。

從方便使用的角度考慮,我們選擇了此方案。

3.3電源模塊

方案1:采用12V蓄電池為直流電機供電,將12V電壓降壓、穩壓後給單片機系統和其他芯片供電。蓄電池具有較強的電流驅動能力以及穩定的電壓輸出性能。雖然蓄電池的體積過於龐大,在小型電動車上使用極為不方便,但由於我們的車體設計時留出了足夠的空間,並且蓄電池的價格比較低。因此我們選擇了此方案。

綜上考慮,我們選擇了此方案。

3.4穩壓模塊

方案1:用壹個7805直接降壓,用大散熱片。雖然結構,原理簡單,但電流過大,使電路不穩定,容易燒壞穩壓塊我們放棄了此方案。

方案2:直接用兩7805把電壓直接穩壓到5V,理論上由於降壓過大容易燒穩壓塊,用兩個7805並聯。但兩個穩壓塊出現饋贈問題,後用修改電路解決此問題,我們最後選擇了此方案

3.5尋跡傳感器模塊

方案1:用光敏電阻組成光敏探測器。光敏電阻的阻值可以跟隨周圍環境光線的變化而變化。當光線照射到白線上面時,光線發射強烈,光線照射到黑線上面時,光線發射較弱。因此光敏電阻在白線和黑線上方時,阻值會發生明顯的變化。將阻值的變化值經過比較器就可以輸出高低電平。

但是這種方案受光照影響很大,不能夠穩定的工作。因此我們考慮其他更加穩定的方案。

方案2:用RPR220型光電對管。RPR220是壹種壹體化反射型光電探測器,其發射器是壹個砷化鎵紅外發光二極管,而接收器是壹個高靈敏度,矽平面光電三極管。

RPR220采用DIP4封裝,其具有如下特點:

塑料透鏡可以提高靈敏度。

內置可見光過濾器能減小離散光的影響。

體積小,結構緊湊。

當發光二極管發出的光反射回來時,經過lm339電壓比較芯片,通過對門限電壓進行比較,輸出高低電平,通過調整門限電壓可以調整傳感器單元的靈敏度。此光電對管調理電路簡單,工作性能穩定。

因此我們選擇了方案2。

3.6電機模塊

本系統為智能電動車,對於電動車來說,其驅動輪的驅動電機的選擇就顯得十分重要。由於本實驗要實現對路徑的準確定位和精確測量,我們綜合考慮了壹下兩種方案。

方案1:采用直流減速電機。直流減速電機轉動力矩大,體積小,重量輕,裝配簡單,使用方便。由於其內部由高速電動機提供原始動力,帶動變速(減速)齒輪組,可以產生較大扭力。

因我們用軟件對電機調速,實際值要比這小壹些

註意:在實際計算時用的是理論值。

能夠較好的滿足系統的要求,因此我們選擇了此方案。

3.7電機驅動模塊

方案1:采用專用芯片L298N作為電機驅動芯片。L298N是壹個具有高電壓大電流的全橋驅動芯片,它相應頻率高,壹片L298N可以分別控制兩個直流電機,而且還帶有控制使能端。用該芯片作為電機驅動,操作方便,穩定性好,性能優良。

方案2:對於直流電機用分立元件構成驅動電路。由分立元件構成電機驅動電路,結構簡單,價格低廉,在實際應用中應用廣泛。但是這種電路工作性能不夠穩定。

因此我們選用了方案1。

三、?分析與計算:

1、傳感器模塊的設計

因此我們考慮用比較器的方案。

在圖中,可調電阻RV1可以調節比較器的門限電壓,而且經試驗驗證給此電路供電的電池的壓降較小。因此我們選擇此電路作為我們的傳感器檢測與調理電路。

2、尋跡光電對管的安裝

考慮到設計要求,本次設計僅用4對光電傳感器就能完成設計要求,采用直線型排列,中間2對傳感器用來校正小車的尋跡路線,保證小車運行的直線性。兩側的傳感器用來檢測小車過線,可以實現小車的轉彎。

4、電機驅動電路的設計

我們采用電機驅動芯片L298N作為電機驅動,驅動電路的設計如圖7所示:

L298N的5、7、10、12四個引腳接到單片機上,通過對單片機的編程就可以實現兩個直流電機的PWM調速以及正反轉等功能。這裏的二極管作用是釋放電機線圈的自感電能

電容c3起緩沖作用,經過試驗在調速時下方的電機接收的是壹個高脈沖的電流,由於直流電機靈敏性不是很好,我們也考慮用周期長的脈沖,但由於掃描數碼管就會慢,數碼管就會出現顫動。綜合考慮,我們選擇接電容起緩沖作用。

4、測量距離設計

我們采用用壹個光電對管感應輪子黑白條來算出輪子轉動的角度間接測出行走的距離。

在實際中會出現輪子打滑現象,黑白紙帶表面不光滑,不平整,輪子軸不牢固,內外搖晃,由於rpr220有聚光器即使非常小的變化都會有反應。通過實際測試傳感器發出的信號要比理論大的多,在電池電量過低時,這種現象會更加不準,無規律可循(有時候大,有時候小)。即使在電量足的情況下也有很大誤差,超過壹定距離,結果已經沒有意義,所以我們限定最大估測距離在6米左右,因此此設計為粗測距離。

四、?總電路圖及元器件清單

經過反復論證,我們最終確定了如下方案:

(1)車體用鋁合金車架手工制作。

(2)采用stc89c52單片機作為主控制器。

(3)用12V蓄電池為直流電機供電,將12V電壓經兩個7805(帶大散熱片)並聯降壓、穩壓後為單片機系統和其他芯片供電。

(4)用RPR220型光電對管進行尋跡。

(5)L298N作為直流電機的驅動芯片。

五、?軟件實現

3.1主程序流程圖

我們所設計的軟件的主程序流程圖如圖所示:

六、?測試:

七、?創新點

本作品改進了lm339電壓比較器接控制門限電壓的電阻的方式,沒有采用接4個變阻器,用的是統壹接壹個變阻器,這樣方便調整靈敏度。在光電對管傳感器電路上也有改變,直接把發射極和集電極接在5V電源上,這樣可以使電流更大,試驗證明當接通時電流不足以燒壞三極管。

直流並聯了電容,電容c3起緩沖作用,經過試驗在調速時下方的電機接收的是壹個高脈沖的電流,由於直流電機靈敏性不是很好,我們也考慮用周期長的脈沖,但由於掃描數碼管也會慢,數碼管就會出現顫動,我們同時考慮用時鐘中斷掃描刷新數碼管,但那樣使中斷頻繁發生(大約50ms)而且數碼管刷新壹次用時也會很長(大約24ms),造成中斷過長,那樣會大大加大整個循環周期,基本看不到數碼管顯示連續的數。綜合考慮,我們選擇接電容起緩沖作用。

八、?心得體會

P0?要想用做io口時必須加上拉電阻,即使用上拉電阻驅動能力也不怎麽好。本作品用***陰數碼管,驅動電路設計比較復雜,數字不夠亮,最好用***陽數碼管,加上三極管驅動可能效果會好壹些。

由於單片機高頻的對數碼管進行掃描,在程序設計的時候就要求主程序的周期不能過長,這對於我們小車執行尋跡,調速,定時,計時,測距,轉彎等功能的程序要求是非常高的,經過我綜合考慮後決定主函數只有刷新數碼管和探測黑線的功能剩下的所有功能都用中斷處理,同時要求產生的中斷時間不能過長。這些就造就了我的程序到目前為止已經有350行的長度。

我們最初設計精確測量距離,但誤差不可避免,由於硬件的局限性,尊重事實,我們降低了標準。以後可以在此改進,擴展。

在整個測試階段我們充分考慮程序功能的連續性和兼容性,由於89c52單片機速度的局限,同時程序需要實時對數碼管高速的刷新頻率我們不能設計車太高的速度。經過反復測試綜合考慮我們采用目前的方案

九、?結束語

我們的尋跡小車在完成設計要求的前提下,充分考慮到了外觀、成本等問題,在性能和價格之間作了比較好的平衡。由於設計要求並不復雜,我們沒有在電路中增加冗余的功能。

由於作者水平的有限,部分觀點存在錯誤,希望指正,指教,對此表示感謝。

特別感謝:

張洪軍老師和實驗室老師的指導,及接偉權,張新濤,黃紹軍等學長的建議和指教,還有陳振宇,吳曠和全組成員,沒有妳們就沒有我們今天。

2010年5?月?

李靜

程序片段

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

數碼管刷新函數

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

void?display(uchar?qw,uchar?bw,uchar?sw,uchar?gw)//顯示函數

{

P2=0xe0;

P1=tabledu[qw];

delay(6);

P2=0xd0;

P1=tabledu[bw];

delay(6);

P2=0xb0;

P1=tabledu[sw];

delay(6);

P2=0x70;

P1=tabledu[gw];

delay(6);

P2=0x0f;//

}

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

任務初始化函數

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

void?init0()任務1初始化函數

{

EA=1;

EX0=1;

EX1=1;

IT1=IT0=1;

P0=0x00;

flag=1;

jishu=0;//

}

void?init()//任務2初始化函數

{

EA=1;

TH0=(65536-50000)/256;//初始化加1計數器

TL0=(65536-50000)%256;

ET0=1;

TR0=1;

TH1=(65536-50000)/256;//初始化加1計數器

TL1=(65536-50000)%256;

ET1=1;

TR1=1;

TMOD=0x11;

dsh=(qw*10+bw)*60;//

jishu=1;//

}

void?jiesu()

{

if(flag2==0)

{

flag1=1;

flag2=1;

cnt1=0;

}

ET0=0;

P0=0;

display(qw,bw,sw,gw);

}