Arduino簡單實驗課件_第1頁
Arduino簡單實驗課件_第2頁
Arduino簡單實驗課件_第3頁
Arduino簡單實驗課件_第4頁
Arduino簡單實驗課件_第5頁
已閱讀5頁,還剩31頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、第4章 Arduino簡單實驗 目錄4.1 LED燈實驗4.2 開關(guān)按鍵實驗4.3 電機(jī)控制實驗4.4 LCD顯示實驗4.5 設(shè)計游戲Jumping Pong4.1 Arduino開發(fā)環(huán)境 4.1.1 材料清單4.1.2 調(diào)試代碼圖4-1為實驗的原理圖圖4-1原理圖4.1.2 調(diào)試代碼 按照右圖連接好電路后,就可以開始編寫程序了。程序需要讓LED小燈閃爍,實現(xiàn)點(diǎn)亮1秒熄滅1秒。這個程序很簡單,與Arduino自帶的例程里的Blink相似,只是將13數(shù)字接口換做10數(shù)字接口。圖4-2實物圖4.1.3 調(diào)試代碼編好后,單機(jī)下載到Arduino,Arduino的編程界面就會出現(xiàn)下列代碼。void s

2、etup()pinMode(10,OUTPUT);void loop()digitalWrite(10,!(HIGH);delay(1000);digital Write(10,!(LOW);delay(1000);緊接著就可以看到接到I/O口10腳上的高亮LED燈模塊在閃爍了,小燈閃爍實驗就完成了。注意:Arduino開發(fā)軟件的選擇工具欄板卡的選項是Uno,通信端口要選擇初次安裝出現(xiàn)的串口,兩項缺一不可,否則不能下載程序。圖4-3 Arduino的編程界面4.1.4 拓展訓(xùn)練流水燈,用八個LED,呈現(xiàn)多種流水效果。圖4-4 實物圖4.2 開關(guān)按鍵實驗4.2.1 材料清單4.2.2 實驗原理圖

3、4-5 按鍵開關(guān)4.2.3 硬件調(diào)試圖4-6 連接圖按照單鍵控制LED連接原理圖連接好電路。按鍵開關(guān)的一端連接5V,另一端接模擬輸入的0號端口;LED陽極串聯(lián)220限流電阻后連接數(shù)字13號端口,陰極連接到地。連接圖如圖4-6所示。4.2.4 程序設(shè)計2.程序源碼pinMode(LED,OUTPUT); /設(shè)置數(shù)字I/0引腳為輸出模式void loop()int i;while(1)i=analogRead(A0); /讀取模擬0口電壓值 if(i1000) / 如果電壓值大于1000(即4.88V) digitalWrite(LED,HIGH); /設(shè)置第13引腳為高電平,點(diǎn)亮LED燈else

4、 digitalWrite(LED,LOW); /設(shè)置第13引腳為低電平,熄滅LED燈 3.調(diào)試及實驗現(xiàn)象圖4-8單鍵控制LED實物連接圖4.2.5拓展訓(xùn)練完成上述實驗后,會發(fā)現(xiàn)一個問題,要想LED一直亮著就必須一直按著按鍵不放,很顯然這是一個不切實際的做法,所以現(xiàn)在要實現(xiàn)的功能就是當(dāng)按下按鍵并放開后,LED仍然會一直亮著。要想達(dá)到這個目的,在不修改硬件連接的情況下,只需要對程序進(jìn)行適當(dāng)?shù)男薷募纯桑ǘx了state變量用來保存按鍵按下的狀態(tài))。下面為修改后的參考程序源代碼:#define LED 13#define sw 7int val=0;int old_val=0;int state=0

5、; /定義狀態(tài)位void setup() pinMode(LED,OUTPUT); pinMode(sw,INPUT);void loop() val=digitalRead(sw);if(val=HIGH)&(old_val=LOW) state=1-state; /狀態(tài)位取反 delay(10);old_val=val;if(state=1) digitalWrite(LED,HIGH);else digitalWrite(LED,LOW); 將上述代碼下載到開發(fā)板上后,可以發(fā)現(xiàn),當(dāng)按下按鍵并松開后,LED燈不會熄滅,而是一直亮著。該功能的實現(xiàn)主要?dú)w功于上述參考程序中定義的state變量保

