1日:
自從拿到一快單片機的用戶板后并對它有一些了解后,就有用它做機械手的念頭。對它控制繼電器、步進電機、LED、LCD、數碼管稍做研究之后,便著手開始了。
第一步,驅動步進電機
驅動步進電機并不是一件難事,板上有現成的電路。但我要做續步驅動,對我這個菜鳥來說似乎有些棘手,但還好先前研究過C以外的高級語言,并編了些貌似很實用的工具。經過幾輪的試驗后,用函數的參數及返回值搞定了這個問題。
第二步 數碼管同步顯示經過步數
開始在正轉頭文件中加入數碼管掃描,轉速快時一切正常,但轉速稍慢,要了親命了,簡直可以用眼花繚亂來形容。將數碼管掃描放入延時中,只用這些語句來做延時,成功!但有重影。只好又另外加了個延時函數來消除重影。但只掃描了3只數碼管,今天要加入掃描8只數碼管,不知道步進電機會不會卡步。
好了,這就是前幾天的成果,似乎有點慢。沒辦法,英文太差,倒霉的芯片資料幾乎全是英文的。讓我好不煩惱,只能*翻譯軟件,但效果不佳。被迫學英語,哎!這幾天背的單詞比初、高中背的的都多。好了,工作!
(本來這這是一篇數碼管逐個點亮的視頻,結果視頻始終不能正常顯示,無奈只好改做其他)
6日:
今天把數碼管從3個增加到5個,掃面仍然正常,并發現有足夠的延時來容納另外三個數碼管的掃面,于是在0位管上又加了一個速度擋,并用KEY3來調節,開始沒有加按鍵放開判斷,所以出現按下按鍵后無反應現象,后來加循環來判斷按鍵跳起。可正常的改變轉速。又加入無操作時判斷,使數碼管在無動作時也可顯示狀態。
下一步就要開始怎樣用按鍵調節后五位的數值,并傳遞到forward/reverse函數中,確定設置完畢后自動根據設置的速度旋轉指定角度、旋轉步數斷電的存儲、返回原點等操作。
然后就是加入編程模式,在鍵盤上編輯后,逐步運行,不過還要想想編程的程序格式,以便源程序的編輯和以后的編程。
另外,hex文件現在已經達到5K,要想辦法壓縮一些。
7日:
今天初步編了一下調整數字并用數碼管顯示,發現它需要在延時掃描里面再嵌入一段獨控程序,這樣可能會使程序變的臃腫。為了節省空間,所以放棄這個功能,把回原點先編出來,這段到最后如果空間足夠的話再放進去。
回原點已經有了初步功能,但unsigned int只能容納到65536,這肯定遠遠不夠,所以還要加一個變量來記錄共走過幾個周期,這樣就有65536^2可以容納經過步。還要判斷現位置的+/-以免在回原點時方向錯誤。這是明天的事了。