Arduino编程参考手册
首页

程序结构   
setup()
loop()
控制结构
if
if...else
for
switch case
while
do...while
break
continue
return
goto
相关语法
; 分号
{ 大括号
// 单行注释
/**/ 多行注释
#define 宏定义
#include 文件包含
算术运算符
= 赋值
+ ()
- ()
* ()
/ ()
% (取模)
比较运算符
== 等于
!= (不等于)
< (小于)
> (大于)
<= (小于等于)
>= (大于等于)
布尔运算符
&& (逻辑与)
|| (逻辑或)
! (逻辑非)
指针运算符
* 指针运算符
& 地址运算符
位运算
& (位与)
| (位或)
^ (位异或)
~ (位非)
<< (左移)
>> (右移)
复合运算符
++ (自加)
-- (自减)
+= (复合加)
-= (复合减)
*= (复合乘)
/= (复合除)
&= (复合与)
|= (复合或)
范围
HIGH | LOW
INPUT | OUTPUT
true | false
整型常量
浮点数常量
数据类型
void
boolean
char
unsigned char
byte
int
unsigned int
word
long
unsigned long
float
double
string
String(c++)
array
数据类型转换
char()
byte()
int()
word()
long()
include中文float()
变量作用域
变量作用域
static (静态变量)
volatile (易变变量)
const (不可改变变量)
辅助工具
sizeof() (sizeof运算符)
ASCII码表
数字I/O
pinMode()
digitalWrite()
digitalRead()
模拟I/O
analogReference()
analogRead()
analogWrite()
指高级I/O
shiftOut()
pulseIn()
时间
millis()
delay(ms)
delayMicroseconds(us)
数学库
min()
max()
abs()
constrain()
map()
pow()
sqrt()
三角函数
sin(rad)
cos(rad)
tan(rad)
随机数
randomSeed()
random()
random()
位操作
lowByte()
highByte()
bitRead()
bitWrite()
bitSet()
bitClear()
bit()
设置中断函数
attachInterrupt()
detachInterrupt()
interrupts()
noInterrupts()
串口通讯
begin()
available()
read()
flush
print()
println()
write()
peak()
serialEvent()

程序结构
(本节直译自Arduino最新Reference)
Arduino, 标准的程序入口main函数在内部被定义, 用户只需要关心以下两个函数:
setup()
Arduino板起动时setup()函数会被调用。用它来初始化变量,引脚模式,开始使用某个库,等等。该函数在Arduino板的每次上电和复位时只运行一次。
loop()
在创建setup函数,该函数初始化和设置初始值,loop()函数所做事的正如其名,连续循环,允许你的程序改变状态和响应事件。可以用它来实时控制arduino板。
示例:
int buttonPin = 3;
void setup()
{
  Serial.begin(9600); //初始化串口
  pinMode(buttonPin, INPUT); //设置3号引脚为输入模式
}
void loop()
{
  if (digitalRead(buttonPin) == HIGH)
    serialWrite('H');
  else
    serialWrite('L');
  delay(1000);
}
控制语句
if
if,用于与比较运算符结合使用,测试是否已达到某些条件,例如一个输入数据在某个范围之外。使用格式如下:
if (value > 50)
{
  // 这里加入你的代码
}
该程序测试value是否大于50。如果是,程序将执行特定的动作。换句话说,如果圆括号中的语句为真,大括号中的语句就会执行。如果不是,程序将跳过这段代码。大括号可以被省略,如果这么做,下一行(以分号结尾)将成为唯一的条件语句。
if (x > 120) digitalWrite(LEDpin, HIGH);
if (x > 120)
digitalWrite(LEDpin, HIGH);
if (x > 120){ digitalWrite(LEDpin, HIGH); }
if (x > 120){
  digitalWrite(LEDpin1, HIGH);
  digitalWrite(LEDpin2, HIGH);
}                                // 都是正确的
圆括号中要被计算的语句需要一个或多个操作符。
if...else
与基本的if语句相比,由于允许多个测试组合在一起,if/else可以使用更多的控制流。例如,可以测试一个模拟量输入,如果输入值小于500,则采取一个动作,而如果输入值大于或等于500,则采取另一个动作。代码看起来像是这样:
if (pinFiveInput < 500)
{
  // 动作A
}
else
{
  // 动作B
}
else中可以进行另一个if测试,这样多个相互独立的测试就可以同时进行。每一个测试一个接一个地执行直到遇到一个测试为真为止。当发现一个测试条件为真时,与其关联的代码块就会执行,然后程序将跳到完整的if/else结构的下一行。如果没有一个测试被验证为真。缺省的else语句块,如果存在的话,将被设为默认行为,并执行。
注意:一个else if语句块可能有或者没有终止else语句块,同理。每个else if分支允许有无限多个。
if (pinFiveInput < 500)
{
  // 执行动作A
}
else if (pinFiveInput >= 1000)
{
  // 执行动作B
}
else
{
  // 执行动作C
}
另外一种表达互斥分支测试的方式,是使用switch case语句。
for
for语句
描述
for语句用于重复执行被花括号包围的语句块。一个增量计数器通常被用来递增和终止循环。for语句对于任何需要重复的操作是非常有用的。常常用于与数组联合使用以收集数据/引脚。for循环的头部有三个部分:
for (初始化部分; 条件判断部分; 数据递增部分) {
//语句块
。。。
}
初始化部分被第一个执行,且只执行一次。每次通过这个循环,条件判断部分将被测试;如果为真,语句块和数据递增部分就会被执行,然后条件判断部分就会被再次测试,当条件测试为假时,结束循环。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。