6、存了按鍵按下的狀態(tài)。4.3電機(jī)控制實驗4.3.1 材料清單4.3.2 實驗原理隨著數(shù)字化技術(shù)的發(fā)展,數(shù)字控制技術(shù)得到了廣泛而深入的應(yīng)用。步進(jìn)電機(jī)是一種將數(shù)字信號直接轉(zhuǎn)換成角位移或線位移的控制驅(qū)動元件,具有快速啟動和停止的特點(diǎn)。 因為步進(jìn)電動機(jī)的控制系統(tǒng)結(jié)構(gòu)簡單,價格低廉,性能上滿足工業(yè)控制的基本要求,所以廣泛地應(yīng)用于手工業(yè)自動控制,數(shù)控機(jī)床,組合機(jī)床,機(jī)器人,計算機(jī)外圍設(shè)備,照相機(jī),投影儀,數(shù)碼攝像機(jī),大型望遠(yuǎn)鏡,衛(wèi)星天線定位系統(tǒng),醫(yī)療器件以及各種可控機(jī)械工具等。 直流電機(jī)廣泛應(yīng)用于計算機(jī)外圍設(shè)備(如磁盤,軟盤和光盤存儲器),家電產(chǎn)品,醫(yī)療器械和電動車上,無刷直流電機(jī)的轉(zhuǎn)子普遍使用永磁材料組成

7、的磁鋼,在航空,航天,汽車,精密電子等行業(yè) 被廣泛應(yīng)用。在電工設(shè)備中的應(yīng)用,除了直流電磁鐵(直流繼電器,直流接觸器等)外,最重要的就是在直流旋轉(zhuǎn)電機(jī)中的應(yīng)用。在發(fā)電場里,同步發(fā)電機(jī)的勵磁機(jī),蓄電池的充電機(jī)等,都是直流發(fā)電機(jī);鍋爐給粉機(jī)的原動機(jī)-是直流電動機(jī)。此外,在許多工業(yè)應(yīng)用場合,列如大型軋鋼設(shè)備,大型精密機(jī)床,礦井卷揚(yáng)機(jī),市內(nèi)電車,電纜設(shè)備等嚴(yán)格要求線速度一致的地方,通常都采用直流電動機(jī)作為原動機(jī)來拖動工作機(jī)械。直流發(fā)電機(jī)通常作為直流電源,向負(fù)載輸出電能;直流電動機(jī)則作為原動機(jī)帶動各種生產(chǎn)機(jī)械工作,向負(fù)載輸出機(jī)械能。在控制系統(tǒng)中,直流電機(jī)還有其他的用途,例如測速電機(jī),伺服電機(jī)等,它們都是利

8、用電和磁的相互作用來實現(xiàn)向機(jī)械能的轉(zhuǎn)換。 步進(jìn)電機(jī)是將電脈沖信號轉(zhuǎn)變?yōu)榻俏灰苹蚓€位移的開環(huán)控制元件。在非超載的情況下,電機(jī)的轉(zhuǎn)速,停止的位置只取決于脈沖信號的頻率和脈沖數(shù),而不受負(fù)載變化的影響,即給電機(jī)加一個脈沖信號,電機(jī)就轉(zhuǎn)過一個步距角。由于這一線性關(guān)系的存在,加上步進(jìn)電機(jī)具有只有周期性的誤差而無累計誤差等特點(diǎn),所以步進(jìn)電機(jī)在速度,位置控制等領(lǐng)域應(yīng)用廣泛,使用步進(jìn)電機(jī)后使很多原本復(fù)雜的控制變得非常簡單。 一般采用軟件延時的方法來對步進(jìn)電機(jī)的運(yùn)行速度,步數(shù)及方向進(jìn)行控制。根據(jù)計算機(jī)所發(fā)出脈沖的頻率和數(shù)量所需的時間來設(shè)計一個字程序,該子程序包含一定的指令,設(shè)計者通常要對這些指令的執(zhí)行時間進(jìn)行嚴(yán)密

9、的計算或者精確的測試,以便確定延長時時間是否符合要求, 每當(dāng)子程序結(jié)束后,可以執(zhí)行下面的操作。采用軟件延時方式時,cpu一般被占用,cpu利用率低,這些許多場合是非常不利的。因此需要重新設(shè)計步進(jìn)電機(jī)的控制程序,采用pcl-812PG數(shù)據(jù)采集卡,利用812PG卡中自帶的可編程計數(shù)/定時器8254及其他邏輯電路器件,設(shè)計一種步進(jìn)電機(jī)控制方式,僅需要幾條簡單的指令就可以產(chǎn)生具有一定頻率和數(shù)目的脈沖信號??删幊痰挠布〞r器直接對系統(tǒng)時脈沖或某一固定頻率的時鐘脈沖進(jìn)行計數(shù),計數(shù)值則由編程決定。當(dāng)計數(shù)到預(yù)定的脈沖數(shù)時,給出定時時間到的信號,得到所需的延時時間或定時間隔,由于計數(shù)的初始值由編程決定,因此在不

