創(chuàng)意智能垃圾分類機器人(arduino基礎(chǔ))課件_第1頁
創(chuàng)意智能垃圾分類機器人(arduino基礎(chǔ))課件_第2頁
創(chuàng)意智能垃圾分類機器人(arduino基礎(chǔ))課件_第3頁
創(chuàng)意智能垃圾分類機器人(arduino基礎(chǔ))課件_第4頁
創(chuàng)意智能垃圾分類機器人(arduino基礎(chǔ))課件_第5頁
已閱讀5頁,還剩55頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

智能垃圾分類機器人———arduino基礎(chǔ)智能垃圾分類機器人———arduino基礎(chǔ)201A什么是Arduino?02BArduino能做什么?03CArduino怎么用?201A什么是Arduino?02BArduino能做什么?一、Arduino的由來Arduino創(chuàng)始人MassimoBanzi之前是意大利Ivrea一家高科技設(shè)計學(xué)校的老師。他的學(xué)生們經(jīng)常抱怨找不到便宜好用的微控制器。2005年冬天,MassimoBanzi跟DavidCuartielles討論了這個問題。DavidCuartielles是一個西班牙籍晶片工程師,當(dāng)時在這所學(xué)校做訪問學(xué)者。兩人決定設(shè)計自己的電路板,并引入了Banzi的學(xué)生DavidMellis為電路板設(shè)計編程語言。兩天以后,DavidMellis就寫出了程式碼。又過了三天,電路板就完工了。這塊電路板被命名為Arduino。一、Arduino的由來Arduino創(chuàng)始人Massimo二、什么是Arduino?Arduino是一種開源的電子開發(fā)平臺,該平臺最初主要基于AVR單片機的微控制器和相應(yīng)的開發(fā)軟件,目前在國內(nèi)正受到電子發(fā)燒友的廣泛關(guān)注。自從2005年Arduino騰空出世以來,其硬件和開發(fā)環(huán)境一直進行著更新迭代。幾乎任何人,即便不懂電腦編程,利用這個開發(fā)板也能用Arduino做出炫酷有趣的東西,比如對感測器探測做出一些回應(yīng)、閃爍燈光、控制馬達等。

二、什么是Arduino?Arduino是一種開源的電子開三、Arduino能做什么?最簡單應(yīng)用:

通過Arduino開發(fā)板引腳輸出高電平點亮一盞LED燈。三、Arduino能做什么?最簡單應(yīng)用:三、Arduino能做什么?利用Arduino板作為中央控制器實現(xiàn)家居智能化,語音口令開燈、開空調(diào),隨著室內(nèi)光線環(huán)境自動調(diào)節(jié)亮度,手機APP控制家用電器等……三、Arduino能做什么?利用Arduino板作為中央控制讓你的arduino連入物聯(lián)網(wǎng)

Arduino高端應(yīng)用讓你的arduino連入物聯(lián)網(wǎng)

Arduino高端應(yīng)用

