【正文】
} } } void timer1_serve() interrupt 3 { TH1=(65536100)/256。ir_right==1)//前有障礙,右轉(zhuǎn) 基于單片機的步進電機小車 控制 系統(tǒng)設(shè)計 34 { move_left(15,0,1)。ir_mid==1amp。 } if(ir_left==0amp。 } if(en==1) { en_left=1。//進定時器 1 中斷次數(shù)計數(shù) uint speed。 clk_right=~clk_right。 delay(100)。 } else { en_left=0。//電機速度控制變量 /**************函數(shù)體 ******************************************/ void delay(unsigned int k) { unsigned int i,j。 clk_right=~clk_right。 } else { cw_left=0。 //延時函數(shù) //////////////////變量定義 //////////////////////////////////////////////// uint n。 基于單片機的步進電機小車 控制 系統(tǒng)設(shè)計 22 開 始初 始 化啟 動 小 車 前 行是 否 遇 到 障 礙前 方 有 障 礙避 前 方 障礙 子 程 序右 前 方 有 障 礙左 前 方 有 障 礙避 右 前 方 障礙 子 程 序避 左 前 方 障礙 子 程 序NY是 否 結(jié) 束NY結(jié) 束 圖 42 避障流程圖 第 5 章總結(jié)與展望 23 第 5 章總結(jié)與展望 總結(jié) 本設(shè)計主要實現(xiàn)了 STC89C52 單片機控制步進電機運行,由電機的基本正轉(zhuǎn)、反轉(zhuǎn),到小車的前進、后退、轉(zhuǎn)彎,再到最后根據(jù)傳感器的反饋控制步進電機小車進行循跡與避障,并為實現(xiàn)這些功能設(shè)計了穩(wěn)壓電路與上位機電路,最終實現(xiàn)了任務(wù)。 void timer1_serve() interrupt 3 { TH1=(65536100)/256。 3. 下載串口選擇。 上位機電路設(shè)計 對于一些需要計算機與單片機通信的場合來說,電腦的串口非常重要,例如很多設(shè)備都必須采用串口和電腦端軟件連接,很多電路模塊可以非常直觀方便地利用串口調(diào)試軟件進行調(diào)試,很多儀器必須通過串口進行通訊和數(shù)據(jù)交換 [17]。 被檢物與背景的色差如何周圍環(huán)境光強如何,是否存在自然光或人工照明檢測線路上是否有灰塵,灰塵會大大減小光電傳感器的檢測距離。在電路圖中 in in2 與 in3 是分別接收由單片機輸出的信號的端口, in1 接收使能控制信號, in2 接收方向控制信號, in3 接收時鐘控制信號, in in2 與 in3 分別與單片機的 P1^0、P1^ P1^2 口相連。 SA 通電時 A 磁極接通,產(chǎn)生磁場,吸引轉(zhuǎn)子 2 靠近磁極 A;之后 SA 斷開, SB 接通,產(chǎn)生磁場,吸引轉(zhuǎn)子 3 靠近磁極 B;接著 SB斷開, SC 接通產(chǎn)生磁場,吸引轉(zhuǎn)子 4 靠近磁極 C,周而復(fù)始電機就會旋轉(zhuǎn)。 步進電機也是將電脈沖信號轉(zhuǎn)變?yōu)榻俏灰苹蚓€位移的開環(huán)控制元件。但只有信號不能驅(qū)動外加模塊,因此在外接引腳的旁邊另接一排同樣數(shù)量引腳的排母,并且接 5V 的電源,與同樣數(shù)量的接地的排母。例如工廠流水線的智能化管 理,電梯智能化控制、各種報警系統(tǒng),與計算機聯(lián)網(wǎng)構(gòu)成二級控制系統(tǒng)等。 經(jīng)過 20 多年的推廣與發(fā)展, 51 系列單片機形成了以個規(guī)模龐大、功能齊全、資源豐富的產(chǎn)品群??梢酝ㄟ^控制脈沖個數(shù)來控制角位移量,從而精確地控 制轉(zhuǎn)動角度;同時可以通過控制脈沖頻率來控制電機轉(zhuǎn)動的角度和加速度,從而達到調(diào)速的目的。 tracking。 關(guān)鍵詞: STC89C52;步進電機;步進電機驅(qū)動電路 ;循跡;避障 Stepping motor vehicles drive system design based on SingleChip Microputer Abstract This design with STC89C52 SCM smallest system as the core, designed a two phase fourwire stepping motor drive circuit. The whole system by single chip microputer control stepping motor drives the output signal, to control the motion of the stepper motor, and realizes the car to walk. Articles including the stepper motor are turning, inversion, acceleration, deceleration, these basic rotation, and on this basis at the same time control two stepper motors, implement the car move forward, backward, turn left and turn right. And add some on the car sensor module, MCU to normal driving stepping motor, drive car corresponding tasks at the same time, according to the feedback of sensor module, the correction unceasingly, until the task to realize the car tracking and obstacle avoidance function. At this point to prove the feasibility of the designed driver circuit. Not only included in the article based on step motor drive circuit of single chip microputer extended circuit, also included for MCU power supply 5 v voltage regulator circuit analysis and design, and make the microcontroller serial port and the puter USB interface directly municate superior mechanical and electrical design of the road. Keywords: STC89C52。它是用電脈沖信號進行控制,將電脈沖信號轉(zhuǎn)換成相應(yīng)的角位移或線位移的微電動機 ,它最突出的優(yōu)點是可以在寬廣的頻率范圍內(nèi)通過改變脈沖頻率來實現(xiàn)調(diào)速,快速起停、正反轉(zhuǎn)控制及制動等,并且用其組成的開環(huán)系統(tǒng)既簡單、廉價,又非??尚?,因此在打印機等辦公自動化設(shè)備以及各種控制裝置等眾多領(lǐng)域有著極其廣泛的應(yīng)用。因此還可以讓小車設(shè)計實現(xiàn)循跡與避障兩個功能,讓小車在接收傳感器反饋信號的情況下,完成預(yù)想的任務(wù)。 單片機的應(yīng)用領(lǐng)域 目前單片機滲透到我們生活的各個領(lǐng)域,幾乎很難找到哪個領(lǐng)域沒有單片機的蹤跡。 Y1 也可以采用 6MHz 或者 ,在正常工作的情況下可以采用更高頻率的晶振, 51 單片機最小系統(tǒng)晶振的振蕩頻率直接影響單片機的處理速度,頻率越大處理速度越快。 圖 36 單片機穩(wěn)壓電路圖 步進電機介紹 步進電機的概述 步進電機是一種將電脈沖轉(zhuǎn)化為角位移的執(zhí)行機構(gòu) [9]。 但是,這種電機也有自身的缺點。 所以將 L297 與 L298n 同時相連組成的步進電機驅(qū)動電路,無論對硬件的系統(tǒng)集成和控制軟件,都是省時省力的事,因為組合后每只步進電機只需步進脈沖、正反轉(zhuǎn)兩個信號便行。 其最大檢測距離往往和被檢物的尺寸、形狀、顏色及表面狀態(tài)有關(guān)。當(dāng)三個中的一個或多個(障礙物較大)接收部分的傳感器,就能根據(jù)反射回來的紅外線進行自動的調(diào)整,從而使小車的運行軌跡達到自動避障的目的。 第 3 章系統(tǒng)硬件設(shè)計 17 圖 312 USB 轉(zhuǎn)串口電路圖 圖 313 STC 單片機的串口燒寫軟件 電路連接準(zhǔn)備好之后,打開 STC 單片機的串口燒寫軟件 STC_ISP,如圖 313 所示。 } } 電機 速度控制 在中斷中, n 不斷累加,當(dāng)你增加到預(yù)設(shè)的數(shù)之后 clk_left 與 clk_right 就會置為高電平,就會發(fā)出一個脈沖,使兩個電機旋轉(zhuǎn)一步;或 clk_left 與 clk_right 置 為 低電平,這時電機不轉(zhuǎn)。delay(800)是轉(zhuǎn) 180176。 //定時 器 1 初始化函數(shù) void move_left(uint speed_l,uchar cw,uchar en)。 TR1=1。 TL1=(65536100)%256。//右電機運動函數(shù) void delay(unsigned int k)。 if(cw==1) { cw_left=1。amp。 n=n+1。//左電機運動函數(shù) void move_right(uint speed_r,uchar cw,uchar en)。//定時器啟動后 運動控制脈沖將一直產(chǎn)生 小車的運動方式受 cw 和 en 控制 } void move_left(uint speed_l,uchar cw,uchar en) { //speed_l 速度控制變量 cw 方向控制變量 en 使能控制變量 speed=speed_l。ir_right==0) //以下是三個紅外傳感器的八種狀態(tài)和對應(yīng)的運動方式 { move_left(15,0,1)。 delay(800)。amp。amp。 // m=m+1。 } if(ir_left==1amp。 move_right(15,0,1)。amp。 //speed 數(shù)值與速度成反比 請結(jié)合實際情況進行調(diào)節(jié), if(cw==1) //但速度不能無限加快因為步進電機有速度上限 { //而且速度加快是力矩會下降,容易導(dǎo)致丟步現(xiàn)象 cw_right=1。ik。//左電機使能控制位 sbit cw_left= P1^1。ir_right==0) { move_left(15,0,1)。 //所以實際應(yīng)用當(dāng)中應(yīng)調(diào)節(jié)到速度可力矩比較合適的數(shù)值 } //應(yīng)考慮到電池電壓,輪胎直徑等因素 else { cw_right=0。i++) { for(j=0。//左電機使能控制位 sbit cw_left= P1^1。 } } void move_right(uint speed_r,uchar cw,uchar en) { //speed_r 速度控制變量 cw 方向控制變量 en 使能控制變量 speed=speed_r。 for(i=0。對機電這個專業(yè)有了更深一步的理解 ,但這只是很小一方面罷了 ,今后要繼續(xù)學(xué)習(xí)。 第 4 章系統(tǒng)軟件設(shè)計 21 if(n==speed) { clk_left=~clk_left。 第 4 章系統(tǒng)軟件設(shè)計 19 第 4 章系統(tǒng)軟件設(shè)計 電機控制流程圖 電機旋轉(zhuǎn)受使能控制位 en、方向控制位 cw 控制 [20],如圖 41 所示。如果要設(shè)計這樣一種電路,通過比較,在滿足下載需求、價格合理的情況下,最為適中的就是 PL2303。 反射式光電傳感器的發(fā)射頭和接收頭安裝于同一側(cè) , 正常情況下,發(fā)光器發(fā)出的光源被反光板反射回來再被收 光器收到;一旦被檢測物擋住光路,收光器收不到光時,光電開關(guān)就動作,輸出一個開關(guān)控制信號。 單片機輸出對應(yīng)驅(qū)動器輸入驅(qū)動器輸出如表 31,表 32 所示。 步進電機 選用 步進電機是以脈沖信號依次使定子激勵 ,以數(shù)字電壓輸入來控制轉(zhuǎn)速與轉(zhuǎn)動方向。使得在速度、位置等控制領(lǐng)域用步進電機來控制變的非常的簡單。 圖 35 電池電壓與電量的關(guān)系 本設(shè)計中采用常見的 AMS1117 作為單片機的穩(wěn)壓芯片,它的概述如下: AMS1117 系列穩(wěn)壓器有可調(diào)版與多種固