arduino语法Word下载.docx

上传人:b****5 文档编号:20480022 上传时间:2023-01-23 格式:DOCX 页数:27 大小:27.99KB
下载 相关 举报
arduino语法Word下载.docx_第1页
第1页 / 共27页
arduino语法Word下载.docx_第2页
第2页 / 共27页
arduino语法Word下载.docx_第3页
第3页 / 共27页
arduino语法Word下载.docx_第4页
第4页 / 共27页
arduino语法Word下载.docx_第5页
第5页 / 共27页
点击查看更多>>
下载资源
资源描述

arduino语法Word下载.docx

《arduino语法Word下载.docx》由会员分享,可在线阅读,更多相关《arduino语法Word下载.docx(27页珍藏版)》请在冰豆网上搜索。

arduino语法Word下载.docx

(大于) 

=(小于等于) 

=(大于等于)

布尔运算符类似于C

//&

&

(与) 

||(或) 

!

(非)

指针运算符类似于C

//*取消引用运算符 

引用运算符

位运算符类似于C

&

(bitwiseand) 

|(bitwiseor) 

^(bitwisexor) 

~(bitwisenot) 

(bitshiftleft) 

(bitshiftright)

复合运算符类似于C

++(increment) 

--(decrement) 

+=(compoundaddition) 

-=(compoundsubtraction) 

*=(compoundmultiplication) 

/=(compounddivision) 

=(compoundbitwiseand) 

|=(compoundbitwiseor)

常量

constants预定义的常量

BOOL 

truefalse

引脚电压定义,HIGH和LOW【当读取(read)或写入(write)数字引脚时只有两个可能的值:

HIGH和LOW】

HIGH(参考引脚)的含义取决于引脚(pin)的设置,引脚定义为INPUT或OUTPUT时含义有所不同。

当一个引脚通过pinMode被设置为INPUT,并通过digitalRead读取(read)时。

如果当前引脚的电压大于等于3V,微控制器将会返回为HIGH。

引脚也可以通过pinMode被设置为INPUT,并通过digitalWrite设置为HIGH。

输入引脚的值将被一个内在的20K上拉电阻控制在HIGH上,除非一个外部电路将其拉低到LOW。

当一个引脚通过pinMode被设置为OUTPUT,并digitalWrite设置为HIGH时,引脚的电压应在5V。

在这种状态下,它可以输出电流。

例如,点亮一个通过一串电阻接地或设置为LOW的OUTPUT属性引脚的LED。

LOW的含义同样取决于引脚设置,引脚定义为INPUT或OUTPUT时含义有所不同。

当一个引脚通过pinMode配置为INPUT,通过digitalRead设置为读取(read)时,如果当前引脚的电压小于等于2V,微控制器将返回为LOW。

当一个引脚通过pinMode配置为OUTPUT,并通过digitalWrite设置为LOW时,引脚为0V。

在这种状态下,它可以倒灌电流。

例如,点亮一个通过串联电阻连接到+5V,或到另一个引脚配置为OUTPUT、HIGH的的LED。

数字引脚(Digitalpins)定义,INPUT和OUTPUT【数字引脚当作INPUT或OUTPUT都可以。

用pinMode()方法使一个数字引脚从INPUT到OUTPUT变化】

Arduino(Atmega)引脚通过pinMode()配置为输入(INPUT)即是将其配置在一个高阻抗的状态。

配置为INPUT的引脚可以理解为引脚取样时对电路有极小的需求,即等效于在引脚前串联一个100兆欧姆(Megohms)的电阻。

这使得它们非常利于读取传感器,而不是为LED供电。

引脚通过pinMode()配置为输出(OUTPUT)即是将其配置在一个低阻抗的状态。

这意味着它们可以为电路提供充足的电流。

Atmega引脚可以向其他设备/电路提供(提供正电流positivecurrent)或倒灌(提供负电流negativecurrent)达40毫安(mA)的电流。

这使得它们利于给LED供电,而不是读取传感器。

输出(OUTPUT)引脚被短路的接地或5V电路上会受到损坏甚至烧毁。

Atmega引脚在为继电器或电机供电时,由于电流不足,将需要一些外接电路来实现供电。

整数常量

进制 

例子 

格式 

备注

10(十进制)123无 

2(二进制) 

B1111011 

前缀'

B'

只适用于8位的值(0到255)字符0-1有效

8(八进制) 

0173 

前缀”0” 

字符0-7有效

16(十六进制) 

0x7B 

前缀”0x” 

字符0-9,A-F,A-F有效

小数是十进制数。

这是数学常识。

如果一个数没有特定的前缀,则默认为十进制。

二进制以2为基底,只有数字0和1是有效的。

'

u'

or'

U'

指定一个常量为无符号型。

(只能表示正数和0)例如:

33u

l'

L'

指定一个常量为长整型。

(表示数的范围更广)例如:

100000L

ul'

UL'

这个你懂的,就是上面两种类型,称作无符号长整型。

例如:

32767ul

浮点常量

浮点数被转换为 