樂為聯(lián)網(wǎng)云數(shù)據(jù)平臺樂為聯(lián)網(wǎng)云數(shù)據(jù)平臺四、認識Arduino開發(fā)板---ArduinoUNO四、認識Arduino開發(fā)板---ArduinoUNO四、認識Arduino開發(fā)板---arduinoMega2560四、認識Arduino開發(fā)板---arduinoMega五、Arduino開發(fā)環(huán)境Arduino的編程是在ArduinoIDE上進行的,如左圖編程界面所示;開發(fā)環(huán)境提供了最基本的模板,包含了setup()函數(shù)和loop()函數(shù);在setup()函數(shù)上方空白區(qū)域,可以插入需要用到的函數(shù).h頭文件以及申明要用到的函數(shù)。五、Arduino開發(fā)環(huán)境Arduino的編程是在Ardui六、函數(shù)的概念定義:函數(shù)是一種能完成某種特定功能二端口通道,通過輸入合適的東西獲得想要的某種輸出;舉例:例如數(shù)學(xué)上y=2x,這條函數(shù)可以完成將輸入值翻倍這樣一個工作;注意:arduino提供了大量的基礎(chǔ)函數(shù),包括I/O控制、時間函數(shù)、中斷函數(shù)、串口通信函數(shù)等;arduino也提供了許多關(guān)于這些基礎(chǔ)函數(shù)的實例程序,這些例程可以在arduino開發(fā)環(huán)境的“File->Examples”菜單中找到。六、函數(shù)的概念定義:函數(shù)是一種能完成某種特定功能二端口通道,七、Arduino的常用基本函數(shù)Arduino程序的主體包括:Setup()函數(shù)和loop()函數(shù);(1)setup()函數(shù):在程序中只運行一次,它的功能為完成程序的各類初始化工作;(2)loop()函數(shù):程序的主函數(shù),程序運行過程中l(wèi)oop()函數(shù)不斷循環(huán)。七、Arduino的常用基本函數(shù)Arduino程序的主體包括Arduino常用函數(shù)---pinMode()功能:將指定的引腳配置成輸出或輸入語法:pinMode(pin,mode)參數(shù):pin:表示要設(shè)置模式的引腳mode:包括INPUT或OUTPUT返回值:無例程:ledPin=13//LED連接到數(shù)字腳13voidsetup(){pinMode(ledPin,OUTPUT);//設(shè)置數(shù)字腳為輸出}voidloop(){digitalWrite(ledPin,HIGH);//點亮LEDdelay(1000);//等待一秒digitalWrite(ledPin,LOW);//滅掉LED延遲(1000);//等待第二個}Arduino常用函數(shù)---pinMode()功能:將指Arduino常用函數(shù)---digitalWrite()功能:給一個數(shù)字引腳寫入HIGH或者LOW。語法:digitalWrite(pin,value)參數(shù):pin:引腳編號value:HIGHorLOW返回值:無

例程:intledPin=13;//LED連接到數(shù)字13號端口voidsetup(){pinMode(ledPin,OUTPUT);//設(shè)置數(shù)字端口為輸入模式}voidloop(){digitalWrite(ledPin,HIGH);//使LED亮delay(1000);//延遲一秒digitalWrite(ledPin,LOW);//使LED滅delay(1000);//延遲一秒}Arduino常用函數(shù)---digitalWrite()功能Arduino常用基本函數(shù)---digitalRead()功能:讀取指定引腳的值,HIGH或LOW。

語法:

digitalRead(PIN)參數(shù):Pin:你想讀取的引腳號返回值:HIGH或LOW

例程:

ledPin=13//LED連接到13腳

intinPin=7;//按鈕連接到數(shù)字引腳7

intval=0;//定義變量以存儲讀值

voidsetup()

{

pinMode(ledPin,OUTPUT);//將13腳設(shè)置為輸出

pinMode(inPin,INPUT);//將7腳設(shè)置為輸入

}

voidloop()

{

val=digitalRead(inPin);//讀取輸入腳

digitalWrite(ledPin,val);//將LED值設(shè)置為按鈕的值

}

Arduino常用基本函數(shù)---digitalRead()Arduino常用基本函數(shù)---analogRead()功能:從指定的模擬引腳讀取模擬數(shù)據(jù)值。語法:analogRead(PIN)參數(shù):pin:從輸入引腳讀取數(shù)值返回值:從0到1023的整數(shù)值例程:

intanalogPin=3;//電位器(中間的引腳)連接到模擬輸入引腳3

//另外兩個引腳分別接地和+5V

intval=0;//定義變量來存儲讀取的數(shù)值

voidsetup()

{

serial.begin(9600);//設(shè)置波特率(9600)

}

voidloop()

{

val=analogRead(analogPin);//從輸入引腳讀取數(shù)值

serial.println(val);//顯示讀取的數(shù)值

}

Arduino常用基本函數(shù)---analogRead()Arduino常用基本函數(shù)---analogWrite()功能:從一個引腳輸出模擬值(PWM)語法:analogWrite(pin,value)參數(shù):pin:用于輸入數(shù)值的引腳。value:占空比:0(完全關(guān)閉)到255(完全打開)之間。返回值:無例程:

通過讀取電位器的阻值控制LED的亮度

