Arduino语法手册函数部分.doc
《Arduino语法手册函数部分.doc》由会员分享,可在线阅读,更多相关《Arduino语法手册函数部分.doc(62页珍藏版)》请在咨信网上搜索。
1、Arduino 语法手册函数部分摘自::arduino_language_reference函数部分数字 I/OpinMode()描述将指定的引脚配置成输出或输入。详情请见digital pins。 语法pinMode(pin, mode) 参数pin:要设立模式的引脚 mode:INPUT或OUTPUT 返回无 例子ledPin = 13 / LED连接到数字脚13void setup()pinMode(ledPin,OUTPUT); /设立数字脚为输出void loop()digitalWrite(ledPin,HIGH); /点亮LED delay(1000); / 等待一秒 digit
2、alWrite(ledPin, LOW); / 灭掉LED延迟(1000); /等待第二个注意模拟输入脚也能当做数字脚使用,参与A0,A1,等 digitalWrite()描述给一个数字引脚写入HIGH或者LOW。 假如一个引脚已经使用pinMode()配置为OUTPUT模式,其电压将被设立为相应的值,HIGH为5V(3.3V控制板上为3.3V),LOW为0V。 假如引脚配置为INPUT模式,使用digitalWrite()写入HIGH值,将使内部20K上拉电阻(详见数字引脚教程)。写入LOW将会禁用上拉。上拉电阻可以点亮一个LED让其微微亮,假如LED工作,但是亮度很低,也许是由于这个因素引
3、起的。补救的办法是 使用pinMode()函数设立为输出引脚。 注意:数字13号引脚难以作为数字输入使用,由于大部分的控制板上使用了一颗LED与一个电阻连接到他。假如启动了内部的20K上拉电阻,他的电压将在1.7V左右,而不是正常的5V,由于板载LED串联的电阻把他使他降了下来,这意味着他返回的值总是LOW。假如必须使用数字13号引脚的输入模式,需要使用外部上拉下拉电阻。 语法digitalWrite(pin, value) 参数pin: 引脚编号(如1,5,10,A0,A3) value: HIGH or LOW 返回无 例子int ledPin = 13; / LED连接到数字13号端口v
4、oid setup() pinMode(ledPin, OUTPUT); / 设立数字端口为输入模式void loop() digitalWrite(ledPin, HIGH); / 使LED亮 delay(1000); / 延迟一秒 digitalWrite(ledPin, LOW); / 使LED灭 delay(1000); / 延迟一秒13号端口设立为高电平,延迟一秒,然后设立为低电平。 注释模拟引脚也可以当做数字引脚使用,使用方法是输入端口A0,A1,A2等。digitalRead()描述读取指定引脚的值,HIGH或LOW。 语法digitalRead(PIN) 参数pin:你想读取的
5、引脚号(int) 返回HIGH 或 LOW 例子ledPin = 13 / LED连接到13脚int inPin = 7; / 按钮连接到数字引脚7int val = 0; /定义变量以存储读值void setup() pinMode(ledPin, OUTPUT); / 将13脚设立为输出 pinMode(inPin, INPUT); / 将7脚设立为输入void loop() val = digitalRead(inPin); / 读取输入脚 digitalWrite(ledPin, val); /将LED值设立为按钮的值将13脚设立为输入脚7脚的值。 注意假如引脚悬空,digitalRe
6、ad()会返回HIGH或LOW(随机变化)。 模拟输入脚能当做数字脚使用,参见A0,A1等。 模拟 I/OanalogReference()描述配置用于模拟输入的基准电压(即输入范围的最大值)。选项有: DEFAULT:默认5V(Arduino板为5V)或3.3伏特(Arduino板为3.3V)为基准电压。INTERNAL:在ATmega168和ATmega328上以1.1V为基准电压,以及在ATmega8上以2.56V为基准电压(Arduino Mega无此选项)INTERNAL1V1:以1.1V为基准电压(此选项仅针对Arduino Mega)INTERNAL2V56:以2.56V为基准电
7、压(此选项仅针对Arduino Mega)EXTERNAL:以AREF引脚(0至5V)的电压作为基准电压。参数type:使用哪种参考类型(DEFAULT, INTERNAL, INTERNAL1V1, INTERNAL2V56, 或者 EXTERNAL)。 返回无 注意事项改变基准电压后,之前从analogRead()读取的数据也许不准确。 警告不要在AREF引脚上使用使用任何小于0V或超过5V的外部电压。假如你使用AREF引脚上的电压作为基准电压,你在调用analogRead()前必须设立参考类型为EXTERNAL。否则,你将会削短有效的基准电压(内部产生)和AREF引脚,这也许会损坏您Ar
8、duino板上的单片机。 此外,您可以在外部基准电压和AREF引脚之间连接一个5K电阻,使你可以在外部和内部基准电压之间切换。请注意,总阻值将会发生改变,由于AREF引脚内部有一个32K电阻。这两个电阻都有分压作用。所以,例如,假如输入2.5V的电压,最终在在AREF引脚上的电压将为2.5 * 32 /(32 + 5)= 2.2V。 analogRead()描述从指定的模拟引脚读取数据值。 Arduino板包含一个6通道(Mini和Nano有8个通道,Mega有16个通道),10位模拟数字转换器。这意味着它将0至5伏特之间的输入电压映射到0至1023之间的整数值。这将产生读数之间的关系:5伏特
9、/ 1024单位,或0.0049伏特(4.9 mV)每单位。输入范围和精度可以使用analogReference()改变。它需要大约100微秒(0.0001)来读取模拟输入,所以最大的阅读速度是每秒10000次。 语法analogRead(PIN) 数值的读取引脚:从输入引脚(大部分板子从0到5,Mini和Nano从0到7,Mega从0到15)读取数值 返回从0到1023的整数值 注意事项假如模拟输入引脚没有连入电路,由analogRead()返回的值将根据多项因素(例如其他模拟输入引脚,你的手靠近板子等)产生波动。例子 int analogPin = 3; /电位器(中间的引脚)连接到模拟输
10、入引脚3 /此外两个引脚分别接地和+5 Vint val = 0; /定义变量来存储读取的数值void setup()serial.begin(9600); /设立波特率(9600)void loop()val = analogRead(analogPin); /从输入引脚读取数值serial.println(val); /显示读取的数值返回主菜单 analogWrite() - PWM描述从一个引脚输出模拟值(PWM)。可用于让LED以不同的亮度点亮或驱动电机以不同的速度旋转。analogWrite()输出结束后,该引脚将产生一个稳定的特殊占空比方波,直到下次调用analogWrite()(
11、或在同一引脚调用digitalRead()或digitalWrite())。PWM信号的频率大约是490赫兹。 在大多数arduino板(ATmega168或ATmega328),只有引脚3,5,6,9,10和11可以实现该功能。在aduino Mega上,引脚2到13可以实现该功能。老的Arduino板(ATmega8)的只有引脚9、10、11可以使用analogWrite()。在使用analogWrite()前,你不需要调用pinMode()来设立引脚为输出引脚。 analogWrite函数与模拟引脚、analogRead函数没有直接关系。 语法analogWrite(pin,value)
12、 参数pin:用于输入数值的引脚。 value:占空比:0(完全关闭)到255(完全打开)之间。 返回无 说明和已知问题引脚5和6的PWM输出将高于预期的占空比(输出的数值偏高)。这是由于millis()和delay()功能,和PWM输出共享相同的内部定期器。这将导致大多时候处在低占空比状态(如:0 - 10),并也许导致在数值为0时,没有完全关闭引脚5和6。 例子通过读取电位器的阻值控制LED的亮度 int ledPin = 9; / LED连接到数字引脚9int analogPin = 3; /电位器连接到模拟引脚3int val = 0; /定义变量存以储读值void setup()pi
13、nMode(ledPin,OUTPUT); /设立引脚为输出引脚void loop()val = analogRead(analogPin); /从输入引脚读取数值analogWrite(ledPin,val / 4); / 以val / 4的数值点亮LED(由于analogRead读取的数值从0到1023,而analogWrite输出的数值从0到255)高级 I/Otone()tone()描述在一个引脚上产生一个特定频率的方波(50%占空比)。连续时间可以设定,否则波形会一直产生直到调用noTone()函数。该引脚可以连接压电蜂鸣器或其他喇叭播放声音。 在同一时刻只能产生一个声音。假如一个引
14、脚已经在播放音乐,那调用tone()将不会有任何效果。假如音乐在同一个引脚上播放,它会自动调整频率。 使用tone()函数会与3脚和11脚的PWM产生干扰(Mega板除外)。 注意:假如你要在多个引脚上产生不同的音调,你要在对下一个引脚使用tone()函数前对此引脚调用noTone()函数。 语法tone(pin, frequency) tone(pin, frequency, duration)参数pin:要产生声音的引脚 frequency: 产生声音的频率,单位Hz,类型unsigned int duration:声音连续的时间,单位毫秒(可选),类型unsigned long 返回无
15、noTone()描述停止由tone()产生的方波。假如没有使用tone()将不会有效果。 注意:假如你想在多个引脚上产生不同的声音,你要在对下个引脚使用tone()前对刚才的引脚调用noTone(). 语法noTone(pin) 参数pin: 所要停止产生声音的引脚 返回无 shiftOut()shiftOut()描述将一个数据的一个字节一位一位的移出。从最高有效位(最左边)或最低有效位(最右边)开始。依次向数据脚写入每一位,之后时钟脚被拉高或拉低,指示刚才的数据有效。 注意:假如你所连接的设备时钟类型为上升沿,你要拟定在调用shiftOut()前时钟脚为低电平,如调用digitalWrite
16、(clockPin, LOW)。 注意:这是一个软件实现;Arduino提供了一个硬件实现的SPI库,它速度更快但只在特定脚有效。 语法shiftOut(dataPin, clockPin, bitOrder, value) 参数dataPin:输出每一位数据的引脚(int) clockPin:时钟脚,当dataPin有值时此引脚电平变化(int) bitOrder:输出位的顺序,最高位优先或最低位优先 value: 要移位输出的数据(byte) 返回无 shiftIn()描述将一个数据的一个字节一位一位的移入。从最高有效位(最左边)或最低有效位(最右边)开始。对于每个位,先拉高时钟电平,再从
17、数据传输线中读取一位,再将时钟线拉低。 注意:这是一个软件实现;Arduino提供了一个硬件实现的SPI库,它速度更快但只在特定脚有效。 语法shiftIn(dataPin,clockPin,bitOrder) 参数dataPin:输出每一位数据的引脚(int) clockPin:时钟脚,当dataPin有值时此引脚电平变化(int) bitOrder:输出位的顺序,最高位优先或最低位优先 返回读取的值(byte) pulseIn()描述读取一个引脚的脉冲(HIGH或LOW)。例如,假如value是HIGH,pulseIn()会等待引脚变为HIGH,开始计时,再等待引脚变为LOW并停止计时。返
18、回脉冲的长度,单位微秒。假如在指定的时间内无脉冲函数返回。 此函数的计时功能由经验决定,长时间的脉冲计时也许会犯错。计时范围从10微秒至3分钟。(1秒=1000毫秒=1000000微秒) 语法pulseIn(pin, value) pulseIn(pin, value, timeout) 参数pin:你要进行脉冲计时的引脚号(int)。 value:要读取的脉冲类型,HIGH或LOW(int)。 timeout (可选):指定脉冲计数的等待时间,单位为微秒,默认值是1秒(unsigned long) 返回脉冲长度(微秒),假如等待超时返回0(unsigned long) 例子int pin =
19、 7;unsigned long duration;void setup() pinMode(pin, INPUT);void loop()duration = pulseIn(pin, HIGH);时间millis()描述返回Arduino开发板从运营当前程序开始的毫秒数。这个数字将在约50天后溢出(归零)。 参数无 返回返回从运营当前程序开始的毫秒数(无符号长整数)。 例子unsigned long time;void setup() Serial.begin(9600);void loop()serial.print(Time:);time = millis();/打印从程序开始到现在的
20、时间serial.println(time);/等待一秒钟,以免发送大量的数据 delay(1000);提醒注意,参数 millis 是一个无符号长整数,试图和其他数据类型(如整型数)做数学运算也许会产生错误。当中断函数发生时,millis()的数值将不会继续变化。 micros()micros()描述返回 Arduino 开发板从运营当前程序开始的微秒数。这个数字将在约70分钟后溢出(归零)。在 16MHz 的 Arduino 开发板上(比如 Duemilanove 和 Nano),这个函数的分辨率为四微秒(即返回值总是四的倍数)。在 8MHz 的 Arduino 开发板上(比如 LilyP
21、ad),这个函数的分辨率为八微秒。 注意 :每毫秒是1,000微秒,每秒是1,000,000微秒。 参数无 返回返回从运营当前程序开始的微秒数(无符号长整数)。 例子unsigned long time;void setup() Serial.begin(9600);void loop()Serial.print(“Time:”);time = micros();/打印从程序开始的时间Serial.println(time);/等待一秒钟,以免发送大量的数据 delay(1000);delay()描述使程序暂定设定的时间(单位毫秒)。(一秒等于1000毫秒) 语法delay(ms) 参数ms:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Arduino 语法 手册 函数 部分
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【天****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【天****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。