Arduino應(yīng)用技術(shù) 課件 西電 arduino開發(fā)簡介、第5章 Arduino的擴展庫_第1頁
Arduino應(yīng)用技術(shù) 課件 西電 arduino開發(fā)簡介、第5章 Arduino的擴展庫_第2頁
Arduino應(yīng)用技術(shù) 課件 西電 arduino開發(fā)簡介、第5章 Arduino的擴展庫_第3頁
Arduino應(yīng)用技術(shù) 課件 西電 arduino開發(fā)簡介、第5章 Arduino的擴展庫_第4頁
Arduino應(yīng)用技術(shù) 課件 西電 arduino開發(fā)簡介、第5章 Arduino的擴展庫_第5頁
已閱讀5頁,還剩56頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

四川文化傳媒職業(yè)學(xué)院航空系高瞻Arduino開發(fā)平臺Arduino開發(fā)平臺介紹1

Arduino開發(fā)基礎(chǔ)操作2

開發(fā)實例(用Arduino控制一個舵機)3Arduino開發(fā)平臺Arduino開發(fā)平臺介紹

1.什么是Arduino?Arduino項目起源于意大利,該名字在意大利是男性用名,音譯為“阿爾杜伊諾”,意思為“強壯的朋友”。Arduino的出現(xiàn)并不是偶然,Arduino最初是為一些非電子工程專業(yè)的學(xué)生設(shè)計的。設(shè)計者最初為了尋求一個廉價好用的微控制器開發(fā)板從而決定自己動手制作開發(fā)板,Arduino一經(jīng)推出,因其開源、廉價、簡單易懂的特性迅速受到了廣大電子迷的喜愛和推崇。幾乎任何人,即便不懂電腦編程,利用這個開發(fā)板也能用Arduino做出炫酷有趣的東西,比如對感測器探測做出一些回應(yīng)、閃爍燈光、控制馬達(dá)等。Arduino開發(fā)平臺介紹

1.什么是Arduino?Arduino應(yīng)用(視頻)Arduino開發(fā)平臺介紹

Arduino是一塊基于開放原始代碼的Simplei/o平臺,并且具有開發(fā)語言和開發(fā)環(huán)境都很簡單、易理解的特點。讓您可以快速使用Arduino做出有趣的東西。它是一個能夠用來感應(yīng)和控制現(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ā)板上需要關(guān)注的重點:1.核心微控制器:ArduinoUno使用的是AtmelAVRATmega328P微控制器。Arduino開發(fā)平臺介紹

Arduino開發(fā)板上需要關(guān)注的重點:2.外部連接排母。與外部交互的接口。Uno一共有28個。分成三組:(1)電源(2)模擬輸入(3)數(shù)字輸入/輸出Arduino開發(fā)平臺介紹

Arduino開發(fā)板上需要關(guān)注的重點:3.USB接口。三個重要功能:(1)程序上傳(2)程序調(diào)試(Debug)(3)臨時供電Arduino開發(fā)平臺介紹

Arduino開發(fā)板上需要關(guān)注的重點: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ù)學(xué)公式的值,或者Arduino讀取到的傳感器讀數(shù)。掉電之后,它儲存的數(shù)據(jù)不會丟失。Arduino開發(fā)平臺介紹

Arduino開發(fā)板上需要關(guān)注的重點:5.Arduino工作速度。所有的微控制器,包括Arduino,都使用一個系統(tǒng)時鐘產(chǎn)生的脈沖來進行工作。大部分Arduino的工作速度為16MHz,也就是說每秒能處理1600萬條指令。Arduino開發(fā)平臺介紹1

Arduino開發(fā)基礎(chǔ)操作2

開發(fā)實例(用Arduino控制一個舵機)3Arduino開發(fā)平臺Arduino開發(fā)基礎(chǔ)操作

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)站上可以下載這款官方設(shè)計的軟件及源碼、教程和文檔。Arduino開發(fā)基礎(chǔ)操作Arduino開發(fā)基礎(chǔ)操作

2.1搭建開發(fā)環(huán)境2.1.2在windows上安裝IDE(注意USB驅(qū)動,JavaFramework,查看端口,選擇主板類型)Arduino開發(fā)基礎(chǔ)操作

