版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
智能垃圾分類機(jī)器人———arduino基礎(chǔ)智能垃圾分類機(jī)器人———arduino基礎(chǔ)201A什么是Arduino?02BArduino能做什么?03CArduino怎么用?201A什么是Arduino?02BArduino能做什么?一、Arduino的由來(lái)Arduino創(chuàng)始人MassimoBanzi之前是意大利Ivrea一家高科技設(shè)計(jì)學(xué)校的老師。他的學(xué)生們經(jīng)常抱怨找不到便宜好用的微控制器。2005年冬天,MassimoBanzi跟DavidCuartielles討論了這個(gè)問(wèn)題。DavidCuartielles是一個(gè)西班牙籍晶片工程師,當(dāng)時(shí)在這所學(xué)校做訪問(wèn)學(xué)者。兩人決定設(shè)計(jì)自己的電路板,并引入了Banzi的學(xué)生DavidMellis為電路板設(shè)計(jì)編程語(yǔ)言。兩天以后,DavidMellis就寫出了程式碼。又過(guò)了三天,電路板就完工了。這塊電路板被命名為Arduino。一、Arduino的由來(lái)Arduino創(chuàng)始人Massimo二、什么是Arduino?Arduino是一種開源的電子開發(fā)平臺(tái),該平臺(tái)最初主要基于AVR單片機(jī)的微控制器和相應(yīng)的開發(fā)軟件,目前在國(guó)內(nèi)正受到電子發(fā)燒友的廣泛關(guān)注。自從2005年Arduino騰空出世以來(lái),其硬件和開發(fā)環(huán)境一直進(jìn)行著更新迭代。幾乎任何人,即便不懂電腦編程,利用這個(gè)開發(fā)板也能用Arduino做出炫酷有趣的東西,比如對(duì)感測(cè)器探測(cè)做出一些回應(yīng)、閃爍燈光、控制馬達(dá)等。
二、什么是Arduino?Arduino是一種開源的電子開三、Arduino能做什么?最簡(jiǎn)單應(yīng)用:
通過(guò)Arduino開發(fā)板引腳輸出高電平點(diǎn)亮一盞LED燈。三、Arduino能做什么?最簡(jiǎn)單應(yīng)用:三、Arduino能做什么?利用Arduino板作為中央控制器實(shí)現(xiàn)家居智能化,語(yǔ)音口令開燈、開空調(diào),隨著室內(nèi)光線環(huán)境自動(dòng)調(diào)節(jié)亮度,手機(jī)APP控制家用電器等……三、Arduino能做什么?利用Arduino板作為中央控制讓你的arduino連入物聯(lián)網(wǎng)
Arduino高端應(yīng)用讓你的arduino連入物聯(lián)網(wǎng)
Arduino高端應(yīng)用
樂(lè)為聯(lián)網(wǎng)云數(shù)據(jù)平臺(tái)樂(lè)為聯(lián)網(wǎng)云數(shù)據(jù)平臺(tái)四、認(rèn)識(shí)Arduino開發(fā)板---ArduinoUNO四、認(rèn)識(shí)Arduino開發(fā)板---ArduinoUNO四、認(rèn)識(shí)Arduino開發(fā)板---arduinoMega2560四、認(rèn)識(shí)Arduino開發(fā)板---arduinoMega五、Arduino開發(fā)環(huán)境Arduino的編程是在ArduinoIDE上進(jìn)行的,如左圖編程界面所示;開發(fā)環(huán)境提供了最基本的模板,包含了setup()函數(shù)和loop()函數(shù);在setup()函數(shù)上方空白區(qū)域,可以插入需要用到的函數(shù).h頭文件以及申明要用到的函數(shù)。五、Arduino開發(fā)環(huán)境Arduino的編程是在Ardui六、函數(shù)的概念定義:函數(shù)是一種能完成某種特定功能二端口通道,通過(guò)輸入合適的東西獲得想要的某種輸出;舉例:例如數(shù)學(xué)上y=2x,這條函數(shù)可以完成將輸入值翻倍這樣一個(gè)工作;注意:arduino提供了大量的基礎(chǔ)函數(shù),包括I/O控制、時(shí)間函數(shù)、中斷函數(shù)、串口通信函數(shù)等;arduino也提供了許多關(guān)于這些基礎(chǔ)函數(shù)的實(shí)例程序,這些例程可以在arduino開發(fā)環(huán)境的“File->Examples”菜單中找到。六、函數(shù)的概念定義:函數(shù)是一種能完成某種特定功能二端口通道,七、Arduino的常用基本函數(shù)Arduino程序的主體包括:Setup()函數(shù)和loop()函數(shù);(1)setup()函數(shù):在程序中只運(yùn)行一次,它的功能為完成程序的各類初始化工作;(2)loop()函數(shù):程序的主函數(shù),程序運(yùn)行過(guò)程中l(wèi)oop()函數(shù)不斷循環(huán)。七、Arduino的常用基本函數(shù)Arduino程序的主體包括Arduino常用函數(shù)---pinMode()功能:將指定的引腳配置成輸出或輸入語(yǔ)法:pinMode(pin,mode)參數(shù):pin:表示要設(shè)置模式的引腳mode:包括INPUT或OUTPUT返回值:無(wú)例程:ledPin=13//LED連接到數(shù)字腳13voidsetup(){pinMode(ledPin,OUTPUT);//設(shè)置數(shù)字腳為輸出}voidloop(){digitalWrite(ledPin,HIGH);//點(diǎn)亮LEDdelay(1000);//等待一秒digitalWrite(ledPin,LOW);//滅掉LED延遲(1000);//等待第二個(gè)}Arduino常用函數(shù)---pinMode()功能:將指Arduino常用函數(shù)---digitalWrite()功能:給一個(gè)數(shù)字引腳寫入HIGH或者LOW。語(yǔ)法:digitalWrite(pin,value)參數(shù):pin:引腳編號(hào)value:HIGHorLOW返回值:無(wú)
例程:intledPin=13;//LED連接到數(shù)字13號(hào)端口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。
語(yǔ)法:
digitalRead(PIN)參數(shù):Pin:你想讀取的引腳號(hào)返回值:HIGH或LOW
例程:
ledPin=13//LED連接到13腳
intinPin=7;//按鈕連接到數(shù)字引腳7
intval=0;//定義變量以存儲(chǔ)讀值
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ù)值。語(yǔ)法:analogRead(PIN)參數(shù):pin:從輸入引腳讀取數(shù)值返回值:從0到1023的整數(shù)值例程:
intanalogPin=3;//電位器(中間的引腳)連接到模擬輸入引腳3
//另外兩個(gè)引腳分別接地和+5V
intval=0;//定義變量來(lái)存儲(chǔ)讀取的數(shù)值
voidsetup()
{
serial.begin(9600);//設(shè)置波特率(9600)
}
voidloop()
{
val=analogRead(analogPin);//從輸入引腳讀取數(shù)值
serial.println(val);//顯示讀取的數(shù)值
}
Arduino常用基本函數(shù)---analogRead()Arduino常用基本函數(shù)---analogWrite()功能:從一個(gè)引腳輸出模擬值(PWM)語(yǔ)法:analogWrite(pin,value)參數(shù):pin:用于輸入數(shù)值的引腳。value:占空比:0(完全關(guān)閉)到255(完全打開)之間。返回值:無(wú)例程:
通過(guò)讀取電位器的阻值控制LED的亮度
intledPin=9;//LED連接到數(shù)字引腳9
intanalogPin=3;//電位器連接到模擬引腳3
intval=0;//定義變量存以儲(chǔ)讀值
voidsetup()
{
pinMode(ledPin,OUTPUT);//設(shè)置引腳為輸出引腳
}
voidloop()
{
val=analogRead(analogPin);//從輸入引腳讀取數(shù)值
analogWrite(ledPin,val/4);//以val/4的數(shù)值點(diǎn)亮LED(因?yàn)閍nalogRead讀取的數(shù)值
從0到1023,而analogWrite輸出的數(shù)值從0到255)
}
Arduino常用基本函數(shù)---analogWrite()Arduino常用基本函數(shù)---delay()功能:使程序延時(shí)特定的時(shí)間(毫秒)語(yǔ)法:delay(ms)參數(shù):ms:暫停的毫秒數(shù)(unsignedlong)返回值:無(wú)
例程:ledPin=13//LED連接到數(shù)字13腳voidsetup(){pinMode(ledPin,OUTPUT);//設(shè)置引腳為輸出}voidloop(){digitalWrite(ledPin,HIGH);//點(diǎn)亮LEDdelay(1000);//等待1秒digitalWrite(ledPin,LOW);//滅掉LEDdelay(1000);//等待一秒}Arduino常用基本函數(shù)---delay()功能:使程序中斷的定義:
由于某一隨機(jī)事件的發(fā)生,單片機(jī)暫停原程序的運(yùn)行,轉(zhuǎn)去執(zhí)行另一程序(隨機(jī)事件),處理完畢后又自動(dòng)返回原程序繼續(xù)運(yùn)行,其發(fā)生過(guò)程如右圖。中斷的要素:
主程序:?jiǎn)纹瑱C(jī)正在運(yùn)行的程序。
中斷源:引起中斷的原因,或能發(fā)生中斷申請(qǐng)的來(lái)源。
中斷服務(wù)程序:處理中斷事件的程序。Arduino常用基本函數(shù)---
中斷介紹中斷發(fā)生的過(guò)程中斷的定義:Arduino常用基本函數(shù)---中斷介紹中斷發(fā)Arduino常用基本函數(shù)---中斷函數(shù)1、interrupts()函數(shù)功能:負(fù)責(zé)打開總中斷返回值:無(wú)參數(shù):無(wú)2、noInterrupts()函數(shù)功能:負(fù)責(zé)關(guān)閉總中斷返回值:無(wú)參數(shù):無(wú)3、attachInterrupt(interrput,function,mode)功能:用于設(shè)置外部中斷參數(shù):3個(gè),分別表示中斷源,中斷處理函數(shù)和觸發(fā)模式,它們的具體含義如下。
中斷源:可選中斷0或者1,對(duì)應(yīng)arduino的2或者3號(hào)數(shù)字引腳。
中斷處理函數(shù):是一段子程序,當(dāng)中斷發(fā)生時(shí)執(zhí)行該子程序部分,其中參數(shù)值為函數(shù)的指針。
觸發(fā)模式:有四種類型,LOW(低電平觸發(fā))、CHANGE(變化時(shí)觸發(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電平改變時(shí),觸發(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ù)谋忍財(cái)?shù),除以8可得到每秒傳輸?shù)淖止?jié)數(shù)。一般的波特率有9600、19200、57600、115200等。介紹:通過(guò)在頭文件HardwareSerial.h中定義一個(gè)HardwareSerial類的對(duì)象serial,然后直接使用該類的成員函數(shù)來(lái)實(shí)現(xiàn)。2、Serial.available()功能:用來(lái)判斷串口是否收到數(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)視器中顯示出來(lái)的程序如下。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八、認(rèn)識(shí)函數(shù)庫(kù)函數(shù)庫(kù):由系統(tǒng)建立的具有一定功能的函數(shù)的集合。庫(kù)中存放函數(shù)的名稱和對(duì)應(yīng)的目標(biāo)代碼,以及連接過(guò)程中所需的重定位信息。用戶也可以根據(jù)自己的需要建立自己的用戶函數(shù)庫(kù)。庫(kù)函數(shù):存放在函數(shù)庫(kù)中的函數(shù)。庫(kù)函數(shù)具有明確的功能、入口調(diào)用參數(shù)和返回值。頭文件:有時(shí)也稱為包含文件。C語(yǔ)言庫(kù)函數(shù)與用戶程序之間進(jìn)行信息通信時(shí)要使用的數(shù)據(jù)和變量,在使用某一庫(kù)函數(shù)時(shí),都要在程序中嵌入(用#include)該函數(shù)對(duì)應(yīng)的頭文件。八、認(rèn)識(shí)函數(shù)庫(kù)函數(shù)庫(kù):由系統(tǒng)建立的具有一定功能的函數(shù)的集合。九、機(jī)器人包含的庫(kù)函數(shù)庫(kù)函數(shù)組成:由.h文件(頭文件)和.cpp文件(源程序文件)組成。序號(hào)庫(kù)函數(shù)名稱包含文件庫(kù)函數(shù)主要功能1TrackTrack.h、Track.cpp對(duì)應(yīng)機(jī)器人紅外傳感器的庫(kù)函數(shù),主要用于控制機(jī)器人沿著黑色線進(jìn)行循線。2ColSensorColSensor.h、ColSensor.cpp對(duì)應(yīng)機(jī)器人顏色傳感器的庫(kù)函數(shù),主要用于識(shí)別機(jī)器人垃圾塊的顏色。3ColQueueColQueue.h、ColQueue.cpp對(duì)應(yīng)機(jī)器人顏色傳感器的庫(kù)函數(shù),以隊(duì)列的形式來(lái)記憶機(jī)器人檢測(cè)到的垃圾塊的顏色數(shù)據(jù)。4CarCar.h、Car.cpp對(duì)應(yīng)機(jī)器人電機(jī)的庫(kù)函數(shù),主要用于簡(jiǎn)單控制機(jī)器人的移動(dòng)。5FunctionFunction.h、Function.cpp定義紅外傳感器模塊、顏色傳感器模塊、電機(jī)的arduino引腳,控制機(jī)器人進(jìn)出路口、拐彎等,控制舵機(jī)動(dòng)作和初始化等功能。九、機(jī)器人包含的庫(kù)函數(shù)庫(kù)函數(shù)組成:由.h文件(頭文件)和.c十、怎樣使用庫(kù)函數(shù)放置位置:一般是放到lib文件里調(diào)用方法:將它所在的文件名用#include<>libraries所在的路徑庫(kù)函數(shù)拷貝到的路徑十、怎樣使用庫(kù)函數(shù)放置位置:一般是放到lib文件里libra#ifndefColSensor_h#defineColSensor_hclassColSensor{private: //定義引腳 intS0,S1,S2,S3,OUT; //定義延時(shí) unsignedlongtime;public: //定義計(jì)數(shù)器 unsignedlongg_count; //定義數(shù)組,用來(lái)存放讀取到的RGB值 intg_array[3]; //定義數(shù)組,用來(lái)存放比例系數(shù) floatg_SF[3]; //構(gòu)造函數(shù) ColSensor(inta,intb,intc,intd,inte,unsignedlongf); //將引腳配置為輸出,同時(shí)設(shè)置輸出比例因子 voidMode(inta=1,intb=1); /*控制數(shù)字引腳,切換濾波器。紅,綠,藍(lán)分別對(duì) 應(yīng)S2與S3的00,11,01電平;10時(shí)過(guò)濾所有顏色*/ voidDigital_out(inta,intb); //計(jì)算比例系數(shù) voidTest(); //計(jì)算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謝謝!謝謝!智能垃圾分類機(jī)器人———arduino基礎(chǔ)智能垃圾分類機(jī)器人———arduino基礎(chǔ)3201A什么是Arduino?02BArduino能做什么?03CArduino怎么用?201A什么是Arduino?02BArduino能做什么?一、Arduino的由來(lái)Arduino創(chuàng)始人MassimoBanzi之前是意大利Ivrea一家高科技設(shè)計(jì)學(xué)校的老師。他的學(xué)生們經(jīng)常抱怨找不到便宜好用的微控制器。2005年冬天,MassimoBanzi跟DavidCuartielles討論了這個(gè)問(wèn)題。DavidCuartielles是一個(gè)西班牙籍晶片工程師,當(dāng)時(shí)在這所學(xué)校做訪問(wèn)學(xué)者。兩人決定設(shè)計(jì)自己的電路板,并引入了Banzi的學(xué)生DavidMellis為電路板設(shè)計(jì)編程語(yǔ)言。兩天以后,DavidMellis就寫出了程式碼。又過(guò)了三天,電路板就完工了。這塊電路板被命名為Arduino。一、Arduino的由來(lái)Arduino創(chuàng)始人Massimo二、什么是Arduino?Arduino是一種開源的電子開發(fā)平臺(tái),該平臺(tái)最初主要基于AVR單片機(jī)的微控制器和相應(yīng)的開發(fā)軟件,目前在國(guó)內(nèi)正受到電子發(fā)燒友的廣泛關(guān)注。自從2005年Arduino騰空出世以來(lái),其硬件和開發(fā)環(huán)境一直進(jìn)行著更新迭代。幾乎任何人,即便不懂電腦編程,利用這個(gè)開發(fā)板也能用Arduino做出炫酷有趣的東西,比如對(duì)感測(cè)器探測(cè)做出一些回應(yīng)、閃爍燈光、控制馬達(dá)等。
二、什么是Arduino?Arduino是一種開源的電子開三、Arduino能做什么?最簡(jiǎn)單應(yīng)用:
通過(guò)Arduino開發(fā)板引腳輸出高電平點(diǎn)亮一盞LED燈。三、Arduino能做什么?最簡(jiǎn)單應(yīng)用:三、Arduino能做什么?利用Arduino板作為中央控制器實(shí)現(xiàn)家居智能化,語(yǔ)音口令開燈、開空調(diào),隨著室內(nèi)光線環(huán)境自動(dòng)調(diào)節(jié)亮度,手機(jī)APP控制家用電器等……三、Arduino能做什么?利用Arduino板作為中央控制讓你的arduino連入物聯(lián)網(wǎng)
Arduino高端應(yīng)用讓你的arduino連入物聯(lián)網(wǎng)
Arduino高端應(yīng)用
樂(lè)為聯(lián)網(wǎng)云數(shù)據(jù)平臺(tái)樂(lè)為聯(lián)網(wǎng)云數(shù)據(jù)平臺(tái)四、認(rèn)識(shí)Arduino開發(fā)板---ArduinoUNO四、認(rèn)識(shí)Arduino開發(fā)板---ArduinoUNO四、認(rèn)識(shí)Arduino開發(fā)板---arduinoMega2560四、認(rèn)識(shí)Arduino開發(fā)板---arduinoMega五、Arduino開發(fā)環(huán)境Arduino的編程是在ArduinoIDE上進(jìn)行的,如左圖編程界面所示;開發(fā)環(huán)境提供了最基本的模板,包含了setup()函數(shù)和loop()函數(shù);在setup()函數(shù)上方空白區(qū)域,可以插入需要用到的函數(shù).h頭文件以及申明要用到的函數(shù)。五、Arduino開發(fā)環(huán)境Arduino的編程是在Ardui六、函數(shù)的概念定義:函數(shù)是一種能完成某種特定功能二端口通道,通過(guò)輸入合適的東西獲得想要的某種輸出;舉例:例如數(shù)學(xué)上y=2x,這條函數(shù)可以完成將輸入值翻倍這樣一個(gè)工作;注意:arduino提供了大量的基礎(chǔ)函數(shù),包括I/O控制、時(shí)間函數(shù)、中斷函數(shù)、串口通信函數(shù)等;arduino也提供了許多關(guān)于這些基礎(chǔ)函數(shù)的實(shí)例程序,這些例程可以在arduino開發(fā)環(huán)境的“File->Examples”菜單中找到。六、函數(shù)的概念定義:函數(shù)是一種能完成某種特定功能二端口通道,七、Arduino的常用基本函數(shù)Arduino程序的主體包括:Setup()函數(shù)和loop()函數(shù);(1)setup()函數(shù):在程序中只運(yùn)行一次,它的功能為完成程序的各類初始化工作;(2)loop()函數(shù):程序的主函數(shù),程序運(yùn)行過(guò)程中l(wèi)oop()函數(shù)不斷循環(huán)。七、Arduino的常用基本函數(shù)Arduino程序的主體包括Arduino常用函數(shù)---pinMode()功能:將指定的引腳配置成輸出或輸入語(yǔ)法:pinMode(pin,mode)參數(shù):pin:表示要設(shè)置模式的引腳mode:包括INPUT或OUTPUT返回值:無(wú)例程:ledPin=13//LED連接到數(shù)字腳13voidsetup(){pinMode(ledPin,OUTPUT);//設(shè)置數(shù)字腳為輸出}voidloop(){digitalWrite(ledPin,HIGH);//點(diǎn)亮LEDdelay(1000);//等待一秒digitalWrite(ledPin,LOW);//滅掉LED延遲(1000);//等待第二個(gè)}Arduino常用函數(shù)---pinMode()功能:將指Arduino常用函數(shù)---digitalWrite()功能:給一個(gè)數(shù)字引腳寫入HIGH或者LOW。語(yǔ)法:digitalWrite(pin,value)參數(shù):pin:引腳編號(hào)value:HIGHorLOW返回值:無(wú)
例程:intledPin=13;//LED連接到數(shù)字13號(hào)端口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。
語(yǔ)法:
digitalRead(PIN)參數(shù):Pin:你想讀取的引腳號(hào)返回值:HIGH或LOW
例程:
ledPin=13//LED連接到13腳
intinPin=7;//按鈕連接到數(shù)字引腳7
intval=0;//定義變量以存儲(chǔ)讀值
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ù)值。語(yǔ)法:analogRead(PIN)參數(shù):pin:從輸入引腳讀取數(shù)值返回值:從0到1023的整數(shù)值例程:
intanalogPin=3;//電位器(中間的引腳)連接到模擬輸入引腳3
//另外兩個(gè)引腳分別接地和+5V
intval=0;//定義變量來(lái)存儲(chǔ)讀取的數(shù)值
voidsetup()
{
serial.begin(9600);//設(shè)置波特率(9600)
}
voidloop()
{
val=analogRead(analogPin);//從輸入引腳讀取數(shù)值
serial.println(val);//顯示讀取的數(shù)值
}
Arduino常用基本函數(shù)---analogRead()Arduino常用基本函數(shù)---analogWrite()功能:從一個(gè)引腳輸出模擬值(PWM)語(yǔ)法:analogWrite(pin,value)參數(shù):pin:用于輸入數(shù)值的引腳。value:占空比:0(完全關(guān)閉)到255(完全打開)之間。返回值:無(wú)例程:
通過(guò)讀取電位器的阻值控制LED的亮度
intledPin=9;//LED連接到數(shù)字引腳9
intanalogPin=3;//電位器連接到模擬引腳3
intval=0;//定義變量存以儲(chǔ)讀值
voidsetup()
{
pinMode(ledPin,OUTPUT);//設(shè)置引腳為輸出引腳
}
voidloop()
{
val=analogRead(analogPin);//從輸入引腳讀取數(shù)值
analogWrite(ledPin,val/4);//以val/4的數(shù)值點(diǎn)亮LED(因?yàn)閍nalogRead讀取的數(shù)值
從0到1023,而analogWrite輸出的數(shù)值從0到255)
}
Arduino常用基本函數(shù)---analogWrite()Arduino常用基本函數(shù)---delay()功能:使程序延時(shí)特定的時(shí)間(毫秒)語(yǔ)法:delay(ms)參數(shù):ms:暫停的毫秒數(shù)(unsignedlong)返回值:無(wú)
例程:ledPin=13//LED連接到數(shù)字13腳voidsetup(){pinMode(ledPin,OUTPUT);//設(shè)置引腳為輸出}voidloop(){digitalWrite(ledPin,HIGH);//點(diǎn)亮LEDdelay(1000);//等待1秒digitalWrite(ledPin,LOW);//滅掉LEDdelay(1000);//等待一秒}Arduino常用基本函數(shù)---delay()功能:使程序中斷的定義:
由于某一隨機(jī)事件的發(fā)生,單片機(jī)暫停原程序的運(yùn)行,轉(zhuǎn)去執(zhí)行另一程序(隨機(jī)事件),處理完畢后又自動(dòng)返回原程序繼續(xù)運(yùn)行,其發(fā)生過(guò)程如右圖。中斷的要素:
主程序:?jiǎn)纹瑱C(jī)正在運(yùn)行的程序。
中斷源:引起中斷的原因,或能發(fā)生中斷申請(qǐng)的來(lái)源。
中斷服務(wù)程序:處理中斷事件的程序。Arduino常用基本函數(shù)---
中斷介紹中斷發(fā)生的過(guò)程中斷的定義:Arduino常用基本函數(shù)---中斷介紹中斷發(fā)Arduino常用基本函數(shù)---中斷函數(shù)1、interrupts()函數(shù)功能:負(fù)責(zé)打開總中斷返回值:無(wú)參數(shù):無(wú)2、noInterrupts()函數(shù)功能:負(fù)責(zé)關(guān)閉總中斷返回值:無(wú)參數(shù):無(wú)3、attachInterrupt(interrput,function,mode)功能:用于設(shè)置外部中斷參數(shù):3個(gè),分別表示中斷源,中斷處理函數(shù)和觸發(fā)模式,它們的具體含義如下。
中斷源:可選中斷0或者1,對(duì)應(yīng)arduino的2或者3號(hào)數(shù)字引腳。
中斷處理函數(shù):是一段子程序,當(dāng)中斷發(fā)生時(shí)執(zhí)行該子程序部分,其中參數(shù)值為函數(shù)的指針。
觸發(fā)模式:有四種類型,LOW(低電平觸發(fā))、CHANGE(變化時(shí)觸發(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電平改變時(shí),觸發(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ù)谋忍財(cái)?shù),除以8可得到每秒傳輸?shù)淖止?jié)數(shù)。一般的波特率有9600、19200、57600、115200等。介紹:通過(guò)在頭文件HardwareSerial.h中定義一個(gè)HardwareSerial類的對(duì)象serial,然后直接使用該類的成員函數(shù)來(lái)實(shí)現(xiàn)。2、Serial.available()功能:用來(lái)判斷串口是否收到數(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)視器中顯示出來(lái)的程序如下。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八、認(rèn)識(shí)函數(shù)庫(kù)函數(shù)庫(kù):由系統(tǒng)建立的具有一定功能的函數(shù)的集合。庫(kù)中存放函數(shù)的名稱和對(duì)應(yīng)的目標(biāo)代碼,以及連接過(guò)程中所需的重定位信息。用戶也可以根據(jù)自己的需要建立自己的用戶函數(shù)庫(kù)。庫(kù)函數(shù):存放在函數(shù)庫(kù)中的函數(shù)。庫(kù)函數(shù)具有明確的功能、入口調(diào)用參數(shù)和返回值。頭文件:有時(shí)也稱為包含文件。C語(yǔ)言庫(kù)函數(shù)與用戶程序之間進(jìn)行信息通信時(shí)要使用的數(shù)據(jù)和變量,在使用某一庫(kù)函數(shù)時(shí),都要在程序中嵌入(用#include)該函數(shù)對(duì)應(yīng)的頭文件。八、認(rèn)識(shí)函數(shù)庫(kù)函數(shù)庫(kù):由系統(tǒng)建立的具有一定功能的函數(shù)的集合。九、機(jī)器人包含的庫(kù)函數(shù)庫(kù)函數(shù)組成:由.h文件(頭文件)和.cpp文件(源程序文件)組成。序號(hào)庫(kù)函數(shù)名稱包含文件庫(kù)函數(shù)主要功能1TrackTrack.h、Track.cpp對(duì)應(yīng)機(jī)器人紅外傳感器的庫(kù)函數(shù),主要用于控制機(jī)器人沿著黑色線進(jìn)行循線。2ColSensorColSensor.h、ColSensor.cpp對(duì)應(yīng)機(jī)器人顏色傳感器的庫(kù)函數(shù),主要用于識(shí)別機(jī)器人垃圾塊的顏色。3ColQueueColQueue.h、ColQueue.cpp對(duì)應(yīng)機(jī)器人顏色傳感器的庫(kù)函數(shù),以隊(duì)列的形式來(lái)記憶機(jī)器人檢測(cè)到的垃圾塊的顏色數(shù)據(jù)。4CarCar.h、Car.cpp對(duì)應(yīng)機(jī)器人電機(jī)的庫(kù)函數(shù),主要用于簡(jiǎn)單控制機(jī)器人的移動(dòng)。5FunctionFunction.h、Function.cpp定義紅外傳感器模塊、顏色傳感器模塊、電機(jī)的arduino引腳,控制機(jī)器人進(jìn)出路口、拐彎等,控制舵機(jī)動(dòng)作和初始化等功能。九、機(jī)器人包含的庫(kù)函數(shù)庫(kù)函數(shù)組成:由.h文件(頭文件)和.c十、怎樣使用庫(kù)函數(shù)放置位置:一般是放到lib文件里調(diào)用方法:將它所在的文件名用#include<>libraries所在的路徑庫(kù)函數(shù)拷貝到的路徑十、怎樣使用庫(kù)函數(shù)放置位置:一般是放到lib文件里libra#ifndefColSensor_h#defineCol
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 員工轉(zhuǎn)正申請(qǐng)工作總結(jié)(范文五篇)
- 哈利波特系列叢書的讀后感(8篇)
- 總裝技能提升專項(xiàng)測(cè)試題
- 相聲基礎(chǔ)知識(shí)題庫(kù)單選題100道及答案解析
- 專題07 圓的有關(guān)計(jì)算與證明問(wèn)題(原卷版)【浙江專用】
- 部編版歷史八年級(jí)上冊(cè)第二單元 第5課《甲午中日戰(zhàn)爭(zhēng)與列強(qiáng)瓜分中國(guó)狂潮》檢測(cè)卷(后附答案及解析)
- 關(guān)于javascript語(yǔ)法的疑難解釋
- 第1章 藥理學(xué)總論-緒言課件
- 2024-2025學(xué)年專題4.1 光的直線傳播-八年級(jí)物理人教版(上冊(cè))含答案
- 5年中考3年模擬試卷初中道德與法治七年級(jí)下冊(cè)02第2課時(shí)青春萌動(dòng)
- English-Drama英語(yǔ)戲劇寫作及表演技巧課件
- 2023年廣東嘉城建設(shè)集團(tuán)有限公司招聘筆試模擬試題及答案解析
- 課件:漢字之美
- 2023年全科醫(yī)師轉(zhuǎn)崗培訓(xùn)理論考試試題及答案
- 衛(wèi)生協(xié)管員培訓(xùn)考試題附答案
- 第七章汽車安全氣囊故障診斷技術(shù)課件
- 坐井觀天(動(dòng)畫)課件
- 旅游英文課件
- 病歷書寫規(guī)范和管理制度課件
- 中學(xué)校史館設(shè)計(jì)方案
- 售前組長(zhǎng)崗位月度KPI績(jī)效考核表
評(píng)論
0/150
提交評(píng)論