51單片機STC89C52RC——16.1 五項四線步進電機

目的/效果

讓步進電機? 正向轉90度,逆向轉90度

一,STC單片機模塊

二,步進電機?

?

2.2 什么是步進電機?

步進電機可以理解為:是一個按照固定步幅運動的“小型機器”。它與普通電機不同點在于,普通電機可以持續旋轉,而步進電機按照特定的步數或者角度來移動。它每次只能移動一定的距離或者旋轉一定的角度,運動更像是按照固定的步伐一步一步地走。這種特性讓步進電機在需要精確控制位置和速度的場景中非常有用,比如打印機、機器人、數控機床等。 ? ? ?

2.2.1 步進電機驅動板

步進電機的控制需要按照特定的順序激活線圈,以產生旋轉。驅動板充當了控制器的角色,它能提供正確的電流和順序來激活步進電機的各個線圈,使得它按照預期的方式運轉。步進電機的操縱需要精確的電流控制和時序激活,而驅動板能提供這種控制,讓步進電機按照設定的步數或角度進行精確的運動。用通俗的語言解釋一下就是,步進電機是個沒有“腦子”的機器,需要芯片(ULN2003)把單片機發送過來的電信息,轉化為步進電機能夠“處理”的脈沖信號,并作出相應處理。

靜態參數

相數:線圈的組數,兩相步進電機步距角一般為 1.8°,三相的步進電機步距角為 1.2°,相數越多步距角越小。

步距角:一個脈沖信號所對應的電機轉動的角度,這個步距角他不一定是電機實際工作的真正步距角,真正的步距角與驅動器的細分有關。

拍數:完成一個磁場周期性變化所需的脈沖數。

定位轉矩:電機在不通電狀態下,電機轉子自身的鎖定力矩(由磁場齒形的諧波以及機械誤差造成的)。

動態參數

步距角精度:步進電機轉動一個步距角度的實際值與理論值的誤差。用百分比表示:誤差/步距角 *100%。

失步:電機運轉的步數,不等于理論上的步數。也可以叫做丟步,一般都是因負載過大或者是頻率過快。

最大空載起動頻率:不加負載的情況下,能夠直接起動的最大頻率。

最大空載運行頻率:電機不帶負載的最高轉速頻率。

運行距頻特性:輸出轉矩與輸入脈沖頻率的關系,是電機選型的根本依據。要在該曲線之下才能保證運行時不丟步。

電機正反轉控制:改變通電順序而改變電機的正反轉。?

2.2.2 五線四相?

五線四相指的是它的線數相數。在這個28BYJ48步進電機中,有五根線用于連接,四相則表示它具有四組線圈,每個線圈都能獨立控制。+為公共端,分A、B、C、D四相

?

?

?

分別給ABCD導通,電機就會轉。

單相激勵步進

每次通電產生磁性的相只有ABCD其中的一個

步序ABCDP1(HEX)
110000x08
201000x04
300100x02
400010x01

?

		P1=0x08;//A導通	 Delay_ms(10);P1=0x04;//B導通Delay_ms(10);P1=0x02;//C導通Delay_ms(10);P1=0x01;//D導通Delay_ms(10); 
雙相激勵步進

轉子卻被固定在兩個繞阻的極性中間

步序ABCDP1(HEX)
111000x0C
201100x06
300110x03
410010x09
        P1=0x0C;//AB導通	 Delay_ms(10);P1=0x06;//BC導通Delay_ms(10);P1=0x03;//CD導通Delay_ms(10);P1=0x09;//DA導通Delay_ms(10); 
混合激勵驅動

雙相激勵的過程中,也可以在裝換相位時加一個關閉相位的狀態而產生走半步的現象,這將步進電機的整個步距角一分為二

步序ABCDP1(HEX)
110000x08
211000x0C
301000x04
401100x06
500100x02
600110x03
700010x01
810010x09

?

P1=0x08;//A導通	 Delay_ms(10);P1=0x0C;//AB導通	 Delay_ms(10);P1=0x04;//B導通Delay_ms(10);P1=0x06;//BC導通Delay_ms(10);P1=0x02;//C導通Delay_ms(10);P1=0x03;//CD導通Delay_ms(10);P1=0x01;//D導通Delay_ms(10); 		P1=0x09;//DA導通Delay_ms(10); 

