首页 理论教育Arduino常用函数大全

Arduino常用函数大全

【摘要】:参数pin表示所要获取模拟量电压值的引脚,返回为int型。Arduino中的PWM的频率大约为490 Hz。例程:3.高级I/O1)Pulseln该函数用于读取引脚脉冲的时间长度,脉冲可以是HIGH或者LOW。使用delay函数期间无法做其他工作。1)attachInterrupt该函数用于设置外部中断,函数有3个参数,分别表示中断源、中断处理函数和触发模式。1)Serial.begin()该函数用于设置串口的波特率。

1.数字I/O接口的操作函数

1)pinMode(pin,mode)

PinMode函数用以配置引脚的输出或输入模式,它是一个无返回值函数。该函数有两个参数,pin和mode。pin参数表示要配置的引脚,mode参数表示设置的参数INPUT(输入)和OUTPUT(输出)。INPUT参数用于读取信号,OUTPUT用于输出控制信号。PIN的范围是数字引脚0~13,也可以把模拟引脚(A0~A5)作为数字引脚使用,此时编号为14脚对应模拟引脚0,19脚对应模拟引脚5。PinMode函数一般会放在setup里,先设置再使用。

2)digitalWrite(pin,value)

该函数的作用是设置引脚的输出电压为高电平或低电平。该函数也是一个无返回值的函数。Pin参数表示所要设置的引脚,value参数表示输出的电压HIGH(高电平)或LOW(低电平)。注意:使用前必须先用pinMode设置。

3)digitalRead(pin)

该函数在引脚设置为输入的情况下,可以获取引脚的电压情况HIGH(高电平)或者LOW低电平。

例程:

2.模拟I/O接口的操作函数

1)analogReference(type)

该函数用于配置模拟引脚的参考电压。有三种类型:DEFAULT为默认值,参考电压是5 V;INTERNAL表示低电压模式,使用片内基准电压源2.56 V;EXTERNAL表示扩展模式,通过AREF引脚获取参考电压。注意:不使用本函数的话,默认是参考电压5 V。使用AREF接参考电压,需接个5 kΩ的上拉电阻

2)analogRead(pin)

用于读取引脚的模拟量电压值,每读取一次需要花100μs的时间。参数pin表示所要获取模拟量电压值的引脚,返回为int型。精度10位,返回值从0~1 023。注意:函数参数的pin范围是0~5,对应板上的模拟口为A0~A5。

3)analogWrite(pin,value)

该函数是通过PWM的方式在引脚上输出一个模拟量。主要用于LED亮度控制、电动机转速控制等方面。Arduino中的PWM的频率大约为490 Hz。UNO板上支持以下数字引脚(不是模拟输入引脚)作为PWM模拟输出:3、5、6、9、10、11。板上带PWM输出的都有~号。注意:PWM输出位数为8位,从0~255。

例程:

3.高级I/O

1)Pulseln(pin,state,timeout)

该函数用于读取引脚脉冲的时间长度,脉冲可以是HIGH或者LOW。如果是HIGH,函数将先等引脚变为高电平,然后开始计时,一直到变为低电平。返回脉冲持续的时间长度,单位为ms,如果超时没有读到,则返回0。

例程:做一个按钮脉冲计时器,测一下按钮的时间,测哪一个反应快,看哪一个能按出最短的时间。按钮接第3脚。

4.时间函数

1)delay(ms)

延时函数,参数是延时的时长,单位是ms(毫秒)。

例程——跑马灯:

2)delayMicroseconds(μs)

延时函数,参数是延时的时长,单位是μs(微秒)(1 ms=1 000μs),该函数可以产生更短的延时。

3)millis()

应用该函数可以获取单片机通电到现在运行的时间长度,单位是ms。系统最长的记录时间为9 h 22 min,超出从0开始。返回值是unsigned long型。该函数适合作为定时器使用,不影响单片机的其他工作。使用delay函数期间无法做其他工作。

4)micros()

该函数返回开机到现在运行的微秒值。返回值是unsigned long,70 min溢出。

5.中断函数

单片机中与中断相关的概念如下:

中断——由于某一随机事件的发生,计算机暂停原程序的运行,转去执行另一程序(随机事件),处理完毕后又自动返回原程序继续运行。

中断源——引起中断的原因,或能发生中断申请的来源。

主程序——计算机现行运行的程序。

中断服务子程序——处理突发事件的程序。

1)attachInterrupt(interrput,function,mode)

该函数用于设置外部中断,函数有3个参数,分别表示中断源、中断处理函数和触发模式。

中断源可选0或者1,对应2或者3号数字引脚。中断处理函数是一段子程序,当中断发生时执行该子程序部分。触发模式有四种类型,LOW(低电平触发)、CHANGE(变化时触发)、RISING(低电平变为高电平触发)、FALLING(高电平变为低电平触发)。

例程:数字D2口接按钮开关,D4口接LED1(红色),D5口接LED2(绿色),LED3每秒闪烁一次,使用中断0来控制LED1,中断1来控制LED2。按下按钮,马上响应中断,由于中断响应速度快,LED3不受影响,继续闪烁,比查询的效率要高。

尝试4个参数,例程1试验LOW、CHANGE参数,例程2试验RISING和FALLING参数。

该函数用于取消中断,参数interrupt表示所要取消的中断源。

6.串口通信函数

串行接口Serial Interface是指数据一位位地顺序传送,其特点是通信线路简单,只要一对传输线就可以实现双向通信。串口的出现是在1980年前后,数据传输率是115~230 KB/s。串口出现的初期是为了实现连接计算机外设的目的,初期串口一般用来连接鼠标和外置Modem以及老式摄像头和写字板等设备。由于串口(COM)不支持热插拔及传输速率较低,目前部分新主板和大部分便携电脑已开始取消该接口,目前串口多用于工控和测量设备以及部分通信设备中。如各种传感器采集装置,GPS信号采集装置,多个单片机通信系统,门禁刷卡系统的数据传输,机械手控制、操纵面板控制电动机,等等。其广泛应用于低速数据传输的工程应用。

1)Serial.begin()

该函数用于设置串口的波特率。一般的波特率有9 600、19 200、57 600、115 200等。波特率是指每秒传输的比特数,除以8可以得到每秒传输的字节数。示范:Serial.begin(57600)。

2)Serial.available()

该函数用来判断串口是否收到数据,函数的返回值为int型,不带参数。

3)Serial.read()

将串口数据读入。该函数不带参数,返回值为串口数据,int型。

4)Serial.print()

该函数往串口发数据,可以发变量,也可以发字符串。

例句1:Serial.print(“today is good”);

例句2:Serial.print(x,DEC);以10进制发送x。

例句3:Serial.print(x,HEX);以16进制发送变量x。

5)Serial.println()

该函数与Serial.print()类似,只是多了换行功能。

7.数学

(1)min(x,y);求两者最小值。

(2)max(x,y);求两者最大值。

(3)abs(x);求绝对值。

(4)sin(rad);求正弦值。

(5)cos(rad);求余弦值。

(6)tan(rad);求正切值。

(7)random(small,big);求两者之间的随机数