Arduino入门版使用教程_第1页
Arduino入门版使用教程_第2页
Arduino入门版使用教程_第3页
Arduino入门版使用教程_第4页
Arduino入门版使用教程_第5页
已阅读5页,还剩85页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

PAGEArduino入門版使用教程i目錄介紹篇1一、Arduino基礎套裝介紹21、什麼是Arduino基礎套裝?22、元件清單2二、Arduino介紹41、什麼是Arduino?42、特色描述43、性能描述4三、ArduinoC語言介紹61、關鍵字和符號62、結構93、功能9四、Arduino使用介紹111、準備好你的Arduino板112、下載Arduino開發環境133、安裝USB驅動134、連接LED燈電路175、打開arduino開發環境186、打開已有程式197、編譯程式208、下載程式23五、麵包板使用介紹301、麵包板介紹302、麵包板的使用30ii實驗篇34第一節多彩led燈實驗35一、發光二極管介紹35二、簡單的控制一個led燈的閃爍實驗39三、廣告燈效果實驗41第二節蜂鳴器實驗48一、蜂鳴器介紹48二、蜂鳴器模擬救護車警笛聲音實驗50第三節數碼管實驗54一、數碼管介紹54二、數碼管顯示數字的實驗56第四節按鍵實驗63一、按鍵介紹63二、按鍵控制led等亮滅實驗65三、擲骰子實驗67第五節傾斜開關實驗74一、傾斜開關介紹74二、傾斜開關控制led燈的亮滅75第六節光控聲音實驗79一、光敏電阻介紹79二、光控聲音實驗80第七節火焰報警實驗84一、火焰傳感器介紹84二、火焰報警實驗85第八節搶答器實驗90第九節溫度報警實驗98一、溫度傳感器介紹98iii二、溫度報警實驗99第十節紅外遙控103一、紅外接收頭介紹103二、紅外遙控實驗104介紹篇一、Arduino基礎套裝介紹1、什麼是Arduino基礎套裝?Arduino基礎套裝是精心為初學者設計的一款學習工具。它可以帶您走進豐富多彩的電子世界,讓您體驗到電子科技無窮的樂趣。在整個實驗過程中無須焊接,直接在麵包板上插拔元件即可,非常適合學習。另外,本品還附帶了十節實驗課程。這十節課程的編排完全是從初學者的角度考慮,每一節實驗都配有圖文結合的實驗說明文檔和非常有趣的例子程式。而且每一節實驗除了文檔上講的方法外,還有很大可供學習者發揮的空間。Arduino基礎套裝可以說是一款超值的學習工具,實驗盒裡寶貝多多。2、元件清單1)Arduino328控制板1個2)原形開放擴展板1個3)麵包板1個4)LED燈(紅、黃、綠)各2個5)蜂鳴器1個6)按鍵開關4個7)共陽數碼管1個8)傾斜開關1個9)火焰傳感器1個10)光敏電阻1個11)紅外接收管1個12)電阻(220、1K、10K)各10個13)LM35溫度傳感器1個14)USB線1條15)多彩麵包線10條16)6節5號電池盒1個17)mini遙控器1個18)Arduino基礎套裝電子教程1套19)教程及其開放軟件光碟1張二、Arduino介紹什麼是Arduino?Arduino是一塊基於開放原始代碼的Simplei/o平台,並且具有開放語言和開放環境都很簡單、易理解的特點。讓您可以快速使用Arduino做出有趣的東西。Arduino可以配合一些電子元件使用,例如本產品實驗盒中的LED燈、蜂鳴器、按鍵、光敏電阻等等。Arduino開放環境界面基於開放原始代碼原則,可以讓您免費下載使用,開發出更多令人驚奇的互動作品。2、特色描述■開放原始碼的電路圖設計,開放界面免費下載,也可依需求自己修改!!■下載程式簡單、方便。■可簡單地與傳感器、各式各樣的電子元件連接(如:LED燈、蜂鳴器、按鍵、光敏電阻等等),做出各種各樣有趣的東西。■使用高速的微處理控制器(ATMEGA328)。■開放語言和環境都非常簡單、易理解,非常適合初學者學習3、性能描述■DigitalI/O數字輸入/輸出端共0~13。■AnalogI/O模擬輸入/輸出端共0~5。■支持ISP下載功能。■輸入電壓:接上USB時無須外部供電或外部5V~9V直流電壓輸入。■輸出電壓:5V直流電壓輸出和3.3V直流電壓輸出和外部電源輸入。■采用AtmelAtmega328微處理控制器。■Arduino大小尺寸:寬70mmX高54mm。三、ArduinoC語言介紹Arduino語言是建立在C/C++基礎上的,其實也就是基礎的C語言,Arduino語言只不過把相關的一些參數設置都函數化,不用去了解其底層,讓不了解AVR單片機(微控制器)的朋友也能輕松上手。那麼這裡就簡單的注釋一下Arduino語言。1、關鍵字和符號(1)關鍵字:■if■if...else■for■switchcase■while■do...while■break■continue■return■goto(2)語法符號:■;■{}■//■/**/(3)運算符:■=■+■-■*■/■%■==■!=■<■>■<=■>=■&&■||■!■++■--■+=■-=■*=■/=(4)數據類型:■boolean布爾類型■char字符類型■byte字節類型■int整數類型■unsignedint無符號整型■long長整型■unsignedlong無符號長整型■float實數類型■double■string■array■void(5)常量:■HIGH|LOW表示數字IO口的電平,HIGH表示高電平(1),LOW表示低電平(0)。■INPUT|OUTPUT表示數字IO口的方向,INPUT表示輸入(高阻態),OUTPUT表示輸出(AVR能提供5V電壓40mA電流)。■true|falsetrue表示真(1),false表示假(0)。以上為基礎c語言的關鍵字和符號,大家可以了解,具體使用可以結合實驗的程式。2、結構■voidsetup()初始化變量,管腳模式,調用庫函數等■voidloop()連續執行函數內的語句3、功能(1)數字I/O■pinMode(pin,mode)數字IO口輸入輸出模式定義函數,pin表示為0~13,mode表示為INPUT或OUTPUT。■digitalWrite(pin,value)數字IO口輸出電平定義函數,pin表示為0~13,value表示為HIGH或LOW。比如定義HIGH可以驅動LED。■intdigitalRead(pin)數字IO口讀輸入電平函數,pin表示為0~13,value表示為HIGH或LOW。比如可以讀數字傳感器。(2)模擬I/O■intanalogRead(pin)模擬IO口讀函數,pin表示為0~5(ArduinoDiecimila為0~5,Arduinonano為0~7)。比如可以讀模擬傳感器(10位AD,0~5V表示為0~1023)。■analogWrite(pin,value)-PWM數字IO口PWM輸出函數,Arduino數字IO口標注了PWM的IO口可使用該函數,pin表示3,5,6,9,10,11,value表示為0~255。比如可用於電機PWM調速或音樂播放。(3)時間函數■delay(ms)延時函數(單位ms)。■delayMicroseconds(us)延時函數(單位us)。(4)數學函數■min(x,y)求最小值。■max(x,y)求最大值。■abs(x)計算絕對值。■constrain(x,a,b)約束函數,下限a,上限b,x必須在ab之間才能返回。■map(value,fromLow,fromHigh,toLow,toHigh)約束函數,value必須在fromLow與toLow之間和fromHigh與toHigh之間。■pow(base,exponent)開方函數,base的exponent次方。■sq(x)平方。■sqrt(x)開根號。四、Arduino使用介紹有了以上作為基礎,下面我們就要開始實際操作了。下面將分步驟介紹:1、准備好你的Arduino板首先從實驗盒中拿出Prototypeshield擴展板如圖:接著從實驗盒拿出麵包板如圖:將麵包板反過來大家可以看到,麵包板的後面帶有雙面膠,將雙面膠的白色部分揭下來,然後把麵包板粘貼到Prototypeshield擴展板上,如下圖:然後從實驗盒中拿出Arduino328控制板如圖:把貼有麵包板的Prototypeshield擴展板插在Arduino328控制板上如圖:這樣板子就連接好了。2、下載Arduino開發環境由於本產品光碟中已經帶有Arduino0022軟件壓縮包,所以就不用下載了。在光碟中可以找到Arduino0022軟件壓縮包,解壓即可。3、安裝USB驅動首先連接下載程式用的下載線。首先從實驗盒中拿出下載線,將數據線的圓口一端插在Arduino328板子上如圖:將數據線的扁口一端插在電腦的USB接口上,如下圖所示:插好後,Arduino328控制板上的電源指示燈會被點亮,電腦上會出現一個對話框如圖:

選擇”從列表或指定位置安裝”,點擊下一步,出現如下圖:然後點擊“瀏覽”,在光碟下找到arduino1.01文件夾,點擊打開,會看見有drivers文件夾,接著點擊下一步,會出現:這時我們只要等待即可,稍後會出現如下圖對話框:點選“繼續安裝”點擊完成,這樣驅動就安裝好了,下次再將數據線插到電腦就不會出現安裝驅動對話框了,插上數據線就可以下載程式了。提示:主控板ArduinoDuemilanove2009驅動目錄指定到..\arduino-0023\drivers\FTDIUSBDrivers主控板UNO、MEGA,驅動目錄指定到:..\arduino-1.01\drivers4、連接LED燈電路從實驗盒中取出一個220Ω的電阻,將它的一端插在數字8口上,電阻的另一端插在麵包板上。再從實驗盒中去取出一個發光二極管如下圖:將發光二極管插在麵包板上,插法如圖:接著按照圖上說明插上一根導線,這樣電路就連接好了。5、打開arduino開發環境打開arduino0022文件夾,裡面有一個標有arduino.exe圖標,雙擊打開會出現如下界面:Arduino0022開發編譯環境很簡潔,各個功能鍵功能描述如下:打開軟件後,我們就可以在窗口的空白處編寫程式了。這裡就不講解怎麼編程了,因為實驗裡會具體的介紹。6、打開已有程式點擊叉關閉軟件。我們直接打開led燈實驗程式如圖:7、編譯程式點擊編譯按鈕,這時編譯按鈕會發成黃色,下面出現英文piling,這表示軟件正在對你所寫的程式進行編譯,如下圖所示:等待一會,會看到編譯按鈕恢復原來的狀態,下面出現Donepiling,最下面一段文字說明編寫的程式共有896字節數。這表明,程式編譯成功,並且沒有語法上的錯誤。如下圖所示:下面看看程式有語法錯誤時會出現什麼狀態,將程式中pinMode(ledPin,OUTPUT)後面的分號去掉,點擊編譯按鈕,編譯完成後會出現如下圖所示狀態:1處告訴我們是因為在“}”附近缺少分號而出現的錯誤。2處用文字告訴我們錯誤是出現在voidsetup()的一個“}”附近。3處用黃顏色將“}”覆蓋,表示錯誤就在這附近。從程式中看到錯誤確實在大括號附近,將分號添上後就會編譯成功。以後編寫程式出現錯誤時,就可以通過看下面信息欄裡的提示調試程式。8、下載程式下載程式前先將板子型號和口選好。點擊Tools->Board選擇開發板型號,如圖:這裡我們使用的是Arduino328控制板,所以點擊第一個即可。接下來選擇串口,首先看一下我們的串口是幾,右鍵點擊我的電腦的圖標,選擇屬性,會出現如下對話框:點擊硬件,出現如圖對話框:點擊設備管理器,出現下圖:雙擊端口,出現下圖:會看到有一個寫著USBSerialPort(3),3這個就是我們的串口號。把這個號記住,關閉窗口,回到arduino軟件窗口,點擊SerialPort,選擇剛才記住的口號——3,如圖:這樣板子型號和口就選好了。接下來點擊arduino軟件上的下載按鈕,如圖:點擊之後下載按鈕發成橙色,軟件下方出現UploadingtoI/OBoard,同時板子上標有TX和RX的燈會亮,如圖所示:序下載完畢後,下載按鈕恢復原來的顏色,下面出現DoneUploading,如圖:如果沒有顯示DoneUploading,而是出現了紅色的字,表示下載失敗,可以檢查一下USB線是否連接好、電源開關是否打開、口是否選對等等。如果出現上圖,表示程式下載成功了,如果你看到麵包板上的led燈亮1s、滅1s的在閃爍,恭喜你,你的Arduino板開始工作啦!五、麵包板使用介紹1、麵包板介紹套件中包含的麵包板具有170個插孔,此麵包板可以配合Arduino各種型號的ProtoShield(原型擴展板),自帶雙面粘膠,可以粘貼到各種開發板、擴展板上,也可粘貼到各種輪式機器人或履帶式機器人基板上實現個性化功能調試,體積小巧,僅有45mm×35mm(1.8"x1.4")大小,是Arduino互動媒體愛好者、機器人發燒友、電子愛好者和電子工程師必備用品。2、麵包板的使用麵包板(集成電路實驗板)是電路實驗中一種常用的具有多孔插座的插件板,在進行電路實驗時,可以根據電路連接要求,在相應孔內插入電子元器件的引腳以及導線等,使其與孔內彈性接觸簧片接觸,由此連接成所需的實驗電路。下圖為本迷你麵包板的示意圖。它一共具有170個插孔,10行17列。以中間的長槽為界分成上、下兩部分,每一部分都是5行17列。從圖中可以看到在每一部分中的每一列有5個插孔,這5個插孔的底部是一個金屬簧片,因此插入這5個孔內的導線就被金屬簧片連接在一起。例如下圖:電阻和紅色發光二極管是連通的,因為導線1的一端插在了電阻所在的列,這列的5個孔是連通的,所以導線和電阻是通的,導線的另一端插在了發光二級管正極所在的列,所以最終電阻和發光二極管是連通的。將電源正負極接好後發光二極管就會被點亮。每一部分的每一列的五個插孔都是通過金屬簧片相連的,而每一行的17個孔是不通的,所以橫排上的器件要連通的話,需用導線連接。注意:插入麵包板上孔內引腳或導線銅芯直徑為0.4~0.6mm,即比大頭針的直徑略微細一點。元器件引腳或導線頭要沿麵包板的板面垂直方向插入方孔,應能感覺到有輕微、均勻的摩擦阻力,在麵包板倒置時,元器件應能被簧片夾住而不脫落。麵包板應該在通風、干燥處存放,特別要避免被電池漏出的電解液所腐蝕。要保持麵包板清潔,焊接過的元器件不要插在麵包板上。實驗篇第一節多彩led燈實驗一、發光二極管介紹1、什麼是發光二極管發光二極管簡稱為LED。由鎵(Ga)與砷(AS)、磷(P)的化合物制成的二極管,當電子與空穴復合時能輻射出可見光,因而可以用來制成發光二極管,在電路及儀器中作為指示燈,或者組成文字或數字顯示。磷砷化鎵二極管發紅光,磷化鎵二極管發綠光,碳化硅二極管發黃光。它是半導體二極管的一種,可以把電能轉化成光能;常簡寫為LED。發光二極管與普通二極管一樣是由一個PN結組成,也具有單向導電性。當給發光二極管加上正向電壓後,從P區注入到N區的空穴和由N區注入到P區的電子,在PN結附近數微米內分別與N區的電子和P區的空穴復合,產生自發輻射的熒光。不同的半導體材料中電子和空穴所處的能量狀態不同。當電子和空穴復合時釋放出的能量多少不同,釋放出的能量越多,則發出的光的波長越短。常用的是發紅光、綠光或黃光的二極管。2、工作原理發光二極管的反向擊穿電壓約5伏。它的正向伏安特性曲線很陡,使用時必須串聯限流電阻以控制通過管子的電流。限流電阻R可用下式計算:R=(E-VF)/I;式中E為電源電壓,VF為LED的正向壓降,I為LED的一般工作電流。發光二極管的工作電壓一般為1.5~2.0V,其工作電流一般為10~20mA。所以在5v的數字邏輯電路中,可使用220Ω的電阻作為限流電阻。3、Led燈的內部結構與連線發光二極管的兩根引線中較長的一根為正極,應連接電源正極。有的發光二極管的兩根引線一樣長,但管殼上有一凸起的小舌,靠近小舌的引線是正極。如下圖所示:Led燈有兩種連線方法:當led燈的陽極通過限流電阻與板子上的數字I/O口相連,數字口輸出高電平時,led導通,發光二極管發出亮光;數字口輸出低電平時,led截止,發光二極管熄滅。如圖:當led燈的陰極與板子上的數字I/O口相連時,數字口輸出高電平,led截止,發光二極管熄滅;數字口輸出低電平,led燈導通,發光二極管點亮。圖1.4發光二極管接線方法2本實驗選擇了接線方法1連接發光二極管,將220Ω電阻的一端插在PrototypeShield擴展板上的第8個digitalI/O口,電阻的另一端插在麵包板上,電阻和發光二極管通過導線相連,發光二極管的負端插在面包板上與GND相連。具體連接如圖:圖1.5發光二極管的具體接線二、簡單的控制一個led燈的閃爍實驗1、實驗器件■Led燈:1個■220Ω的電阻:1個■多彩麵包板實驗跳線:若干2、實驗連線按照Arduino使用介紹將控制板、PrototypeShied板子、麵包板連接好,下載線插好。最後,按照圖1.5將發光二級管連接到數字的第8引腳。這樣我們就完成了實驗的連線部分。實驗原理先設置數字8引腳為高電平點亮led燈,然後延時1s,接著設置數字8引腳為低電平熄滅led燈,再延時1s。這樣使led燈亮1s、滅1s,在規覺上就形成閃爍狀態。如果想讓led快速閃爍,可以將延時時間設置的小一些,但不能過小,過小的話人眼就識別不出來了,看上去就像led燈一直在亮著;如果想讓led慢一點閃爍,可以將延時時間設置的大一些,但也不能過大,過大的話就沒有閃爍的效果了。4、程式代碼程式代碼在簡單led程式文件夾中,雙擊打開後有一個led1文件夾,接著雙擊打開後可以看見有一個led1.pde文件,雙擊圖標即可打開。打開後我們可以看到這是arduino編程軟件窗口,上面有本實驗的程式代碼。程式代碼如下:intledPin=8;//設定控制LED的數字IO腳voidsetup(){pinMode(ledPin,OUTPUT);//設定數字IO口的模式,OUTPUT為輸出}voidloop(){digitalWrite(ledPin,HIGH);//設定PIN8腳為HIGH=5V左右delay(1000);//設定延時時間,1000=1秒digitalWrite(ledPin,LOW);//設定PIN8腳為LOW=0Vdelay(1000);//設定延時時間,1000=1秒}從Arduino教程中我們可以知道,Arduino語言是以setup()開頭,loop()作為主體的一個程式極架。setup()是用來初始化變量,管腳模式,調用庫函數等等,此函數只運行一次。本程式在setup()中用數字IO口輸入輸出模式定義函數pinMode(pin,mode),將數字的第8引腳設置為輸出模式。loop()函數是一個循環函數,函數內的語句周而復始的循環執行,本程式在loop()中先用數字IO口輸出電平定義函數digitalWrite(pin,value),將數字8口定義為高電平,點亮led燈;接著調用延時函數delay(ms)(單位ms)延時1000ms,讓發光二極管亮1s;再用數字IO口輸出電平定義函數digitalWrite(pin,value),將數字8口定義為低電平,熄滅led燈;接著再調用延時函數delay(ms)(單位ms)延時1000ms,讓發光二極管熄滅1s。因為loop()函數是一個循環函數,所以這個過程會不斷的循環。5、下載程式按照arduino教程中的程式下載方法將本程式下載到實驗板中。6、程式功能將程式下載到實驗板後我們可以觀察到,發光二極管以1s的時間間隔不斷的閃爍。三、廣告燈效果實驗1、實驗器件■Led燈:6個■220Ω的電阻:6個■多彩麵包板實驗跳線:若干2、實驗連線按照上述方法將板子和數據線連好。然後按照二級管的接線方法,將六個LED燈依次接到數字1~6引腳上。如圖:圖1.6廣告燈實驗的接線3、實驗原理在生活中我們經常會看到一些由各種顏色的led燈組成的廣告牌,廣告牌上各個位置上的led燈不斷的亮滅發化,就形成各種不同的效果。本節實驗就是利用led燈編程模擬廣告燈的效果。在程式中我們設置led燈亮滅的次序和時間,這樣就可以組成不同的效果。樣式一子程式:led首先從左邊的綠燈開始間隔200ms依次點亮六個led燈,如圖1.6,接著從右邊的綠燈開始間隔200ms依次熄滅六個led燈。燈閃爍子程式:六個led燈首先全部點亮,接著延時200ms,最後六個led燈全部熄滅,這個過程循環兩次就實現了閃爍的效果。樣式二子程式設置k和j的值讓中間的兩個黃燈亮先亮,接著讓挨著兩個黃燈兩邊的紅燈亮,最後讓兩邊的綠燈亮;執行一遍後改發k和j的值讓讓兩邊的綠燈先熄滅,接著兩邊的紅燈熄滅,最後中間的兩個黃燈熄滅。樣式三子程式:設置k和j的值,讓兩邊的綠燈亮400ms後再熄滅,接著讓兩邊的紅燈亮400ms後再熄滅,最後讓中間的兩個黃燈亮400ms後再熄滅;執行一遍後改發k和j的值讓兩個紅燈亮400ms後熄滅,接著讓兩邊的綠燈亮400ms後熄滅。4、程式代碼程式代碼在廣告燈程式文件夾中,雙擊打開後有一個led2文件夾,接著雙擊打開後可以看見有一個led2.pde文件,雙擊圖標即可打開。打開後我們可以看到這是arduino編程軟件窗口,上面有本實驗的程式代碼。程式代碼如下://設置控制Led的數字IO腳intLed1=1;intLed2=2;intLed3=3;intLed4=4;intLed5=5;intLed6=6;//led燈花樣顯示樣式1子程式voidstyle_1(void){unsignedcharj;for(j=1;j<=6;j++)//每隔200ms依次點亮1~6引腳相連的led燈{digitalWrite(j,HIGH);//點亮j引腳相連的led燈delay(200);//延時200ms}for(j=6;j>=1;j--)//每隔200ms依次熄滅6~1引腳相連的led燈{digitalWrite(j,LOW);//熄滅j引腳相連的led燈delay(200);//延時200ms}}//燈閃爍子程式voidflash(void){unsignedcharj,k;for(k=0;k<=1;k++)//閃爍兩次{for(j=1;j<=6;j++)//點亮1~6引腳相連的led燈digitalWrite(j,HIGH);//點亮與j引腳相連的led燈delay(200);//延時200msfor(j=1;j<=6;j++)//熄滅1~6引腳相連的led燈digitalWrite(j,LOW);//熄滅與j引腳相連的led燈delay(200);//延時200ms}}//led燈花樣顯示樣式2子程式voidstyle_2(void){unsignedcharj,k;k=1;//設置k的初值為1for(j=3;j>=1;j--){digitalWrite(j,HIGH);//點亮燈digitalWrite(j+k,HIGH);//點亮燈delay(400);//延時400msk+=2;//k值加2}k=5;//設置k值為5for(j=1;j<=3;j++){digitalWrite(j,LOW);//熄滅燈digitalWrite(j+k,LOW);//熄滅燈delay(400);//延時400msk-=2;//k值減2}}//led燈花樣顯示樣式3子程式voidstyle_3(void){unsignedcharj,k;//led燈花樣顯示樣式3子程式k=5;//設置k值為5for(j=1;j<=3;j++){digitalWrite(j,HIGH);//點亮燈digitalWrite(j+k,HIGH);//點亮燈delay(400);//延時400msdigitalWrite(j,LOW);//熄滅燈digitalWrite(j+k,LOW);//熄滅燈k-=2;//k值減2}k=3;//設置k值為3for(j=2;j>=1;j--){digitalWrite(j,HIGH);//點亮燈digitalWrite(j+k,HIGH);//點亮燈delay(400);//延時400msdigitalWrite(j,LOW);//熄滅燈digitalWrite(j+k,LOW);//熄滅燈k+=2;//k值加2}}voidsetup(){unsignedchari;for(i=1;i<=6;i++)//依次設置1~6個數字引腳為輸出模式pinMode(i,OUTPUT);//設置第i個引腳為輸出模式}voidloop(){style_1();//樣式1flash();//閃爍style_2();//樣式2flash();//閃爍style_3();//樣式3flash();//閃爍}程式代碼中用到的:for(i=1;i<=6;i++)//依次設置1~6個數字引腳為輸出模式pinMode(i,OUTPUT);//設置第i個引腳為輸出模式這是一個for循環。它的一般形式為:for(<初始化>;<條件表達式>;<增量>)語句;初始化總是一個賦值語句,它用來給循環控制變量賦初值;條件表達式是一個關系表達式,它決定什麼時候退出循環;增量定義循環控制變量每循環一次後按什麼方式發化。這三個部分之間用";"分開。例如:for(i=1;i<=10;i++)語句;上例中先給"i"賦初值1,判斷"i"是否小於等於10,若是則執行語句,之後值增加1。再重新判斷,直到條件為假,即i>10時,結束循環。5、下載程式按照arduino教程中的程式下載方法將本程式下載到實驗板中。6、程式功能將程式下載到實驗板後我們可以觀察到,六個led不斷的循環執行樣式一子程式—>閃爍子程式—>樣式二子程式—>閃爍子程式—>樣式三子程式—>閃爍子程式。在掌握了以上兩個程式後,大家可以充分發揮自己的想像,編寫出自己想要的led燈效果,玩轉多彩led燈。第二節蜂鳴器實驗一、蜂鳴器介紹1、認識蜂鳴器蜂鳴器是一種一體化結構的電子訊響器,采用直流電壓供電,廣泛應用於計算機、打印機、復印機、報警器、電子玩具、汽車電子設備、電話機、定時器等電子產品中作發聲器件。圖2.1蜂鳴器按其驅動方式的不同,可分為:有源蜂鳴器(內含驅動線路)和無源蜂鳴器(外部驅動)教你區分有源蜂鳴器和無源蜂鳴器,現在市場上出售的一種小型蜂鳴器因其體積小(直徑只有llmm)、重量輕、價格低、結構牢靠,而廣泛地應用在各種需要發聲的電器設備、電子制作和單片機等電路中。有源蜂鳴器和無源蜂鳴器的外觀如圖a、b所示。a)有源b)無源。從圖a、b外觀上看,兩種蜂鳴器好像一樣,但仔細看,兩者的高度略有區別,有源蜂鳴器a,高度為9mm,而無源蜂鳴器b的高度為8mm。如將兩種蜂鳴器的引腳郡朝上放置時,可以看出有綠色電路板的一種是無源蜂鳴器,沒有電路板而用黑膠封閉的一種是有源蜂鳴器。進一步判斷有源蜂鳴器和無源蜂鳴器,還可以用萬用表電阻檔Rxl檔測試:用黑表筆接蜂鳴器"+"引腳,紅表筆在另一引腳上來回碰觸,如果觸發出哢、哢聲的且電阻只有8Ω(或16Ω)的是無源蜂鳴器;如果能發出持續聲音的,且電阻在幾百歐以上的,是有源蜂鳴器。有源蜂鳴器直接接上額定電源(新的蜂鳴器在標簽上都有注明)就可連續發聲;而無源蜂鳴器則和電磁揚聲器一樣,需要接在音頻輸出電路中才能發聲。按構造方式的不同,可分為:電磁式蜂鳴器和壓電式蜂鳴器;壓電式蜂鳴器壓電式蜂鳴器主要由多諧振蕩器、壓電蜂鳴片、阻抗匹配器及共鳴箱、外殼等組成。有的壓電式蜂鳴器外殼上還裝有發光二極管。多諧振蕩器由晶體管或集成電路極成。當接通電源後(1.5~15V直流工作電壓),多諧振蕩器起振,輸出1.5~2.5kHZ的音頻信號,阻抗匹配器推動壓電蜂鳴片發聲壓電蜂鳴片由鋯鈦酸鉛或鈮鎂酸鉛壓電陶瓷材料制成。在陶瓷片的兩面鍍上銀電極,經極化和老化處理後,再與黃銅片或不鏽鋼片粘在一起。電磁式蜂鳴器由振蕩器、電磁線圈、磁鐵、振動膜片及外殼等組成。接通電源後,振蕩器產生的音頻信號電流通過電磁線圈,使電磁線圈產生磁場。振動膜片在電磁線圈和磁鐵的相互作用下,周期性地振動發聲。2、工作原理蜂鳴器發聲原理是電流通過電磁線圈,使電磁線圈產生磁場來驅動振動膜發聲的,因此需要一定的電流才能驅動它,本實驗用的蜂鳴器內部帶有驅動電路,所以可以直接使用。當與蜂鳴器連接的引腳為高電平時,內部驅動電路導通,蜂鳴器發出聲音;當與蜂鳴器連接的引腳為低電平,內部驅動電路截止,蜂鳴器不發出聲音。3、蜂鳴器的連線本實驗用的蜂鳴器內部帶有驅動電路,所以可以直接將蜂鳴器的正極連接到數字口,蜂鳴器的負極連接到GND插口中。如下圖:圖2.1蜂鳴器接線圖二、蜂鳴器模擬救護車警笛聲音實驗1、實驗器件■蜂鳴器:1個■多彩麵包板實驗跳線:若干2、實驗連線按照Arduino教程將控制板、Prototypeshield板子、麵包板連接好,下載線插好。然後按照蜂鳴器的接法將蜂鳴器連接到數字7口上,連線完畢。3、實驗原理蜂鳴器發出聲音的時間間隔不同,頻率就不同,所以發出的聲音就不同。根據這一原理我們通過改發蜂鳴器發出聲音的時間間隔,來發出不同種聲音,來模擬各種聲音。本程式首先讓蜂鳴器間隔1ms發出一種頻率的聲音,循環80次;接著讓蜂鳴器間隔2ms發出另一種頻率的聲音,循環100次。4、程式代碼程式代碼在蜂鳴器救護車報警聲音程式文件夾中,雙擊打開後有一個buzzer文件夾,接著雙擊打開後可以看見有一個buzzer.pde文件,雙擊圖標即可打開。打開後我們可以看到這是arduino編程軟件窗口,上面有本實驗的程式代碼。程式代碼如下:intbuzzer=7;//設置控制蜂鳴器的數字IO腳voidsetup(){pinMode(buzzer,OUTPUT);//設置數字IO腳模式,OUTPUT為輸出}voidloop(){unsignedchari,j;//定義變量while(1){for(i=0;i<80;i++)//輸出一個頻率的聲音{digitalWrite(buzzer,HIGH);//發聲音delay(1);//延時1msdigitalWrite(buzzer,LOW);//不發聲音delay(1);//延時ms}for(i=0;i<100;i++)//輸出另一個頻率的聲音{digitalWrite(buzzer,HIGH);//發聲音delay(2);//延時2msdigitalWrite(buzzer,LOW);//不發聲音delay(2);//延時2ms}}}在loop()中用的while也是一個循環語句,一般形式:while(表達式)語句表達式是循環條件,語句是循環體。語義是:計算表達式的值,當值為真(非0)時,執行循環體語句。其執行過程可用下圖表:作用:實現“當型”循環。當“表達式”非0(真)時,執行“語句”。“語句”是被循環執行的程式,稱為“循環體”。5、下載程式按照arduino教程中的程式下載方法將本程式下載到實驗板中。6、程式功能將程式下載到實驗板後我們可以聽到,蜂鳴器發出救護車警笛聲。掌握本程式後,大家可以在程式中自己改發時間間隔,調試出各種頻率的聲音。第三節數碼管實驗一、數碼管介紹1、認識數碼管數碼管是一種半導體發光器件,其基本單元是發光二極管.數碼管按段數分為七段數碼管和八段數碼管,八段數碼管比七段數碼管多一個發光二極管單元(多一個小數點顯示);圖3.1數碼管實物圖按能顯示多少個“8”可分為1位、2位、4位等等數碼管;圖3.2各種數碼管按發光二極管單元連接方式分為共陽極數碼管和共陰極數碼管。共陽數碼管是指將所有發光二極管的陽極接到一起形成公共陽極()的數碼管。共陽數碼管在應用時應將公共極接到+5V,當某一字段發光二極管的陰極為低電平時,相應字段就點亮。當某一字段的陰極為高電平時,相應字段就不亮。圖3.3共陽極數碼管內部結構共陽數碼管是指將所有發光二極管的陽極接到一起形成公共陽極()的數碼管。共陽數碼管在應用時應將公共極PWR接到電源輸入PWR上,當某一字段發光二極管的陰極極為低電平時,相應字段就點亮。當某一字段的陰極為高電平時,相應字段就不亮。圖3.4共陰極數碼管內部結構2、工作原理數碼管的每一段是由發光二極管組成,所以在使用時跟發光二極管一樣,也要連接限流電阻,否則電流過大會燒毀發光二極管的。本實驗用的是共陽極的數碼管,共陽數碼管在應用時應將公共極接到+5V,當某一字段發光二極管的陰極為低電平時,相應字段就點亮。當某一字段的陰極為高電平時,相應字段就不亮。3、數碼管的連線將限流電阻的一端插到數字I/O中,另一端與數碼管的字段引腳相連,剩下的六個字段和一個小數點依次按照這種方法接。將公共極如果是共陽極的就接到+5V,如果是共陰極的就接到GND。二、數碼管顯示數字的實驗1、實驗器件■數碼管:1個■220Ω的電阻:8個■多彩麵包板實驗跳線:若干2、實驗連線按照Arduino教程將控制板、Prototypeshield板子、麵包板連接好,下載線插好。按數碼管的接法將數碼管g段通過限流電阻與數字的9引腳相連,如圖3.4中的(a)圖,f段通過限流電阻與數字8引腳相連,共陽極與5V插口相連,同樣的接法a、b分別接7、6引腳,e、d分別接10、11引腳,第二個共陽極可以不接,c、DP分別接5、4引腳,連線完畢。如下圖:圖3.5數碼管接線圖3、實驗原理數碼管共有七段顯示數字的段,還有一個顯示小數點的段。當讓數碼管顯示數字時,只要將相應的段點亮即可。例如:讓數碼管顯示數字1,則將b、c段點亮即可。將每個數字寫成一個子程式。在主程式中每隔2s顯示一個數字,讓數碼管循環顯示1~8數字。每一個數字顯示的時間由延時時間來決定,時間設置的大些,顯示的時間就長些,時間設置的小些,顯示的時間就短。4、程式代碼程式代碼在數碼管顯示數字程式文件夾中,雙擊打開後有一個digital_tube1文件夾,接著雙擊打開後可以看見有一個digital_tube1.pde文件,雙擊圖標即可打開。打開後我們可以看到這是arduino編程軟件窗口,上面有本實驗的程式代碼。程式代碼如下://設置控制各段的數字IO腳inta=7;intb=6;intc=5;intd=11;inte=10;intf=8;intg=9;intdp=4;//顯示數字1voiddigital_1(void){unsignedcharj;digitalWrite(c,LOW);//給數字5引腳低電平,點亮c段digitalWrite(b,LOW);//點亮b段for(j=7;j<=11;j++)//熄滅其余段digitalWrite(j,HIGH);digitalWrite(dp,HIGH);//熄滅小數點DP段}//顯示數字2voiddigital_2(void){unsignedcharj;digitalWrite(b,LOW);digitalWrite(a,LOW);for(j=9;j<=11;j++)digitalWrite(j,LOW);digitalWrite(dp,HIGH);digitalWrite(c,HIGH);digitalWrite(f,HIGH);}//顯示數字3voiddigital_3(void){unsignedcharj;digitalWrite(g,LOW);digitalWrite(d,LOW);for(j=5;j<=7;j++)digitalWrite(j,LOW);digitalWrite(dp,HIGH);digitalWrite(f,HIGH);digitalWrite(e,HIGH);}//顯示數字4voiddigital_4(void){digitalWrite(c,LOW);digitalWrite(b,LOW);digitalWrite(f,LOW);digitalWrite(g,LOW);digitalWrite(dp,HIGH);digitalWrite(a,HIGH);digitalWrite(e,HIGH);digitalWrite(d,HIGH);}//顯示數字5voiddigital_5(void){unsignedcharj;for(j=7;j<=9;j++)digitalWrite(j,LOW);digitalWrite(c,LOW);digitalWrite(d,LOW);digitalWrite(dp,HIGH);digitalWrite(b,HIGH);digitalWrite(e,HIGH);}//顯示數字6voiddigital_6(void){unsignedcharj;for(j=7;j<=11;j++)digitalWrite(j,LOW);digitalWrite(c,LOW);digitalWrite(dp,HIGH);digitalWrite(b,HIGH);}//顯示數字7voiddigital_7(void){unsignedcharj;for(j=5;j<=7;j++)digitalWrite(j,LOW);digitalWrite(dp,HIGH);for(j=8;j<=11;j++)digitalWrite(j,HIGH);}//顯示數字8voiddigital_8(void){unsignedcharj;for(j=5;j<=11;j++)digitalWrite(j,LOW);digitalWrite(dp,HIGH);}voidsetup(){inti;//定義變量for(i=4;i<=11;i++)pinMode(i,OUTPUT);//設置4~11引腳為輸出模式}voidloop(){while(1){digital_1();//數字1delay(2000);//延時2sdigital_2();delay(2000);digital_3();delay(2000);digital_4();delay(2000);digital_5();delay(2000);digital_6();delay(2000);digital_7();delay(2000);digital_8();delay(2000);}}在setup()前面定義了一系列的數字顯示子程式,這些子程式的定義可以方便在loop()中使用,使用時只需將子程式的名寫上即可。5、下載程式按照arduino教程中的程式下載方法將本程式下載到實驗板中。6、程式功能將程式下載到實驗板後我們可以看到,數碼管循環顯示數字1~8,每隔數字顯示兩秒鐘。掌握本程式後,大家可以發揮自己的想像,做出各種數碼管實驗。第四節按鍵實驗一、按鍵介紹1、認識按鍵按鍵是一種常用的控制電器元件,常用來接通或斷開‘控制電路(其中電流很小),從而達到控制電動機或其他電氣設備運行目的的一種開關。電子產品大都有用到按鍵這個最基本人機接口工具,隨著工業水平的提升與創新,按鍵外觀的也發的越來越多樣化及豐富的規覺效果。圖4.1按鍵2、工作原理從實驗盒裡拿出一個按鍵,觀察按鍵的背面,這時你可以看到按鍵背面如圖:圖4.2按鍵背面這表示在沒有按鍵按下時左側兩個引腳是導通的,右側兩個引腳也是導通的,而上側和下側兩對引腳是沒有導通的。按鍵正面圖如下:圖4.3按鍵正面本實驗用到的是四腳按鍵,在按鍵沒有按下時,1和4引腳連通、2和3引腳連通;當按鍵按下時,1和4引腳連通、2和3引腳連通、1和2引腳連通、4和3引腳連通。3、按鍵的連線一般用按鍵是為了在按鍵按下時控制其他器件,所以我們在連接時,將第1引腳連接在5V插口中,將第2引腳接在模擬口來讀取電壓值。或者是利用4、3引腳配合。這樣當按鍵沒有按下時,模擬口的電壓值為0V左右(用數字二進制表示為0);當按鍵按下時,模擬口的電壓值為5V左右(用數字二進制表示為1023)。二、按鍵控制led等亮滅實驗1、實驗器件■按鍵:1個■220Ω的電阻:1個■Led燈:1個■多彩麵包板實驗跳線:若干2、實驗連線按照Arduino教程將控制板、Prototypeshield板子、麵包板連接好,下載線插好。將按鍵插在麵包板的適當位置,第一引腳處插一根導線,導線的另一端插在5V插孔中,第二引腳處也插一根導線,導線的另一端插在模擬口的第0口。這樣按鍵就連接好了。接下來將led燈通過限流電阻接到數字7引腳上。整個連線完成。如圖所示:圖4.4按鍵控制led接線圖3、實驗原理當按鍵沒有被按下時,模擬口電壓為0V,led燈熄滅;當按鍵按下時,模擬口的電壓值為5V,所以只要判斷電壓值大於2.5V即可知道按鍵被按下,led燈點亮。4、程式代碼程式代碼在簡單按鍵程式文件夾中,雙擊打開後有一個key1文件夾,接著雙擊打開後可以看見有一個key1.pde文件,雙擊圖標即可打開。打開後我們可以看到這是arduino編程軟件窗口,上面有本實驗的程式代碼。程式代碼如下:intkey=7;//設置控制按鍵的數字IO腳voidsetup(){pinMode(key,OUTPUT);//設置數字IO引腳為輸出模式}voidloop(){inti;//定義變量while(1){i=analogRead(0);//讀取模擬0口電壓值if(i>1000)//如果電壓值大於1000digitalWrite(key,HIGH);//設置第七引腳為高電平,點亮led燈elsedigitalWrite(key,LOW);//設置第七引腳為低電平,熄滅led燈}}5、下載程式按照arduino教程中的程式下載方法將本程式下載到實驗板中。6、程式功能將程式下載到實驗板後,當我們按下按鍵,led燈點亮;當我們不按按鍵,led熄滅。三、擲骰子實驗1、實驗器件■按鍵:1個■數碼管:1個■220Ω的電阻8個■多彩麵包板實驗跳線:若干2、實驗連線將板子和數據線連好。然後按照數碼管的接線方法,將數碼管連接好,各引腳的接線同第三節。最後將按鍵接到模擬口0。接線圖如下圖:圖4.5擲骰子實驗接線3、實驗原理讓數碼管快速的顯示數字1~8。當按鍵按下時,模擬0口會讀到電壓值為5V,只要電壓值大於2.5V就停留在當前顯示的數字;松開按鍵,電壓值為0,數字繼續滾動。類似於,先搖動骰子,停止時骰子上面的數字即是我們搖出的點數。4、程式代碼程式代碼在擲骰子程式文件夾中,雙擊打開後有一個key2文件夾,接著雙擊打開後可以看見有一個key2.pde文件,雙擊圖標即可打開。打開後我們可以看到這是arduino編程軟件窗口,上面有本實驗的程式代碼。大家可以參考arduino教程,了解arduino語言中的各語句的功能。結合arduino教程,理解程式代碼。程式代碼如下://設置控制各段的數字IO腳inta=7;intb=6;intc=5;intd=11;inte=10;intf=8;intg=9;intdp=4;//顯示數字1voiddigital_1(void){unsignedcharj;digitalWrite(c,LOW);//給數字5引腳低電平,點亮c段digitalWrite(b,LOW);//點亮b段for(j=7;j<=11;j++)//熄滅其余段digitalWrite(j,HIGH);digitalWrite(dp,HIGH);//熄滅小數點DP段}//顯示數字2voiddigital_2(void){unsignedcharj;digitalWrite(b,LOW);digitalWrite(a,LOW);for(j=9;j<=11;j++)digitalWrite(j,LOW);digitalWrite(dp,HIGH);digitalWrite(c,HIGH);digitalWrite(f,HIGH);}//顯示數字3voiddigital_3(void){unsignedcharj;digitalWrite(g,LOW);digitalWrite(d,LOW);for(j=5;j<=7;j++)digitalWrite(j,LOW);digitalWrite(dp,HIGH);digitalWrite(f,HIGH);digitalWrite(e,HIGH);}//顯示數字4voiddigital_4(void){digitalWrite(c,LOW);digitalWrite(b,LOW);digitalWrite(f,LOW);digitalWrite(g,LOW);digitalWrite(dp,HIGH);digitalWrite(a,HIGH);digitalWrite(e,HIGH);digitalWrite(d,HIGH);}//顯示數字5voiddigital_5(void){unsignedcharj;for(j=7;j<=9;j++)digitalWrite(j,LOW);digitalWrite(c,LOW);digitalWrite(d,LOW);digitalWrite(dp,HIGH);digitalWrite(b,HIGH);digitalWrite(e,HIGH);}//顯示數字6voiddigital_6(void){unsignedcharj;for(j=7;j<=11;j++)digitalWrite(j,LOW);digitalWrite(c,LOW);digitalWrite(dp,HIGH);digitalWrite(b,HIGH);}//顯示數字7voiddigital_7(void){unsignedcharj;for(j=5;j<=7;j++)digitalWrite(j,LOW);digitalWrite(dp,HIGH);for(j=8;j<=11;j++)digitalWrite(j,HIGH);}//顯示數字8voiddigital_8(void){unsignedcharj;for(j=5;j<=11;j++)digitalWrite(j,LOW);digitalWrite(dp,HIGH);}voidsetup(){inti;//定義變量for(i=4;i<=11;i++)pinMode(i,OUTPUT);//設置4~11引腳為輸出模式}voidloop(){while(1){digital_1();//數字1delay(2000);//延時2sdigital_2();delay(2000);digital_3();delay(2000);digital_4();delay(2000);digital_5();delay(2000);digital_6();delay(2000);digital_7();delay(2000);digital_8();delay(2000);}}5、下載程式按照arduino教程中的程式下載方法將本程式下載到實驗板中。6、程式功能將程式下載到實驗板後我們可以觀察到,數碼管不斷的循環顯示數字1~8,當按下按鍵後,數碼管顯示當前數字,直至松開按鍵。在掌握了以上兩個程式後,大家可以充分發揮自己的想像,編寫出自己想要的效果。第五節傾斜開關實驗一、傾斜開關介紹1、了解傾斜開關本節實驗所使用的傾斜開關是內部帶有一個金屬滾珠的滾珠傾斜開關,如圖所示:圖5.1SW—200D傾斜開關滾珠開關:也叫碰珠開關、搖珠開關、鋼珠開關、傾斜開關,倒順開關、角度傳感器。它主要是利用滾珠在開關內隨不同傾斜角度的發化,達到觸發電路的目的。目前滾珠開關在市場上使用的常用型號有SW-200D、SW-460、SW-300DA等,本節使用的是SW-200D型號的。這類開關不像傳統的水銀開關,它功效同水銀開關,但沒有水銀開關的環保及安全等問題。2、工作原理觀察傾斜開關我們可以發現,傾斜開關的一端為金色導針,另一端為銀色導針。金色一端為<ON>導通觸發端銀色一端為<OFF>開路端當叐到外力搖晃而達到適當晃動力時或金色一端設置角度低於水平適當角度時導電接腳電氣特性會產生短時間導通或持續導通<ON>狀態。而當電氣特性要恢復開路狀態<OFF>時開關設置環境必須為靜止,且銀色一端設置角度需低於水平10度。3、傾斜開關連線將傾斜開關銀色的一端連接到5V插口,金色一端連接到模擬口。二、傾斜開關控制led燈的亮滅1、實驗器件■傾斜開關:1個■Led燈:1個■220Ω電阻:1個■多彩麵包板實驗跳線:若干2、實驗連線按照Arduino教程將控制板、Prototypeshield板子、麵包板連接好,下載線插好。然後將led燈連接到數字8引腳,傾斜開關連接到模擬5引腳。如圖:圖5.2傾斜開關實驗接線圖3、實驗原理當金色一端低於水平位置傾斜,開關導通,模擬口電壓值為5V左右(數字二進制表示為1023),點亮led燈。當銀色一端低於水平位置傾斜,開關截止,模擬口電壓值為0V左右(數字二進制表示為0),熄滅led燈。在程式中模擬口電壓值是否大於2.5V左右(數字二進制表示為512),即可知道是否傾斜開關導通了。4、程式代碼程式代碼在sketch_jun04d程式文件夾中,雙擊打開後有一個sketch_jun04d.pde文件,雙擊圖標即可打開。打開後我們可以看到這是arduino編程軟件窗口,上面有本實驗的程式代碼。大家可以參考arduino教程,了解arduino語言中的各語句的功能。結合arduino教程,理解程式代碼。程式代碼如下:voidsetup(){pinMode(8,OUTPUT);//設置數字8引腳為輸出模式}voidloop(){inti;//定義變量iwhile(1){i=analogRead(5);//讀取模擬5口電壓值if(i>200)//如果大於512(2.5V){digitalWrite(8,HIGH);//點亮led燈}else//否則{digitalWrite(8,LOW);//熄滅led燈}}}5、下載程式按照arduino教程中的程式下載方法將本程式下載到實驗板中。6、程式功能將程式下載到實驗板後大家可以將板子傾斜觀察led燈的狀態。當金色一端低於水平位置傾斜,開關導通,點亮led燈;當銀色一端低於水平位置傾斜,開關截止,模擬口電壓值為0V左右(數字二進制表示為0),熄滅led燈。掌握本程式後,大家可以按照自己的想法實驗,還可以控制其他器件例如蜂鳴器等。第六節光控聲音實驗一、光敏電阻介紹1、認識光敏電阻光敏電阻又稱光導管,常用的制作材料為硫化鎘,另外還有硒、硫化鋁、硫化鉛和硫化鉍等材料。這些制作材料具有在特定波長的光照射下,其阻值迅速減小的特性。這是由於光照產生的載流子都參與導電,在外加電場的作用下作漂秱運動,電子奔向電源的正極,空穴奔向電源的負極,從而使光敏電阻器的阻值迅速下降。實物如圖:2、工作原理光敏電阻的工作原理是基於內光電效應。在半導體光敏材料兩端裝上電極引線,將其封裝在帶有透明窗的管殼裡就構成光敏電阻,為了增加靈敏度,兩電極常做成梳狀。在有光照射時入射光強,電阻減小,入射光弱,電阻增大。3、光敏電阻的連線光敏電阻在使用中可以直接與所控制器件相連。二、光控聲音實驗1、實驗器件■光敏電阻:1個■蜂鳴器:1個■多彩麵包板實驗跳線:若干2、實驗連線按照Arduino教程將控制板、prototype板子、麵包板連接好,下載線插好。光敏電阻的一端插在數字6口,另一端與蜂鳴器正極相連,蜂鳴器的負極與GND插口相連。如圖:圖6.2光敏電阻實驗接線圖3、實驗原理本程式不用前面幾節讀取模擬口電壓值的方法,直接將光敏電阻插在數字口。程式類似第二節蜂鳴器發聲的程式,沒有光照時,正常發出聲音,但聲音特別的小;當有光照時,光敏電阻的阻值減小,所以蜂鳴器兩端的電壓就會增大,蜂鳴器聲音發大。光照越強,電阻越小,蜂鳴器越響。4、程式代碼程式代碼在sketch_jun17b文件夾中,雙擊打開後有一個sketch_jun17b.pde文件,雙擊圖標即可打開。打開後我們可以看到這是arduino編程軟件窗口,上面有本實驗的程式代碼。大家可以參考arduino教程,了解arduino語言中的各語句的功能。結合arduino教程,理解程式代碼。程式代碼如下:voidsetup(){pinMode(6,OUTPUT);}voidloop(){while(1){chari,j;while(1){for(i=0;i<80;i++)//輸出一個頻率的聲音{digitalWrite(6,HIGH);delay(1);digitalWrite(6,LOW);delay(1);}for(i=0;i<100;i++)//輸出另一個頻率的聲音{digitalWrite(6,HIGH);delay(2);digitalWrite(6,LOW);delay(2);}}}}5、下載程式按照arduino教程中的程式下載方法將本程式下載到實驗板中。6、程式功能將程式下載到實驗板後,可以用手電筒或其他發光物體照射光敏電阻,可以聽到,有光照時蜂鳴器聲音更大。掌握本程式後,大家可以自己動手設計實驗,也可以用光敏電阻控制led燈亮度。第七節火焰報警實驗一、火焰傳感器介紹1、認識火焰傳感器火焰傳感器(即紅外接收三極管)是機器人與門用來搜導火源的傳感器,本傳感器對火焰特別靈敏。實物如圖:圖7.1紅外接收三極管2、工作原理火焰傳感器利用紅外線對火焰非常敏感的特點,使用特制的紅外線接叐管來檢測火焰,然後把火焰的亮度轉化為高低發化的電平信號,輸入到中央處理器,中央處理器根據信號的發化做出相應的程式處理。3、火焰傳感器的連線紅外接收三極管的短引線端為負極,長引線端為正極。按照下圖將負極插到5V插口中,然後將正極與10K電阻相連,電阻的另一端插到GND插口中,最後從火焰傳感器的正極端所在列插入一根跳線,跳線的另一端插在模擬口中。如圖:圖7.2火焰傳感器接線圖二、火焰報警實驗1、實驗器件■火焰傳感器:1個■蜂鳴器:1個■10K電阻:1個■多彩麵包板實驗跳線:若干2、實驗連線(1)蜂鳴器的連接首先按照Arduino教程將控制板、prototype板子、麵包板連接好,下載線插好。從實驗盒中取出蜂鳴器,按照第二節實驗蜂鳴器的連接方法,將蜂鳴器連接到數字第八口。完成蜂鳴器的連接。(2)火焰傳感器的連接從實驗盒中取出火焰傳感器,按照本節所講述的火焰傳感器的接線方法,將火焰傳感器接到模擬5口。完成整個實驗的連線。如下圖:圖7.3火焰報警接線圖3、實驗原理在有火焰靠近和沒有火焰靠近兩種情況下,模擬口讀到的電壓值是有變化的。實際用萬用表測量可知,在沒有火焰靠近時,模擬口讀到的電壓值為0.3V左右;當有火焰靠近時,模擬口讀到的電壓值為1.0V左右,火焰靠近距離越近電壓值越大。所以在程式一開始,我們可以先存儲一個沒有火焰時模擬口的電壓值i。接著不斷的循環讀取模擬口電壓值j、同存儲的值做差值k=j-i、差值k與0.6v做比較。差值k如果大於0.6V(數字二進制值為123),則判斷有火焰靠近讓蜂鳴器發出聲音以作報警;如果差值小於0.6v則蜂鳴器不響。4、程式代碼程式代碼在火焰報警程式文件夾中,雙擊打開後有一個flame文件,雙擊打開後會看到flame.pde。打開後我們可以看到這是arduino編程軟件窗口,上面有本實驗的程式代碼。大家可以參考arduino教程,了解arduino語言中的各語句的功能。結合arduino教程,理解程式代碼。程式代碼如下:intg;//定義變量gvoidbuzzer()//蜂鳴器發出“嘀”聲音子程式{for(g=0;g<80;g++){digitalWrite(8,HIGH);//發聲音delay(1);//延時1msdigitalWrite(8,LOW);//與發聲音delay(1);//延時ms}}voidsetup(){pinMode(8,OUTPUT);//設置數字8引腳為輸出方式}voidloop(){chari,j,k;//定義變量i=analogRead(5);//讀取沒有火焰時模擬口的電壓值while(1){j=analogRead(5);//與斷的讀取模擬口的電壓值,時時監測k=j-i;//做差值if(k>123)//如果差值大於0.6(0.6為模擬值,123為對應的數字二進制值)說明有火焰{buzzer();//蜂鳴器發出聲音}else{digitalWrite(8,LOW);//設置數字8口為低電平,蜂鳴器與響}}}5、下載程式按照arduino教程中的程式下載方法將本程式下載到實驗板中。6、程式功能本程式可以模擬在有火焰時報警的情況,在沒有火焰時一切正常,當有火焰時立刻報警做出提示。第八節搶答器實驗1、實驗器件■按鍵:3個■蜂鳴器:1個■Led燈:紅色一支、綠色一支■220Ω的電阻:2個■多彩麵包板實驗跳線:若干2、實驗連線(1)按鍵的連接從實驗盒中取出三個按鍵。按照前面第四節按鍵的插法,將三個按鍵依次插到麵包板合適的位置。在每個按鍵的第1引腳所在列插入一根跳線,將跳線的另一端插到5V插孔中;在每個按鍵的第2引腳所在列插入一根跳線,將跳線的另一端插入模擬口,按鍵1插到模擬1口、按鍵2插到模擬2口、按鍵3插到模擬3口中,這樣按鍵部分就連接好了。(2)led燈的連接從實驗盒中取出一個紅色的led燈和一個綠色的led燈。按照第一節中led燈的連接方法,將電阻與紅色的led燈配合連接到數字的第8引腳,將電阻與綠色的led燈配合連接到數字的第七引腳。這樣就完成了led燈的連接。(3)蜂鳴器的連接從實驗盒中取出蜂鳴器。按照第二節試驗中蜂鳴器的接法,將蜂鳴器連接到數字的第5引腳。這樣我們就將本實驗的所有器件連接好了。如下圖:圖8.1搶答器接線圖3、實驗原理從第四節實驗中,我們可以知道按鍵在保持按下和保持彈起這兩種狀態的情況下,按鍵的第2引腳和第4引腳的電壓值是有變化的。所以我們可以依次讀取模擬口1、2、3的電壓值,根據讀取的電壓值來判斷按鍵是否被按下。實際用萬用表測量可知,當沒有按鍵按下時,模擬口電壓值為0.0V左右。當有按鍵按下時,模擬口的電壓值為5.0V左右。所以我們可以訃為當模擬口的電壓值小於1V(數字二進制表示為204)時,沒有按鍵按下,當模擬口的電壓值大於4V(數字二進制表示為818)時,有按鍵按下。按鍵1和2是搶答按鍵,按鍵3是清除按鍵。如果按鍵1先被按下,蜂鳴器發出提示音,紅燈亮,綠燈滅;如果按鍵2先被按下,蜂鳴器發出提示音,綠燈亮,紅燈滅;如果按鍵3被按下,蜂鳴器發出提示音,將紅燈和綠燈都熄滅。需要注意的是按鍵可能存在抖動干擾,為了更加准確的判斷是否有按鍵被按下,在第一次判斷有按鍵按下之後,延時10ms的時間躲避抖動,然後進行第二次的判斷。另外,模擬口讀出的電壓值是用二進制表示的,這一點可以翻閱一下Arduino使用教程。4、程式代碼程式代碼在KBL文件夾中,雙擊打開後有一個KBL.pde文件,雙擊圖標即可打開。打開後我們可以看到這是arduino編程軟件窗口,上面有本實驗的程式代碼。大家可以參考arduino教程,了解arduino語言中的各語句的功能。結合arduino教程,理解程式代碼。程式代碼如下:intRedLed=8;//定義第八引腳連接紅燈intGreenLed=7;//定義第七引腳連接綠燈inti;//定義變量iintj=0;//定義變量jvoidbuzzer()//蜂鳴器發出“嘀”聲音子程式{for(i=0;i<80;i++){digitalWrite(5,HIGH);//發聲音delay(1);//延時1msdigitalWrite(5,LOW);//與發聲音delay(1);//延時ms }}voidkey_scan()//按鍵掃描子程式{intkey_1,key_2,key_3;//定義變量key_1=analogRead(1);//讀取模擬第一引腳的電壓值key_2=analogRead(2);//讀取模擬第二引腳的電壓值key_3=analogRead(3);//讀取模擬第三引腳的電壓值if(key_1<204&&key_2<204&&key_3<204)//如果各按鍵電壓值都小於204(即模擬值的1V),可以判斷沒有按鍵按下{return;//跳出本子函數}if(key_1>818)//如果按鍵1的電壓值都大於818(即模擬值的4V),則可以判斷按鍵1被按下{delay(10);//由於有抖動,所以延時100ms再一次判斷if(key_1>818)//如果按鍵1的電壓值都大於818(即模擬值的4V),則可以判斷按鍵1確實被按下{buzzer();//蜂鳴器發出聲音digitalWrite(RedLed,HIGH);//紅燈亮digitalWrite(GreenLed,LOW);//綠燈滅}else//否則認為是抖動干擾,與做任何動作{return;//跳出本子函數}}if(key_2>818)//如果按鍵2的電壓值都大於818(即模擬值的4V),則可以判斷按鍵2被按下{delay(10);//由於有抖動,所以延時100ms再一次判斷if(key_2>818)//如果按鍵2的電壓值都大於818(即模擬值的4V),則可以判斷按鍵2確實被按下{buzzer();//蜂鳴器發出聲音digitalWrite(RedLed,LOW);//紅燈滅digitalWrite(GreenLed,HIGH);//綠燈亮}else//否則認為是抖動干擾,與做任何動作{return;//跳出本子函數}}if(key_3>818)//如果按鍵3的電壓值都大於818(即模擬值的4V),則可以判斷按鍵3被按下{delay(10);//由於有抖動,所以延時100ms再一次判斷if(key_3>818)//如果按鍵3的電壓值都大於818(即模擬值的4V),則可以判斷按鍵3確實被按下{buzzer();//蜂鳴器發出聲音digitalWrite(RedLed,LOW);//紅燈滅digitalWrite(GreenLed,LOW);//綠燈滅 } else//否則認為是抖動干擾,與做任何動作{return;//跳出本子函數}}}voidsetup(){for(i=5;i<=8;i++){pinMode(i,OUTPUT);//將5~8引腳設置為輸出模式}}voidloop(){while(1){key_scan();//循環掃描按鍵}}5、下載程式按照arduino教程中的程式下載方法將本程式下載到實驗板中。6、程式功能可以完成搶答器功能,兩名選手各有一個按鍵,當比賽開始後進行搶答,誰先按下按鍵對應的燈就會亮起來。裁判可根據亮燈情況提示參賽選手答題,本次結束後,裁判按下按鍵3清除現在亮燈情況(即將亮燈都熄滅)。第九節溫度報警實驗一、溫度傳感器介紹1、什麼是溫度傳感器?溫度傳感器就是利用物質各種物理性質隨溫度變化的規律,把溫度轉換為電量的傳感器。這些呈現規律性變化的物理性質主要有體。溫度傳感器是溫度測量儀表的核心部分,品種繁多。按測量方式可分為接觸式和非接觸式兩大類,按照傳感器材料及電子元件特性分為熱電阻和熱電偶兩類。本實驗使用的是LM35溫度傳感器。如下圖:2、工作原理LM35溫度傳感器的輸出電壓與攝氏溫標呈線性關系,0℃,時輸出為0V,每升高1℃,輸出電壓增加10mV。轉換公式如下:3、LM35的連線LM35的引腳示意圖如下:從實驗盒中將溫度傳感器拿出來可以看到,溫度傳感器的一面是平的,另一面是半圓的。將平面對著自己,最左邊的是VCC引腳(接+5v),中間的為VOUT(電壓值輸出引腳,接板子上的模擬引腳),最右邊的引腳為GND引腳(接板子上的GND)。三個引腳分別接好就可以用了。二、溫度報警實驗1、實驗器件■LM35溫度傳感器:1個■LED燈:紅黃綠各1個■220Ω電阻:3個■多彩麵包板實驗跳線:若干2、實驗連線首先將實驗板連接好;接著按照LM35溫度傳感器連線方法將其連好,將VOUT連接到模擬0口;最後按LED燈的連接方法,將綠燈通過電阻

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论