九色国产,午夜在线视频,新黄色网址,九九色综合,天天做夜夜做久久做狠狠,天天躁夜夜躁狠狠躁2021a,久久不卡一区二区三区

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書(shū)等14項(xiàng)超值服

開(kāi)通VIP
Arduino 入門到精通 舵機(jī)控制

舵機(jī)是一種位置伺服的驅(qū)動(dòng)器,主要是由外殼、電路板、無(wú)核心馬達(dá)、齒輪與位置檢測(cè)器所構(gòu)成。其工作原理是由接收機(jī)或者單片機(jī)發(fā)出信號(hào)給舵機(jī),其內(nèi)部有一個(gè)基準(zhǔn)電路,產(chǎn)生周期為20ms,寬度為1.5ms 的基準(zhǔn)信號(hào),將獲得的直流偏置電壓與電位器的電壓比較,獲得電壓差輸出。經(jīng)由電路板上的IC 判斷轉(zhuǎn)動(dòng)方向,再驅(qū)動(dòng)無(wú)核心馬達(dá)開(kāi)始轉(zhuǎn)動(dòng),透過(guò)減速齒輪將動(dòng)力傳至擺臂,同時(shí)由位置檢測(cè)器送回信號(hào),判斷是否已經(jīng)到達(dá)定位。適用于那些需要角度不斷變化并可以保持的控制系統(tǒng)。當(dāng)電機(jī)轉(zhuǎn)速一定時(shí),通過(guò)級(jí)聯(lián)減速齒輪帶動(dòng)電位器旋轉(zhuǎn),使得電壓差為0,電機(jī)停止轉(zhuǎn)動(dòng)。一般舵機(jī)旋轉(zhuǎn)的角度范圍是度到180 度。

舵機(jī)有很多規(guī)格,但所有的舵機(jī)都有外接三根線,分別用、三種顏色進(jìn)行區(qū)分,由于舵機(jī)品牌不同,顏色也會(huì)有所差異,色為接地線,色為電源正極線,色為信號(hào)線。

舵機(jī)的轉(zhuǎn)動(dòng)的角度是通過(guò)調(diào)節(jié)PWM(脈沖寬度調(diào)制)信號(hào)的占空比來(lái)實(shí)現(xiàn)的,標(biāo)準(zhǔn)PWM(脈沖寬度調(diào)制)信號(hào)的周期固定為20ms50Hz),理論上脈寬分布應(yīng)在1ms2ms 之間,但是,事實(shí)上脈寬可由0.5ms 2.5ms 之間,脈寬和舵機(jī)的轉(zhuǎn)角0°~180°相對(duì)應(yīng)。有一點(diǎn)值得注意的地方,由于舵機(jī)牌子不同,對(duì)于同一信號(hào),不同牌子的舵機(jī)旋轉(zhuǎn)的角度也會(huì)有所不同。

了解了基礎(chǔ)知識(shí)以后我們就可以來(lái)學(xué)習(xí)控制一個(gè)舵機(jī)了,本實(shí)驗(yàn)所需要的元器件很少只需要舵機(jī)一個(gè)、跳線一扎就可以了。

RB?412 舵機(jī)*1 

面包板跳線*1 

Arduino 控制舵機(jī)的方法有兩種,一種是通過(guò)Arduino 的普通數(shù)字傳感器接口產(chǎn)生占空比不同的方波,模擬產(chǎn)生PWM 信號(hào)進(jìn)行舵機(jī)定位,第二種是直接利用Arduino 自帶的Servo 函數(shù)進(jìn)行舵機(jī)的控制,這種控制方法的優(yōu)點(diǎn)在于程序編寫,缺點(diǎn)是只能控制路舵機(jī),因?yàn)?/span>Arduino 自帶函數(shù)只能利用數(shù)字9、10 接口。Arduino 的驅(qū)動(dòng)能力有限,所以當(dāng)需要控制個(gè)以上的舵機(jī)時(shí)需要外接電源。

方法一

 

將舵機(jī)接數(shù)字 接口上。

編寫一個(gè)程序讓舵機(jī)轉(zhuǎn)動(dòng)到用戶輸入數(shù)字所對(duì)應(yīng)的角度數(shù)的位置,并將角度打印顯示到屏幕上。

