




已阅读5页,还剩25页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
智能垃圾分类机器人,arduino基础,2,01,A,什么是Arduino?,02,B,Arduino能做什么?,03,C,Arduino怎么用?,一、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高端应用,乐为联网云数据平台,四、认识Arduino开发板-ArduinoUNO,四、认识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文件(源程序文件)组成。,十、怎样使用库函数,放置位置:一般是放到lib文件里调用方法:将它所在的文件名用#include,libraries所在的路径,库函数拷贝到的路径,#ifndefColSensor_h#defineColSensor_hclassColSensorprivate:/定义引脚intS0,S1,S2,S3,OUT;/定义延时unsignedlongtime;public:/定义计数器unsignedlongg_count;/定义数组,用来存放读取到的RGB值intg_array3;/定义数组,用来存放比例系数floatg_SF3;/构造函数ColSensor(inta,intb,intc,intd,inte,unsignedlongf);,/将引脚配置为输出,同时设置输出比例因子voidMode(inta=1,intb=1);/*控制数字引脚,切换滤波器。红,绿,蓝分别对应S2与S3的00,11,01电平;10时过滤所有颜色*/voidDigital_out(inta,intb);/计算比例系数voidTest();/计算RGB值voidGet();#endif,垃圾分类小车ColSensor.h文件内代码,#include#includeColSensor.hColSensor: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);voidC
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 高中语文第二单元4喜看稻菽千重浪-记首届国家最高科技奖获得者袁隆平心有一团火温暖众人心“探界者”钟扬练习含解析部编版必修上
- 新零售背景下实体书店转型策略:2025年线上线下融合模式创新报告
- 金融机构数字化转型中的信用风险监控与预警体系构建报告
- 2025年远程医疗助力偏远地区医疗服务体系中的远程放疗与化疗服务报告
- 六一活动方案《我运动、我健康、我快乐》教案(模板)
- 绿色包装推动绿色餐饮:2025年环保纸包装在餐饮行业中的应用报告
- 水务企业科技管理档案工作分析
- 社区健康教育核心概念解析
- 美丽乡村建设农业产品智慧农村项目策划方案
- 2025年文化产业引导资金申请项目文化产业与科技产业融合发展报告
- 2025辅警考试题《公安基础知识》综合能力试题库
- 2025年小学科学课程标准考试测试题及答案
- 自动驾驶车辆的事故责任归属法律问题研究
- 餐饮废水排放管理办法
- 2025届马鞍山市第二中学物理高二下期末监测试题含解析
- 心理健康教育:家长心理健康讲座
- 2026版高三一轮总复习(数学) 第二章 重点培优课1 函数性质的综合应用 课件
- QC品质工程图模板
- 2024年度可持续发展报告-泡泡玛特-
- 2025至2030中国西餐厅行业发展分析及发展趋势分析与未来投资战略咨询研究报告
- 生物炭固碳机制-洞察及研究
评论
0/150
提交评论