国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

單片機(jī)——SG90舵機(jī)工作原理

這篇具有很好參考價值的文章主要介紹了單片機(jī)——SG90舵機(jī)工作原理。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

前言:
舵機(jī)控制的另一個專業(yè)名字叫伺服控制。

經(jīng)過百度,伺服”—詞源于希臘語“奴隸”的意思。人們想把“伺服機(jī)構(gòu)”當(dāng)個得心應(yīng)手的馴服工具,服從控制信號的要求而動作。在訊號來到之前,轉(zhuǎn)子靜止不動;訊號來到之后,轉(zhuǎn)子立即轉(zhuǎn)動;當(dāng)訊號消失,轉(zhuǎn)子能即時自行停轉(zhuǎn)。由于它的“伺服”性能,因此而得名——伺服系統(tǒng)。

我們這次就是要控制舵機(jī)轉(zhuǎn)動任意角度。

舵機(jī)

一、外觀

單片機(jī)——SG90舵機(jī)工作原理
接線方法:
紅-------------------------VCC
棕色----------------------GND
橙色----------------------信號線

二、相關(guān)參數(shù)

單片機(jī)——SG90舵機(jī)工作原理

三、工作原理

舵機(jī)的控制信號為周期是20ms 的脈寬調(diào)制(PWM)信號,其中脈沖寬度從0.5ms-2.5ms,相對應(yīng)舵盤的位置為0—180度,呈線性變化。也就是說,給它提供一定的脈寬,它的輸出軸就會保持在一個相對應(yīng)的角度上,無論外界轉(zhuǎn)矩怎樣改變,直到給它提供一個另外寬度的脈沖信號,它才會改變輸出角度到新的對應(yīng)的位置上。舵機(jī)內(nèi)部有一個基準(zhǔn)電路,產(chǎn)生周期20ms,寬度1.5ms的基準(zhǔn)信號,有一個比較器,將外加信號與基準(zhǔn)信號相比較,判斷出方向和大小,從而產(chǎn)生電機(jī)的轉(zhuǎn)動信號。

控制電路板接受來自信號線相應(yīng)的PWM控制信號,進(jìn)而控制電機(jī)轉(zhuǎn)動,電機(jī)帶動一系列齒輪組,減速后傳動至輸出舵盤。舵機(jī)的輸出軸和位置反饋電位計是相連的,舵盤轉(zhuǎn)動的同時,帶動位置反饋電位計,電位計將輸出一個電壓信號到控制電路板,進(jìn)行反饋,然后控制電路板根據(jù)所在位置決定電機(jī)的轉(zhuǎn)動方向和速度,從而達(dá)到目標(biāo)停止。

舵機(jī)的控制需要MCU產(chǎn)生一個周期為20ms的脈沖信號,以0.5ms到2.5ms的高電平來控制舵機(jī)轉(zhuǎn)動的角度。
單片機(jī)——SG90舵機(jī)工作原理

四、舵機(jī)購買注意事項

1、在購買時,需要分清楚你的舵機(jī)可以轉(zhuǎn)180度,還是360度。相關(guān)區(qū)別購買時可以了解。
單片機(jī)——SG90舵機(jī)工作原理
單片機(jī)——SG90舵機(jī)工作原理

2、舵機(jī)又分為數(shù)字舵機(jī)和模擬舵機(jī)。

模擬舵機(jī):需要不斷的發(fā)送相應(yīng)角度的PWM信號,才能旋轉(zhuǎn)到指定位置。例如:我現(xiàn)在讓它旋轉(zhuǎn)90度,我就需要在一個時間內(nèi)不斷的發(fā)送90度的PWM信號,舵機(jī)轉(zhuǎn)動到指定位置就會停止。

數(shù)字舵機(jī):只需給一個目的地PWM信號,即可旋轉(zhuǎn)到指定位置。例如:我現(xiàn)在讓它旋轉(zhuǎn)90度,我只需要發(fā)送一次90度的PWM信號,它就可以旋轉(zhuǎn)到90度。

SG90舵機(jī) 是模擬舵機(jī),SG90S舵機(jī) 我記得好像是數(shù)字舵機(jī),總之?dāng)?shù)字舵機(jī)比模擬舵機(jī)好些,無論實在程序控制方面還是在運(yùn)行情況方面都要好些