被转换为

10.0 

10

2.34E5 

2.34*10^5234000

67E-12 

67.0*10^-12 

0.000000000067

数据类型类似于C

void 

boolean 

char 

unsignedchar 

byte 

int 

unsignedint 

word

long 

unsignedlong 

float 

double 

string-chararray 

String-object 

array-(数组)

数据类型转换类似于C

char() 

byte() 

int() 

word() 

long() 

float()

word()

把一个值转换为word数据类型的值,或由两个字节创建一个字符。

word(x) 

word(h,l)

参数

X:

任何类型的值 

H:

高阶(最左边)字节 

L:

低序(最右边)字节

修饰符类似于C

static 

volatile 

const

辅助工具

sizeof()

数字I/O

pinMode()

将指定的引脚配置成输出或输入【pinMode(pin,mode)pin:

要设置模式的引脚 

mode:

INPUT或OUTPUT】

例子:

ledPin=13//LED连接到数字脚13

voidsetup()

{

pinMode(ledPin,OUTPUT);

//设置数字脚为输出

}

voidloop()

digitalWrite(ledPin,HIGH);

//点亮LED

delay(1000);

//等待一秒

digitalWrite(ledPin,LOW);

//灭掉LED

//等待第二个

digitalWrite()

给一个数字引脚写入HIGH或者LOW。

如果一个引脚已经使用pinMode()配置为OUTPUT模式,其电压将被设置为相应的值,HIGH为5V(3.3V控制板上为3.3V),LOW为0V。

如果引脚配置为INPUT模式,使用digitalWrite()写入HIGH值,将使内部20K上拉电阻(详见数字引脚教程)。

写入LOW将会禁用上拉。

上拉电阻可以点亮一个LED让其微微亮,如果LED工作,但是亮度很低,可能是因为这个原因引起的。

补救的办法是使用pinMode()函数设置为输出引脚。

注意:

数字13号引脚难以作为数字输入使用,因为大部分的控制板上使用了一颗LED与一个电阻连接到他。

如果启动了内部的20K上拉电阻,他的电压将在1.7V左右,而不是正常的5V,因为板载LED串联的电阻把他使他降了下来,这意味着他返回的值总是LOW。

如果必须使用数字13号引脚的输入模式,需要使用外部上拉下拉电阻。

digitalRead()

digitalRead(PIN)

【pin:

你想读取的引脚号(int),返回HIGH或LOW】

ledPin=13//LED连接到13脚

intinPin=7;

//按钮连接到数字引脚7

intval=0;

//定义变量存以储读值

pinMode(ledPin,OUTPUT);

//将13脚设置为输出

pinMode(inPin,INPUT);

//将7脚设置为输入

val=digitalRead(inPin);

//读取输入脚

digitalWrite(ledPin,val);

//将LED值设置为按钮的值

模拟I/O

analogReference()

analogReference(type)

配置用于模拟输入的基准电压(即输入范围的最大值)。

选项有:

DEFAULT:

默认5V(Arduino板为5V)或3.3伏特(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)

改变基准电压后,之前从anal?

?

ogRead()读取的数据可能不准确。

不要在AREF引脚上使用使用任何小于0V或超过5V的外部电压。

如果你使用AREF引脚上的电压作为基准电压,你在调用analogRead()前必须设置参考类型为EXTERNAL。

否则,你将会削短有效的基准电压(内部产生)和AREF引脚,这可能会损坏您Arduino板上的单片机。

另外,您可以在外部基准电压和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伏特/1024单位,或0.0049伏特(4.9mV)每单位。

输入范围和精度可以使用analogReference()改变。

它需要大约100微秒(0.0001)来读取模拟输入,所以最大的阅读速度是每秒10000次。

analogRead(PIN)

引脚:

从输入引脚(大部分板子从0到5,Mini和Nano从0到7,Mega从0到15)读取数值,返回从0到1023的整数值

intanalogPin=3;

//电位器(中间的引脚)连接到模拟输入引脚3

//另外两个引脚分别接地和+5V

//定义变量来存储读取的数值

serial.begin(9600);

//设置波特率(9600)

val=analogRead(analogPin);

//从输入引脚读取数值

serial.println(val);

//显示读取的数值

analogWrite()-PWM

analogWrite(pin,value)

从一个引脚输出模拟值(PWM)。

可用于让LED以不同的亮度点亮或驱动电机以不同的速度旋转。

analogWrite()输出结束后,该引脚将产生一个稳定的特殊占空比方波,直到下次调用analogWrite()(或在同一引脚调用digitalRead()或digitalWrite())。

PWM信号的频率大约是490赫兹。

在大多数arduino板(ATmega168或ATmega328),只有引脚3,5,6,9,10和11可以实现该功能。

在aduinoMega上,引脚2到13可以实现该功能。

老的Arduino板(ATmega8)的只有引脚9、10、11可以使用analogWrite()。

在使用analogWrite()前,你不需要调用pinMode()来设置引脚为输出引脚。

analogWrite函数与模拟引脚、analogRead函数没有直接关系。