intledPin=9;//LED連接到數(shù)字引腳9

intanalogPin=3;//電位器連接到模擬引腳3

intval=0;//定義變量存以儲讀值

voidsetup()

{

pinMode(ledPin,OUTPUT);//設(shè)置引腳為輸出引腳

}

voidloop()

{

val=analogRead(analogPin);//從輸入引腳讀取數(shù)值

analogWrite(ledPin,val/4);//以val/4的數(shù)值點亮LED(因為analogRead讀取的數(shù)值

從0到1023,而analogWrite輸出的數(shù)值從0到255)

}

Arduino常用基本函數(shù)---analogWrite()Arduino常用基本函數(shù)---delay()功能:使程序延時特定的時間(毫秒)語法:delay(ms)參數(shù):ms:暫停的毫秒數(shù)(unsignedlong)返回值:無

例程:ledPin=13//LED連接到數(shù)字13腳voidsetup(){pinMode(ledPin,OUTPUT);//設(shè)置引腳為輸出}voidloop(){digitalWrite(ledPin,HIGH);//點亮LEDdelay(1000);//等待1秒digitalWrite(ledPin,LOW);//滅掉LEDdelay(1000);//等待一秒}Arduino常用基本函數(shù)---delay()功能:使程序中斷的定義:

由于某一隨機事件的發(fā)生,單片機暫停原程序的運行,轉(zhuǎn)去執(zhí)行另一程序(隨機事件),處理完畢后又自動返回原程序繼續(xù)運行,其發(fā)生過程如右圖。中斷的要素:

主程序:單片機正在運行的程序。

中斷源:引起中斷的原因,或能發(fā)生中斷申請的來源。

中斷服務(wù)程序:處理中斷事件的程序。Arduino常用基本函數(shù)---

中斷介紹中斷發(fā)生的過程中斷的定義:Arduino常用基本函數(shù)---中斷介紹中斷發(fā)Arduino常用基本函數(shù)---中斷函數(shù)1、interrupts()函數(shù)功能:負責(zé)打開總中斷返回值:無參數(shù):無2、noInterrupts()函數(shù)功能:負責(zé)關(guān)閉總中斷返回值:無參數(shù):無3、attachInterrupt(interrput,function,mode)功能:用于設(shè)置外部中斷參數(shù):3個,分別表示中斷源,中斷處理函數(shù)和觸發(fā)模式,它們的具體含義如下。

中斷源:可選中斷0或者1,對應(yīng)arduino的2或者3號數(shù)字引腳。

中斷處理函數(shù):是一段子程序,當(dāng)中斷發(fā)生時執(zhí)行該子程序部分,其中參數(shù)值為函數(shù)的指針。