五、代碼編寫

舵機(jī)要用PWM來控制,PWM的產(chǎn)生可以用軟件延時和定時器的方法。這里為了體現(xiàn)精確性,采用定時器的方式。

首先還是看下這張圖片,這個是PWM控制SG90舵機(jī)的關(guān)鍵。我們只有按照給舵機(jī)輸入正確的PWM波形,舵機(jī)才會轉(zhuǎn)動到指定的角度。
單片機(jī)——SG90舵機(jī)工作原理
上代碼:

1、PWM波形的周期我們用定時器產(chǎn)生,所以先對定時器做初始化:
void Timer_Init()
{
  TMOD=0X01;      //T0定時方式1
  TH0=0Xfe;
  TL0=0X33;       //計數(shù)初值設(shè)置為0.5ms
  ET0=1;          //打開定時器0的中斷
  TR0=1;          //打開定時器0
  EA=1;           //開總中斷
}
2、然后就是編寫定時器中斷函數(shù),和輸出對應(yīng)的PWM波形了:

PWM波形這里是在定時器里產(chǎn)生的。

sbit PWM=P2^3;  	//對應(yīng)舵機(jī)的PWM引腳
int count=0;		//全局變量count用于定時器計數(shù)
int c=0;	//這個值為高低電平的臨界值,可以改變,
			//這里初始化為0表示開始讓舵機(jī)復(fù)位到0度位置(輸出0.5ms的高電平)

void Timer() interrupt 1     
{
  TH0=0Xfe;
  TL0=0X33;       //重新賦計數(shù)初值為0.5ms
  
  if(count<=c)	//進(jìn)入定時器的時間和高低電平臨界值比較
  {
    PWM=1;		//輸出PWM波形中的高電平
  }
  else
  {
    PWM=0;
  }
  count++;
	
  if(count>=40)		//計數(shù)40次,每次0.5ms,總共達(dá)到20ms周期后清零,為下一周期開始計數(shù)做準(zhǔn)備
  {
    count=0;
  }
}
3、主函數(shù)代碼的書寫:
void main()
{
Timer_Init();
while(1);
}

嗯嗯,上面就是代碼全部了,沒有給出整體代碼,防止只復(fù)制粘貼,不動腦瓜子的童鞋

1、那。。。,博主博主,我把上面的代碼組裝到工程里去了,燒寫到單片機(jī)中去,開機(jī)舵機(jī)沒反應(yīng)呀?

答:看看舵機(jī)原本是不是在0度的位置,如果是,請手動把他轉(zhuǎn)到其它角度,在上電,看舵機(jī)轉(zhuǎn)到0度了沒有。

2、那。。。,博主博主,我想讓舵機(jī)上電就復(fù)位到90度的位置,咋辦?

答:認(rèn)真看下代碼里語句的注釋,我們將程序中的高低電平臨界值變量c,賦值為2,即c=2;上電后,舵機(jī)如果不在90度的位置,就會復(fù)位到90度了。

3、那。。。,博主博主,我想定義兩個按鍵,按下一個按鍵舵機(jī)轉(zhuǎn)到0度位置,按下另一個按鍵,舵機(jī)轉(zhuǎn)到180位置,咋辦?

答:先用sbit定義兩個按鍵引腳,然后在主函數(shù)中的while循環(huán)里,判斷哪個按鍵按下,然后改變臨界值C就行。如下

while(1)
{
	if(key1==0)
	{
		delay_ms(5);
		if(key1==0)
		{
			c=0;		//對應(yīng)高電平輸出0.5ms,轉(zhuǎn)到0度
			while(!key1);
		}
	}
	else if(key2==0)
	{
		delay_ms(5);
		if(key2==0)
		{
			c=4;		//對應(yīng)高電平輸出2.5ms,轉(zhuǎn)到180度
			while(!key2);
		}
	}
}

六、優(yōu)化后的代碼

嗯。。。,咋子優(yōu)化哦,上面不就可以讓舵機(jī)抓到指定位置了嗎?

SG90是模擬舵機(jī),需要在一個時間內(nèi)不斷的輸出一定的PWM波形給舵機(jī),它才會轉(zhuǎn)到到指定位置,上面的代碼中我是讓定時器不斷的工作,不斷的輸出PWM波形。