參考源程序A

int servopin=9;//定義數(shù)字接口9 連接伺服舵機(jī)信號(hào)線int myangle;//定義角度變量int pulsewidth;//定義脈寬變量int val;void servopulse(int servopin,int myangle)//定義一個(gè)脈沖函數(shù){pulsewidth=(myangle*11)+500;//將角度轉(zhuǎn)化為500-2480 的脈寬值digitalWrite(servopin,HIGH);//將舵機(jī)接口電平至高delayMicroseconds(pulsewidth);//延時(shí)脈寬值的微秒數(shù)digitalWrite(servopin,LOW);//將舵機(jī)接口電平至低delay(20-pulsewidth/1000);}void setup(){pinMode(servopin,OUTPUT);//設(shè)定舵機(jī)接口為輸出接口Serial.begin(9600);//連接到串行端口,波特率為9600Serial.println("servo=o_seral_simple ready" ) ;}void loop()//將0 到9 的數(shù)轉(zhuǎn)化為0 到180 角度,并讓LED 閃爍相應(yīng)數(shù)的次數(shù){val=Serial.read();//讀取串行端口的值if(val>’0’&&val<=’9’){val=val-’0’;//將特征量轉(zhuǎn)化為數(shù)值變量val=val*(180/9);//將數(shù)字轉(zhuǎn)化為角度Serial.print("moving servo to ");Serial.print(val,DEC);Serial.println();for(int i=0;i<=50;i++) //給予舵機(jī)足夠的時(shí)間讓它轉(zhuǎn)到指定角度{servopulse(servopin,val);//引用脈沖函數(shù)}}}

方法二

先具體分析一下 Arduino 自帶的Servo 函數(shù)及其語(yǔ)句,來(lái)介紹一下舵機(jī)函數(shù)的幾個(gè)常用語(yǔ)句吧。

1、attach(接口)??設(shè)定舵機(jī)的接口,只有數(shù)字10 接口可利用。

2、write(角度)??用于設(shè)定舵機(jī)旋轉(zhuǎn)角度的語(yǔ)句,可設(shè)定的角度范圍是0°到180°。

3read()??用于讀取舵機(jī)角度的語(yǔ)句,可理解為讀取最后一條write()命令中

的值。

4、attached()??判斷舵機(jī)參數(shù)是否已發(fā)送到舵機(jī)所在接口。

5、detach()??使舵機(jī)與其接口分離,該接口(數(shù)字10 接口)可繼續(xù)被用作PWM 接口。

注:以上語(yǔ)句的書(shū)寫格式均為“舵機(jī)變量名.具體語(yǔ)句()”例如:myservo.attach(9)

仍然將舵機(jī)接在數(shù)字接口上即可。

參考源程序B


#include <Servo.h>//定義頭文件,這里有一點(diǎn)要注意,可以直接在Arduino 軟件菜單欄單擊Sketch>Importlibrary>Servo,調(diào)用Servo 函數(shù),也可以直接輸入#include <Servo.h>,但是在輸入時(shí)要注意在#include 與<Servo.h>之間要有空格,否則編譯時(shí)會(huì)報(bào)錯(cuò)。Servo myservo;//定義舵機(jī)變量名void setup(){myservo.attach(9);//定義舵機(jī)接口(9、10 都可以,缺點(diǎn)只能控制2 個(gè))}void loop(){myservo.write(90);//設(shè)置舵機(jī)旋轉(zhuǎn)的角度}

以上就是控制舵機(jī)的兩種方法,各有優(yōu)缺點(diǎn)大家根據(jù)自己的喜好和需要進(jìn)行選擇。

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開(kāi)APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Arduino 控制舵機(jī)
arduino舵機(jī)servo庫(kù)介紹和檢查調(diào)整舵機(jī)的兩個(gè)方法
Arduino語(yǔ)言編寫(初學(xué))
Arduino教程 Lesson 12:可控舵機(jī)
LabVIEW Arduino:舵機(jī)控制
如何使用Arduino舵機(jī)庫(kù)servo.h – 八色木
更多類似文章 >>
生活服務(wù)
熱點(diǎn)新聞
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服