2.1搭建開發(fā)環(huán)境2.1.2在windows上安裝IDEArduino開發(fā)基礎(chǔ)操作

2.2常用的Arduino第三方軟件介紹2.2.1圖形化編程軟件ArduBlock

Arduino開發(fā)基礎(chǔ)操作

2.2常用的Arduino第三方軟件介紹2.2.2Arduino仿真軟件VirtualbreadboardArduino開發(fā)基礎(chǔ)操作

2.2常用的Arduino第三方軟件介紹2.2.2Arduino仿真軟件Virtualbreadboard

Virtualbreadboard是一款專門的Arduino仿真軟件,簡稱VBB,中文名為“虛擬面包板”。這款軟件主要通過單片機實現(xiàn)嵌入式軟件的模擬和開發(fā)環(huán)境,它不但包括了所有Arduino的樣例電路,可以實現(xiàn)對面包板電路的設(shè)計和布置,非常直觀地顯示出面包板電路,還可實現(xiàn)對程序的仿真調(diào)試。Arduino開發(fā)基礎(chǔ)操作

2.2常用的Arduino第三方軟件介紹2.2.2Arduino仿真軟件Virtualbreadboard

VBB可以模擬Arduino連接各種電子模塊,例如液晶屏、舵機、邏輯數(shù)字電路、各種傳感器以及其他的輸入/輸出設(shè)備。這些部件都可以直接使用,也可以通過組合,設(shè)計出更復(fù)雜的電路和模塊。使用VBB可以直觀的了解電路設(shè)計,能夠在設(shè)計出原型后快速實現(xiàn)。而且虛擬面板具有可視性和模擬交互效果,可以實時地在軟件上看到LED、LCD等可視模塊的變化,同時可以確保安全,因為不是實物操作不會引起觸電或者燒毀芯片等問題。Arduino開發(fā)基礎(chǔ)操作

2.3第一個程序2.3.1LED閃光燈編寫第一個程序控制開發(fā)板上的LED燈閃爍,修改參數(shù)調(diào)整閃爍時間。(ArduinoIDE和blink)Arduino開發(fā)基礎(chǔ)操作

2.3第一個程序2.3.1LED閃光燈程序解析

/*BlinkTurnsonanLEDonforonesecond,thenoffforonesecond,repeatedly.*/注釋,并非程序的內(nèi)容Arduino開發(fā)基礎(chǔ)操作

2.3第一個程序2.3.1LED閃光燈程序解析

intLEDPin=13;//declarevariable聲明變量Arduino開發(fā)基礎(chǔ)操作

2.3第一個程序2.3.1LED閃光燈程序解析

//thesetupfunctionrunsoncewhenyoupressresetorpowertheboardvoidsetup(){//initializedigitalpin13asanoutput.pinMode(LEDPin,OUTPUT);}設(shè)置數(shù)字引腳13為輸出,INPUT和OUTPUT是ArduinoIDE已經(jīng)預(yù)先定義好的變量Arduino開發(fā)基礎(chǔ)操作

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ù),用于初始化變量、設(shè)置針腳的輸出/輸入類型、配置串口、引入類庫文件等等。每次Arduino上電或重啟后,setup()函數(shù)只運行一次。(3)loop()。在setup()函數(shù)中初始化和定義變量,然后執(zhí)行l(wèi)oop()函數(shù)。顧名思義,該函數(shù)在程序運行過程中不斷地循環(huán),根據(jù)反饋,相應(yīng)地改變執(zhí)行情況。通過該函數(shù)動態(tài)控制Arduino主控板。Arduino開發(fā)平臺介紹1

Arduino開發(fā)基礎(chǔ)操作2

開發(fā)實例(用Arduino控制一個舵機)3Arduino開發(fā)平臺Arduino開發(fā)實例

3用Arduino控制一個舵機3.1舵機基本工作原理舵機是一種位置伺服的驅(qū)動器,主要是由外殼、電路板、無核心馬達(dá)、齒輪與位置檢測器所構(gòu)成。其工作原理是由單片機發(fā)出信號給舵機,與舵機內(nèi)部的基準(zhǔn)信號比較,獲得電壓差輸出,驅(qū)動無核心馬達(dá)開始轉(zhuǎn)動,透過減速齒輪將動力傳至擺臂,同時由位置檢測器送回信號,判斷是否已經(jīng)到達(dá)定位,此過程中電機通過級聯(lián)減速齒輪帶動電位器旋轉(zhuǎn),使得電壓差為0,電機停止轉(zhuǎn)動。舵適用于那些需要角度不斷變化并可以保持的控制系統(tǒng)。Arduino開發(fā)實例

