没有合适的资源?快使用搜索试试~ 我知道了~
Arduino编程参考手册中文版.pdf
需积分: 12 98 下载量 41 浏览量
2020-03-29
16:57:53
上传
评论 5
收藏 393KB PDF 举报
温馨提示
试读
54页
入门教材,适合广泛应用,对于初学者可以进行体系建立,了解当前时代更新知识。紧跟时代变化知识体系。快来看一看。
资源推荐
资源详情
资源评论
1
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()
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()
2
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 ,用于与比较运算符结合使用,测试是否已达到某些条件,例如一个输入数据在某个范围之外。
3
使用格式如下:
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)
4
{
// 执行动作 B
}
else
{
// 执行动作 C
}
另外一种表达互斥分支测试的方式,是使用 switch case 语句。
for
for 语句
描述
for 语句用于重复执行被花括号包围的语句块。一个增量计数器通常被用来递增和终止循环。 for 语
句对于任何需要重复的操作是非常有用的。常常用于与数组联合使用以收集数据 /引脚。 for 循环的
头部有三个部分:
for ( 初始化部分 ; 条件判断部分 ; 数据递增部分 ) {
//语句块
。。。
}
初始化部分被第一个执行,且只执行一次。每次通过这个循环,条件判断部分将被测试 ;如果为真,
语句块和数据递增部分就会被执行 ,然后条件判断部分就会被再次测试, 当条件测试为假时, 结束循
环。
示例:
//使用一个 PWM 引脚使 LED 灯闪烁
int PWMpin = 10; // LED 在 10 号引脚串联一个 470 欧姆的电阻
void setup()
{
//这里无需设置
}
void loop()
{
for (int i=0; i <= 255; i++){
analogWrite(PWMpin, i);
delay(10);
}
}
编码提示:
C 中的 for 循环比在其它计算机语言中发现的 for 循环要灵活的多,包括 BASIC 。三个头元素中的
任何一个或全部可能被省略,尽管分号是必须的。而且初始化部分、条件判断部分和数据递增部分
可以是任何合法的使用任意变量的 C 语句。且可以使用任何数据类型包括 floats。这些不常用的类
5
型用于语句段也许可以为一些罕见的编程问题提供解决方案。
例如,在递增部分中使用一个乘法将形成对数级增长:
for(int x = 2; x < 100; x = x * 1.5){
println(x);
}
输出 : 2,3,4,6,9,13,19,28,42,63,94
另一个例子,在一个 for 循环中使一个 LED 灯渐渐地变亮和变暗:
void loop()
{
int x = 1;
for (int i = 0; i > -1; i = i + x){
analogWrite(PWMpin, i);
if (i == 255) x = -1; // 在峰值切换方向
delay(10);
}
}
switch case
switch case 语句
就像 if 语句, switch...case 通过允许程序员根据不同的条件指定不同的应被执行的代码来控制程序
流。特别地,一个 switch 语句对一个变量的值与 case 语句中指定的值进行比较。当一个 case 语句
被发现其值等于该变量的值。就会运行这个 case 语句下的代码。
break 关键字将中止并跳出 switch 语句段,常常用于每个 case语句的最后面。如果没有 break 语句,
switch 语句将继续执行下面的表达式( “持续下降” )直到遇到 break,或者是到达 switch 语句的末
尾。
示例:
switch (var) {
case 1:
//当 var 等于 1 执行这里
break;
case 2:
//当 var 等于 2 执行这里
break;
default:
// 如果没有匹配项,将执行此缺省段
// default 段是可选的
}
语法
switch (var) {
case label:
// statements
剩余53页未读,继续阅读
资源评论
w201628062
- 粉丝: 12
- 资源: 339
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功