10、改動硬件的情況下,只通過程序的變化即可滿足不同的定時和計數(shù)要求,使用很方便。 4.3.3 硬件調(diào)試4.3.4 程序設(shè)計1.步進(jìn)電機(jī)實驗軟件流程自增自減運(yùn)算符是一類特殊的運(yùn)算符,其中,自增運(yùn)算符(+)和自減運(yùn)算符(-)對 變量的操作結(jié)果是增加1和減少 1。圖4-10步進(jìn)電機(jī)試驗軟件流程圖2.步進(jìn)電機(jī)實驗程序#include /這里設(shè)置步進(jìn)電機(jī)旋轉(zhuǎn)一圈是多少步#define STEPS 100/設(shè)置步進(jìn)電機(jī)的步數(shù)和引腳Stepper stepper(STEPS, 8, 9, 10, 11);/定義變量用來存儲歷史讀數(shù)int previous = 0;void setup() /設(shè)置電機(jī)每分鐘的轉(zhuǎn)速

11、為90步 stepper.setSpeed(90);void loop() int val = analogRead(0); /移動步數(shù)為當(dāng)前讀數(shù)減去歷史讀數(shù) stepper.step(val - previous); /保存歷史讀數(shù) previous = val; 4.3.5 拓展訓(xùn)練 1.直流電機(jī)的工作原理直流電機(jī)是指能將直流電能轉(zhuǎn)換成機(jī)械能的機(jī)械設(shè)備,因其良好的調(diào)速性能而在電力拖動中得到廣泛應(yīng)用。直流電動機(jī)按勵磁方式分為永磁,它勵和自勵三類,其中自勵又分為并勵,串勵和復(fù)勵3種。本文不對直流電機(jī)原理進(jìn)行深入研究,只是大概介紹一下。其實在本實驗主要是關(guān)注直流電機(jī)是有刷電機(jī)還是無刷電機(jī),因為有

12、刷電機(jī)干擾很大,會對Arduino以及其他外圍芯片造成干擾,甚至?xí)?dǎo)致芯片復(fù)位,所以只從有刷和無刷這兩類大致進(jìn)行介紹。 (1)有刷直流電動機(jī)。 有刷電動機(jī)的2個刷(銅刷或者鋼刷)是通過絕緣座固定在電動機(jī)后蓋上,直接將電源的正負(fù)極引入到轉(zhuǎn)子的換相器上,而換相器連通了轉(zhuǎn)子的線圈,3個線圈極性不斷地交替交換與外殼上固定的2塊磁鐵形成作用力而轉(zhuǎn)動起來。由于換相器與轉(zhuǎn)子固定在一起,而刷與外殼(定子)固定在一起,電動機(jī)轉(zhuǎn)動時刷與換相器不斷地發(fā)生摩擦產(chǎn)生大量的阻力與熱量。所以,有刷電機(jī)效率較低。但是,它具有制造簡單,成本低廉的優(yōu)點(diǎn)。 (2)無刷直流電動機(jī) 無刷直流電動機(jī)是將普通直流電動機(jī)的定子與轉(zhuǎn)子進(jìn)行了互

13、換。其轉(zhuǎn)子為永久磁鐵,產(chǎn)生氣隙磁通;定子為電樞,由多相繞組組成。在結(jié)構(gòu)上,它與永磁同步電動機(jī)類似。無刷直流電動機(jī)定子的結(jié)構(gòu)與普通的同步電動機(jī)或感應(yīng)電動機(jī)相同,在鐵芯中嵌入多相繞組(三相,四相,五相不等),繞組可接成星行或三角形,并分別與逆變器的各種率管相連,以便進(jìn)行合理換相。轉(zhuǎn)子多采用釤鈷或釹鐵硼等高嬌頑力,高剩磁密度的稀土料,由磁極中磁性材料所放位置的不同,可以分為表面式磁極,嵌入式磁極和環(huán)形磁極。由于電動機(jī)本機(jī)為永磁電機(jī),所以習(xí)慣上把無刷直流電動機(jī)也叫做永磁無刷電動機(jī)。2.驅(qū)動芯片 驅(qū)動步進(jìn)電機(jī)用的是ULN2003。由于只用了4個引腳,ULN2013還有3個空閑的驅(qū)動引腳。另外,為了使電路