Arduino開發(fā)板上需要關(guān)注的重點: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庫文件提供了專門用于操作舵機的指令集。庫文件可以極大的簡化編程任務(wù)。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的某一類外設(shè)的復(fù)雜應(yīng)用,尤其是將硬件底層的具體實現(xiàn)封裝起來,對外提供標(biāo)準(zhǔn)的、統(tǒng)一的接口,使得用戶對開發(fā)Arduino的應(yīng)用變得十分容易。由現(xiàn)有的這樣的一系列的C++類就組成了Arduino的擴展庫。Arduino擴展庫作用:

將硬件底層的應(yīng)用封裝起來;

針對具體應(yīng)用編寫相應(yīng)的庫;

Arduino擴展庫EEPROM庫SoftwareSerial庫HardwareSerial庫OneWire庫Wire庫SPI庫Servo庫Stepper庫LiquidCrystal庫數(shù)據(jù)存儲數(shù)據(jù)通信舵機控制步進電機液晶顯示XBee庫無線通信TLC5940庫PWM擴展Ethernet庫以太網(wǎng)絡(luò)圖1Arduino類庫結(jié)構(gòu)示意圖2、Arduino擴展庫的使用

Arduino擴展庫的使用分三步:(1)要確定Arduino開發(fā)環(huán)境目錄下的libraries文

件夾包含要使用的庫,如果是從網(wǎng)絡(luò)上下載

的其它擴展庫,也要復(fù)制到該目錄下。(2)要了解擴展庫的成員,一般在擴展庫文件夾

下有個Example,可幫助我們理解類成員函

數(shù)的使用。(3)導(dǎo)入函數(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菜單,此時應(yīng)能看到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ù)字溫濕度傳感器是一款含有已校準(zhǔn)數(shù)字信號輸出的溫濕度復(fù)合傳感器。它應(yīng)用專用的數(shù)字模塊采集技術(shù)和溫濕度傳感技術(shù),確保產(chǎn)品具有極高的可靠性與卓越的長期穩(wěn)定性。傳感器包括一個電阻式感濕元件和一個NTC

測溫元件,并與一個高性能8位單片機相連接。如圖2所示。圖2DTH11溫濕度傳感器實物圖2、應(yīng)用范圍

暖通空調(diào)、除濕器、測試及檢測設(shè)備、消費品、汽車、自動控制、數(shù)據(jù)記錄器、氣象站、家電、濕度調(diào)節(jié)器、醫(yī)療、其他相關(guān)濕度檢測控制。3、產(chǎn)品參數(shù)

(1)相對濕度

分辨率:0.1%RH16Bit

重復(fù)性:±1%RH

精度:25℃±2%RH

響應(yīng)時間:25℃6s

(2)溫度分辨率:0.1%RH16Bit重復(fù)性:±0.2℃量程范圍:25℃±0.2℃

-40~80℃±1℃響應(yīng)時間:1/e(63%)10S

(3)電氣特性供電:DC3.5-5.5V供電電流:測量0.3mA待機60μA采樣周期:大于2秒/次

(4)引腳說明

VDD供電3.5-5.5VDC

DATA串行數(shù)據(jù),單總線

GND接地,電源負(fù)極

NC空腳4、串行通信

DHT11器件采用簡化的單總線通信。單總線即只有一根數(shù)據(jù)線,系統(tǒng)中的數(shù)據(jù)交換、控制均由單總線完成。設(shè)備(主機或從機)通過一個漏極開路或三態(tài)端口連至該數(shù)據(jù)線,以允許設(shè)備在不發(fā)送數(shù)據(jù)時能夠釋放總線,而讓其它設(shè)備使用總線;單總線通常要求外接一個約5.1kΩ的上拉電阻,這樣,當(dāng)總線閑置時,其狀態(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所示電路原理圖,測量當(dāng)前環(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)系上傳者。文件的所有權(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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論