




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Arduino基础教程 基本函数的使用Arduino语言 Arduino语言是建立在C/C+基础上的,其实也就是基础的C语言,Arduino语言只不过把AVR单片机(微控制器)相关的一些参数设置都函数化,不用我们去了解他的底层,让我们不了解AVR单片机(微控制器)的朋友也能轻松上手。Arduino语言关键字:关键字: if if.else for switch Casewhile do. while break continue return goto Arduino语言语法符号:;/*/ 运算符:= + - * / % Arduino语言数据类型:boolean 布尔类型 char byte
2、 字节类型 int unsigned int long unsigned long float double string array void 数据类型转换:char() byte() int() long() float() Arduino语言常量: HIGH | LOW 表示数字IO口的电平,HIGH 表示高电平(1),LOW 表示低电平(0)。 INPUT | OUTPUT 表示数字IO口的方向,INPUT 表示输入(高阻态),OUTPUT 表示输出(AVR能提供5V电压 40mA电流)。 true | false true 表示真(1),false表示假(0)。 Arduino语言/
3、*Arduino 语言*/结构void setup() 初始化变量,管脚模式,调用库函数等 void loop() 连续执行函数内的语句 一、数字I/O口的操作函数n1、pinMode(pin,mode);n2、digitalWrite(pin,value);n3、digitalRead(pin);1、pinMode(pin,mode)npinMode函数用以配置引脚与输出或输入模式,它是一个无返回值函数。函数有两个参数,pin和mode。Pin参数表示要配置的引脚,mode参数表示设置的参数INPUT(输入)和OUTPUT(输出)。nINPUT参数用于读取信号,OUTPUT用于输出控制信号。
4、nPIN的范围是数字引脚013,也可以把模拟引脚(A0A5)作为数字引脚使用,此时编号为14脚对应模拟引脚0,19脚对应模拟引脚5.n一般会放在setup里,先设置再使用2、digitalWrite(pin,value)n该函数的作用是设置引脚的输出电压为高电平或低电平。该函数也是一个无返回值的函数。nPin参数表示所要设置的引脚,value参数表示输出的电压HIGH(高电平)或LOW(低电平)。n注意:使用前必须先用pinMode设置。3、digitalRead(pin)n该函数在引脚设置为输入的情况下,可以获取引脚的电压情况HIGH(高电平)或者LOW第电平。例程nint button=9
5、; /设置第9脚为按钮输入引脚nint LED=13; /设置第13脚为LED输出引脚,内部连上板上的LED灯。nvoid setup()n pinMode(button,INPUT); /设置为输入n pinMode(LED,OUTPUT); /设置为输出nnvoid loop()n if(digitalRead(button)=LOW) /如果读取低电平低电平n digitalWrite(LED,HIGH); /13脚输出高电平n elsen digitalWrite(LED,LOW); /否则输出低电平n二、模拟I/O口的操作函数n1、analogReference(type);n2、a
6、nalogRead(pin);n3、analogWrite(pin,value);1、analogReference(type)n该函数用于配置模拟引脚的参考电压。有3种类型。nDEFAULT:默认值,参考电压是5V.nINTERNAL:低电压模式,使用片内基准电压源2.56VnEXTERNAL:扩展模式,通过AREF引脚获取参考电压。n注意:不使用本函数的话,默认是参考电压5V。使用AREF接参考电压,需接个5K欧的上拉电阻。2、analogRead(pin)n用于读取引脚的模拟量电压值,每读取一次需要花100US的时间。参数pin表示所要获取模拟量电压值的引脚,返回为int型。精度10位,
7、返回值从01023。n注意:函数参数的pin范围是05,对应板上的模拟口A0A5。3、analogWrite(pin,value)n该函数是通过PWM的方式在引脚上输出一个模拟量。PWMPulse-Width Modulation脉冲宽度调制PWM输出的一般形式:n主要用于LED亮度控制,电机转速控制等方面。nArduino中的PWM的频率大约为490HZ。nUNO板上支持以下数字引脚(不是模拟输入引脚)作为PWM模拟输出:3、5、6、9、10、11. 板上带PWM输出的都有号。n注意:PWM输出位数为8位,从0255例程nint sensor=A0; /A0引脚读取电位器nint LED=1
8、1; /第11引脚输出LEDnvoid setup()n Serial.begin(9600);nnvoid loop()n int v;n v=analogRead(sensor);n Serial.println(v,DEC); /可以观察读取的模拟量n analogWrite(LED,v/4); /读回的值范围是01023结果除以4才能得到0255的区间值n 三、高级I/OnPulseln(pin,state,timeout)n该函数用于读取引脚脉冲的时间长度,脉冲可以是HIGH或者LOW。如果是HIGH,函数将先等引脚变为高电平,然后开始计时,一直到变为低电平。n返回脉冲持续的时间长度
9、,单位为ms.如果超时没有读到的话,返回0.例程说明:n做一个按钮脉冲计时器,测一下按钮的时间,测测谁的反应快,看谁能按出最短的时间。n按钮接第3脚nint button=3;nint count;nvoid setup()npinMode(button,INPUT);nnvoid loop()n count=pulseIn(button,HIGH);n if(count!=0)n Serial.println(count,DEC);n count=0;n n四、时间函数n1、delay(ms);n2、delayMicroseconds(us);n3、millis();n4、micros();
10、1、delay(ms);n延时函数,参数是延时的时长,单位是ms(毫秒)。例程跑马灯nvoid setup()nn pinMode(6,OUTPUT); /定义为输出n pinMode(7,OUTPUT);n pinMode(8,OUTPUT);n pinMode(9,OUTPUT);nnvoid loop()n int i; nfor(i=6;i10000) /如果延时超过10秒,点亮LEDn digitalWrite(LED,HIGH);n n else digitalWrite(LED,LOW);n4、micros()n该函数返回开机到现在运行的微秒值。返回值是unsigned long
11、 .70分钟溢出。n1000微秒=1毫秒例程原理n连续按按钮,看你的反应有多快。n按钮接D3;从第2按开始,每按一次会减去上一次按的时间,看你连续按的间隔时间有多快。例程显示当前的微秒值nunsigned long time; nvoid setup()n Serial.begin(9600); n nvoid loop()n Serial.print(Time: ); ntime = micros(); /读取当前的微秒值nSerial.println(time); / 打印开机到目前运行的微秒值ndata delay(1000); /延时1秒n 例程跑马灯nint LED=13;nunsi
12、gned long i,j; nvoid setup()npinMode(LED,OUTPUT);n i=micros(); /读入初始值nnvoid loop()n j=micros(); /不断读入当前时间值n if(j-i)1000000) /如果延时超过10秒,点亮LEDn digitalWrite(LED1+k,HIGH);n n else digitalWrite(LED,LOW);n五、中断函数n1、attachInterrupt(interrput,function,mode);n2、detachInterrupt(interrput);日常生活中的中断日常生活中的中断 你在看
13、书,电话铃响,你在看书,电话铃响,于是你在书上做上记号,于是你在书上做上记号,去接电话,与对方通话;去接电话,与对方通话;门铃响了,有人敲门,你门铃响了,有人敲门,你让打电话的对方稍等一下,让打电话的对方稍等一下,你去开门,并在门旁与来你去开门,并在门旁与来访者交谈,谈话结束,关访者交谈,谈话结束,关好门;回到电话机旁,继好门;回到电话机旁,继续通话,接完电话后再回续通话,接完电话后再回来从做记号的地方接着看来从做记号的地方接着看书。书。看看 书书接接电电话话与与来来访访者者交交谈谈电话铃响敲门声看看 书书接接电电话话n 中断的概念 单片机中的中断概念单片机中的中断概念n中断由于某一随机事件的
14、发生,计算机暂停原程序的运行,转去执行另一程序(随机事件),处理完毕后又自动返回原程序继续运行。n中断源引起中断的原因,或能发生中断申请的来源。n主程序计算机现行运行的程序。n中断服务子程序处理突发事件的程序。 主程序主程序主程序主程序中中断断服服务务程程序序1中中断断服服务务程程序序1中中断断服服务务程程序序2随机事件1随机事件21、attachInterrupt(interrput,function,mode);n该函数用于设置外部中断,函数有3个参数,分别表示中断源,中断处理函数和触发模式。n中断源可选0或者1,对应2或者3号数字引脚。n中断处理函数是一段子程序,当中断发生时执行该子程序
15、部分。n触发模式有四种类型,LOW(低电平触发)、CHANGE(变化时触发)、RISING(低电平变为高电平触发)、FALLING(高电平变为低电平触发)例程原理n数字D2口接按钮开关,D4口接LED灯1(红色)。D5口接LED2(绿色)。n在例程中,LED3每秒闪烁一次。使用中断0来控制LED1,中断1来控制LED2。n按下按钮,马上响应中断,由于中断响应速度快,LED3不受影响,继续闪烁。比查询的效率要高。n尝试4个参数,例程1试验LOW,CHANGE参数,例程2试验RISING和FALLING参数。nvolatile int state1=LOW,state2=LOW;nint LED1
16、=4;nint LED2=5;nint LED3=13; /使用板载的LED灯nvoid setup()n pinMode(LED1,OUTPUT);n pinMode(LED2,OUTPUT);n pinMode(LED3,OUTPUT);n attachInterrupt(0,LED1_Change,LOW); /低电平触发n attachInterrupt(1,LED2_Change,CHANGE); /任意电平变化触发nnvoid loop()n digitalWrite(LED3,HIGH); n delay(500);n digitalWrite(LED3,LOW);n delay
17、(500);nnvoid LED1_Change()n state1=!state1;n digitalWrite(LED1,state1);n delay(100);nnvoid LED2_Change()n state2=!state2;n digitalWrite(LED2,state2);n delay(100);nnvolatile int state1=LOW,state2=LOW;nint LED1=4;nint LED2=5;nint LED3=13;nvoid setup()n pinMode(LED1,OUTPUT);n pinMode(LED2,OUTPUT);n pin
18、Mode(LED3,OUTPUT);n attachInterrupt(0,LED1_Change,RISING); /电平上升沿触发n attachInterrupt(1,LED2_Change,FALLING); /电平下降沿触发nnvoid loop()n digitalWrite(LED3,HIGH);n delay(500);n digitalWrite(LED3,LOW);n delay(500);nnvoid LED1_Change()n state1=!state1;n digitalWrite(LED1,state1);n delay(100);nnvoid LED2_Cha
19、nge()n state2=!state2;n digitalWrite(LED2,state2);ndelay(100);n2、detachInterrupt(interrput);n该函数用于取消中断,参数interrupt表示所要取消的中断源。六、串口通讯函数n1、Serial.begin();n2、Serial.available();n3、Serial.read();n4、Serial.print();n5、Serial.println();串口概述n串行接口Serial Interface是指数据一位位地顺序传送,其特点是通信线路简单,只要一对传输线就可以实现双向通信.n串口的出现
20、是在1980年前后,数据传输率是115kbps230kbps。串口出现的初期是为了实现连接计算机外设的目的,初期串口一般用来连接鼠标和外置Modem以及老式摄像头和写字板等设备 。n由于串口(COM)不支持热插拔及传输速率较低目前部分新主板和大部分便携电脑已开始取消该接口,目前串口多用于工控和测量设备以及部分通信设备中。 串口的应用n应用举例:各种传感器采集装置,GPS信号采集装置,多个单片机通讯系统,门禁刷卡系统的数据传输,机械手控制、操纵面板控制电机等等。广泛应用于低速数据传输的工程应用。1、Serial.begin();n该函数用于设置串口的波特率。一般的波特率有9600,19200, 57600,115200等。n波特率是指每秒传输的比特数。除以8可以得到每秒传输的字节数。n示范:Serial.begin(57600);2、Serial.available();该函数用来
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025店面房屋租赁合同范本
- 2025智能手机买卖合同范本
- 2025年文明安全纪律教育月工作方案
- 2024-2025苏教版科学一年级下册第一单元测试卷附答案
- 2025小学道德与法治教师课标练习卷选择题参考答案
- 2025高中地理教师课标考试模拟试卷及答案(二套)
- 2025资产委托管理合同(投资受托人)
- 2025【深入解析无效合同】合同无效性分析
- 2025供电公司劳动合同
- 2025年农产品交易合同范本
- 新媒体技术应用 课件 5.1.1易企秀如何制作H5
- 如何正确佩戴安全帽
- 【高考真题】2022年新高考物理真题试卷-河北卷(含答案)
- 社保系统保密培训
- 2024-2030年中国临近空间飞行器发展规划及未来前景展望研究报告
- 瑞幸咖啡认证考试题库(值班主管)
- 工厂自动化规划报告
- 2023年LNG设备操作维护手册培训资料
- 一般企业财务报表附注(模板)
- 【MOOC】倾听-音乐的形式与审美-武汉大学 中国大学慕课MOOC答案
- 人力资源调配应急演练
评论
0/150
提交评论