專注電子技術(shù)學(xué)習(xí)與研究
當(dāng)前位置:單片機(jī)教程網(wǎng) >> MCU設(shè)計(jì)實(shí)例 >> 瀏覽文章

機(jī)械手之旅(一)

作者:佚名   來源:本站原創(chuàng)   點(diǎn)擊數(shù):  更新時(shí)間:2010年05月14日   【字體:

1日:

   自從拿到一快單片機(jī)的用戶板后并對它有一些了解后,就有用它做機(jī)械手的念頭。對它控制繼電器、步進(jìn)電機(jī)、LED、LCD、數(shù)碼管稍做研究之后,便著手開始了。

第一步,驅(qū)動(dòng)步進(jìn)電機(jī)

   驅(qū)動(dòng)步進(jìn)電機(jī)并不是一件難事,板上有現(xiàn)成的電路。但我要做續(xù)步驅(qū)動(dòng),對我這個(gè)菜鳥來說似乎有些棘手,但還好先前研究過C以外的高級語言,并編了些貌似很實(shí)用的工具。經(jīng)過幾輪的試驗(yàn)后,用函數(shù)的參數(shù)及返回值搞定了這個(gè)問題。

第二步 數(shù)碼管同步顯示經(jīng)過步數(shù)

  開始在正轉(zhuǎn)頭文件中加入數(shù)碼管掃描,轉(zhuǎn)速快時(shí)一切正常,但轉(zhuǎn)速稍慢,要了親命了,簡直可以用眼花繚亂來形容。將數(shù)碼管掃描放入延時(shí)中,只用這些語句來做延時(shí),成功!但有重影。只好又另外加了個(gè)延時(shí)函數(shù)來消除重影。但只掃描了3只數(shù)碼管,今天要加入掃描8只數(shù)碼管,不知道步進(jìn)電機(jī)會不會卡步。

  好了,這就是前幾天的成果,似乎有點(diǎn)慢。沒辦法,英文太差,倒霉的芯片資料幾乎全是英文的。讓我好不煩惱,只能*翻譯軟件,但效果不佳。被迫學(xué)英語,哎!這幾天背的單詞比初、高中背的的都多。好了,工作!

(本來這這是一篇數(shù)碼管逐個(gè)點(diǎn)亮的視頻,結(jié)果視頻始終不能正常顯示,無奈只好改做其他)


6日:

   今天把數(shù)碼管從3個(gè)增加到5個(gè),掃面仍然正常,并發(fā)現(xiàn)有足夠的延時(shí)來容納另外三個(gè)數(shù)碼管的掃面,于是在0位管上又加了一個(gè)速度擋,并用KEY3來調(diào)節(jié),開始沒有加按鍵放開判斷,所以出現(xiàn)按下按鍵后無反應(yīng)現(xiàn)象,后來加循環(huán)來判斷按鍵跳起?烧5母淖冝D(zhuǎn)速。又加入無操作時(shí)判斷,使數(shù)碼管在無動(dòng)作時(shí)也可顯示狀態(tài)。

下一步就要開始怎樣用按鍵調(diào)節(jié)后五位的數(shù)值,并傳遞到forward/reverse函數(shù)中,確定設(shè)置完畢后自動(dòng)根據(jù)設(shè)置的速度旋轉(zhuǎn)指定角度、旋轉(zhuǎn)步數(shù)斷電的存儲、返回原點(diǎn)等操作。

然后就是加入編程模式,在鍵盤上編輯后,逐步運(yùn)行,不過還要想想編程的程序格式,以便源程序的編輯和以后的編程。

另外,hex文件現(xiàn)在已經(jīng)達(dá)到5K,要想辦法壓縮一些。

7日:

   今天初步編了一下調(diào)整數(shù)字并用數(shù)碼管顯示,發(fā)現(xiàn)它需要在延時(shí)掃描里面再嵌入一段獨(dú)控程序,這樣可能會使程序變的臃腫。為了節(jié)省空間,所以放棄這個(gè)功能,把回原點(diǎn)先編出來,這段到最后如果空間足夠的話再放進(jìn)去。

回原點(diǎn)已經(jīng)有了初步功能,但unsigned int只能容納到65536,這肯定遠(yuǎn)遠(yuǎn)不夠,所以還要加一個(gè)變量來記錄共走過幾個(gè)周期,這樣就有65536^2可以容納經(jīng)過步。還要判斷現(xiàn)位置的+/-以免在回原點(diǎn)時(shí)方向錯(cuò)誤。這是明天的事了。

 下一篇地址:http://www.torrancerestoration.com/mcu/832.html

關(guān)閉窗口