Part3 Arduino基本函数

来源:互联网 发布:民生银行网络面试 编辑:程序博客网 时间:2024/06/07 15:35

3.1 数字I/O

<1>pinMode(pin,mode)

数字IO口输入输出模式定义函数,pin表示为0~13,mode表示INPUT或OUTPUT。

:

pinMode(13,IOUTPUT);// 将脚位13设定为输出模式

<2>digitalWrite(pin,value) 

数字IO口输出电平定义函数,pin表示为0~13,value表示为HIGH或LOW。必须先定义为输入或输出模式digitalWrite才能生效。

:

digitalWrite(8,HIGH);//将脚位 8设定输出高电位

<3>digitalRead(pin)   

数字IO口读输入电平函数,pin表示为0~13,该函数返回值为int型表示引脚的电压情况。当检测到引脚为高电平表示为HIGH或者低电平表示为LOW。

例:

val= digitalRead(7); // 读出引脚7的值回传给 val

3.2 模拟I/O

<1>analogReference()

    analogReference()函数的作用是配置模拟引脚的参考电压。在嵌入式应用中引脚获取模拟电压值之后,将根据参考电压将模拟值转换到0~1023。该函数为无返回值函数,参数为type类型,有3种类型(DEFAULT/INTERNAL/EXTERNAL),具体含义如下:

DEFAULT:默认值,参考电压为5V

INTERNAL:低电压模式,使用片内基准电压源。

EXTERNAL:扩展模式,通过AREF引脚获取参考电压

<2>analogRead(pin)   

模拟IO口读函数,读出类引脚位的电压并回传一个0到1023 的数值表示相对应的0到5的电压值。

:

val= analogRead(0); //读出类模拟引脚位 0的值并回传给 val

<3>analogWrite(pin,value)   

数字IO口PWM输出函数,Arduino数字IO口标注了~符号的IO口可使用该函数,pin一般表示3, 5, 6, 9, 10, 11,value范围在0~255的区间,对应PWM的占空比为0%〜100%

PWM英文写法是“Pulse-width modulation”,也翻译成“脉冲宽度调制”。PWM是一块非常重要的学习内容在后面的章节会展开详细讲解。

3.3时间函数

<1>millis()  

返回时间函数(单位ms),回传程序开始执行到目前的毫秒,函数返回值为unsigned long型,无参数。大约需要50天的时间溢出,溢出后从零开始计时。

time=millis();//将程序当前的运行时间回传给time

<2>micros()    

类似返回时间函数,单位为微秒(μs),大约需要70分钟溢出。

<3>delay(ms)   

延时函数(单位ms)。暂停程序运行一段时间。

<4>delayMicroseconds(us)   

延时函数(单位us)。功能类似delay(ms).

例:

delay(500);//暂停半秒(500毫秒)

3.7串口通信

这里编者只是介绍有关Arduino串口通信相关函数的使用方法,方便读者的查阅。在后面的章节会结合实例介绍串口通信的使用方法。

(1)   Serial.begin(intspeed)

初始化串口比特率函数,直接输入相应的数值就把串口通信的寄存器设置为对应的比特率了,一般常用的有4800、9600、14400等。具体使用时,由所选择的器件决定,如使用蓝牙模块HC-06是串口波特率应设为9600.

(2)   Serial.available()

串口输入数据读取前的判断函数,返回值为1时串口buff中有数据,返回值为0时串口buff中无数据或者数据已经读取出来过。经常if(Serial.available())来询问监视串口。

(3)   Serial.read()

从串口buff中读取数据进来.比如information=Serial.read();则buff中的数据会赋值给information变量。

(4)   Serial.flush()   

清空串口buff中的数据。

(5)   Serial.print(data)

把data从串口发送出去

需要注意的是串口的数据发送方式有多种,下面是常用的几种。

(1)   Serial.print(data)

Serial.print(data)会把data以字符串的ASCII码发送出去。如Serial.print(79),,那么串口发送出去的就是字符串79的ASCII码。

(2)   Serial.print(data,DEC)

这样发送的是data的10进制字符串。如int data=79;Serial.print(data,DEC);则串口发出去的是string"79"。

(3)   Serial.print(data,HEX)

这样发送的是data的16进制字符串。如 intdata=79;Serial.print(data,HEX);那串口发出去的就是string"4F"。

(4)   Serial.print(data,OCT)

这里是将数据data以8进制字符串的形式发送出去。如 intdata=79;Serial.print(data,OCT); 那串口发出去的就是string"117"。

(5)   Serial.print(data,BIN)

将data以二进制字符串的形式发出去,如 int data=79;Serial.print(data,BIN);那串口发出去的就是string"1001111"。

(6)   Serial.print(data,BYTE)

这样是把data作为ASCII码对应的字符后发送。如 int data = 79;Serial.print(data,BYTE); 那串口发出去的就是string"O"

(7)   Serial.println(data)

功能类似上面的发送函数,也是把数据发送出去,不同的是发送的数据后面带上换行符号。

3.8中断函数

这里编者只是介绍有关Arduino中断相关函数的使用方法,方便读者查阅,在后面的章节会结合实例介绍中断的使用方法。

外部中断函数:

<1>attachInterrupt(interrupt,function,mode)

interrupt:中断引脚数
function
:中断发生时调用的函数,此函数必须不带参数和不返回任何值。该函数有时被称为中断服务程序。
mode:定义何时发生中断以下四个contstants预定有效值:
LOW 当引脚为低电平时,触发中断
CHANGE 当引脚电平发生改变时,触发中断
RISING 当引脚由低电平变为高电平时,触发中断
FALLING 当引脚由高电平变为低电平时,触发中断.
当发生外部中断时,调用一个指定函数。当中断发生时,该函数会取代正在执行的程序。大多数的Arduino板有两个外部中断:0(数字引脚2)和1(数字引脚3)。arduino Mega有四个外部中断:数字2(引脚21),3(20针),4(引脚19),5(引脚18)。
注意事项
当中断函数发生时,delay()和millis()的数值将不会继续变化。当中断发生时,串口收到的数据可能会丢失。你应该声明一个变量来在未发生中断时储存变量
<2>detachInterrupt(interrupt)   

中断开关,interrupt=1 开,interrupt=0 关。

中断使能函数:
<1>interrupts() 
使能中断
<2>noInterrupts()  禁止中断



0 0
原创粉丝点击