14、簡單,就直接用ULN2003剩余的一個引腳來驅(qū)動了。因此,也只能驅(qū)動電機(jī)朝一個方向轉(zhuǎn)動。3.驅(qū)動電路由于使用的是直流電機(jī),干擾較大,驅(qū)動電路就要多作一些消除干擾的設(shè)計,常見的有在電機(jī)兩端串聯(lián)手感,加電容等方法。這里只加了續(xù)流二極管和電容,如圖4-11所示,其中Arduino的12腳接ULN2003的第7腳。圖4-11 電路圖4.4 LCD顯示實驗4.4.1 材料清單4.4.2 實驗原理液晶顯示器簡稱LED(liquid crystal display),其結(jié)構(gòu)是在兩片平行的玻璃基板當(dāng)中放置液晶盒,下基板玻璃上設(shè)置TFT(薄膜晶體管),上基板玻璃上設(shè)置彩色濾光片,通過TFT上的信號與電壓改變來控

15、制液晶分子的轉(zhuǎn)動方向,從而達(dá)到每個像素帶點(diǎn)偏振光出射的目的?,F(xiàn)在LED已經(jīng)替代CRT成為主流,價格已經(jīng)下降了很多,其普及速度相當(dāng)快。1602液晶也叫1602字符型液晶,是指顯示的內(nèi)容為16*2(即可以顯示兩行),每行16個字符的液晶模塊(顯示字符和數(shù)字),是一種專門來顯示字母,數(shù)字,符號等的點(diǎn)陣型液晶模塊。它由若干個5*7或者5*11等點(diǎn)陣字符位組成,每個點(diǎn)陣字符位都可以顯示一個字符,每位之間有一個點(diǎn)距的間隔,每行之間也有間隔,起到字符間距和行間距的作用。因此。1502型液晶不能很好地顯示圖形(用自定義CGRAM,顯示效果也不好),但非常適合便攜式及低功耗測試設(shè)備。市面上的字符型液晶大多數(shù)是基

16、于HD44780液晶芯片的,控制原理完全相同,因此基于HD44780所編寫的控制程序可以很方便地應(yīng)用于市面上大部分的字符型液晶。本實驗是驅(qū)動1602液晶顯示文字。 4.4.3 硬件調(diào)試4.4.4 程序設(shè)計4.5 Jumping Pong4.5.1 功能構(gòu)思Jumping pong.主要功能包括以下幾個方面的內(nèi)容:(1)8乘8點(diǎn)陣的應(yīng)用 (6)光敏電阻實現(xiàn)光控開關(guān)。(2)紅外遙控的接收與發(fā)射。(7)模塊連接。(3)語音模塊的使用。(4)1602LCD顯示屏顯示分?jǐn)?shù)。(5)游戲搖桿模塊實現(xiàn)球拍移動。4.5.2 設(shè)計原理1.設(shè)計思路將游戲代碼封裝在一個函數(shù)game中,改變gane中控制球速的代碼將游

17、戲分為不同等級和單雙人模式,在游戲開始前,先判斷周圍環(huán)境的光照強(qiáng)度,當(dāng)光強(qiáng)大于一定值時再繼續(xù)執(zhí)行緊接著的功能。之后,判斷是否接到紅外信號,當(dāng)接收到特定值得信號時,調(diào)用game函數(shù),游戲開始。每當(dāng)球碰到一次拍子,分?jǐn)?shù)就自動加1,實現(xiàn)計分功能。當(dāng)一方未接到球時,游戲結(jié)束,顯示分?jǐn)?shù)及下一步功能選擇。如此反復(fù),在游戲進(jìn)行中,不斷刷新光敏電阻的值,判斷是否符合光強(qiáng)條件,以保證游戲功能正常運(yùn)行。2.各模塊電路連接 所需材料:Arduino主板和擴(kuò)展板(各1個),88點(diǎn)陣(1個),MAX7219驅(qū)動芯片(1個),面包板(2塊),LCD顯示屏(1個),語音模塊(1個),導(dǎo)線若干,游戲搖桿模塊(2個),小喇叭(1個),紅外線遙控和光敏電阻(各1個)。電路連接分為88點(diǎn)陣部分,紅外線遙控都分,光敏電阻部分,1602LCD顯示屏部分及總體電路,分別如圖4-14、4-15、4-16、4-17所示。圖4-14 8*8點(diǎn)陣連接Arduino UNO圖4-15 紅外遙控部分圖4-16光敏電阻部分圖4-17 LCD顯示屏部分4.6打地鼠游戲機(jī)設(shè)計一個打地鼠游戲機(jī),該設(shè)計中4個LED燈,對應(yīng)4個按鍵,每秒生成一個14的隨機(jī)數(shù),對應(yīng)點(diǎn)

溫馨提示

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

最新文檔

評論

0/150

提交評論