




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、智能垃圾分類機器人, arduino基礎(chǔ),2,01,A,什么是Arduino?,02,B,Arduino能做什么?,03,C,Arduino怎么用?,一、Arduino的由來,Arduino創(chuàng)始人Massimo Banzi之前是意大利Ivrea一家高科技設(shè)計學校的老師。他的學生們經(jīng)常抱怨找不到便宜好用的微控制器。 2005年冬天, Massimo Banzi跟David Cuartielles討論了這個問題。 David Cuartielles是一個西班牙籍晶片工程師,當時在這所學校做訪問學者。 兩人決定設(shè)計自己的電路板,并引入了Banzi的學生David Mellis為電路板設(shè)計編程語言。
2、兩天以后,David Mellis就寫出了程式碼。又過了三天,電路板就完工了。這塊電路板被命名為Arduino。,二、什么是Arduino?,Arduino 是一種開源的電子開發(fā)平臺,該平臺最初主要基于 AVR 單片機的微控制器和相應(yīng)的開發(fā)軟件,目前在國內(nèi)正受到電子發(fā)燒友的廣泛關(guān)注。 自從 2005 年 Arduino 騰空出世以來,其硬件和開發(fā)環(huán)境一直進行著更新迭代。 幾乎任何人, 即便不懂電腦編程, 利用這個開發(fā)板也能用 Arduino 做出炫酷有趣的東西,比如對感測器探測做出一些回應(yīng)、閃爍燈光、控制馬達等。,三、Arduino能做什么?,最簡單應(yīng)用: 通過Arduino開發(fā)板引腳輸出高電
3、平點亮一盞LED燈。,三、Arduino能做什么?,利用Arduino板作為中央控制器實現(xiàn)家居智能化,語音口令開燈、開空調(diào),隨著室內(nèi)光線環(huán)境自動調(diào)節(jié)亮度,手機APP控制家用電器等,讓你的arduino連入物聯(lián)網(wǎng),Arduino高端應(yīng)用,樂為聯(lián)網(wǎng)云數(shù)據(jù)平臺,四、認識Arduino開發(fā)板- Arduino UNO,四、認識Arduino開發(fā)板- arduino Mega2560,五、Arduino開發(fā)環(huán)境,Arduino的編程是在Arduino IDE上進行的,如左圖編程界面所示; 開發(fā)環(huán)境提供了最基本的模板,包含了setup()函數(shù)和loop()函數(shù); 在setup()函數(shù)上方空白區(qū)域,可以插入
4、需要用到的函數(shù).h頭文件以及申明要用到的函數(shù)。,六、函數(shù)的概念,定義:函數(shù)是一種能完成某種特定功能二端口通道,通過輸入合適的東西獲得想要的某種輸出; 舉例:例如數(shù)學上y=2x,這條函數(shù)可以完成將輸入值翻倍這樣一個工作;,注意: arduino提供了大量的基礎(chǔ)函數(shù),包括I/O控制、時間函數(shù)、中斷函數(shù)、串口通信函數(shù)等; arduino也提供了許多關(guān)于這些基礎(chǔ)函數(shù)的實例程序,這些例程可以在arduino開發(fā)環(huán)境的“File-Examples”菜單中找到。,七、Arduino的常用基本函數(shù),Arduino程序的主體包括:Setup( ) 函數(shù)和loop( )函數(shù); (1)setup( )函數(shù):在程序中
5、只運行一次,它的功能為完成程序的各類初始化工作; (2)loop( )函數(shù):程序的主函數(shù),程序運行過程中l(wèi)oop()函數(shù)不斷循環(huán)。,Arduino常用函數(shù)- pinMode( ),功能:將指定的引腳配置成輸出或輸入 語法:pinMode(pin, mode) 參數(shù): pin:表示要設(shè)置模式的引腳 mode:包括INPUT 或 OUTPUT 返回值:無,例程: int ledPin = 13 ; / LED 連接到數(shù)字腳 13 void setup() pinMode(ledPin, OUTPUT ) ; /設(shè)置數(shù)字腳為輸出 void loop() digitalWrite (ledPin, H
6、IGH ) ; /點亮 LED delay(1000); / 等待一秒 digitalWrite(ledPin, LOW); / 滅掉 LED 延遲(1000) ; /等待第二個 ,Arduino常用函數(shù)-digitalWrite(),功能:給一個數(shù)字引腳寫入 HIGH 或者 LOW 。 語法:digitalWrite(pin, value) 參數(shù): pin: 引腳編號 value: HIGH or LOW 返回值:無,例程: int ledPin = 13; / LED 連接到數(shù)字 13 號端口 void setup() pinMode(ledPin, OUTPUT); / 設(shè)置數(shù)字端口為輸
7、入模式 void loop() digitalWrite(ledPin, HIGH); / 使 LED 亮 delay(1000); / 延遲一秒 digitalWrite(ledPin, LOW); / 使 LED 滅 delay(1000); / 延遲一秒 ,Arduino常用基本函數(shù)-digitalRead(),功能: 讀取指定引腳的值, HIGH 或 LOW 。 語法: digitalRead (PIN) 參數(shù): Pin:你想讀取的引腳號 返回值:HIGH 或 LOW,例程:int ledPin = ; / LED 連接到 13 腳int inPin = 7; / 按鈕連接到數(shù)字引腳
8、7int val = 0; /定義變量以存儲讀值void setup()pinMode(ledPin, OUTPUT); / 將 13 腳設(shè)置為輸出pinMode(inPin, INPUT); / 將 7 腳設(shè)置為輸入void loop()val = digitalRead(inPin); / 讀取輸入腳digitalWrite(ledPin, val); /將 LED 值設(shè)置為按鈕的值,Arduino常用基本函數(shù)- analogRead(),功能:從指定的模擬引腳讀取模擬數(shù)據(jù)值。 語法:analogRead(PIN) 參數(shù): pin:從輸入引腳讀取數(shù)值 返回值: 從 0 到 1023 的整數(shù)
9、值,例程:int analogPin = 3; /電位器(中間的引腳)連接到模擬輸入引腳 3/另外兩個引腳分別接地和 +5 Vint val = 0; /定義變量來存儲讀取的數(shù)值void setup()serial.begin(9600) ; /設(shè)置波特率( 9600)void loop()val = analogRead(analogPin) ; /從輸入引腳讀取數(shù)值serial.println (val) ; /顯示讀取的數(shù)值,Arduino常用基本函數(shù)- analogWrite(),功能:從一個引腳輸出模擬值( PWM ) 語法:analogWrite (pin,value) 參數(shù): p
10、in:用于輸入數(shù)值的引腳。 value:占空比: 0(完全關(guān)閉)到 255(完全打開)之間。 返回值:無,例程:通過讀取電位器的阻值控制 LED 的亮度int ledPin = 9; / LED 連接到數(shù)字引腳 9int analogPin = 3; /電位器連接到模擬引腳 3int val = 0; /定義變量存以儲讀值void setup()pinMode(ledPin,OUTPUT ) ; /設(shè)置引腳為輸出引腳void loop()val = analogRead(analogPin) ; /從輸入引腳讀取數(shù)值analogWrite(ledPin, val / 4) ; / 以 val
11、/ 4 的數(shù)值點亮 LED (因為 analogRead 讀取的數(shù)值從 0 到 1023,而 analogWrite 輸出的數(shù)值從 0 到 255),Arduino常用基本函數(shù)- delay(),功能:使程序延時特定的時間(毫秒) 語法:delay(ms) 參數(shù): ms:暫停的毫秒數(shù)( unsigned long) 返回值:無,例程: ledPin = 13 / / LED 連接到數(shù)字 13 腳 void setup() pinMode(ledPin, OUTPUT); / 設(shè)置引腳為輸出 void loop() digitalWrite(ledPin, HIGH); / 點亮 LED del
12、ay(1000); / 等待 1 秒 digitalWrite(ledPin, LOW); / 滅掉 LED delay(1000); / 等待一秒 ,中斷的定義: 由于某一隨機事件的發(fā)生,單片機暫停原程序的運行,轉(zhuǎn)去執(zhí)行另一程序(隨機事件),處理完畢后又自動返回原程序繼續(xù)運行,其發(fā)生過程如右圖。 中斷的要素: 主程序:單片機正在運行的程序。 中斷源:引起中斷的原因,或能發(fā)生中斷申請的來源。 中斷服務(wù)程序:處理中斷事件的程序。,Arduino常用基本函數(shù)- 中斷介紹,中斷發(fā)生的過程,Arduino常用基本函數(shù)-中斷函數(shù),1、interrupts()函數(shù) 功能:負責打開總中斷 返回值:無 參數(shù):
13、無,2、noInterrupts()函數(shù) 功能:負責關(guān)閉總中斷 返回值:無 參數(shù):無,3、attachInterrupt(interrput,function,mode) 功能:用于設(shè)置外部中斷 參數(shù):3個,分別表示中斷源,中斷處理函數(shù)和觸發(fā)模式,它們的具體含義如下。 中斷源:可選中斷0或者1,對應(yīng)arduino的2或者3號數(shù)字引腳。 中斷處理函數(shù):是一段子程序,當中斷發(fā)生時執(zhí)行該子程序部分,其中參數(shù)值為函數(shù)的指針。 觸發(fā)模式:有四種類型,LOW(低電平觸發(fā))、CHANGE(變化時觸發(fā))、RISING(低電平變?yōu)楦唠娖接|發(fā))、FALLING(高電平變?yōu)榈碗娖接|發(fā)),Arduino常用基本函數(shù)-
14、中斷函數(shù),4、detachInterrupt(interrput)函數(shù) 功能:用于取消中斷 參數(shù): Interrupt:表示所要取消的中斷源,例程:用中斷源0(接引腳D2)作為觸發(fā)源控制arduino UNO板上的LED亮或滅 volatile int state = LOW; void setup() Serial.begin(9600); attachInterrupt(0, change, CHANGE);/當D2電平改變時,觸發(fā)中斷函數(shù) void loop() digitalWrite(13, state); if(state=LOW) Serial.println(111); if(
15、state=HIGH) Serial.println(222); void change()/中斷函數(shù) state = !state; ,Arduino常用基本函數(shù)-串口通信函數(shù),1、Serial.begin() 功能:用于設(shè)置串口的波特率 波特率是指每秒傳輸?shù)谋忍財?shù),除以8可得到每秒傳輸?shù)淖止?jié)數(shù)。 一般的波特率有9600、19200、 57600、115200等。,介紹:通過在頭文件HardwareSerial.h中定義一個HardwareSerial類的對象serial,然后直接使用該類的成員函數(shù)來實現(xiàn)。,2、Serial.available() 功能:用來判斷串口是否收到數(shù)據(jù) 返回值:i
16、nt型 3、Serial.read() 功能:用于讀入串口數(shù)據(jù) 返回值:int型的串口數(shù)據(jù)。,Arduino常用基本函數(shù)-串口通信函數(shù),4、Serial.print() 功能:用于從串口輸出數(shù)據(jù),數(shù)據(jù)可以是變量,也可以是字符串。 5、Serial.println() 功能:與Serial.print函數(shù)類似,都是從串口輸出數(shù)據(jù),只是Serial.println函數(shù)多了回車換行功能。,例程:讀取輸入的字符,并在監(jiān)視器中顯示出來的程序如下。 String val=; void setup() Serial.begin(9600); void loop() while (Serial.availab
17、le() 0) val+=char(Serial.read(); delay(5); if (val.length() 0) Serial.println(val); val=; ,八、認識函數(shù)庫,函數(shù)庫:由系統(tǒng)建立的具有一定功能的函數(shù)的集合。庫中存放函數(shù)的名稱和對應(yīng)的目標代碼,以及連接過程中所需的重定位信息。用戶也可以根據(jù)自己的需要建立自己的用戶函數(shù)庫。 庫函數(shù):存放在函數(shù)庫中的函數(shù)。庫函數(shù)具有明確的功能、入口調(diào)用參數(shù)和返回值。 頭文件:有時也稱為包含文件。C語言庫函數(shù)與用戶程序之間進行信息通信時要使用的數(shù)據(jù)和變量,在使用某一庫函數(shù)時,都要在程序中嵌入(用#include)該函數(shù)對應(yīng)的頭文件
18、。,九、機器人包含的庫函數(shù),庫函數(shù)組成:由.h文件(頭文件)和.cpp文件(源程序文件)組成。,十、怎樣使用庫函數(shù),放置位置:一般是放到lib文件里 調(diào)用方法:將它所在的文件名用 #include,libraries所在的路徑,庫函數(shù)拷貝到的路徑,#ifndef ColSensor_h #define ColSensor_h class ColSensor private: /定義引腳 int S0, S1, S2, S3, OUT; /定義延時 unsigned long time; public: /定義計數(shù)器 unsigned long g_count; /定義數(shù)組,用來存放讀取到的RG
19、B值 int g_array3; /定義數(shù)組,用來存放比例系數(shù) float g_SF3; /構(gòu)造函數(shù) ColSensor(int a, int b, int c, int d, int e, unsigned long f);,/將引腳配置為輸出,同時設(shè)置輸出比例因子 void Mode(int a = 1, int b = 1); /*控制數(shù)字引腳,切換濾波器。紅,綠,藍分別對 應(yīng)S2與S3的00,11,01電平;10時過濾所有顏色*/ void Digital_out(int a, int b); /計算比例系數(shù) void Test(); /計算RGB值 void Get(); ; #en
20、dif,垃圾分類小車ColSensor.h文件內(nèi)代碼,#include #include ColSensor.h ColSensor:ColSensor(int a, int b, int c, int d, int e, unsigned long f) S0 = a; S1 = b; S2 = c; S3 = d; OUT = e; time = f; g_count = 0; void ColSensor:Mode(int a, int b) pinMode(S0, OUTPUT); pinMode(S1, OUTPUT); pinMode(S2, OUTPUT); pinMode(S3, OUTPUT); pinMode(OUT, INPUT); di
溫馨提示
- 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)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025款智能家居買賣合同模板
- 跨部門合作的溝通策略計劃
- 班級知識傳承活動的實施計劃
- 提高前臺文員協(xié)調(diào)安排能力的工作計劃
- 美術(shù)教學中的品德教育滲透計劃
- 2025電子設(shè)備試用買賣合同書參考模板
- 開展員工士氣提升活動計劃
- 運動健身行業(yè)保安工作計劃
- 2025年貸款協(xié)議使用的借款合同范本
- 農(nóng)業(yè)綜合開發(fā)土地租賃合同
- 260噸汽車吊地基承載力驗算
- 群文閱讀指導課-二年級《一個一個連下去》課件
- 沉淀反應(yīng) 沉淀反應(yīng)(免疫學檢驗課件)
- 田野調(diào)查方法
- 2023年考研考博-考博英語-河北工業(yè)大學考試歷年高頻考點真題薈萃帶答案
- 西南18J202 坡屋面標準圖集
- 農(nóng)業(yè)合作社全套報表(已設(shè)公式)-資產(chǎn)負債表-盈余及盈余分配表-成員權(quán)益變動表-現(xiàn)金流量表
- 中國船舶工業(yè)供應(yīng)商
- 高考語文復習:文學類文本專題訓練擬寫頒獎詞
- 涵洞水力計算-2
- 全國省、地級市(市轄市)、縣級市(縣)列表
評論
0/150
提交評論