2.3 細分驅動


將步距角以電流分配方法進行細分化的技術。一般電機產品都會集成這種技術,使用時只需細分數即可實現。

原理磁場強度和電流大小成正比

如果Ia = Ib 那么轉子將停在相鄰兩個線圈的中間,如果電流不相等,轉子將停在電流較大的一側;通過改變輸入電流的比例,就可以比原來更小的步距角進行驅動;可進行超微小角度,更加平滑的運轉,有效地降低振動和噪音的驅動方法。?

2.4 通過數字信號控制旋轉位置轉速

控制定子繞組ABCD周期性、交替得電,進而控制步進電機一步一步的向前運動的這個控制器就是步進電機驅動器。

電機的旋轉位置只取決于脈沖個數,轉速只取決脈沖信號的頻率

角位移=脈沖個數X步距角。

步進電機的步距角計算公式為:θ=360°/(Z×m×k)。其中,θ是步距角,Z是轉子齒數,m是定子繞組的對數,k是通電方式系數。對于單拍通電方式,k=1;對于單雙拍通電方式,k=2。1

另外,步距角也可以通過以下公式計算:θ=360°/(轉子齒數×運行拍數)。以常規二、四相,轉子齒為50齒電機為例,四拍運行時步距角為θ=360°/(50×4)=1.8°,八拍運行時步距角為θ=360°/(50×8)=0.9°。

請注意,步距角是步進電機運動的基礎,它取決于電機上的磁極總數,且步距角越小,運轉的平穩性越好。

2.5 適用場景? ? ?

步進電機有以下的三個特點:

其一是精準定位,步進電機能夠準確控制位置,適用于需要精確控制位置和速度的應用。

其二是固定步進,它能按照固定步幅移動,使其在需要確定性移動的應用中很有用。

其三是低速高扭矩:步進電機在低速和高扭矩方面表現出色,這讓它們在需要大力矩但不需要高速旋轉的場景中很有用。

故而根據以上的三個特性,可以用到那些項目里呢?舉幾個我曾接觸使用到步進電機的項目吧!同學們可以發揮自己的想象力哈哈哈... ? ? ? ?

智能窗簾? ? ? ? ?

打印機 ? ? ? ??

圖書館取書機器人的機械臂關節處的動力

三,創建Keil項目

詳細參考:51單片機STC89C52RC——創建Keil項目-CSDN博客

四,代碼?

完整代碼參考《https://gitee.com/oopxiajun/STC89C52》

main.c

