arduino項(xiàng)目整理.doc_第1頁(yè)
arduino項(xiàng)目整理.doc_第2頁(yè)
arduino項(xiàng)目整理.doc_第3頁(yè)
arduino項(xiàng)目整理.doc_第4頁(yè)
arduino項(xiàng)目整理.doc_第5頁(yè)
已閱讀5頁(yè),還剩26頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

報(bào)警器代碼Float sinVal /浮點(diǎn)型sin函數(shù)變量Int toneVal /整形音調(diào)變量Void setup()pin mode(8,OUTPUT) /設(shè)置引腳為8的輸出 Void loop() For (int x=0;x180,x+) /for循環(huán) 初始變量為0度 范圍0180增加 sinVal=(sin(x*(3.1412/180) /將角度轉(zhuǎn)換為弧度制賦值給sinValtoneVal=2000+(int(sinVal*1000) /將數(shù)值化為整數(shù),無(wú)小數(shù) tone(8,toneVal) /給引腳8音調(diào)delay(2) /延遲2毫秒 SOS求救器SOS求救器是通過(guò)LED開關(guān)兩種狀態(tài)來(lái)拼出一個(gè)個(gè)字母。通過(guò)長(zhǎng)閃爍和短閃爍來(lái)表示點(diǎn)和橫杠。我們這個(gè)項(xiàng)目中, 我們就拼寫S.O.S這三個(gè)字母。通過(guò)查閱莫爾斯碼表,我們可以知道,字母“S”用三個(gè)點(diǎn)表示,我們這里用短閃爍替代,字母“O”則用三個(gè)橫 杠表示,用長(zhǎng)閃爍替代。【實(shí)驗(yàn)現(xiàn)象】LED燈短閃爍三次,停頓0.1s,長(zhǎng)閃爍3次,停頓0.1s,再短閃爍三次,停頓五秒,最后循環(huán)整個(gè)程序。【試驗(yàn)線路圖】按圖連接好線路圖(注意LED燈正負(fù)極及接地)注釋:藍(lán)線接地(Gnd)紅線接10號(hào)【程序2-1】int ledPin = 10; void setup() pinMode(ledPin, OUTPUT); void loop() / 三個(gè)快閃爍來(lái)表示字母“S” digitalWrite(ledPin,HIGH); /LED亮燈 (高電平)delay(150); /延時(shí)程序150(150ms)digitalWrite(ledPin,LOW); /LED熄滅 (低電平)delay(100); /延時(shí)程序150(150ms) digitalWrite(ledPin,HIGH); /同第一段程序注釋相同delay(150); digitalWrite(ledPin,LOW); delay(100);digitalWrite(ledPin,HIGH); /同第一段程序注釋相同delay(150); digitalWrite(ledPin,LOW); delay(100); delay(100); /100毫秒延時(shí)產(chǎn)生字母之間的間隙這是程序S的表示方法,三個(gè)短閃爍,然后延時(shí)/三個(gè)短閃爍來(lái)表示字母“O” digitalWrite(ledPin,HIGH); / LED亮燈 (高電平)delay(400); /延時(shí)程序400(400ms)digitalWrite(ledPin,LOW); /LED熄滅 (低電平)delay(100); /延時(shí)程序100(100ms)digitalWrite(ledPin,HIGH); /同第一段程序注釋相同delay(400); digitalWrite(ledPin,LOW); delay(100);digitalWrite(ledPin,HIGH); /同第一段程序注釋相同delay(400); digitalWrite(ledPin,LOW); delay(100); delay(100); /100毫秒延時(shí)產(chǎn)生字母之間的間隙這是程序O的表示方法,三個(gè)長(zhǎng)閃爍,然后延時(shí)/再用三個(gè)快閃爍來(lái)表示字母“S” digitalWrite(ledPin,HIGH); /LED亮燈 (高電平)delay(150); /延時(shí)程序150(150ms)digitalWrite(ledPin,LOW); /LED熄滅 (低電平)delay(100); /延時(shí)程序150(150ms) digitalWrite(ledPin,HIGH); /同第一段程序注釋相同delay(150); digitalWrite(ledPin,LOW); delay(100);digitalWrite(ledPin,HIGH); /同第一段程序注釋相同delay(150); digitalWrite(ledPin,LOW); delay(100);這是程序S的表示方法,三個(gè)短閃爍,然后延時(shí)delay(5000); / 在重復(fù)S.0.S信號(hào)前等待5秒 最后延遲5s 然后循環(huán)程序這就是一段完整的SOS求救器的程序,在經(jīng)過(guò)電路測(cè)試好之后,我們可以簡(jiǎn)化一下我們的程序,進(jìn)一步的加深難度?!境绦?-2】int ledPin = 10; void setup() pinMode(ledPin, OUTPUT); void loop() / 三個(gè)快閃爍來(lái)表示字母“S” for(int x=0;x3;x+) digitalWrite(ledPin,HIGH); /設(shè)置LED 為開delay(150); /延時(shí)150毫秒 digitalWrite(ledPin,LOW); /設(shè)置LED 為關(guān)delay(100); /延時(shí)100毫秒 delay(100); /100毫秒延時(shí)產(chǎn)生字母之間的間隙 這是程序S的表示方法,三個(gè)短閃爍,然后延時(shí) /三個(gè)短閃爍來(lái)表示字母“O”for(int x=0;x3;x+) digitalWrite(ledPin,HIGH); /設(shè)置LED 為開delay(400); /延時(shí)400毫秒 digitalWrite(ledPin,LOW); /設(shè)置LED 為關(guān)delay(100); /延時(shí)100毫秒delay(100); /100毫秒延時(shí)產(chǎn)生字母之間的間隙 這是程序O的表示方法,三個(gè)長(zhǎng)閃爍,然后延時(shí)/ 再用三個(gè)快閃爍來(lái)表示字母“S” for(int x=0;x3;x+) digitalWrite(ledPin,HIGH); /設(shè)置LED 為開 delay(150); /延時(shí)150毫秒 digitalWrite(ledPin,LOW); /設(shè)置LED 為關(guān)delay(100); /延時(shí)100毫秒這是程序S的表示方法,三個(gè)短閃爍,然后延時(shí)delay(5000); / 在重復(fù)S.0.S信號(hào)前等待5秒 在輸入代碼的時(shí)候,注意保持代碼的一個(gè)層次感,除了美觀外,也便于你日后檢查代碼。確認(rèn)正確后,下載代碼到 Arduino中,如果一切順利的話,我們將看到LED閃爍出莫爾斯碼S.O.S信號(hào),等待5秒。重復(fù)閃爍。給Arduino外 接電池,整個(gè)裝到防水的盒子里,就可以用來(lái)發(fā)S.O.S信號(hào)了。【補(bǔ)充】【for語(yǔ)句格式】for(循環(huán)初始化;循環(huán)條件;循環(huán)調(diào)整語(yǔ)句) 條件為真循環(huán)體語(yǔ)句; For循環(huán)順序第一輪:第二輪:直到2不成立,for循環(huán)結(jié)束【比較運(yùn)行符】l =(等于)l !=(不等于)l (大于)l =(大于等于)特別要說(shuō)明一下,等于必須是兩個(gè) 等號(hào)。還有像小于等于和大于等 于,和=之間不能留有空格,否則 編譯不通過(guò)。 當(dāng)然,除了比較運(yùn)算符外,程序也 可以用的+、-、*、/(加、減、 乘、除)這些常用的算術(shù)運(yùn)算符。呼吸燈方法一:int pwm=0; /聲明pwm變量int PinMode=3;void setup() Serial.begin(9600);viod loop()analongWrite(PinMode,pwm); /設(shè)置PWM占空比delay(100);pwm+; /增加輸出的PWM占空比PWM簡(jiǎn)稱脈寬調(diào)制,是利用微處理器的數(shù)字輸出來(lái)對(duì)模擬電路進(jìn)行控制的一種有效技術(shù),這種技術(shù)被廣泛應(yīng)用在測(cè)量、通信、功率控制與變換的許多領(lǐng)域中。模擬輸出用到的函數(shù)為analongWrite(pin,value),其中pin是輸出的引腳號(hào),value為0255之間的數(shù)值。通過(guò)這種函數(shù),硬件PWM通過(guò)0255之間的任一值來(lái)編程,其中0為關(guān)閉,255為全功率,0255之間的任意一個(gè)值都會(huì)產(chǎn)生一個(gè)約490HZ的占空比可變的脈沖序列。Arduino軟件限制PWM通道為8位計(jì)數(shù)器。方法二int ledPin = 10; /將10號(hào)端口命名為ledPinvoid setup() pinMode(ledPin,OUTPUT); /設(shè)置端口的模式為輸出模式 void loop() fadeOn(1000,5); /調(diào)用fadeOn函數(shù) 將1000傳輸nsigned int time 中 5傳輸?shù)絠nt increament中fadeOff(1000,5); /調(diào)用fadeOff函數(shù) void fadeOn(unsigned int time, int increament) /fadeOn函數(shù)讀取括號(hào)中的數(shù)值for (byte value = 0 ; value 0; value-=decreament) /for循環(huán)實(shí)現(xiàn)小燈從亮到暗 analogWrite(ledPin, value); /將value的值通過(guò)pwm來(lái)表示出來(lái)delay(time/(255/5); /每一次循環(huán)后等待的時(shí)間 analogWrite()其作用是給端口寫入一個(gè)模擬值(PWM波)??梢杂脕?lái)控制LED燈的亮度變化,或者以不同的速度驅(qū)動(dòng)馬達(dá)。當(dāng)執(zhí)行analogWrite()命令后,端口會(huì)輸出一個(gè)穩(wěn)定的占空比的方波。除非有下一個(gè)命令來(lái)改變它。PWM信號(hào)的頻率大約為490Hz.在使用uno的arduino控制板上,其工作在3,5,6,9,10,11端口。在使用analogWrite()命令前,可以不使用pinMode()命令把端口定義為輸出端口,當(dāng)然如果定義了更好,這樣利于程序語(yǔ)言規(guī)范。語(yǔ)法analogWrite(pin, value)參數(shù)pin:寫入的端口value:占空比:在0-255之間。注釋與已知問(wèn)題當(dāng)PWM輸出與5,6號(hào)端口的時(shí)候,會(huì)產(chǎn)生比預(yù)期更高的占空比。原因是PWM輸出所使用的內(nèi)部時(shí)鐘,millis()與delay()兩函數(shù)也在使用。所以要注意使用5,6號(hào)端口時(shí),空占比要設(shè)置的稍微低一些,或者會(huì)產(chǎn)生5,6號(hào)端口無(wú)法輸出完全關(guān)閉的信號(hào)。PWM(Pulse-width modulation)脈寬調(diào)制PWM是使用數(shù)字手段來(lái)控制模擬輸出的一種手段。使用數(shù)字控制產(chǎn)生占空比不同的方波(一個(gè)不停在開與關(guān)之間切換的信號(hào))來(lái)控制模擬輸出。以本次實(shí)驗(yàn)來(lái)看,端口的輸入電壓只有兩個(gè)0V與5V。如我我想要3V的輸出電壓怎么辦。有同學(xué)說(shuō)串聯(lián)電阻,對(duì)滴,這個(gè)方法是正確滴。但是如果我想1V,3V,3.5V等等之間來(lái)回變動(dòng)怎么辦呢?不可能不停地切換電阻吧。這種情況下。就需要使用PWM了。他是怎么控制的呢,對(duì)于arduino的數(shù)字端口電壓輸出只有LOW與HIGH兩個(gè)開關(guān),對(duì)應(yīng)的就是0V與5V的電壓輸出,咱本把LOW定義為0,HIGH定義為1.一秒內(nèi)讓arduino輸出500個(gè)0或者1的信號(hào)。如果這500個(gè)全部為1,那就是完整的5V,如果全部為0,那就是0V。如果010101010101這樣輸出,剛好一半一半,輸出端口就感覺(jué)是2.5V的電壓輸出了。這個(gè)和咱們放映電影是一個(gè)道理,咱們所看的電影并不是完全連續(xù)的,它其實(shí)是每秒輸出25張圖片,在這種情況下人的肉眼是分辨不出來(lái)的,看上去就是連續(xù)的了。PWM也是同樣的道理,如果想要不同的電壓,就控制0與1的輸出比例控制就ok當(dāng)然。這和真實(shí)的連續(xù)輸出還是有差別的,單位時(shí)間內(nèi)輸出的0,1信號(hào)越多,控制的就越精確。在下圖中,綠線之間代表一個(gè)周期,其值也是PWM頻率的倒數(shù)。換句話說(shuō)如果arduino PWM的頻率是500Hz,那么兩綠線之間的周期就是2毫秒。 analogWrite() 命令中可以操控的范圍為0-255, analogWrite(255)表示100%占空比(常開), analogWrite(127)占空比大約為50%(一半的時(shí)間)。傳統(tǒng)方法實(shí)現(xiàn)PWM除了使用analogWrite()命令實(shí)現(xiàn)PWM,還可以通過(guò)傳統(tǒng)方法來(lái)控制電平的開關(guān)時(shí)間來(lái)設(shè)置。請(qǐng)看如下代碼1 void setup()2 3 pinMode(13, OUTPUT);/設(shè)定13號(hào)端口為輸出4 56 void loop()7 8 digitalWrite(13, HIGH);9 delayMicroseconds(100); / 大約10%占空比的1KHz方波10 digitalWrite(13, LOW);11 delayMicroseconds(900);12 這種方法的的優(yōu)點(diǎn)是他可以使用任意數(shù)字端口做輸出端口。而且可以自己隨意設(shè)定占空比與頻率。一個(gè)主要的缺點(diǎn)是任何中斷都會(huì)影響時(shí)鐘,這樣就會(huì)導(dǎo)致很大的抖動(dòng),除非你禁用中斷。第二個(gè)卻就是CPU在處理輸出的時(shí)候,就無(wú)法做其他事情了。上面的代碼用到了一個(gè)新的命令delayMicroseconds()其作用是產(chǎn)生一個(gè)延時(shí),計(jì)量單位是微秒,1000微秒=1毫秒。目前delayMicroseconds()最大值為16383。如果值大于1000,推薦使用delay() 命令。 炫彩RGB LED共陽(yáng)RGB與 共陰RGB的 區(qū)別(1)接線中的改變,共陽(yáng)的話,共用端需要接5V,而不是GND,否則LED不能被點(diǎn)亮。 (2)第二點(diǎn)就是,在顏色的調(diào)配上,與共陰是完全相反的。 舉個(gè)例子:共陰RGB顯示紅色為R-255,G-0,B-0。然而共陽(yáng)則完全相反,RGB數(shù)值是 R-0, G-255, B-255。連接之前,先判別RGB是共陰還是共陽(yáng)首先需要了解兩個(gè)函數(shù)指令constrain()函數(shù)需要3個(gè)參數(shù):x、a和b。這里x是你的控制對(duì)象,a是最小值,b是最大值。如果值小于a, 則返回a。如果大于b,則返回b。random()函數(shù)用于生成一個(gè)隨機(jī)數(shù),min是隨機(jī)數(shù)的最小值,max是隨機(jī)數(shù)的最大值。最主要的部分,也就是主函數(shù)。主函數(shù)中調(diào)用了一個(gè)自己創(chuàng)建的函數(shù)colorRGB(),函數(shù)有三個(gè)傳遞參數(shù),用于寫入 Red、Green、Blue的值,也就是0255的值 那么讓我們 來(lái)看程序int redPin = 9;int greenPin = 10; int bluePin = 11;/ 設(shè)置每個(gè)顏色引腳對(duì)應(yīng)的端口void setup() pinMode(redPin, OUTPUT);pinMode(greenPin, OUTPUT); pinMode(bluePin, OUTPUT); /設(shè)置每個(gè)端口的模式為輸出void loop() /R:0-255 G:0-255 B:0-255 colorRGB(random(0,255),random(0,255),random(0,255); delay(1000); /設(shè)置一個(gè)隨機(jī)顏色的值void colorRGB(int red, int green, int blue) analogWrite(redPin,constrain(red,0,255); analogWrite(greenPin,constrain(green,0,255); analogWrite(bluePin,constrain(blue,0,255); /給予顏色的取值范圍感光燈這個(gè)項(xiàng)目中將介紹一個(gè)新元件光敏電阻。從名字可以看出,這個(gè)器件是依賴光作用的。在黑暗的環(huán)境中,光敏 電阻具有非常高阻值的電阻。光線越強(qiáng),電阻值反而越低。通過(guò)讀取這個(gè)電阻值,就可以檢查光線的亮暗了。光敏二極管=感光元件,光照亮大,輸出組織小,流經(jīng)電流大,反之則小所需元件:Arduino Uno*1 原型拓展版*1 條線(公公頭)*5220歐電阻*15MM LED燈*110k電阻*1光敏電阻*1 STEP 1: 硬件連接LED燈還是和以往一樣的接法。而光敏二極管是有正負(fù)極的,和LED一樣,也是遵循長(zhǎng)腳(+),短腳(-)的原則。還需注意的與光敏二極管相連的電阻是10k,而不是220。STEP 2:輸入代碼完成硬件連接后,打開Arduino IDE,輸入下面這段代碼。1. int LED = 13; /設(shè)置LED燈為數(shù)字引腳132. int val = 0; /設(shè)置模擬引腳0讀取光敏二極管的電壓值3. void setup()4. pinMode(LED,OUTPUT); / LED為輸出模式5. Serial.begin(9600); / 串口波特率設(shè)置為96006. 7. void loop()8. val = analogRead(0); / 讀取電壓值010239. Serial.println(val); / 串口查看電壓值的變化10. if(val1000) / 一旦小于設(shè)定的值,LED燈關(guān)閉11. digitalWrite(LED,LOW);12. else / 否則LED亮起13. digitalWrite(LED,HIGH);14. 15. delay(10); / 延時(shí)10ms1. 對(duì)端口進(jìn)行申明對(duì)13號(hào)命名為L(zhǎng)ED同理0號(hào)端口為讀取VAL2. 功能定義13號(hào)口LED在此為輸出端口9600為信息傳送速率(讀取模擬量)模擬量讀?。▽⒋硕丝跀?shù)據(jù)讀取,顯示數(shù)據(jù))if語(yǔ)句如果val1000信號(hào)輸出使LED有高電平,點(diǎn)亮,延時(shí)十秒STEP 3:代碼回顧我們之講LM35溫度傳感器的時(shí)候,也用到了用模擬口讀值。強(qiáng)調(diào)了,模擬量不需要輸入輸出模式。這里,也是同樣用模擬口用來(lái)讀取光敏二極管的模擬值。一旦有光照射,讀出的模擬值就會(huì)減小,這里設(shè)定的上限值是1000。這個(gè)值可以按你需要的亮度來(lái)選取。選取方法:先把整個(gè)裝置放在你想讓LED關(guān)閉的一個(gè)環(huán)境下,然后打開串口,查看串口顯示的值,把這個(gè)值替換掉代碼中的1000。從串口讀值,是調(diào)試代碼一種很好的方法。STEP 4:硬件回顧這里接觸了一種新元件光敏器件。這類器件都是將光信號(hào)變成電信號(hào)的特殊電子元件。元件內(nèi)部有特殊的光導(dǎo)材料,外部用塑料或者玻璃封裝。光線照射在這類光導(dǎo)材料上時(shí),光敏器件的電阻值就會(huì)迅速變小。光敏元件有很多,光敏電阻,光敏二極管,光敏三極管等等。不過(guò)原理是差不多的。我們這里選用的是光敏二極管。光敏二極管其實(shí)是光敏電阻中的一種。所謂二極管,就是有正負(fù)極的,所以在連線的時(shí)候也要注意正負(fù)極。光敏電阻在黑暗的環(huán)境中,具有非常高阻值的電阻。光線越強(qiáng),電阻值反而越低。隨著兩端電阻值的減小,電壓也就相應(yīng)減小(從模擬口讀到的值也就變小,模擬口01023的值對(duì)應(yīng)是05V的電壓值)?;?dòng)交通信號(hào)燈針對(duì)紅黃綠交通的燈進(jìn)行一個(gè)拓展,增加一種行人按鍵請(qǐng)求通過(guò)馬路的功能。當(dāng)按鍵按下時(shí)Arduino會(huì)自動(dòng)反應(yīng),改變交通燈的狀態(tài),讓車停下,允許行人通過(guò)。此項(xiàng)目開始實(shí)現(xiàn)Arduino的互動(dòng)也會(huì)在代碼中學(xué)習(xí)到如何創(chuàng)建自己的函數(shù)。元器件 Arduino Uno*1 原型拓展版*1 條線(公公頭)*13 220歐姆電阻*6 按鍵開關(guān)*1 5MM LED燈紅*2綠*2黃*1接線行車燈紅黃綠與人行燈紅綠串聯(lián)限流電阻后陽(yáng)極分別連接數(shù)字口12,11,10,8,7,負(fù)極共陰接地 代碼int carRed=12; /設(shè)置汽車紅燈引腳int carYellow=11; /設(shè)置汽車黃燈引腳int carGreen=10; /設(shè)置汽車綠燈引腳int button=9; /按鈕引腳int pedRed=8; /設(shè)置人行紅燈引腳int pedGreen=7; /設(shè)置人行紅燈引腳int crossTime=5000; /允許行人通過(guò)的時(shí)間unsigned long changeTime; /按鈕按下后的時(shí)間void setup()pinMode(carRed,OUTPUT); /設(shè)置汽車紅燈為輸出模式pinMode(carYellow,OUTPUT ); /設(shè)置汽車黃燈為輸出模式pinMode(carGreen,OUTPUT); /設(shè)置汽車綠燈為輸出模式pinMode(pedRed,OUTPUT); /設(shè)置人行紅燈為輸出模式pinMode(pedGreen,OUTPUT); /設(shè)置人行綠燈為輸出模式pinMode(button,INPUT); /按鈕設(shè)置為輸入模式digitalWrite(carGreen,HIGH); /開始時(shí)汽車燈綠燈亮digitalWrite(pedRed,HIGH); /開始時(shí)行人燈紅燈亮void loop()int state=digitalRead(button); /設(shè)置按鈕為數(shù)字量輸入if(state=HIGH&(millis()-changTime)5000); /檢測(cè)按鈕是否被按下,并且是否距上次按下按鈕后有5秒的等待時(shí)間changeLights(); /調(diào)用變燈函數(shù) void changeLights() /變燈函數(shù) digitalWrite(carGreen,LOW); /汽車綠燈滅 digitalWrite(carYellow,HIGH); /汽車黃燈亮 delay(2000); /等待2秒 digitalWrite(carYellow,LOW); /汽車黃燈滅 digitalWrite(carRed,HIGH); /汽車紅燈亮 delay (1000); /為安全考慮等待一秒digitalWrite(carYellow,LOW); /汽車黃燈滅 digitalWrite(carRed,HIGH); /汽車紅燈亮 delay(crossTime); /等待一個(gè)通過(guò)時(shí)間for(int x=0;x5000millis()是一個(gè)函數(shù),該函數(shù)是arduino語(yǔ)言自有的函數(shù),它返回值是一個(gè)時(shí)間,arduino開始運(yùn)行到執(zhí)行到當(dāng)前的時(shí)間,也稱之為機(jī)器時(shí)間,如同一個(gè)隱形時(shí)鐘,從控制器開始運(yùn)行的那一刻起開始計(jì)時(shí),以毫秒為單位。變量changeTime初始化時(shí),不儲(chǔ)存任何數(shù)值,直到millis()賦值給它,才開始有數(shù)值,且隨millis()值變化而變化。通過(guò)millis()函數(shù)不斷記錄時(shí)間,判斷兩次記錄的時(shí)間間隔是否大于5秒,5秒之內(nèi)不予反應(yīng),以防止重復(fù)按鍵導(dǎo)致運(yùn)行錯(cuò)誤,讓交通燈之間的跳轉(zhuǎn)完整完成。8. 按鍵開關(guān)按鍵共有四個(gè)引腳。1與4,2與3始終導(dǎo)通,1、4和2、3之間按鍵按下就導(dǎo)通了,否則為斷開。9.下拉電阻“下拉”可以理解為吧電壓往下拉,價(jià)低電壓。按鍵作為開關(guān),當(dāng)輸入電路狀態(tài)為high時(shí),電壓要盡可能接近5v,輸入電路狀態(tài)為low時(shí),電壓要盡可能接近0v。若不能確保狀態(tài)接近所需電壓,這部分電路會(huì)產(chǎn)生電壓浮動(dòng),讀取的數(shù)字量不能確保正確。一圖未接下拉電阻按鍵為按下時(shí)input引腳處于懸空狀態(tài),空氣會(huì)使該引腳電壓產(chǎn)生浮動(dòng),不能確保為0v。二圖接了下拉電阻,按鍵為按下時(shí),9號(hào)口通過(guò)電阻接地確保為0v,不會(huì)產(chǎn)生電壓浮動(dòng)現(xiàn)象。 舵機(jī)初動(dòng)舵機(jī),其實(shí)就是個(gè)低端的伺服電機(jī)系統(tǒng),它也是最常見的伺服電機(jī)系統(tǒng)。主要是由外殼、電路板、無(wú)核心馬達(dá)、齒輪與位置檢測(cè)器所構(gòu)成。它將PWM信號(hào)與滑動(dòng)變阻器的電壓相比對(duì),通過(guò)硬件電路實(shí)現(xiàn)固定控制增益的位置控制。它使用一個(gè)反饋系統(tǒng)來(lái)控制電機(jī)的位置。可以很好掌握電機(jī)角度。大多數(shù)舵機(jī)是可以最大旋轉(zhuǎn)180的。也有一些能轉(zhuǎn)更大角度,甚至360。#include /聲明調(diào)用Servo.h庫(kù) Servo myservo; /創(chuàng)建一個(gè)舵機(jī)對(duì)象 int pos = 0; /變量pos用來(lái)存儲(chǔ)舵機(jī)位置 void setup() myservo.attach(9); /將引腳9上的舵機(jī)與聲明的舵機(jī)對(duì)象連接起來(lái) void loop() for(pos = 0; pos =1; pos-=1) /舵機(jī)從180轉(zhuǎn)回0每次減小1 myservo.write(pos); /寫角度到舵機(jī) delay(15); /延時(shí)15ms讓舵機(jī)轉(zhuǎn)到指定位置 #include/定義頭文件,這里有一點(diǎn)要注意,可以直接在Arduino軟件菜單欄單擊SketchImportlibrary

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論