arduino语法手册函数部分.docx
- 文档编号:16608321
- 上传时间:2023-07-15
- 格式:DOCX
- 页数:18
- 大小:20.11KB
arduino语法手册函数部分.docx
《arduino语法手册函数部分.docx》由会员分享,可在线阅读,更多相关《arduino语法手册函数部分.docx(18页珍藏版)》请在冰点文库上搜索。
arduino语法手册函数部分
;
Arduino语法手册函数部分
摘自:
函数部分
数字I/O
pinMode()
描述
将指定的引脚配置成输出或输入。
详情请见digitalpins。
语法
pinMode(pin,mode)
#
参数
pin:
要设置模式的引脚
mode:
INPUT或OUTPUT
返回
无
例子
ledPin=13
语法
…
noTone(pin)
参数
pin:
所要停止产生声音的引脚
返回
无
shiftOut()
shiftOut()
)
描述
将一个数据的一个字节一位一位的移出。
从最高有效位(最左边)或最低有效位(最右边)开始。
依次向数据脚写入每一位,之后时钟脚被拉高或拉低,指示刚才的数据有效。
注意:
如果你所连接的设备时钟类型为上升沿,你要确定在调用shiftOut()前时钟脚为低电平,如调用digitalWrite(clockPin,LOW)。
注意:
这是一个软件实现;Arduino提供了一个硬件实现的SPI库,它速度更快但只在特定脚有效。
语法
shiftOut(dataPin,clockPin,bitOrder,value)
参数
dataPin:
输出每一位数据的引脚(int)
clockPin:
时钟脚,当dataPin有值时此引脚电平变化(int)
bitOrder:
输出位的顺序,最高位优先或最低位优先
value:
要移位输出的数据(byte)
^
返回
无
shiftIn()
描述
将一个数据的一个字节一位一位的移入。
从最高有效位(最左边)或最低有效位(最右边)开始。
对于每个位,先拉高时钟电平,再从数据传输线中读取一位,再将时钟线拉低。
注意:
这是一个软件实现;Arduino提供了一个硬件实现的SPI库,它速度更快但只在特定脚有效。
语法
《
shiftIn(dataPin,clockPin,bitOrder)
参数
dataPin:
输出每一位数据的引脚(int)
clockPin:
时钟脚,当dataPin有值时此引脚电平变化(int)
bitOrder:
输出位的顺序,最高位优先或最低位优先
返回
读取的值(byte)
pulseIn()
描述
《
读取一个引脚的脉冲(HIGH或LOW)。
例如,如果value是HIGH,pulseIn()会等待引脚变为HIGH,开始计时,再等待引脚变为LOW并停止计时。
返回脉冲的长度,单位微秒。
如果在指定的时间内无脉冲函数返回。
此函数的计时功能由经验决定,长时间的脉冲计时可能会出错。
计时范围从10微秒至3分钟。
(1秒=1000毫秒=1000000微秒)
语法
pulseIn(pin,value)
pulseIn(pin,value,timeout)
参数
pin:
你要进行脉冲计时的引脚号(int)。
value:
要读取的脉冲类型,HIGH或LOW(int)。
timeout(可选):
指定脉冲计数的等待时间,单位为微秒,默认值是1秒(unsignedlong)
返回
脉冲长度(微秒),如果等待超时返回0(unsignedlong)
|
例子
intpin=7;
unsignedlongduration;
voidsetup()
{
pinMode(pin,INPUT);
}
…
voidloop()
{
duration=pulseIn(pin,HIGH);;
}
时间
millis()
;
描述
返回Arduino开发板从运行当前程序开始的毫秒数。
这个数字将在约50天后溢出(归零)。
参数
无
返回
返回从运行当前程序开始的毫秒数(无符号长整数)。
例子
unsignedlongtime;
|
voidsetup(){
(9600);
}
voidloop(){
("Time:
");
time=millis();
返回
;
无
注意事项
当中断函数发生时,delay()和millis()的数值将不会继续变化。
当中断发生时,串口收到的数据可能会丢失。
你应该声明一个变量来在未发生中断时储存变量。
使用中断
在单片机自动化程序中当突发事件发生时,中断是非常有用的,它可以帮助解决时序问题。
一个使用中断的任务可能会读一个旋转编码器,监视用户的输入。
如果你想以确保程序始终抓住一个旋转编码器的脉冲,从来不缺少一个脉冲,它将使写一个程序做任何事情都要非常棘手,因为该计划将需要不断轮询的传感器线编码器,为了赶上脉冲发生时。
其他传感器也是如此,如试图读取一个声音传感器正试图赶上一按,或红外线槽传感器(照片灭弧室),试图抓住一个硬币下降。
在所有这些情况下,使用一个中断可以释放的微控制器来完成其他一些工作。
程序示例
intpin=13;
《
volatileintstate=LOW;
voidsetup()
{
pinMode(pin,OUTPUT);
attachInterrupt(0,blink,CHANGE);
}
^
voidloop()
{
digitalWrite(pin,state);
}
voidblink()
{
state=!
state;
|
}
detachInterrupt()
detachInterrupt(interrupt)
描述
关闭给定的中断。
参数
interrupt:
中断禁用的数(0或者1).
/
开关中断
interrupts()
interrupts()(中断)
描述
重新启用中断(使用noInterrupts()命令后将被禁用)。
中断允许一些重要任务在后台运行,默认状态是启用的。
禁用中断后一些函数可能无法工作,并传入信息可能会被忽略。
中断会稍微打乱代码的时间,但是在关键部分可以禁用中断。
参数
无
$
返回
无
例子
voidsetup(){
}
voidloop()
{
、
noInterrupts();
语法
对于所有的arduino板:
if(Serial)
ArduinoLeonardo特有:
if(Serial1)
ArduinoMega特有:
if(Serial1)
if(Serial2)
if(Serial3)
参数
无
…
返回
布尔值:
如果指定的串行端口是可用的,则返回true。
如果查询Leonardo的USBCDC串行连接之前,它是准备好的,将只返回false。
例子
voidsetup(){
语法
(target)
参数
%
target:
要搜索的字符串(字符)
返回
布尔型
findUntil()
()
说明
()从串行缓冲区读取数据,直到找到一个给定的长度或字符串终止位。
(
如果目标字符串被发现,该函数返回true,如果超时则返回false。
()继承了Stream类。
语法
(target,terminal)
参数
target:
要搜索的字符串(char)terminal:
在搜索中的字符串终止位(char)
返回
布尔型
…
flush()
flush()
说明
等待超出的串行数据完成传输。
(在及以上的版本中,flush()语句的功能不再是丢弃所有进入缓存器的串行数据。
)
flush()继承了Stream类.
语法
()
仅ArduinoMega可以使用的语法:
()
()
()
—
参数
无
返回
无
parseFloat()
()
描述
()命令从串口缓冲区返回第一个有效的浮点数.Charactersthatarenotdigits(ortheminussign)areskipped.parseFloat()isterminatedbythefirstcharacterthatisnotafloatingpointnumber.
()继承了Stream类。
语法
()
参数
无
返回
float
、
parseInt()
parseInt()
说明
查找传入的串行数据流中的下一个有效的整数。
parseInt()继承了Stream类。
语法
()
下面三个命令仅适用于ArduinoMega:
()
()
()
@
Parameters
无
返回
int:
下一个有效的整数
peek()
说明
]
返回传入的串行数据的下一个字节(字符),而不是进入内部串行缓冲器调取。
也就是说,连续调用peek()将返回相同的字符,与调用read()方法相同。
peek()继承自Stream类。
语法
()
仅适用于ArduinoMega:
()
()
()
参数
无
返回
传入的串行数据的第一个字节(或-1,如果没有可用的数据的话)-int
~
print()
说明
以人们可读的ASCII文本形式打印数据到串口输出。
此命令可以采取多种形式。
每个数字的打印输出使用的是ASCII字符。
浮点型同样打印输出的是ASCII字符,保留到小数点后两位。
Bytes型则打印输出单个字符。
字符和字符串原样打印输出。
()打印输出数据不换行,()打印输出数据自动换行处理。
例如
(78)输出为“78”
输出为“”
(“N”)输出为“N”
(“Helloworld.”)输出为“Helloworld.”
]
也可以自己定义输出为几进制(格式);可以是BIN(二进制,或以2为基数),OCT(八进制,或以8为基数),DEC(十进制,或以10为基数),HEX(十六进制,或以16为基数)。
对于浮点型数字,可以指定输出的小数数位。
例如
(78,BIN)输出为“1001110”
(78,OCT)输出为“116”
(78,DEC)输出为“78”
(78,HEX)输出为“4E”
0)输出为“1”
2)输出为“”
4)输出为“”
:
你可以通过基于闪存的字符串来进行打印输出,将数据放入F()中,再放入()。
例如(F(“Helloworld”))若要发送一个字节,则使用()。
语法
(val)
(val,格式)
参数
val:
打印输出的值-任何数据类型
格式:
指定进制(整数数据类型)或小数位数(浮点类型)
返回
字节print()将返回写入的字节数,但是否使用(或读出)这个数字是可设定的
例子:
)
/*
使用for循环打印一个数字的各种格式。
*/
intx=0;
()返回放置在缓冲区的字符数。
返回0意味着没有发现有效的数据。
()继承自Stream类.
语法
(buffer,length)
,
元素
buffer:
用来存储字节(char[]或byte[])的缓冲区
length:
读取的字节数(int)
返回
byte
readBytesUntil()
()
说明
¥
()将字符从串行缓冲区读取到一个数组。
如果检测到终止字符,或预设的读取长度读取完毕,或者时间到了(参见())函数将终止。
()返回读入数组的字符数。
返回0意味着没有发现有效的数据。
()继承自Stream类。
语法
(character,buffer,length)
元素
character:
要搜索的字符(char)
buffer:
缓冲区来存储字节(char[]或byte[])
length:
读的字节数(int)
返回
《
byte
setTimeout()
()
说明
()设置使用()或()时等待串口数据的最大毫秒值.默认为1000毫秒。
()继承自Stream类。
语法
!
(time)
参数
time:
以毫秒为单位的超时时间(long)。
返回结果
无
write()
说明
、
写入二级制数据到串口。
发送的数据以一个字节或者一系列的字节为单位。
如果写入的数字为字符,需使用print()命令进行代替。
语法
(val)
(str)
(buf,len)
ArduinoMega还支持:
Serial1,Serial2,Serial3(替代Serial)
参数
val:
以单个字节形式发的值
str:
以一串字节的形式发送的字符串
buf:
以一串字节的形式发送的数组
len:
数组的长度
返回结果
byte
write()将返回写入的字节数,但是否使用这个数字是可选的
例子
。
voidsetup(){
(9600);
}
voidloop(){
(45);}
SerialEvent()
.
Examples
ReadASCIIString
ASCIITable
Dimmer
Graph
PhysicalPixel
VirtualColorMixer
SerialCallResponse
:
SerialCallResponseASCII
Stream
USB(仅适用于Leonardo和Due)
键盘
鼠标
MouseandKeyboardlibraries
ThesecorelibrariesallowanArduinoLeonardoboardtoappearasanativeMouseand/orKeyboardtoaconnectedcomputer.AwordofcautiononusingtheLeonardoasaMouseorKeyboard:
iftheMouseorKeyboardlibraryisconstantlyrunning,itwillbedifficulttoprogramyourboard.Functionssuchas()and()willmoveyourcursororsendkeystrokestoaconnectedcomputerandshouldonlybecalledwhenyouarereadytohandlethem.Itisrecommendedtouseacontrolsystemtoturnthisfunctionalityon,likeaphysicalswitchoronlyrespondingtospecificinputyoucancontrol.WhenusingtheMouseorKeyboardlibrary,itmaybebesttotestyouroutputfirstusing().Thisway,youcanbesureyouknowwhatvaluesarebeingreported.RefertotheMouseandKeyboardexamplesforsomewaystohandlethis.
Mouse
ThemousefunctionsenabletoLeonardotocontrolcursormovementonaconnectedcomputer.Whenupdatingthecursorposition,itisalwaysrelativetothecursor'spreviouslocation.
()
()
()
()
()
()
()
Keyboard
ThekeyboardfunctionsenabletoLeonardotosendkeystrokestoanattachedcomputer.Note:
NoteverypossibleASCIIcharacter,particularlythenon-printingones,canbesentwiththeKeyboardlibrary.TheLeonardosupportstheuseofmodifierkeys.Modifierkeyschangethebehaviorofanotherkeywhenpressedsimultaneously.Seehereforadditionalinformationonsupportedkeysandtheiruse.
()
()
()
()
()
()
()
()
Examples
KeybaordAndMouseControl:
DemonstratestheMouseandKeyboardcommandsinoneprogram.
KeyboardMessage:
Sendsatextstringwhenabuttonispressed.
KeyboardLogout:
Logsoutthecurrentuserwithkeycommands
KeyboardSerial:
Readsabytefromtheserialport,andsendsbackakeystroke.
KeyboardReprogram:
opensanewwindowintheArduinoIDEandreprogramstheLeonardowithasimpleblinkprogram
ButtonMouseControl:
Controlcursormovementwith5pushbuttons.
JoystickMouseControl:
Controlsacomputer'scursormovementwithaJoystickwhenabuttonispressed
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- arduino 语法 手册 函数 部分