觸發(fā)模式:有四種類型,LOW(低電平觸發(fā))、CHANGE(變化時觸發(fā))、RISING(低電平變?yōu)楦唠娖接|發(fā))、FALLING(高電平變?yōu)榈碗娖接|發(fā))Arduino常用基本函數(shù)---中斷函數(shù)1、interrupArduino常用基本函數(shù)---中斷函數(shù)4、detachInterrupt(interrput)函數(shù)功能:用于取消中斷參數(shù):Interrupt:表示所要取消的中斷源例程:用中斷源0(接引腳D2)作為觸發(fā)源控制arduinoUNO板上的LED亮或滅volatileintstate=LOW;voidsetup(){Serial.begin(9600);attachInterrupt(0,change,CHANGE);//當(dāng)D2電平改變時,觸發(fā)中斷函數(shù)}voidloop(){digitalWrite(13,state);if(state==LOW){Serial.println("111");}if(state==HIGH){Serial.println("222");}}voidchange()//中斷函數(shù){state=!state;}Arduino常用基本函數(shù)---中斷函數(shù)4、detachInArduino常用基本函數(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ù)返回值:int型3、Serial.read()功能:用于讀入串口數(shù)據(jù)返回值:int型的串口數(shù)據(jù)。Arduino常用基本函數(shù)---串口通信函數(shù)1、SerialArduino常用基本函數(shù)---串口通信函數(shù)4、Serial.print()功能:用于從串口輸出數(shù)據(jù),數(shù)據(jù)可以是變量,也可以是字符串。5、Serial.println()功能:與Serial.print函數(shù)類似,都是從串口輸出數(shù)據(jù),只是Serial.println函數(shù)多了回車換行功能。例程:讀取輸入的字符,并在監(jiān)視器中顯示出來的程序如下。Stringval="";voidsetup(){Serial.begin(9600);}voidloop(){while(Serial.available()>0){val+=char(Serial.read());delay(5);}if(val.length()>0){Serial.println(val);val="";}}Arduino常用基本函數(shù)---串口通信函數(shù)4、Serial八、認識函數(shù)庫函數(shù)庫:由系統(tǒng)建立的具有一定功能的函數(shù)的集合。庫中存放函數(shù)的名稱和對應(yīng)的目標(biāo)代碼,以及連接過程中所需的重定位信息。用戶也可以根據(jù)自己的需要建立自己的用戶函數(shù)庫。庫函數(shù):存放在函數(shù)庫中的函數(shù)。庫函數(shù)具有明確的功能、入口調(diào)用參數(shù)和返回值。頭文件:有時也稱為包含文件。C語言庫函數(shù)與用戶程序之間進行信息通信時要使用的數(shù)據(jù)和變量,在使用某一庫函數(shù)時,都要在程序中嵌入(用#include)該函數(shù)對應(yīng)的頭文件。八、認識函數(shù)庫函數(shù)庫:由系統(tǒng)建立的具有一定功能的函數(shù)的集合。九、機器人包含的庫函數(shù)庫函數(shù)組成:由.h文件(頭文件)和.cpp文件(源程序文件)組成。序號庫函數(shù)名稱包含文件庫函數(shù)主要功能1TrackTrack.h、Track.cpp對應(yīng)機器人紅外傳感器的庫函數(shù),主要用于控制機器人沿著黑色線進行循線。2ColSensorColSensor.h、ColSensor.cpp對應(yīng)機器人顏色傳感器的庫函數(shù),主要用于識別機器人垃圾塊的顏色。3ColQueueColQueue.h、ColQueue.cpp對應(yīng)機器人顏色傳感器的庫函數(shù),以隊列的形式來記憶機器人檢測到的垃圾塊的顏色數(shù)據(jù)。4CarCar.h、Car.cpp對應(yīng)機器人電機的庫函數(shù),主要用于簡單控制機器人的移動。5FunctionFunction.h、Function.cpp定義紅外傳感器模塊、顏色傳感器模塊、電機的arduino引腳,控制機器人進出路口、拐彎等,控制舵機動作和初始化等功能。九、機器人包含的庫函數(shù)庫函數(shù)組成:由.h文件(頭文件)和.c十、怎樣使用庫函數(shù)放置位置:一般是放到lib文件里調(diào)用方法:將它所在的文件名用#include<>libraries所在的路徑庫函數(shù)拷貝到的路徑十、怎樣使用庫函數(shù)放置位置:一般是放到lib文件里libra#ifndefColSensor_h#defineColSensor_hclassColSensor{private: //定義引腳 intS0,S1,S2,S3,OUT; //定義延時 unsignedlongtime;public: //定義計數(shù)器 unsignedlongg_count; //定義數(shù)組,用來存放讀取到的RGB值 intg_array[3]; //定義數(shù)組,用來存放比例系數(shù) floatg_SF[3]; //構(gòu)造函數(shù) ColSensor(inta,intb,intc,intd,inte,unsignedlongf); //將引腳配置為輸出,同時設(shè)置輸出比例因子 voidMode(inta=1,intb=1); /*控制數(shù)字引腳,切換濾波器。紅,綠,藍分別對 應(yīng)S2與S3的00,11,01電平;10時過濾所有顏色*/ voidDigital_out(inta,intb); //計算比例系數(shù) voidTest(); //計算RGB值 voidGet();};#endif垃圾分類小車ColSensor.h文件內(nèi)代碼#ifndefColSensor_h //將引腳配置為輸出#include<Arduino.h>#include"ColSensor.h"ColSensor::ColSensor(inta,intb,intc,intd,inte,unsignedlongf){ S0=a;S1=b;S2=c;S3=d;OUT=e;time=f; g_count=0;}voidColSensor::Mode(inta,intb){ pinMode(S0,OUTPUT); pinMode(S1,OUTPUT); pinMode(S2,OUTPUT); pinMode(S3,OUTPUT); pinMode(OUT,INPUT); digitalWrite(S0,!(a==0)); digitalWrite(S1,!(b==0));}voidColSensor::Digital_out(inta,intb){ digitalWrite(S2,!(a==0)); digitalWrite(S3,!(b==0));}voidColSensor::Test(){ g_array[0]=0;g_array[1]=0;g_array[2]=0; for(intj=0;j<3;j++){ for(inti=0;i<3;i++){ g_count=0; switch(j){ case0:Digital_out(0,0);break; case1:Digital_out(0,1);break; case2:Digital_out(1,1);break; default:break; } delay(this->time); g_array[j]+=g_count; } g_array[j]/=3; g_SF[j]=255.0/g_array[j]; } Digital_out(1,0); g_count=0;}voidColSensor::Get(){ for(inti=0;i<3;i++){ g_count=0; switch(i){ case0:Digital_out(0,0);break; case1:Digital_out(0,1);break; case2:Digital_out(1,1);break; default:break; } delay(this->time); g_array[i]=g_count; g_array[i]=g_SF[i]*g_array[i]; } Digital_out(1,0); g_count=0;}垃圾分類小車ColSensor.cpp文件內(nèi)代碼#include<Arduino.h>垃圾分類小車ColS謝謝!謝謝!智能垃圾分類機器人———arduino基礎(chǔ)智能垃圾分類機器人———arduino基礎(chǔ)3201A什么是Arduino?02BArduino能做什么?03CArduino怎么用?201A什么是Arduino?02BArduino能做什么?一、Arduino的由來Arduino創(chuàng)始人MassimoBanzi之前是意大利Ivrea一家高科技設(shè)計學(xué)校的老師。他的學(xué)生們經(jīng)常抱怨找不到便宜好用的微控制器。2005年冬天,MassimoBanzi跟DavidCuartielles討論了這個問題。DavidCuartielles是一個西班牙籍晶片工程師,當(dāng)時在這所學(xué)校做訪問學(xué)者。兩人決定設(shè)計自己的電路板,并引入了Banzi的學(xué)生DavidMellis為電路板設(shè)計編程語言。兩天以后,DavidMellis就寫出了程式碼。又過了三天,電路板就完工了。這塊電路板被命名為Arduino。一、Arduino的由來Arduino創(chuàng)始人Massimo二、什么是Arduino?Arduino是一種開源的電子開發(fā)平臺,該平臺最初主要基于AVR單片機的微控制器和相應(yīng)的開發(fā)軟件,目前在國內(nèi)正受到電子發(fā)燒友的廣泛關(guān)注。自從2005年Arduino騰空出世以來,其硬件和開發(fā)環(huán)境一直進行著更新迭代。幾乎任何人,即便不懂電腦編程,利用這個開發(fā)板也能用Arduino做出炫酷有趣的東西,比如對感測器探測做出一些回應(yīng)、閃爍燈光、控制馬達等。

二、什么是Arduino?Arduino是一種開源的電子開三、Arduino能做什么?最簡單應(yīng)用:

通過Arduino開發(fā)板引腳輸出高電平點亮一盞LED燈。三、Arduino能做什么?最簡單應(yīng)用:三、Arduino能做什么?利用Arduino板作為中央控制器實現(xiàn)家居智能化,語音口令開燈、開空調(diào),隨著室內(nèi)光線環(huán)境自動調(diào)節(jié)亮度,手機APP控制家用電器等……三、Arduino能做什么?利用Arduino板作為中央控制讓你的arduino連入物聯(lián)網(wǎng)

Arduino高端應(yīng)用讓你的arduino連入物聯(lián)網(wǎng)

Arduino高端應(yīng)用

樂為聯(lián)網(wǎng)云數(shù)據(jù)平臺樂為聯(lián)網(wǎng)云數(shù)據(jù)平臺四、認識Arduino開發(fā)板---ArduinoUNO四、認識Arduino開發(fā)板---ArduinoUNO四、認識Arduino開發(fā)板---arduinoMega2560四、認識Arduino開發(fā)板---arduinoMega五、Arduino開發(fā)環(huán)境Arduino的編程是在ArduinoIDE上進行的,如左圖編程界面所示;開發(fā)環(huán)境提供了最基本的模板,包含了setup()函數(shù)和loop()函數(shù);在setup()函數(shù)上方空白區(qū)域,可以插入需要用到的函數(shù).h頭文件以及申明要用到的函數(shù)。五、Arduino開發(fā)環(huán)境Arduino的編程是在Ardui六、函數(shù)的概念定義:函數(shù)是一種能完成某種特定功能二端口通道,通過輸入合適的東西獲得想要的某種輸出;舉例:例如數(shù)學(xué)上y=2x,這條函數(shù)可以完成將輸入值翻倍這樣一個工作;注意:arduino提供了大量的基礎(chǔ)函數(shù),包括I/O控制、時間函數(shù)、中斷函數(shù)、串口通信函數(shù)等;arduino也提供了許多關(guān)于這些基礎(chǔ)函數(shù)的實例程序,這些例程可以在arduino開發(fā)環(huán)境的“File->Examples”菜單中找到。六、函數(shù)的概念定義:函數(shù)是一種能完成某種特定功能二端口通道,七、Arduino的常用基本函數(shù)Arduino程序的主體包括:Setup()函數(shù)和loop()函數(shù);(1)setup()函數(shù):在程序中只運行一次,它的功能為完成程序的各類初始化工作;(2)loop()函數(shù):程序的主函數(shù),程序運行過程中l(wèi)oop()函數(shù)不斷循環(huán)。七、Arduino的常用基本函數(shù)Arduino程序的主體包括Arduino常用函數(shù)---pinMode()功能:將指定的引腳配置成輸出或輸入語法:pinMode(pin,mode)參數(shù):pin:表示要設(shè)置模式的引腳mode:包括INPUT或OUTPUT返回值:無例程:ledPin=13//LED連接到數(shù)字腳13voidsetup(){pinMode(ledPin,OUTPUT);//設(shè)置數(shù)字腳為輸出}voidloop(){digitalWrite(ledPin,HIGH);//點亮LEDdelay(1000);//等待一秒digitalWrite(ledPin,LOW);//滅掉LED延遲(1000);//等待第二個}Arduino常用函數(shù)---pinMode()功能:將指Arduino常用函數(shù)---digitalWrite()功能:給一個數(shù)字引腳寫入HIGH或者LOW。語法:digitalWrite(pin,value)參數(shù):pin:引腳編號value:HIGHorLOW返回值:無

例程:intledPin=13;//LED連接到數(shù)字13號端口voidsetup(){pinMode(ledPin,OUTPUT);//設(shè)置數(shù)字端口為輸入模式}voidloop(){digitalWrite(ledPin,HIGH);//使LED亮delay(1000);//延遲一秒digitalWrite(ledPin,LOW);//使LED滅delay(1000);//延遲一秒}Arduino常用函數(shù)---digitalWrite()功能Arduino常用基本函數(shù)---digitalRead()功能:讀取指定引腳的值,HIGH或LOW。

語法:

digitalRead(PIN)參數(shù):Pin:你想讀取的引腳號返回值:HIGH或LOW

例程:

ledPin=13//LED連接到13腳

intinPin=7;//按鈕連接到數(shù)字引腳7

intval=0;//定義變量以存儲讀值

voidsetup()

{

pinMode(ledPin,OUTPUT);//將13腳設(shè)置為輸出

pinMode(inPin,INPUT);//將7腳設(shè)置為輸入

}

voidloop()

{

val=digitalRead(inPin);//讀取輸入腳

digitalWrite(ledPin,val);//將LED值設(shè)置為按鈕的值

}

Arduino常用基本函數(shù)---digitalRead()Arduino常用基本函數(shù)---analogRead()功能:從指定的模擬引腳讀取模擬數(shù)據(jù)值。語法:analogRead(PIN)參數(shù):pin:從輸入引腳讀取數(shù)值返回值:從0到1023的整數(shù)值例程:

intanalogPin=3;//電位器(中間的引腳)連接到模擬輸入引腳3

//另外兩個引腳分別接地和+5V

intval=0;//定義變量來存儲讀取的數(shù)值

voidsetup()

{

serial.begin(9600);//設(shè)置波特率(9600)

}

voidloop()

{

val=analogRead(analogPin);//從輸入引腳讀取數(shù)值

serial.println(val);//顯示讀取的數(shù)值

}

Arduino常用基本函數(shù)---analogRead()Arduino常用基本函數(shù)---analogWrite()功能:從一個引腳輸出模擬值(PWM)語法:analogWrite(pin,value)參數(shù):pin:用于輸入數(shù)值的引腳。value:占空比:0(完全關(guān)閉)到255(完全打開)之間。返回值:無例程:

通過讀取電位器的阻值控制LED的亮度

intledPin=9;//LED連接到數(shù)字引腳9

intanalogPin=3;//電位器連接到模擬引腳3

intval=0;//定義變量存以儲讀值

voidsetup()

{

pinMode(ledPin,OUTPUT);//設(shè)置引腳為輸出引腳

}

voidloop()

{

val=analogRead(analogPin);//從輸入引腳讀取數(shù)值

analogWrite(ledPin,val/4);//以val/4的數(shù)值點亮LED(因為analogRead讀取的數(shù)值

從0到1023,而analogWrite輸出的數(shù)值從0到255)

}

