您好,欢迎访问三七文档
201A什么是Arduino?02BArduino能做什么?03CArduino怎么用?一、Arduino的由来•Arduino创始人MassimoBanzi之前是意大利Ivrea一家高科技设计学校的老师。他的学生们经常抱怨找不到便宜好用的微控制器。•2005年冬天,MassimoBanzi跟DavidCuartielles讨论了这个问题。DavidCuartielles是一个西班牙籍晶片工程师,当时在这所学校做访问学者。•两人决定设计自己的电路板,并引入了Banzi的学生DavidMellis为电路板设计编程语言。•两天以后,DavidMellis就写出了程式码。又过了三天,电路板就完工了。这块电路板被命名为Arduino。二、什么是Arduino?•Arduino是一种开源的电子开发平台,该平台最初主要基于AVR单片机的微控制器和相应的开发软件,目前在国内正受到电子发烧友的广泛关注。•自从2005年Arduino腾空出世以来,其硬件和开发环境一直进行着更新迭代。•几乎任何人,即便不懂电脑编程,利用这个开发板也能用Arduino做出炫酷有趣的东西,比如对感测器探测做出一些回应、闪烁灯光、控制马达等。三、Arduino能做什么?最简单应用:通过Arduino开发板引脚输出高电平点亮一盏LED灯。三、Arduino能做什么?利用Arduino板作为中央控制器实现家居智能化,语音口令开灯、开空调,随着室内光线环境自动调节亮度,手机APP控制家用电器等……Arduino高端应用乐为联网云数据平台四、认识Arduino开发板---ArduinoUNO13个数字I/O口,含6个PWM引脚电源口6个模拟I/O口USB接口外部电源接口电源指示灯复位开关ICSP下载口四、认识Arduino开发板---arduinoMega2560五、Arduino开发环境•Arduino的编程是在ArduinoIDE上进行的,如左图编程界面所示;•开发环境提供了最基本的模板,包含了setup()函数和loop()函数;•在setup()函数上方空白区域,可以插入需要用到的函数.h头文件以及申明要用到的函数。六、函数的概念定义:函数是一种能完成某种特定功能二端口通道,通过输入合适的东西获得想要的某种输出;举例:例如数学上y=2x,这条函数可以完成将输入值翻倍这样一个工作;注意:•arduino提供了大量的基础函数,包括I/O控制、时间函数、中断函数、串口通信函数等;•arduino也提供了许多关于这些基础函数的实例程序,这些例程可以在arduino开发环境的“File-Examples”菜单中找到。七、Arduino的常用基本函数•Arduino程序的主体包括:Setup()函数和loop()函数;(1)setup()函数:在程序中只运行一次,它的功能为完成程序的各类初始化工作;(2)loop()函数:程序的主函数,程序运行过程中loop()函数不断循环。Arduino常用函数---pinMode()•功能:将指定的引脚配置成输出或输入•语法:pinMode(pin,mode)•参数:pin:表示要设置模式的引脚mode:包括INPUT或OUTPUT•返回值:无例程:intledPin=13;//LED连接到数字脚13voidsetup(){pinMode(ledPin,OUTPUT);//设置数字脚为输出}voidloop(){digitalWrite(ledPin,HIGH);//点亮LEDdelay(1000);//等待一秒digitalWrite(ledPin,LOW);//灭掉LED延迟(1000);//等待第二个}Arduino常用函数---digitalWrite()•功能:给一个数字引脚写入HIGH或者LOW。•语法:digitalWrite(pin,value)•参数:pin:引脚编号value:HIGHorLOW•返回值:无例程:intledPin=13;//LED连接到数字13号端口voidsetup(){pinMode(ledPin,OUTPUT);//设置数字端口为输入模式}voidloop(){digitalWrite(ledPin,HIGH);//使LED亮delay(1000);//延迟一秒digitalWrite(ledPin,LOW);//使LED灭delay(1000);//延迟一秒}Arduino常用基本函数---digitalRead()•功能:读取指定引脚的值,HIGH或LOW。•语法:digitalRead(PIN)•参数:Pin:你想读取的引脚号•返回值:HIGH或LOW例程:intledPin=;//LED连接到13脚intinPin=7;//按钮连接到数字引脚7intval=0;//定义变量以存储读值voidsetup(){pinMode(ledPin,OUTPUT);//将13脚设置为输出pinMode(inPin,INPUT);//将7脚设置为输入}voidloop(){val=digitalRead(inPin);//读取输入脚digitalWrite(ledPin,val);//将LED值设置为按钮的值}Arduino常用基本函数---analogRead()•功能:从指定的模拟引脚读取模拟数据值。•语法:analogRead(PIN)•参数:pin:从输入引脚读取数值•返回值:从0到1023的整数值例程:intanalogPin=3;//电位器(中间的引脚)连接到模拟输入引脚3//另外两个引脚分别接地和+5Vintval=0;//定义变量来存储读取的数值voidsetup(){serial.begin(9600);//设置波特率(9600)}voidloop(){val=analogRead(analogPin);//从输入引脚读取数值serial.println(val);//显示读取的数值}Arduino常用基本函数---analogWrite()•功能:从一个引脚输出模拟值(PWM)•语法:analogWrite(pin,value)•参数:pin:用于输入数值的引脚。value:占空比:0(完全关闭)到255(完全打开)之间。•返回值:无例程:通过读取电位器的阻值控制LED的亮度intledPin=9;//LED连接到数字引脚9intanalogPin=3;//电位器连接到模拟引脚3intval=0;//定义变量存以储读值voidsetup(){pinMode(ledPin,OUTPUT);//设置引脚为输出引脚}voidloop(){val=analogRead(analogPin);//从输入引脚读取数值analogWrite(ledPin,val/4);//以val/4的数值点亮LED(因为analogRead读取的数值从0到1023,而analogWrite输出的数值从0到255)}Arduino常用基本函数---delay()•功能:使程序延时特定的时间(毫秒)•语法:delay(ms)•参数:ms:暂停的毫秒数(unsignedlong)•返回值:无例程:ledPin=13//LED连接到数字13脚voidsetup(){pinMode(ledPin,OUTPUT);//设置引脚为输出}voidloop(){digitalWrite(ledPin,HIGH);//点亮LEDdelay(1000);//等待1秒digitalWrite(ledPin,LOW);//灭掉LEDdelay(1000);//等待一秒}中断的定义:由于某一随机事件的发生,单片机暂停原程序的运行,转去执行另一程序(随机事件),处理完毕后又自动返回原程序继续运行,其发生过程如右图。中断的要素:主程序:单片机正在运行的程序。中断源:引起中断的原因,或能发生中断申请的来源。中断服务程序:处理中断事件的程序。Arduino常用基本函数---中断介绍中断发生的过程Arduino常用基本函数---中断函数1、interrupts()函数•功能:负责打开总中断•返回值:无•参数:无2、noInterrupts()函数•功能:负责关闭总中断•返回值:无•参数:无3、attachInterrupt(interrput,function,mode)•功能:用于设置外部中断•参数:3个,分别表示中断源,中断处理函数和触发模式,它们的具体含义如下。中断源:可选中断0或者1,对应arduino的2或者3号数字引脚。中断处理函数:是一段子程序,当中断发生时执行该子程序部分,其中参数值为函数的指针。触发模式:有四种类型,LOW(低电平触发)、CHANGE(变化时触发)、RISING(低电平变为高电平触发)、FALLING(高电平变为低电平触发)Arduino常用基本函数---中断函数4、detachInterrupt(interrput)函数•功能:用于取消中断•参数:Interrupt:表示所要取消的中断源例程:用中断源0(接引脚D2)作为触发源控制arduinoUNO板上的LED亮或灭volatileintstate=LOW;voidsetup(){Serial.begin(9600);attachInterrupt(0,change,CHANGE);//当D2电平改变时,触发中断函数}voidloop(){digitalWrite(13,state);if(state==LOW){Serial.println(111);}if(state==HIGH){Serial.println(222);}}voidchange()//中断函数{state=!state;}Arduino常用基本函数---串口通信函数1、Serial.begin()•功能:用于设置串口的波特率•波特率是指每秒传输的比特数,除以8可得到每秒传输的字节数。•一般的波特率有9600、19200、57600、115200等。介绍:通过在头文件HardwareSerial.h中定义一个HardwareSerial类的对象serial,然后直接使用该类的成员函数来实现。2、Serial.available()•功能:用来判断串口是否收到数据•返回值:int型3、Serial.read()•功能:用于读入串口数据•返回值:int型的串口数据。Arduino常用基本函数---串口通信函数4、Serial.print()•功能:用于从串口输出数据,数据可以是变量,也可以是字符串。5、Serial.println()•功能:与Serial.print函数类似,都是从串口输出数据,只是Serial.println函数多了回车换行功能。例程:读取输入的字符,并在监视器中显示出来的程序如下。Stringval=;voidsetup(){Serial.begin(9600);}voidloop(){while(Serial.available()0){val+=char(Serial.read());delay(5);}if(val.length()0){Serial.println(val);val=;}}八、认识函数库•函数库:由系统建立的具有一定功能的函数的集合。库中存放函数的名称和对应的目标代码,以及连接过程中所需的重定位信息。用户也可以根据自己的需要建立自己的用户函数库。•库函数:存放在函数库中的函数。库函数具有明确的功能、入口调用参数和返回值。•头文件:有时也称为包含文件。C语言库函数与用户程序之间进行信息通信时要使用的数据和变量,在使用某一库函数时,都要在程序中嵌入(用#include)该函数对应的头文件。九、机器人包含的库函数•库函数组成:由.h文件(头文件)和.cpp文件(源程序文件)组成。序号库函数名称包含文件库函数主要功能1TrackTrack.h、Track.cpp对应机器人红外传感器的库函数,主要用于控制机器人沿着黑色线进行循线。2ColSensorColSensor.h、ColSensor.cpp对应机器人颜色传感器的库函
本文标题:智能垃圾分类机器人
链接地址:https://www.777doc.com/doc-7030311 .html