Arduino簡(jiǎn)單實(shí)驗(yàn)課件_第1頁(yè)
Arduino簡(jiǎn)單實(shí)驗(yàn)課件_第2頁(yè)
Arduino簡(jiǎn)單實(shí)驗(yàn)課件_第3頁(yè)
Arduino簡(jiǎn)單實(shí)驗(yàn)課件_第4頁(yè)
Arduino簡(jiǎn)單實(shí)驗(yàn)課件_第5頁(yè)
已閱讀5頁(yè),還剩31頁(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)介

1、第4章 Arduino簡(jiǎn)單實(shí)驗(yàn) 目錄4.1 LED燈實(shí)驗(yàn)4.2 開(kāi)關(guān)按鍵實(shí)驗(yàn)4.3 電機(jī)控制實(shí)驗(yàn)4.4 LCD顯示實(shí)驗(yàn)4.5 設(shè)計(jì)游戲Jumping Pong4.1 Arduino開(kāi)發(fā)環(huán)境 4.1.1 材料清單4.1.2 調(diào)試代碼圖4-1為實(shí)驗(yàn)的原理圖圖4-1原理圖4.1.2 調(diào)試代碼 按照右圖連接好電路后,就可以開(kāi)始編寫(xiě)程序了。程序需要讓LED小燈閃爍,實(shí)現(xiàn)點(diǎn)亮1秒熄滅1秒。這個(gè)程序很簡(jiǎn)單,與Arduino自帶的例程里的Blink相似,只是將13數(shù)字接口換做10數(shù)字接口。圖4-2實(shí)物圖4.1.3 調(diào)試代碼編好后,單機(jī)下載到Arduino,Arduino的編程界面就會(huì)出現(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燈模塊在閃爍了,小燈閃爍實(shí)驗(yàn)就完成了。注意:Arduino開(kāi)發(fā)軟件的選擇工具欄板卡的選項(xiàng)是Uno,通信端口要選擇初次安裝出現(xiàn)的串口,兩項(xiàng)缺一不可,否則不能下載程序。圖4-3 Arduino的編程界面4.1.4 拓展訓(xùn)練流水燈,用八個(gè)LED,呈現(xiàn)多種流水效果。圖4-4 實(shí)物圖4.2 開(kāi)關(guān)按鍵實(shí)驗(yàn)4.2.1 材料清單4.2.2 實(shí)驗(yàn)原理圖

3、4-5 按鍵開(kāi)關(guān)4.2.3 硬件調(diào)試圖4-6 連接圖按照單鍵控制LED連接原理圖連接好電路。按鍵開(kāi)關(guān)的一端連接5V,另一端接模擬輸入的0號(hào)端口;LED陽(yáng)極串聯(lián)220限流電阻后連接數(shù)字13號(hào)端口,陰極連接到地。連接圖如圖4-6所示。4.2.4 程序設(shè)計(jì)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)試及實(shí)驗(yàn)現(xiàn)象圖4-8單鍵控制LED實(shí)物連接圖4.2.5拓展訓(xùn)練完成上述實(shí)驗(yàn)后,會(huì)發(fā)現(xiàn)一個(gè)問(wèn)題,要想LED一直亮著就必須一直按著按鍵不放,很顯然這是一個(gè)不切實(shí)際的做法,所以現(xiàn)在要實(shí)現(xiàn)的功能就是當(dāng)按下按鍵并放開(kāi)后,LED仍然會(huì)一直亮著。要想達(dá)到這個(gè)目的,在不修改硬件連接的情況下,只需要對(duì)程序進(jìn)行適當(dāng)?shù)男薷募纯桑ǘx了state變量用來(lái)保存按鍵按下的狀態(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); 將上述代碼下載到開(kāi)發(fā)板上后,可以發(fā)現(xiàn),當(dāng)按下按鍵并松開(kāi)后,LED燈不會(huì)熄滅,而是一直亮著。該功能的實(shí)現(xiàn)主要?dú)w功于上述參考程序中定義的state變量保

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

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

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

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

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

11、為90步 stepper.setSpeed(90);void loop() int val = analogRead(0); /移動(dòng)步數(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)速性能而在電力拖動(dòng)中得到廣泛應(yīng)用。直流電動(dòng)機(jī)按勵(lì)磁方式分為永磁,它勵(lì)和自勵(lì)三類,其中自勵(lì)又分為并勵(lì),串勵(lì)和復(fù)勵(lì)3種。本文不對(duì)直流電機(jī)原理進(jìn)行深入研究,只是大概介紹一下。其實(shí)在本實(shí)驗(yàn)主要是關(guān)注直流電機(jī)是有刷電機(jī)還是無(wú)刷電機(jī),因?yàn)橛?/p>

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

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

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

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

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

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

溫馨提示

  • 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)論