Arduino常用基本函數(shù)---analogWrite()Arduino常用基本函數(shù)---delay()功能:使程序延時特定的時間(毫秒)語法:delay(ms)參數(shù):ms:暫停的毫秒數(shù)(unsignedlong)返回值:無

例程:ledPin=13//LED連接到數(shù)字13腳voidsetup(){pinMode(ledPin,OUTPUT);//設(shè)置引腳為輸出}voidloop(){digitalWrite(ledPin,HIGH);//點亮LEDdelay(1000);//等待1秒digitalWrite(ledPin,LOW);//滅掉LEDdelay(1000);//等待一秒}Arduino常用基本函數(shù)---delay()功能:使程序中斷的定義:

由于某一隨機事件的發(fā)生,單片機暫停原程序的運行,轉(zhuǎn)去執(zhí)行另一程序(隨機事件),處理完畢后又自動返回原程序繼續(xù)運行,其發(fā)生過程如右圖。中斷的要素:

主程序:單片機正在運行的程序。

中斷源:引起中斷的原因,或能發(fā)生中斷申請的來源。

中斷服務(wù)程序:處理中斷事件的程序。Arduino常用基本函數(shù)---

中斷介紹中斷發(fā)生的過程中斷的定義:Arduino常用基本函數(shù)---中斷介紹中斷發(fā)Arduino常用基本函數(shù)---中斷函數(shù)1、interrupts()函數(shù)功能:負責(zé)打開總中斷返回值:無參數(shù):無2、noInterrupts()函數(shù)功能:負責(zé)關(guān)閉總中斷返回值:無參數(shù):無3、attachInterrupt(interrput,function,mode)功能:用于設(shè)置外部中斷參數(shù):3個,分別表示中斷源,中斷處理函數(shù)和觸發(fā)模式,它們的具體含義如下。