pin:

用于输入数值的引脚。

value:

占空比:

0(完全关闭)到255(完全打开)之间。

intledPin=9;

//LED连接到数字引脚9

//电位器连接到模拟引脚3

pinMode(ledPin,OUTPUT);

//设置引脚为输出引脚

//从输入引脚读取数值

analogWrite(ledPin,val/4);

//以val/4的数值点亮LED(因为analogRead读取的数值从0到1023,而analogWrite输出的数值从0到255)

高级I/O

tone()

在一个引脚上产生一个特定频率的方波(50%占空比)。

持续时间可以设定,否则波形会一直产生直到调用noTone()函数。

该引脚可以连接压电蜂鸣器或其他喇叭播放声音。

在同一时刻只能产生一个声音。

如果一个引脚已经在播放音乐,那调用tone()将不会有任何效果。

如果音乐在同一个引脚上播放,它会自动调整频率。

使用tone()函数会与3脚和11脚的PWM产生干扰(Mega板除外)。

如果你要在多个引脚上产生不同的音调,你要在对下一个引脚使用tone()函数前对此引脚调用noTone()函数。

tone(pin,frequency) 

tone(pin,frequency,duration)

要产生声音的引脚 

frequency:

产生声音的频率,单位Hz,类型unsignedint

duration:

声音持续的时间,单位毫秒(可选),类型unsignedlong

noTone()

停止由tone()产生的方波。

如果没有使用tone()将不会有效果。

noTone(pin)

pin:

所要停止产生声音的引脚

shiftOut()

将一个数据的一个字节一位一位的移出。

从最高有效位(最左边)或最低有效位(最右边)开始。

依次向数据脚写入每一位,之后时钟脚被拉高或拉低,指示刚才的数据有效。

如果你所连接的设备时钟类型为上升沿,你要确定在调用shiftOut()前时钟脚为低电平,如调用digitalWrite(clockPin,LOW)。

这是一个软件实现;

Arduino提供了一个硬件实现的SPI库,它速度更快但只在特定脚有效。

shiftOut(dataPin,clockPin,bitOrder,value)

dataPin:

输出每一位数据的引脚(int) 

clockPin:

时钟脚,当dataPin有值时此引脚电平变化(int) 

bitOrder:

输出位的顺序,最高位优先或最低位优先 

value:

要移位输出的数据(byte)

dataPin和clockPin要用pinMode()配置为输出。

shiftOut目前只能输出1个字节(8位),所以如果输出值大于255需要分两步。

//最高有效位优先串行输出

intdata=500;

//移位输出高字节

shiftOut(dataPin,clock,MSBFIRST,(data>

8));

//移位输出低字节

shiftOut(data,clock,MSBFIRST,data);

//最低有效位优先串行输出

data=500;

shiftOut(dataPin,clock,LSBFIRST,data);

shiftOut(dataPin,clock,LSBFIRST,(data>

相应电路,查看tutorialoncontrollinga74HC595shiftregister

//引脚连接到74HC595的ST_CP

intlatchPin=8;

//引脚连接到74HC595的SH_CP

intclockPin=12;

////引脚连接到74HC595的DS

intdataPin=11;

voidsetup(){

//设置引脚为输出

pinMode(latchPin,OUTPUT);

pinMode(clockPin,OUTPUT);

pinMode(dataPin,OUTPUT);

voidloop(){

//向上计数程序

for(J=0;

J<

256;

J++){

//传输数据的时候将latchPin拉低

digitalWrite(latchpin,LOW);

shiftOut(dataPin,clockPin,LSBFIRST,J);

//之后将latchPin拉高以告诉芯片

//它不需要再接受信息了

digitalWrite(latchpin,HIGH);

}

shiftIn()

将一个数据的一个字节一位一位的移入。

对于每个位,先拉高时钟电平,再从数据传输线中读取一位,再将时钟线拉低。

shiftIn(dataPin,clockPin,bitOrder)

输出位的顺序,最高位优先或最低位优先

pulseIn()

读取一个引脚的脉冲(HIGH或LOW)。

例如,如果value是HIGH,pulseIn()会等待引脚变为HIGH,开始计时,再等待引脚变为LOW并停止计时。

返回脉冲的长度,单位微秒。

如果在指定的时间内无脉冲函数返回。

此函数的计时功能由经验决定,长时间的脉冲计时可能会出错。

计时范围从10微秒至3分钟。

(1秒=1000毫秒=1000000微秒)

pulseIn(pin,value) 

pulseIn(pin,value,timeout)

你要进行脉冲计时的引脚号(int)。

要读取的脉冲类型,HIGH或LOW(int)。

timeout(可选):

指定脉冲计数的等待时间,单位为微秒,默认值是1秒(unsignedlong)

返回:

脉冲长度(微秒),如果等待超时返回0(unsignedlong)

intpin=7;

unsignedlongduration;

pinMode(pin,INPUT);

duration=pulseIn(pin,HIGH);

;

时间

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试认证 > 从业资格考试

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1