Arduino 语法手册

2018-12-04 15:38

#Arduino 语法

setup() 初始化函数

loop() 循环体函数

控制语句类似于C

//if if...else for switch case while do... while break continue return goto

扩展语法类似于C

//;(分号) {}(花括号) //(单行注释) /* */(多行注释) #define #include

算数运算符类似于C

//=(赋值运算符) +(加) -(减) *(乘) /(除) %(模)

比较运算符类似于C

//==(等于) !=(不等于) <(小于) >(大于) <=(小于等于) >=(大于等于)

布尔运算符类似于C

//&&(与) ||(或) !(非)

指针运算符类似于C

//* 取消引用运算符 & 引用运算符

位运算符类似于C

& (bitwise and) | (bitwise or) ^ (bitwise xor) ~ (bitwise not) << (bitshift left) >> (bitshift right)

复合运算符类似于C

++ (increment) -- (decrement) += (compound addition) -= (compound subtraction) *= (compound multiplication) /= (compound division) &= (compound bitwise and) |= (compound bitwise or) 常量

constants 预定义的常量 BOOL true false

引脚电压定义,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。

数字引脚(Digital pins)定义,INPUT和OUTPUT【数字引脚当作 INPUT 或 OUTPUT都可以 。用pinMode()方法使一个数字引脚从INPUT到OUTPUT变化】

Arduino(Atmega)引脚通过pinMode()配置为 输入(INPUT) 即是将其配置在一个高阻抗的状态。配置为INPUT的引脚可以理解为引脚取样时对电路有极小的需求,即等效于在引脚前串联一个100兆欧姆(Megohms)的电阻。这使得它们非常利于读取传感器,而不是为LED供电。 引脚通过pinMode()配置为 输出(OUTPUT) 即是将其配置在一个低阻抗的状态。 这意味着它们可以为电路提供充足的电流。Atmega引脚可以向其他设备/电路提供(提供正电流positive current)或倒灌(提供负电流negative current)达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' or 'L' 指定一个常量为长整型。(表示数的范围更广) 例如: 100000L 'ul' or 'UL' 这个你懂的,就是上面两种类型,称作无符号长整型。 例如:32767ul

浮点常量

浮点数 被转换为 被转换为 10.0 10

2.34E5 2.34 * 10^5 234000

67E-12 67.0 * 10^-12 0.000000000067

数据类型类似于C

void boolean char unsigned char byte int unsigned int word

long unsigned long float double string - char array 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 void setup() {

pinMode(ledPin,OUTPUT); //设置数字脚为输出 }

void loop() {

digitalWrite(ledPin,HIGH); //点亮LED delay(1000); // 等待一秒 digitalWrite(ledPin, LOW); // 灭掉LED delay(1000); //等待第二个 }

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脚

int inPin = 7; // 按钮连接到数字引脚7 int val = 0; //定义变量存以储读值 void setup() {

pinMode(ledPin, OUTPUT); // 将13脚设置为输出 pinMode(inPin, INPUT); // 将7脚设置为输入 }

void loop() {

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为基准电压(Arduino Mega无此选项)

INTERNAL1V1:以1.1V为基准电压(此选项仅针对Arduino Mega) INTERNAL2V56:以2.56V为基准电压(此选项仅针对Arduino Mega) 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.9 mV)每单位。输入范围和精度可以使用analogReference()改变。 它需要大约100微秒(0.0001)来读取模拟输入,所以最大的阅读速度是每秒10000次。 analogRead(PIN)

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

int analogPin = 3; //电位器(中间的引脚)连接到模拟输入引脚3 //另外两个引脚分别接地和+5 V int val = 0; //定义变量来存储读取的数值 void setup() {

serial.begin(9600); //设置波特率(9600) }

void loop() {

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可以实现该功能。在aduino Mega上,引脚2到13可以实现该功能。老的Arduino板(ATmega8)的只有引脚9、10、11可以使用analogWrite()。在使用analogWrite()前,你不需要调用pinMode()来设置引脚为输出引脚。

analogWrite函数与模拟引脚、analogRead函数没有直接关系。 pin:用于输入数值的引脚。

value:占空比:0(完全关闭)到255(完全打开)之间。 例子:

int ledPin = 9; // LED连接到数字引脚9 int analogPin = 3; //电位器连接到模拟引脚3


Arduino 语法手册.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:新北师大版二年级数学上册教学反思

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: