tft每日頭條

 > 科技

 > 單片機控制步進電機轉一圈

單片機控制步進電機轉一圈

科技 更新时间:2025-02-07 23:15:55

今天複變函數考試,發下試卷後,我看了看第一題,呃...不會,看第二題,呃,還不會...我就不信了,看第三題,直接絕望了...為什麼全是積分變換的題啊!!朋友們一定要好好學習啊,不要步小編的後塵啊...555...

好了,說正題,這次我來分享有關步進電機的編程經驗。我這裡以四線雙極性步進電機為例:

單片機控制步進電機轉一圈(C51單片機編程技巧)1

單片機控制步進電機轉一圈(C51單片機編程技巧)2

上面就是常見的四線雙極性步進電機的實物圖,上一篇文章裡面我已經說明了步進電機的相關基礎概念,所以這裡我就不說了。下面我們開始進行步進電機的編程:

先說一下定義的引腳,上一篇裡面說了,四線雙極性步進電機有兩個線圈(或者叫做繞組)要進行通電,所以我們就要用兩個引腳來控制這兩個線圈,我這裡定義名字是:PHA 和 PHB,但是由于 L6219 的用法,這兩個引腳僅僅隻能算作一個标志,也就是僅僅隻能說明給那個線圈通什麼方向的電流,而不能決定通的電流的大小,比如:PHA = 0,PHB = 1;說明 A 線圈通負方向電流,B線圈通的是正方向電流,但是電流究竟多大不是由這兩個引腳決定的,而是由另外兩個引腳決定的。

這兩個引腳我定義他們的名字是:A 線圈對應的是:A1,A2;B 線圈對應的就是 B1、B2;上圖中的注釋中也已經寫明白了,我們姑且把通最大電流當作通電,把通最小電流當做不通電,那麼就可以得出:

當 A1 = A2 = 0時:線圈 A 通電。

當 A1 = A2 = 1時:線圈 A 不通電。B 線圈同理。

但是如果我僅僅說到這裡,大家就去寫代碼。假設你是大神,真的寫了出來,那麼肯定就會有不少人遇到一個大問題:“ 我明明就是按照你說的那個通電方式去寫的啊,為什麼我的步進電機總是在顫,死活就是不轉,延時多長也沒用,小編你是不是在騙我啊?”

呃。。。其實小編我是個好孩紙,是不騙人的,所以呢下面我就說明一下怎麼解決這個問題,在這之前我先把我寫的代碼放出來:

一:單拍工作方式:

單片機控制步進電機轉一圈(C51單片機編程技巧)3

二:雙拍工作方式:

單片機控制步進電機轉一圈(C51單片機編程技巧)4

三:單雙拍工作方式:

單片機控制步進電機轉一圈(C51單片機編程技巧)5

大家可以發現上面三塊代碼的第一行注釋就是工作方式的線圈通電方式,但是第二行是啥?什麼 “相同”、“不同”的?

這裡就是解決步進電機隻在顫動卻不轉的關鍵了,雖說步進電機的某個線圈在不通電的時候,電流的方向随便寫(都不通電了,那不就随便寫嘛),但是事實卻不是這樣,雖說當我們寫 A1 = A2 = 1 時線圈應該是不通電的,但是事實上并不是,它還是有一點點電流的,所以即使我們寫 A1 = A2 = 1,線圈的電流方向也不能随便寫,而是要遵循:兩個線圈的電流方向要 "不同" 、"相同" 交替。(單雙拍工作方式時每兩拍作為一組的規則去寫。

如上面三個圖中,PHA 和 PHB 的值都是在 “相同”、 “不同” 之間交替進行,單雙拍的那個是每兩拍作為一組,在 “不同”、“相同”之間進行。

這樣就解決了步進電機隻顫動不旋轉的問題了,但是并不是所有人的問題都是出在這裡,看見每一句代碼後面都有一個 delay() 函數了嗎?如果 delay() 函數的延時時間過短也會引起步進電機隻顫動而不旋轉。所以大家還是要具體問題具體分析。

再說一件事,我的第四篇文章:

單片機控制步進電機轉一圈(C51單片機編程技巧)6

就僅僅因為加了個百度雲鍊接然後就怎麼審核也審不過,最終導緻幾乎整篇文章白寫了,我實在是不敢再往文章裡加鍊接了,我直接告訴大家吧,我在單片機貼吧裡面都把源碼分享出來了,大家直接搜索 “LCD1602初始化詳解” 應該就可以搜到了,我的 ID 是:天蠍座王瑞傑。想要源碼的就可以去那裡直接下載就行,如果貼吧的鍊接挂了,可以在貼吧裡面回複我,或者在下面的評論裡回複我,我會及時把鍊接補上。

這次就先說到這裡了,我們下次再見吧,拜拜( ^_^ )/~~

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关科技资讯推荐

热门科技资讯推荐

网友关注

Copyright 2023-2025 - www.tftnews.com All Rights Reserved