#include <REGX52.H>
#include "Delay.h"
#include "key.h"
#include "StepMotor.h"
#include "LCD1602.h"
//模式 :1-正轉,2-反轉
int Model=1;
/*** 函    數:主函數* 參    數:無* 返 回 值:無*/
void main()
{   int step=0;LCD_Init();//順時針轉90度StemMotor_Run(1,90,1);Delay_ms(1000);//逆時針轉90度StemMotor_Run(2,90,2);while(1){   	}
}
#include <REGX52.H>
#include "delay.h"
int StepTime = 1000;//steptime表示每步的時間
//八拍
unsigned char code Rotation[]={0x09,0x08,0x0c,0x04,0x06,0x02,0x03,0x01};/*** 函    數:控制步進電機運行* 參    數:Step 轉速(單步暫停時長)Angle 角度(0-360)Direction 轉動方向(1-順時針,2-逆時針)* 返 回 值:無*/
void StemMotor_Run(int Step,int Angle,int Direction)
{int i=0;Angle=(int)(Angle/0.72);while((Angle--)>=0){if(Direction==1)//正轉{//每執行一次下面的循環,步進電機轉角0.72度 ,//步進電機運行1周,需執行500次下面的循環for(i=0;i<8;i++){P1=Rotation[i];//步距角0.09度,4000次轉一圈Delay_ms(Step);}}else if(Direction==2)//反轉{for(i=7;i>=0;i--){P1=Rotation[i];Delay_ms(Step);}}	}
}

?

五,代碼編譯、下載到51單片機

代碼編譯請參考

《51單片機STC89C52RC——代碼編譯-CSDN博客》

代碼下載請參考

《51單片機STC89C52RC——STCAI-ISP代碼下載-CSDN博客》

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/41542.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/41542.shtml
英文地址,請注明出處:http://en.pswp.cn/web/41542.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

CompletionService

必備知識&#xff1a; 三種創建線程的方式 java線程池 CompletionService是Java并發庫中的一個接口&#xff0c;用于簡化處理一組異步任務的執行和結果收集。它結合了Executor和BlockingQueue的功能&#xff0c;幫助管理任務的提交和完成。CompletionService的主要實現類是Exe…

前端必修技能:高手進階核心知識分享 - CSS 陰影屬性詳解

CSS 涉及設計到陰影的相關內容包括三個方面&#xff1a;box-shadow屬性&#xff08;盒子陰影&#xff09;、 text-shadow屬性&#xff08;文本陰影&#xff09;、drop-shadow濾鏡。 本篇文章旨在詳細介紹和分析三種陰影的具體參數設置和典型用例。 box-shadow屬性&#xff08;…

預防臨床預測模型中可能的“算法歧視”

預防臨床預測模型中可能的“算法歧視” 概要&#xff1a;如果訓練數據中存在性別方面的不均衡&#xff0c;會讓訓練出的模型存在性別方面的“算法歧視”&#xff0c;進而導致某種性別下存在更多的誤診誤治&#xff0c;最終造成醫療資源分配的不公平的倫理問題&#xff0c;導致模…

04.C1W3.Vector Space Models

往期文章請點這里 目錄 Vector Space ModelsWord by Word and Word by DocWord by Document DesignWord by Document DesignVector Space Euclidean DistanceEuclidean distance for n-dimensional vectors Euclidean distance in PythonCosine Similarity: IntuitionCosine S…

STM32-SPI和W25Q64

本內容基于江協科技STM32視頻學習之后整理而得。 文章目錄 1. SPI&#xff08;串行外設接口&#xff09;通信1.1 SPI通信簡介1.2 硬件電路1.3 移位示意圖1.4 SPI時序基本單元1.5 SPI時序1.5.1 發送指令1.5.2 指定地址寫1.5.3 指定地址讀 2. W25Q642.1 W25Q64簡介2.2 硬件電路2…

嵌入式C語言面試相關知識——內存管理(不定期更新)

嵌入式C語言面試相關知識——內存管理&#xff08;不定期更新&#xff09; 一、博客聲明二、自問題目1、嵌入式系統的內存布局是怎么樣的&#xff1f;2、動態內存分配在嵌入式系統中的使用有什么注意事項&#xff1f;3、什么是內存碎片&#xff0c;如何減少內存碎片&#xff1f…

win11自動刪除文件的問題,安全中心提示

win11自動刪除文件的問題&#xff0c;解決方法&#xff1a; 1.點擊任務欄上的開始圖標&#xff0c;在顯示的應用中&#xff0c;點擊打開設置。 或者點擊電腦右下角的開始也可以 2.點擊設置。也可以按Wini打開設置窗口。 3.左側點擊隱私和安全性&#xff0c;右側點擊Windows安全…

我國網絡安全領域有哪些法律法規?主要內容是什么?

1. 背景介紹 網絡信息安全方面的法規在全球范圍內都有相應的立法&#xff0c;我們主要的立法有《網絡安全法》、《密碼法》、《數據安全法》以及《個人信息保護法》。當前也有一些相關的條例和管理辦法&#xff0c;接下來就為大家一一介紹。 2. 法規介紹 在中國&#xff0c;…

多線程(進階)

前言&#x1f440;~ 上一章我們介紹了線程池的一些基本概念&#xff0c;今天接著分享多線程的相關知識&#xff0c;這些屬于是面試比較常見的&#xff0c;大部分都是文本內容 常見的鎖策略 樂觀鎖 悲觀鎖 輕量鎖 重量級鎖 自旋鎖 掛起等待鎖 可重入鎖和不可重入鎖 互斥…

Leetcode 3207. Maximum Points After Enemy Battles

Leetcode 3207. Maximum Points After Enemy Battles 1. 解題思路2. 代碼實現 題目鏈接&#xff1a;3207. Maximum Points After Enemy Battles 1. 解題思路 這一題的話其實關鍵在于說是想明白最優策略&#xff0c;事實上這道題的最優策略就是撿著最弱的enemy薅&#xff0c;…

接口測試分析、設計以及實現

接口相關理論 ui功能測試和接口測試哪個先執行&#xff1f;–為什么 結論&#xff1a;接口測試先執行 原因&#xff1a;ui功能測試需要等待前端頁面開發完成、后臺接口開發完后且前端與后端聯調完成。ui功能測試與接口測試的區別&#xff1f; ui功能&#xff1a;功能調用&am…

學習筆記——交通安全分析14

目錄 前言 當天學習筆記整理 5城市主干道交通安全分析 結束語 前言 #隨著上一輪SPSS學習完成之后&#xff0c;本人又開始了新教材《交通安全分析》的學習 #整理過程不易&#xff0c;喜歡UP就點個免費的關注趴 #本期內容接上一期13筆記 當天學習筆記整理 5城市主干道交…

Avalonia中的Property

文章目錄 前言附加屬性樣式屬性直接屬性總結前言 在WPF中, 是可以定義依賴屬性和附加屬性的 依賴屬性: 當您需要單獨創建控件時, 并且希望控件的某個部分能夠支持數據綁定時, 你則可以使用到依賴屬性。 通過DependencyProperty.Register注冊依賴屬性 附加屬性: 這種情況很多,…

【原理+使用】DeepCache: Accelerating Diffusion Models for Free

論文&#xff1a;arxiv.org/pdf/2312.00858 代碼&#xff1a;horseee/DeepCache: [CVPR 2024] DeepCache: Accelerating Diffusion Models for Free (github.com) 介紹 DeepCache是一種新穎的無訓練且幾乎無損的范式&#xff0c;從模型架構的角度加速了擴散模型。DeepCache利…

【因果推斷】優惠券政策對不同店鋪的影響

這次依然是用之前rossmann店鋪競賽的數據集。 之前的數據集探索處理在這里已經做過了&#xff0c;此處就不再贅述了CSDN鏈接 數據集地址&#xff1a;競賽鏈接 這里探討數據集中Promo2對于每家店鋪銷售額的影響。其中&#xff0c;Promo2是一個基于優惠券的郵寄活動&#xff0c;發…

SQL Server 2022 中的 Tempdb 性能改進非常顯著

無論是在我的會話中還是在我寫的博客中&#xff0c;Tempdb 始終是我的話題。然而&#xff0c;當談到 SQL Server 2022 中引入的重大性能變化時&#xff0c;我從未如此興奮過。他們解決了我們最大的性能瓶頸之一&#xff0c;即系統頁面閂鎖并發。 在 SQL Server 2019 中&#x…

三級_網絡技術_06_IP地址規劃技術

1.下列對IPv6地址表示中&#xff0c;錯誤的是()。 AE1A:0:0:0:0:A2:F3:FE08:5 E3E0::1A90:FE:0:4CA2:9C5C E2C1::0:0:81/48 :E140:1A5C:0:05D9 2.下列對IPv6地址表示中&#xff0c;錯誤的是()。 1F1A:0:0:0:0:A2:F3:FE08:3 E360::2A90:FE:0:4CA2:9C5A B2C1::0:0:81/48 …

Go語言如何入門,有哪些書推薦?

Go 語言之所以如此受歡迎&#xff0c;其編譯器功不可沒。Go 語言的發展也得益于其編譯速度夠快。 對開發者來說&#xff0c;更快的編譯速度意味著更短的反饋周期。大型的 Go 應用程序總是能在幾秒鐘之 內完成編譯。而當使用 go run編譯和執行小型的 Go 應用程序時&#xff0c;其…

如何利用Github Action實現自動Merge PR

我是螞蟻背大象(Apache EventMesh PMC&Committer)&#xff0c;文章對你有幫助給項目rocketmq-rust star,關注我GitHub:mxsm&#xff0c;文章有不正確的地方請您斧正,創建ISSUE提交PR~謝謝! Emal:mxsmapache.com 1. 引言 GitHub Actions 是 GitHub 提供的一種強大而靈活的自…

(九)Docker 的網絡通信

文章目錄 1、常用模式2、概念了解2.1、Docker 內容器的通信2.2、宿主機和 Docker容器的通信 1、常用模式 直接使用 端口映射&#xff0c;宿主機:宿主機端口->容器 ip:容器端口端口映射宿主機 hosts 映射&#xff0c;首先在宿主機 /etc/hosts文件中增加 宿主機 ip:容器 host…