版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
四川文化傳媒職業(yè)學院航空系高瞻Arduino開發(fā)平臺Arduino開發(fā)平臺介紹1
Arduino開發(fā)基礎操作2
開發(fā)實例(用Arduino控制一個舵機)3Arduino開發(fā)平臺Arduino開發(fā)平臺介紹
1.什么是Arduino?Arduino項目起源于意大利,該名字在意大利是男性用名,音譯為“阿爾杜伊諾”,意思為“強壯的朋友”。Arduino的出現(xiàn)并不是偶然,Arduino最初是為一些非電子工程專業(yè)的學生設計的。設計者最初為了尋求一個廉價好用的微控制器開發(fā)板從而決定自己動手制作開發(fā)板,Arduino一經(jīng)推出,因其開源、廉價、簡單易懂的特性迅速受到了廣大電子迷的喜愛和推崇。幾乎任何人,即便不懂電腦編程,利用這個開發(fā)板也能用Arduino做出炫酷有趣的東西,比如對感測器探測做出一些回應、閃爍燈光、控制馬達等。Arduino開發(fā)平臺介紹
1.什么是Arduino?Arduino應用(視頻)Arduino開發(fā)平臺介紹
Arduino是一塊基于開放原始代碼的Simplei/o平臺,并且具有開發(fā)語言和開發(fā)環(huán)境都很簡單、易理解的特點。讓您可以快速使用Arduino做出有趣的東西。它是一個能夠用來感應和控制現(xiàn)實物理世界的一套工具。它由一個基于單片機并且開放源碼的硬件平臺,和一套為Arduino板編寫程序的開發(fā)環(huán)境組成。Arduino開發(fā)平臺介紹
Arduino是一個加載了微控制器的電路板,更是一個包含了硬件和軟件的開發(fā)平臺。將程序下載到主板Arduino開發(fā)平臺介紹
Arduino硬件是一塊完整的電路板,包含一塊微控制器IC,一組排母用于連接到其它電路、若干個穩(wěn)壓器IC用于給整個電路提供合適的電源,一個USB接口用于連接計算機。Arduino開發(fā)平臺介紹
Arduino軟件是一個編程的開發(fā)環(huán)境。這個軟件包含一個文本編輯器,可以在文本編輯編輯器中編寫并修改程序,軟件還包含一個自動上傳器,可以將編寫完成的程序發(fā)送到Arduino開發(fā)板。Arduino開發(fā)平臺介紹
Arduino開發(fā)板上需要關注的重點:1.核心微控制器:ArduinoUno使用的是AtmelAVRATmega328P微控制器。Arduino開發(fā)平臺介紹
Arduino開發(fā)板上需要關注的重點:2.外部連接排母。與外部交互的接口。Uno一共有28個。分成三組:(1)電源(2)模擬輸入(3)數(shù)字輸入/輸出Arduino開發(fā)平臺介紹
Arduino開發(fā)板上需要關注的重點:3.USB接口。三個重要功能:(1)程序上傳(2)程序調(diào)試(Debug)(3)臨時供電Arduino開發(fā)平臺介紹
Arduino開發(fā)板上需要關注的重點:4.可用內(nèi)存。(1)Flash內(nèi)存:用于寫入和保存數(shù)據(jù),ATmega328提供32KFlash內(nèi)存,其中0.5K用于保存特殊程序Bootloader。(2)靜態(tài)RAM:運行時臨時儲存數(shù)據(jù)。大小為2K。RAM中的數(shù)據(jù)掉電之后丟失。(3)EEPROM(電可擦可編程只讀存儲器):用來保存程序的額外數(shù)據(jù),如數(shù)學公式的值,或者Arduino讀取到的傳感器讀數(shù)。掉電之后,它儲存的數(shù)據(jù)不會丟失。Arduino開發(fā)平臺介紹
Arduino開發(fā)板上需要關注的重點:5.Arduino工作速度。所有的微控制器,包括Arduino,都使用一個系統(tǒng)時鐘產(chǎn)生的脈沖來進行工作。大部分Arduino的工作速度為16MHz,也就是說每秒能處理1600萬條指令。Arduino開發(fā)平臺介紹1
Arduino開發(fā)基礎操作2
開發(fā)實例(用Arduino控制一個舵機)3Arduino開發(fā)平臺Arduino開發(fā)基礎操作
2.1搭建開發(fā)環(huán)境2.1.1交叉編譯:
就是在一個平臺上生成另一個平臺上可以執(zhí)行的代碼。開發(fā)人員在電腦上將程序?qū)懞?,編譯生成單片機執(zhí)行的程序,就是一個交叉編譯的過程。很多嵌入式系統(tǒng)需要從一臺計算機上編程,將寫好的程序下載到開發(fā)板中進行測試和實際運行。因此跨平臺開發(fā)在嵌入式系統(tǒng)軟件開發(fā)中很常見。因為單片機上不具備直接編程的環(huán)境,因此利用Arduino編程需要兩臺計算機:Arduino單片機和PC。
2.1搭建開發(fā)環(huán)境2.1.2在windows上安裝IDE
給Arduino編程需要用到IDE(集成開發(fā)環(huán)境),這是一款免費的軟件。在這款軟件上編程需要使用Arduino的語言,這是一種解釋型語言,寫好的程序被稱為sketch,編譯通過后就可以下載到開發(fā)板中。在Arduino的官方網(wǎng)站上可以下載這款官方設計的軟件及源碼、教程和文檔。Arduino開發(fā)基礎操作Arduino開發(fā)基礎操作
2.1搭建開發(fā)環(huán)境2.1.2在windows上安裝IDE(注意USB驅(qū)動,JavaFramework,查看端口,選擇主板類型)Arduino開發(fā)基礎操作
2.1搭建開發(fā)環(huán)境2.1.2在windows上安裝IDEArduino開發(fā)基礎操作
2.2常用的Arduino第三方軟件介紹2.2.1圖形化編程軟件ArduBlock
Arduino開發(fā)基礎操作
2.2常用的Arduino第三方軟件介紹2.2.2Arduino仿真軟件VirtualbreadboardArduino開發(fā)基礎操作
2.2常用的Arduino第三方軟件介紹2.2.2Arduino仿真軟件Virtualbreadboard
Virtualbreadboard是一款專門的Arduino仿真軟件,簡稱VBB,中文名為“虛擬面包板”。這款軟件主要通過單片機實現(xiàn)嵌入式軟件的模擬和開發(fā)環(huán)境,它不但包括了所有Arduino的樣例電路,可以實現(xiàn)對面包板電路的設計和布置,非常直觀地顯示出面包板電路,還可實現(xiàn)對程序的仿真調(diào)試。Arduino開發(fā)基礎操作
2.2常用的Arduino第三方軟件介紹2.2.2Arduino仿真軟件Virtualbreadboard
VBB可以模擬Arduino連接各種電子模塊,例如液晶屏、舵機、邏輯數(shù)字電路、各種傳感器以及其他的輸入/輸出設備。這些部件都可以直接使用,也可以通過組合,設計出更復雜的電路和模塊。使用VBB可以直觀的了解電路設計,能夠在設計出原型后快速實現(xiàn)。而且虛擬面板具有可視性和模擬交互效果,可以實時地在軟件上看到LED、LCD等可視模塊的變化,同時可以確保安全,因為不是實物操作不會引起觸電或者燒毀芯片等問題。Arduino開發(fā)基礎操作
2.3第一個程序2.3.1LED閃光燈編寫第一個程序控制開發(fā)板上的LED燈閃爍,修改參數(shù)調(diào)整閃爍時間。(ArduinoIDE和blink)Arduino開發(fā)基礎操作
2.3第一個程序2.3.1LED閃光燈程序解析
/*BlinkTurnsonanLEDonforonesecond,thenoffforonesecond,repeatedly.*/注釋,并非程序的內(nèi)容Arduino開發(fā)基礎操作
2.3第一個程序2.3.1LED閃光燈程序解析
intLEDPin=13;//declarevariable聲明變量Arduino開發(fā)基礎操作
2.3第一個程序2.3.1LED閃光燈程序解析
//thesetupfunctionrunsoncewhenyoupressresetorpowertheboardvoidsetup(){//initializedigitalpin13asanoutput.pinMode(LEDPin,OUTPUT);}設置數(shù)字引腳13為輸出,INPUT和OUTPUT是ArduinoIDE已經(jīng)預先定義好的變量Arduino開發(fā)基礎操作
2.3第一個程序2.3.1LED閃光燈程序解析
//theloopfunctionrunsoverandoveragainforevervoidloop(){digitalWrite(LEDPin,HIGH);//settheledondelay(1000)//waitforaseconddigitalWrite(LEDPin,LOW);//settheledoffdelay(1000);//waitforasecond}digitalWrite是內(nèi)建函數(shù),改變數(shù)字引腳輸出狀態(tài)是ON還是OFF,它需要兩個參數(shù)。Delay是內(nèi)建的延遲函數(shù)。Arduino開發(fā)平臺介紹
2.3.3函數(shù)庫和程序架構(gòu)介紹
Arduino程序的架構(gòu)大體可分為3個部分。(1)聲明變量及接口的名稱。(2)setup()。在Arduino程序運行時首先要調(diào)用setup()函數(shù),用于初始化變量、設置針腳的輸出/輸入類型、配置串口、引入類庫文件等等。每次Arduino上電或重啟后,setup()函數(shù)只運行一次。(3)loop()。在setup()函數(shù)中初始化和定義變量,然后執(zhí)行l(wèi)oop()函數(shù)。顧名思義,該函數(shù)在程序運行過程中不斷地循環(huán),根據(jù)反饋,相應地改變執(zhí)行情況。通過該函數(shù)動態(tài)控制Arduino主控板。Arduino開發(fā)平臺介紹1
Arduino開發(fā)基礎操作2
開發(fā)實例(用Arduino控制一個舵機)3Arduino開發(fā)平臺Arduino開發(fā)實例
3用Arduino控制一個舵機3.1舵機基本工作原理舵機是一種位置伺服的驅(qū)動器,主要是由外殼、電路板、無核心馬達、齒輪與位置檢測器所構(gòu)成。其工作原理是由單片機發(fā)出信號給舵機,與舵機內(nèi)部的基準信號比較,獲得電壓差輸出,驅(qū)動無核心馬達開始轉(zhuǎn)動,透過減速齒輪將動力傳至擺臂,同時由位置檢測器送回信號,判斷是否已經(jīng)到達定位,此過程中電機通過級聯(lián)減速齒輪帶動電位器旋轉(zhuǎn),使得電壓差為0,電機停止轉(zhuǎn)動。舵適用于那些需要角度不斷變化并可以保持的控制系統(tǒng)。Arduino開發(fā)實例
Arduino開發(fā)板上需要關注的重點:1.核心微控制器:ArduinoUno使用的是AtmelAVRATmega328P微控制器。Arduino開發(fā)實例
3.1舵機有很多規(guī)格,但所有的舵機都有外接三根線,分別用棕、紅、橙三種顏色進行區(qū)分,由于舵機品牌不同,顏色也會有所差異,棕色為接地線,紅色為電源正極線,橙色為信號線。Arduino開發(fā)實例
3.1舵機的轉(zhuǎn)動的角度是通過調(diào)節(jié)PWM(脈沖寬度調(diào)制)信號的占空比來實現(xiàn)的,由于舵機牌子不同,對于同一信號,不同牌子的舵機旋轉(zhuǎn)的角度也會有所不同。Arduino開發(fā)實例
Arduino開發(fā)實例
這是Sketch源碼:#include<Servo.h>Servoduoji;voidsetup(){duoji.attach(9);}Arduino開發(fā)實例
voidloop(){duoji.write(90);delay(2000);duoji.write(180);delay(2000);duoji.write(0);delay(2000);}Arduino開發(fā)實例
Sketch分析:這個Sketch精悍,它的工作原理如下:
#include<Servo.h>Sketch第一行指向Arduino的一個庫文件,Servo庫文件提供了專門用于操作舵機的指令集。庫文件可以極大的簡化編程任務。Arduino開發(fā)實例
Sketch分析:這個Sketch精悍,它的工作原理如下:
Servoduoji;使用Servo類創(chuàng)建一個對象duoji.編程語言中,類是指一個封裝了數(shù)據(jù)的封包,包含了對這個數(shù)據(jù)進行處理的各種機制。(舉例)Arduino開發(fā)實例
Sketch分析:這個Sketch精悍,它的工作原理如下:
voidsetup(){duoji.attach(9);}Attach是一個方法,可以被用于duoji對象。在這個例子中,attach告訴Arduino主板,將舵機連接到數(shù)字引腳9。Arduino開發(fā)實例
Sketch分析:voidloop(){duoji.write(90);delay(2000);duoji.write(180);delay(2000);duoji.write(0);delay(2000);}Write是另一個方法,指示舵機按照參數(shù)旋轉(zhuǎn)。參數(shù)范圍為0-180。第5章Arduino的擴展庫本章內(nèi)容:
Arduino擴展庫創(chuàng)建自己的函數(shù)庫
DHT11溫濕度傳感器自定義函數(shù)庫dht的使用
5.1Arduino擴展庫1、什么是Arduino擴展庫
使用C++類將Arduino的某一類外設的復雜應用,尤其是將硬件底層的具體實現(xiàn)封裝起來,對外提供標準的、統(tǒng)一的接口,使得用戶對開發(fā)Arduino的應用變得十分容易。由現(xiàn)有的這樣的一系列的C++類就組成了Arduino的擴展庫。Arduino擴展庫作用:
將硬件底層的應用封裝起來;
針對具體應用編寫相應的庫;
Arduino擴展庫EEPROM庫SoftwareSerial庫HardwareSerial庫OneWire庫Wire庫SPI庫Servo庫Stepper庫LiquidCrystal庫數(shù)據(jù)存儲數(shù)據(jù)通信舵機控制步進電機液晶顯示XBee庫無線通信TLC5940庫PWM擴展Ethernet庫以太網(wǎng)絡圖1Arduino類庫結(jié)構(gòu)示意圖2、Arduino擴展庫的使用
Arduino擴展庫的使用分三步:(1)要確定Arduino開發(fā)環(huán)境目錄下的libraries文
件夾包含要使用的庫,如果是從網(wǎng)絡上下載
的其它擴展庫,也要復制到該目錄下。(2)要了解擴展庫的成員,一般在擴展庫文件夾
下有個Example,可幫助我們理解類成員函
數(shù)的使用。(3)導入函數(shù)庫。開發(fā)環(huán)境的菜單Sketch→imp-ortLibrary→選擇具體的庫。
5.2創(chuàng)建自己的Arduino庫1、類的定義
C++類定義的形式如下,MorseCode為類名。classMorseCode{
private:
//定義私有數(shù)據(jù)成員和函數(shù);
public:
//定義公有數(shù)據(jù)成員和函數(shù);
protected:
//定義保護數(shù)據(jù)成員和函數(shù);}
一般的,C++的類分兩個部分,類的定義部分放在一個后綴名為“.h”的頭文件中,類的實現(xiàn)部分放在一個后綴名為“.cpp”的文件中。
本例的類文件分別保存為Morse.h、MorseCode-.cpp。2、引入自定義函數(shù)庫
在代碼庫(libraries)目錄下,創(chuàng)建一個文件夾,名字為“Morse”,并將MorseCode.h、MorseCode.cpp兩個文件拷貝到“Morse”文件夾下。
啟動ArduinoIDE,打開Sketch→ImportLibrary菜單,此時應能看到Morse菜單項。3、使用自定義函數(shù)庫
目前Arduino的IDE無法自動識別自定義函數(shù)庫里的內(nèi)容,所以需要給Arduino一點幫助:在Morse的文件夾里,創(chuàng)建一個叫keywords.txt文件。Morse KEYWORD1Dash KEYWORD2dot KEYWORD2ET
LITERAL1OT
LITERAL1
注意:類名的類型是KEYWORD1,公共函數(shù)的類型是KEYWORD2,常量的類型是LITERAL1。4、對象的創(chuàng)建及成員函數(shù)的調(diào)用
對象的創(chuàng)建就象變量定義一樣簡單。
#include<Morse.h>MorseCodemorse;
morse.dot();
6.3DTH11溫濕度傳感器1、產(chǎn)品概述
DHT11數(shù)字溫濕度傳感器是一款含有已校準數(shù)字信號輸出的溫濕度復合傳感器。它應用專用的數(shù)字模塊采集技術和溫濕度傳感技術,確保產(chǎn)品具有極高的可靠性與卓越的長期穩(wěn)定性。傳感器包括一個電阻式感濕元件和一個NTC
測溫元件,并與一個高性能8位單片機相連接。如圖2所示。圖2DTH11溫濕度傳感器實物圖2、應用范圍
暖通空調(diào)、除濕器、測試及檢測設備、消費品、汽車、自動控制、數(shù)據(jù)記錄器、氣象站、家電、濕度調(diào)節(jié)器、醫(yī)療、其他相關濕度檢測控制。3、產(chǎn)品參數(shù)
(1)相對濕度
分辨率:0.1%RH16Bit
重復性:±1%RH
精度:25℃±2%RH
響應時間:25℃6s
(2)溫度分辨率:0.1%RH16Bit重復性:±0.2℃量程范圍:25℃±0.2℃
-40~80℃±1℃響應時間:1/e(63%)10S
(3)電氣特性供電:DC3.5-5.5V供電電流:測量0.3mA待機60μA采樣周期:大于2秒/次
(4)引腳說明
VDD供電3.5-5.5VDC
DATA串行數(shù)據(jù),單總線
GND接地,電源負極
NC空腳4、串行通信
DHT11器件采用簡化的單總線通信。單總線即只有一根數(shù)據(jù)線,系統(tǒng)中的數(shù)據(jù)交換、控制均由單總線完成。設備(主機或從機)通過一個漏極開路或三態(tài)端口連至該數(shù)據(jù)線,以允許設備在不發(fā)送數(shù)據(jù)時能夠釋放總線,而讓其它設備使用總線;單總線通常要求外接一個約5.1kΩ的上拉電阻,這樣,當總線閑置時,其狀態(tài)為高電平?!虿捎脝慰偩€傳輸?shù)臄?shù)據(jù)格式,一次傳送40位數(shù)據(jù)
,高位先出。
8bit濕度整數(shù)數(shù)據(jù)+8bit濕度小數(shù)數(shù)據(jù)+
8bit溫度整數(shù)數(shù)據(jù)+8bit溫度小數(shù)數(shù)據(jù)+
8bit校驗位
◎校驗位數(shù)據(jù)定義為前四部分之和的后8位。
示例一:接收到的40位數(shù)據(jù)為:0011010100000000000110000000000001001101
濕度高8位濕度低8位溫度高8位溫度低8位校驗位
00110101+00000000+00011000+00000000=01001101
接收數(shù)據(jù)正確:濕度:00110101=35H=53%RH溫度:00011000=18H=24℃實踐操作:參考圖3所示電路原理圖,測量當前環(huán)境下的溫度和濕度。注意DHT11外接電源和地取自Arduino的5V電源和Gnd,數(shù)據(jù)線外接一個5K的上拉電阻,并將數(shù)據(jù)線連接在Arduino數(shù)字端口的4號上。圖3DTH11測量溫濕度電路連接示意圖系統(tǒng)運行結(jié)果如圖4所示。圖4DTH11測量溫濕度結(jié)果參考代碼:#include<dht.h>
dhtDHT;
#defineDHT11_PIN5
voidsetup(){Serial.begin(9600);Serial.println("DHTTESTPROGRAM");Serial.print("LIBRARYVERSION:");
Serial.println(DHT_LIB_VERSION);Serial.println();Serial.println("Type,\tstatus,\tHumidity(%),\tTemperature(C)");
pinMode(DHT11_PIN,INPUT);}voidloop(){
Serial.print("DHT11,\t"
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 節(jié)日主題教育活動計劃
- 二零二五年度林業(yè)樹木清理與可持續(xù)利用合同3篇
- 2025版隧洞施工合同:隧道施工合同履約保證與履約擔保協(xié)議3篇
- 二零二五年度鋼材料國際采購合同標準范本
- 二零二五年度個人購房裝修分期付款合同樣本3篇
- 二零二五年度樓房居間買賣合同(含家具家電)4篇
- 二零二五年度個人對網(wǎng)絡安全企業(yè)借款合同4篇
- 防水套管后補做法施工方案
- 二零二五年度鋼廠廢鋼回收處理及環(huán)保設施建設合同
- 二零二五年度企業(yè)品牌形象托管授權合同3篇
- 《肝硬化的臨床表現(xiàn)》課件
- 新增值稅法學習課件
- DB23T 3838-2024商貿(mào)行業(yè)有限空間個體防護裝備配備規(guī)范
- 《電子技術基礎(第二版)》中職技工全套教學課件
- 五年級上冊美術《傳統(tǒng)門飾》課件
- DL∕T 1309-2013 大型發(fā)電機組涉網(wǎng)保護技術規(guī)范
- 城鄉(xiāng)低保待遇協(xié)議書
- 華為HCIA-Storage H13-629考試練習題
- 遼寧省撫順五十中學2024屆中考化學全真模擬試卷含解析
- 2024年中國科學技術大學少年創(chuàng)新班數(shù)學試題真題(答案詳解)
- 煤礦復工復產(chǎn)培訓課件
評論
0/150
提交評論