中斷源:可選中斷0或者1,對應(yīng)arduino的2或者3號數(shù)字引腳。

中斷處理函數(shù):是一段子程序,當(dāng)中斷發(fā)生時執(zhí)行該子程序部分,其中參數(shù)值為函數(shù)的指針。

觸發(fā)模式:有四種類型,LOW(低電平觸發(fā))、CHANGE(變化時觸發(fā))、RISING(低電平變?yōu)楦唠娖接|發(fā))、FALLING(高電平變?yōu)榈碗娖接|發(fā))Arduino常用基本函數(shù)---中斷函數(shù)1、interrupArduino常用基本函數(shù)---中斷函數(shù)4、detachInterrupt(interrput)函數(shù)功能:用于取消中斷參數(shù):Interrupt:表示所要取消的中斷源例程:用中斷源0(接引腳D2)作為觸發(fā)源控制arduinoUNO板上的LED亮或滅volatileintstate=LOW;voidsetup(){Serial.begin(9600);attachInterrupt(0,change,CHANGE);//當(dāng)D2電平改變時,觸發(fā)中斷函數(shù)}voidloop(){digitalWrite(13,state);if(state==LOW){Serial.println("111");}if(state==HIGH){Serial.println("222");}}voidchange()//中斷函數(shù){state=!state;}Arduino常用基本函數(shù)---中斷函數(shù)4、detachInArduino常用基本函數(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ù)返回值:int型3、Serial.read()功能:用于讀入串口數(shù)據(jù)返回值:int型的串口數(shù)據(jù)。Arduino常用基本函數(shù)---串口通信函數(shù)1、SerialArduino常用基本函數(shù)---串口通信函數(shù)4、Serial.print()功能:用于從串口輸出數(shù)據(jù),數(shù)據(jù)可以是變量,也可以是字符串。5、Serial.println()功能:與Serial.print函數(shù)類似,都是從串口輸出數(shù)據(jù),只是Serial.println函數(shù)多了回車換行功能。例程:讀取輸入的字符,并在監(jiān)視器中顯示出來的程序如下。Stringval="";voidsetup(){Serial.begin(9600);}voidloop(){while(Serial.available()>0){val+=char(Serial.read());delay(5);}if(val.length()>0){Serial.println(val);val="";}}Arduino常用基本函數(shù)---串口通信函數(shù)4、Serial八、認識函數(shù)庫函數(shù)庫:由系統(tǒng)建立的具有一定功能的函數(shù)的集合。庫中存放函數(shù)的名稱和對應(yīng)的目標(biāo)代碼,以及連接過程中所需的重定位信息。用戶也可以根據(jù)自己的需要建立自己的用戶函數(shù)庫。庫函數(shù):存放在函數(shù)庫中的函數(shù)。庫函數(shù)具有明確的功能、入口調(diào)用參數(shù)和返回值。頭文件:有時也稱為包含文件。C語言庫函數(shù)與用戶程序之間進行信息通信時要使用的數(shù)據(jù)和變量,在使用某一庫函數(shù)時,都要在程序中嵌入(用#include)該函數(shù)對應(yīng)的頭文件。八、認識函數(shù)庫函數(shù)庫:由系統(tǒng)建立的具有一定功能的函數(shù)的集合。九、機器人包含的庫函數(shù)庫函數(shù)組成:由.h文件(頭文件)和.cpp文件(源程序文件)組成。序號庫函數(shù)名稱包含文件庫函數(shù)主要功能1TrackTrack.h、Track.cpp對應(yīng)機器人紅外傳感器的庫函數(shù),主要用于控制機器人沿著黑色線進行循線。2ColSensorColSensor.h、ColSensor.cpp對應(yīng)機器人顏色傳感器的庫函數(shù),主要用于識別機器人垃圾塊的顏色。3ColQueueColQueue.h、ColQueue.cpp對應(yīng)機器人顏色傳感器的庫函數(shù),以隊列的形式來記憶機器人檢測到的垃圾塊的顏色數(shù)據(jù)。4CarCar.h、Car.cpp對應(yīng)機器人電機的庫函數(shù),主要用于簡單控制機器人的移動。5FunctionFunction.h、Function.cpp定義紅外傳感器模塊、顏色傳感器模塊、電機的arduino引腳,控制機器人進出路口、拐彎等,控制舵機動作和初始化等功能。九、機器人包含的庫函數(shù)庫函數(shù)組成:由.h文件(頭文件)和.c十、怎樣使用庫函數(shù)放置位置:一般是放到lib文件里調(diào)用方法:將它所在的文件名用#include<>libraries所在的路徑庫函數(shù)拷貝到的路徑十、怎樣使用庫函數(shù)放置位置:一般是放到lib文件里libra#ifndefColSensor_h#defineCol

溫馨提示

  • 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)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論