您好,欢迎访问三七文档
Arduino函数导语Arduino语言是建立在C/C++基础上的,其实也就是基础的C语言,只不过把AVR单片机(微控制器)相关的一些参数设置都函数化了,不用去了解它的底层硬件,让不了解AVR单片机(微控制器)的朋友也能轻松上手。Arduino基本函数1.数字I/O2.模拟I/O3.高级I/O4.时间函数5.数学函数6.三角函数7.外部中断函数8.中断使能函数9.串口收发函数Contents数字I/O11)pinMode(pin,mode)2)digitalWrite(pin,value)3)intdigitalRead(pin)1)pinMode(pin,mode)描述:将指定的针脚配置成输出或输入。语法:pinMode(pin,mode)。参数:pin,要设置模式的针脚;mode,INPUT或OUTPUT。LEDPin=13//LED连接到数字脚13voidsetup(){pinMode(LEDPin,OUTPUT);//设置数字脚为输出}voidloop(){digitalWrite(LEDPin,HIGH);//打开LEDdelay(1000);//等待一秒digitalWrite(LEDPin,LOW);//关掉LEDdelay(1000);//第二次等待一秒}程序示例:2)digitalWrite(pin,value)语法:digitalWrite(pin,value)。参数:pin,针脚编号(如1,5,10,A0,A3);value,HIGH或LOW。//将13号针脚设置为高电位,延时一秒,然后设置为低电位intLEDPin=13;//LED连接到数字13号针脚voidsetup(){pinMode(LEDPin,OUTPUT);//设置数字针脚为输入模式}voidloop(){digitalWrite(LEDPin,HIGH);//使LED亮delay(1000);//延时一秒digitalWrite(LEDPin,LOW);//使LED灭delay(1000);//延时一秒}程序示例:3)intdigitalRead(pin)描述:读取指定针脚的值,HIGH或LOW。语法:digitalRead(PIN)。参数:pin,你想读取的针脚号(int)。返回:HIGH或LOW。//将13脚设置为输入脚7脚的值LEDPin=13//LED连接到13脚intinPin=7;//按钮连接到数字引脚7intval=0;//定义变量存以储读值voidsetup(){pinMode(LEDPin,OUTPUT);//将13脚设置为输出pinMode(inPin,INPUT);//将7脚设置为输入}voidloop()val=digitalRead(inPin);//读取输入脚digitalWrite(LEDPin,val);//将LED值设置为按钮的值}程序示例:Contents模拟I/O21)analogReference(type)2)analogRead()3)analogWrite()1)analogReference(type)描述:设定用于模拟输入的基准电压(输入范围的最大值)。DEFAULT:默认值5V(Arduino板为5V)或3V(Arduino板为3.3V)为基准电压。INTERNAL:在ATmega168和ATmega328上以1.1V为基准电压,在ATmega8上以2.56V为基准电压(ArduinoMega无此选项)。INTERNAL1V1:以1.1V为基准电压(此选项仅针对ArduinoMega)。INTERNAL2V56:以2.56V为基准电压(此选项仅针对ArduinoMega)。EXTERNAL:以AREF引脚(0~5V)的电压作为基准电压。参数:type,使用哪种引用类型(DEFAULT、INTERNAL、INTERNAL1V1、INTERNAL2V56或者EXTERNAL)。注意事项:改变基准电压后,之前从analogRead()读取的数据可能不准确。2)analogRead()描述:从指定的模拟引脚读取数据值。Arduino板包含一个6通道(Mini和Nano有8个通道,Mega有16个通道)、10位模拟/数字转换器,这表示它将0~5V的输入电压映像到0~1023的整数值,即每个读数对应电压值为5V/1024,都每单位0.0049V(4.9mV)。输入范围和精度可以通过analogReference()改变,其大约需要100μs(0.0001s)来读取模拟输入,所以最大的阅读速度是每秒10000次。语法:analogRead(PIN)数值的读取:从输入引脚(大部分板子从0~5,Mini和Nano从0~7,Mega从0~15)读取数值。返回:从0到1023的整数值。注意事项:如果模拟输入引脚没有连入电路,由analogRead()返回的值将根据多项因素(例如其他模拟输入引脚,手靠近板子等)产生波动。3)analogWrite()描述:从一个针脚输出模拟值(脉冲宽度调整,PulseWidthModulation,PWM),让LED以不同的亮度点亮或驱动电机以不同的速度旋转。analogWrite()输出结束后,该针脚将产生一个稳定的特定占空比的PWM,该PWM输出持续到下次调用analogWrite()(或在同一针脚调用digitalRead()或digitalWrite())。//通过读取电位器的阻值控制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)}程序示例:Contents高级I/O31)tone()2)noTone()3)ShiftOut()4)shiftIn()5)pulseIn()1)tone()描述:在一个针脚上产生一个特定频率的方波(50%占空比)。持续时间可以设定,波形会一直产生直到调用noTone()函数。该针脚可以连接压电蜂鸣器或其他喇叭播放声音。在同一时刻只能产生一个声音。如果一个针脚已经在播放音乐,那么呼叫tone()将不会有任何效果。如果音乐在同一个针脚上播放,那么它会自动调整频率。使用tone()函数会与3脚和11脚的PWM产生干扰(Mega板除外)。2)noTone()描述:停止由tone()产生的方波。如果没有使用,tone()将不会有变化。3)ShiftOut()描述:将数据的一个字节一位一位地移出。从最高有效位(最左边)或最低有效位(最右边)4)shiftIn()描述:将数据的一个字节一位一位地移入。从最高有效位(最左边)或最低有效位(最右边)5)pulseIn()描述:读取一个针脚的脉冲(HIGH或LOW)。例如,如果value是HIGH,则pulseIn()会等待引脚变为HIGH,开始计时,再等待引脚变为LOW并停止计时。返回脉冲的长度,单位为微秒。如果在指定的时间内无脉冲,函数返回0。此函数的计时功能由经验决定,长时间的脉冲计时可能会出错。计时范围为10μs~3min。(1s=103ms=106μs)。Contents时间函数41)millis()2)micros()3)delay()4)delayMicroseconds()1)millis()描述:返回Arduino开发板运行当前程序开始的毫秒数,这个数字将在约50天后溢出(归零)。2)micros()描述:返回Arduino开发板从运行当前程序开始的微秒数,这个数字将在约70分钟后溢出(归零)。在16MHz的Arduino开发板上(比如Duemilanove和Nano),这个函数的分辨率为4μs(即返回值总是4的倍数);在8MHz的Arduino开发板上(比如LilyPad),这个函数的分辨率为8μs。3)delay()描述:是程序设定的暂停时间(单位毫秒)。4)delayMicroseconds()描述:使程序暂停指定的一段时间(单位微秒)。目前,能够产生的最大延时准确值是16383,这可能会在未来的Arduino版本中有所改变。对于超过几千μs的延时,应该使用delay()代替。Contents数学函数51)min(x,y)2)max(x,y)3)abs(x)4)constrain(x,a,b)5)map(value,fromLow,fromHigh,toLow,toHigh)6)pow(base,exponent)7)sqrt(x)1)min(x,y)描述:计算两个数字中的最小值。参数:X,第一个数字,任何数据类型;Y,第二个数字,任何数据类型。返回:两个数字中的较小者。2)max(x,y)描述:计算两个数字中的最大值。参数:X,第一个数字,任何数据类型;Y,第二个数字,任何数据类型。返回:两个数字中的较大者。3)abs(x)描述:计算一个数的绝对值。参数:x,一个数值。返回:如果x大于或等于0,则返回它本身;如果x小于0,则返回它的相反数。4)constrain(x,a,b)描述:将一个数值约束在一个范围内。参数:x,要被约束的数值,适用于所有的数据类型;a,该范围的最小值,适用于所有的数据类型;b,该范围的最大值,适用于所有的数据类型。返回值:x,如果x是介于a和b之间;a,如果x小于a;b,如果x大于b。5)map(value,fromLow,fromHigh,toLow,toHigh)描述:将一个数值从一个范围映像到另外一个范围,也就是说,会将fromLow到fromHigh之间的值映射至toLow到toHigh之间。不限制值的范围,因为范围外的值有时是刻意的和有用的。如果需要限制的范围,constrain()函数可以用于此函数之前或之后。6)pow(base,exponent)描述:计算一个数的幂次方。pow()可以用来计算一个数的分数幂,其用来产生指数幂的数或曲线非常方便。参数:base,底数(float);exponent,幂(float)。返回:一个数的幂次方值(double)。7)sqrt(x)描述:计算一个数的平方根。参数:x,被开方数,任何类型。返回:此数的平方根,类型double。Contents三角函数61)sin(rad)2)cos(rad)3)tan(rad)Contents外部中断函数71)attachInterrupt(interrupt,function,mode)2)detachInterrupt(interrupt)1)attachInterrupt(interrupt,function,mode)描述:当发生外部中断时,调用一个指定的函数。这会用新的函数取代之前指定给中断的函数。大多数的Arduino板有两个外部中断:0号中断(引脚2)和1号中断(引脚3),部分不同类型Arduino板的中断及引脚关系不同。ArduinoDue有更强大的中断能力,其允许在所有的引脚上触发中断程序,可以直接使用attachInterrrupt指定引脚号码。2)detachInterrupt(interrupt)描述:关闭给定的中断。参数:interrupt,中断禁用的数(0或者1)。Contents中断使能函数81)interrupts()(中断)2)noInterrupts()1)interrupts()(中断)描述:重新启用中断(使用noInterrupts()命令后将被禁用)。中断允许一些重要任务在后台运行。禁用中断后一些函数可能无法工作,传入信息可能会被忽略。中断会稍微打乱代码的时间,可以在程序关键部分禁用中断。2)noInterrupts()描述:禁止中断。
本文标题:Arduino函数
链接地址:https://www.777doc.com/doc-4058652 .html