其實對于模擬舵機(jī),不需要一直讓定時器工作輸出PWM波形,只用在一段時間內(nèi)輸出一定的PWM波形就可以。那為什么這樣考慮呢?因為給一段時間的PWM波形后,舵機(jī)就可以轉(zhuǎn)動到位了,后面再給PWM波形就沒有意義了,舵機(jī)轉(zhuǎn)動到位后,就可以關(guān)閉定時器了(除非你的其它功能要用到定時器,就可以不用關(guān)),這樣可以避免后面不斷的觸發(fā)定時中斷,影響主函數(shù)while里其它功能的執(zhí)行效率,畢竟進(jìn)入定時中斷函數(shù)里時,主函數(shù)時不得執(zhí)行的。

上面講到的那個時間,可以通過實際調(diào)試多次測出來,博主這里測出來了。

**完整并優(yōu)化的項目代碼放到最后:
【51單片機(jī)控制SG90舵機(jī)】
**文章來源地址http://www.zghlxwxcb.cn/news/detail-404651.html

到了這里,關(guān)于單片機(jī)——SG90舵機(jī)工作原理的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 【STM32單片機(jī)】STM32控制SG90舵機(jī)的PWM部分參數(shù)的設(shè)置解答

    【STM32單片機(jī)】STM32控制SG90舵機(jī)的PWM部分參數(shù)的設(shè)置解答

    我們要知道,SG90舵機(jī)接收的PWM信號的參數(shù):f=50Hz,T=1/f,所以周期為20ms。 當(dāng)高電平的脈寬在0.5ms-2.5ms之間時舵機(jī)就可以對應(yīng)旋轉(zhuǎn)到不同的角度。 換句話說,我們要用單片機(jī)產(chǎn)生一個 周期(20ms) 的PWM波,然后獲得對應(yīng)這些時長(分別是 0.5ms 、 1ms 、 1.5ms 、 2ms 、 2.5ms )的 高電

    2024年02月13日
    瀏覽(24)
  • 小白入門STM32(2)---控制SG90舵機(jī)---基礎(chǔ)工作原理詳解

    小白入門STM32(2)---控制SG90舵機(jī)---基礎(chǔ)工作原理詳解

    本人一枚軟件編程人員,有一定C語言基礎(chǔ),目前自學(xué)STM32單片機(jī),寫下此篇一鞏固所學(xué)二交流分享。 按照慣例,先介紹理論再實戰(zhàn)上手,穿插習(xí)題,最后給出我的愚見。 SG90屬于一種舵機(jī),最適合小白入門,可直接由單片機(jī)驅(qū)動。另外,單片機(jī)中給我們封裝了很多東西,所以

    2023年04月10日
    瀏覽(20)
  • SG90舵機(jī)的原理和控制方式

    SG90舵機(jī)的原理和控制方式

    前言 做過機(jī)器人、智能車或者玩航模的朋友應(yīng)該對舵機(jī)不會陌生,這種舵機(jī)也是很常用的。 舵機(jī)只是我們通俗的叫法,它的本質(zhì)是一個 伺服電機(jī) ,也可以叫做位置(角度)伺服驅(qū)動器。一般被應(yīng)用在那些需要控制角度變化的系統(tǒng)中,可以方便的實現(xiàn)轉(zhuǎn)動任意的角度,實現(xiàn)控制

    2023年04月17日
    瀏覽(25)
  • SG90舵機(jī)介紹

    SG90舵機(jī)介紹

    SG90舵機(jī)簡介 ? ? ? ?SG90舵機(jī)是一種位置(角度)伺服的驅(qū)動器,適用于那些需要角度不斷變化并可以保持的控制系統(tǒng)。在機(jī)器人機(jī)電控制系統(tǒng)中,舵機(jī)控制效果是性能的重要影響因素。舵機(jī)可以在微機(jī)電系統(tǒng)和航模中作為基本的輸出執(zhí)行機(jī)構(gòu),其簡單的控制和輸出使得單片

    2024年02月02日
    瀏覽(22)
  • SG90舵機(jī)使用介紹

    SG90舵機(jī)使用介紹

    型號:SG90 接線 黃線:信號線 紅線:電源線 棕線:地線 PWM周期 需要通過信號線往舵機(jī)輸入PWM波,才能驅(qū)動舵機(jī)轉(zhuǎn)動 PWM波的頻率不能太高,大約50HZ,即周期=1/頻率=1/50=0.02s,20ms左右 舵機(jī)的控制一般需要一個20ms左右的時基脈沖,該脈沖的高電平部分一般為0.5ms-2.5ms范圍內(nèi)的角

    2024年02月13日
    瀏覽(24)
  • 【STM32】 SG90舵機(jī)

    【STM32】 SG90舵機(jī)

    目錄 一:介紹 二:傳感器參數(shù) 三:接口說明 四:SG90舵機(jī)模塊接口原理圖 五:SG90舵機(jī)模塊實物圖 舵機(jī)是一種位置(角度)伺服的驅(qū)動器,適用于那些需要角度不斷變化并可以保持的控制系統(tǒng)。 目前,在高檔遙控玩具,如飛機(jī)、潛艇模型,遙控機(jī)器人中已經(jīng)得到了普遍應(yīng)用

    2024年02月06日
    瀏覽(17)
  • STM32驅(qū)動SG90舵機(jī)

    STM32驅(qū)動SG90舵機(jī)

    SG90是一種小型伺服電機(jī),通常用于模型制作和小型機(jī)械應(yīng)用中: 問題 答案 SG90的工作電壓是多少 SG90的工作電壓通常為3V至7.2V SG90最大扭矩是多少 SG90的最大扭矩約為1.5kg/cm SG90的工作溫度范圍是多少 SG90的工作溫度范圍通常為0°C至55°C SG90的控制方式是什么 SG90的控制方式通常為

    2024年02月12日
    瀏覽(20)
  • 單片機(jī)學(xué)習(xí)筆記---AD/DA工作原理(含運(yùn)算放大器的工作原理)

    單片機(jī)學(xué)習(xí)筆記---AD/DA工作原理(含運(yùn)算放大器的工作原理)

    目錄 AD/DA介紹 硬件電路模型 硬件電路 運(yùn)算放大器 DA原理 T型電阻網(wǎng)絡(luò)DA轉(zhuǎn)換器 PWM型DA轉(zhuǎn)換器 AD原理 逐次逼近型AD轉(zhuǎn)換器 AD/DA性能指標(biāo) XPT2046 XPT2046時序 AD(Analog to Digital):模擬-數(shù)字轉(zhuǎn)換,將模擬信號轉(zhuǎn)換為計算機(jī)可操作的數(shù)字信號。有時候我們也把AD叫做ADC(C是轉(zhuǎn)換器conv

    2024年02月22日
    瀏覽(25)
  • 51單片機(jī)P0~P3口工作原理

    51單片機(jī)P0~P3口工作原理

    多路開關(guān)MUX決定P0.x是作數(shù)據(jù)/地址引腳還是作通用I/O引腳。 三態(tài)緩沖器BUF1,BUF2由C1,C2控制是讀鎖存器還是讀引腳 控制線置1,MUX連通地址/數(shù)據(jù)線,此時作P0.x數(shù)據(jù)/地址引腳 發(fā)出信號 數(shù)據(jù)/地址線置1,V1導(dǎo)通,V2截止。P0.x輸出1的數(shù)據(jù)/地址信號; 數(shù)據(jù)/地址線置0,V1截止,V2導(dǎo)通。

    2024年04月12日
    瀏覽(22)
  • 定量分析計算51單片機(jī)復(fù)位電路工作原理 怎么計算單片機(jī)復(fù)位電容和電阻大小

    定量分析計算51單片機(jī)復(fù)位電路工作原理 怎么計算單片機(jī)復(fù)位電容和電阻大小

    下面畫出等效電路圖 ?可以知道單片機(jī)內(nèi)必然有一個電阻RX,為了簡化分析,我們假設(shè)他是線性電阻(不帶電容,電感的支路) 還有一個基礎(chǔ)知識: 電容器的充電放電曲線: 還需要知道電容電壓的變化是連續(xù)的,(高數(shù)知識)無法跳變。 一個很大的誤區(qū)就是認(rèn)為電容一上電

    2024年02月12日
    瀏覽(26)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包