arduino语言(基础)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Arduino语言

Arduino语言是建立在C/C++基础上的,其实也就是基础的C语言,Arduino语言只不过把AVR单片机(微控制器)相关的一些参数设置都函数化,不用我们去了解他的底层,让我们不了解AVR单片机(微控制器)的朋友也能轻松上手。

在与Arduino DIYER接触的这段时间里,发现有些朋友对Arduino

语言还是比较难入手,那么这里我就简单的注释一下Arduino语言(本人也是半罐子水,有错的地方还请各位指正)。

基础C语言

关键字:

if...else

必须紧接着一个问题表示式(expression),若这个表示式为真,紧连着表示式后的代码就会被执行。若这个表示式为假,则执行紧接着else 之后的代码. 只使用 if不搭配else是被允许的。

范例:

if (val == 1) {

digitalWrite(LED,HIGH);

}

for

用来明定一段区域代码重复指行的次数。

范例:

for (int i = 0; i < 10; i++) {

Serial.print("ciao");

}

switch case

if叙述是程序里的分叉路口,switch case 是更多选项的路口。Swith case 根据变量值让程序有更多的选择,比起一串冗长的if叙述,使用swith case可使程序代码看起来比较简洁。

范例 :

switch (sensorValue) {

case 23:

digitalWrite(13,HIGH);

break;

case 46:

digitalWrite(12,HIGH);

break;

default: // 以上条件都不符合时,预设执行的动作

digitalWrite(12,LOW);

digitalWrite(13,LOW);

}

while

当while之后的条件成立时,执行括号内的程序代码。

范例 :

// 当sensor值小于512,闪烁LED灯

sensorValue = analogRead(1);

while (sensorValue < 512) {

digitalWrite(13,HIGH);

delay(100);

digitalWrite(13,HIGH);

delay(100);

sensorValue = analogRead(1);

}

do... while

和while 相似,不同的是while前的那段程序代码会先被执行一次,不管特定的条件式为真或为假。因此若有一段程序代码至少需要被执行一次,就可以使用do…while架构。

范例 :

do {

digitalWrite(13,HIGH);

delay(100);

digitalWrite(13,HIGH);

delay(100);

sensorValue = analogRead(1);

} while (sensorValue < 512);

break

让程序代码跳离循环,并继续执行这个循环之后的程序代码。此外,在break也用于分隔switch case 不同的叙述。

范例 :

//当sensor值小于512,闪烁LED灯

do {

// 按下按钮离开循环

if (digitalRead(7) == HIGH)

break;

digitalWrite(13,HIGH);

delay(100);

digitalWrite(13,HIGH);

delay(100);

sensorValue = analogRead(1);

} while (sensorValue < 512);

continue

用于循环之内,它可以强制跳离接下来的程序,并直接执行下一个循环。

范例 :

for (light = 0; light < 255; light++)

{

// 忽略数值介于 140 到 200之间

if ((x > 140) && (x < 200))

continue;

analogWrite(PWMpin, light);

delay(10);

}

return

函数的结尾可以透过return回传一个数值。

例如,有一个计算现在温度的函数叫 computeTemperature(),你想要回传现在的温度给temperature变量,你可以这样写:

int temperature = computeTemperature();

int computeTemperature() {

int temperature = 0;

temperature = (analogRead(0) + 45) / 100;

return temperature;

}

goto

语法符号:

//单行注释:/*多行注释:在这个范围内你可以写一整首诗*/运算符:

% 余数除法== 等于 !=不等于<= 小于等于>= 大于等于&& 交集|| 联集! 反相

数据类型:

boolean 布林

布尔变数的值只能为真(true)或是假(false)

char 字符

单一字符例如 A,和一般的计算机做法一样Arduino 将字符储存成一个数字,即使你看到的明明就是一个文字。

用数字表示一个字符时,它的值有效范围为 -128 到127。

注意:有两种主流的计算机编码系统ASCII 和UNICODE。ASCII 表示了127个字符,用来在序列终端机和分时计算器之间传输文字。UNICODE可表示的字符量比较多,在现代计算机操作系统内它可以用来表示多国语言。

在位数需求较少的信息传输时,例如意大利文或英文这类由拉丁文,阿拉伯数字和一般常见符号构成的语言,ASCII仍是目前主要用来交换信息的编码法。

byte 字节类型

储存的数值范围为0到255。如同字符一样字节型态的变量只需要用一个字节(8位)的内存空间储存。

int 整数

整数数据型态用到2字节的内存空间,可表示的整数范围为–

32,768 到 32,767; 整数变量是Arduino内最常用到的数据型态。unsigned int 无符号整数(绝对值)

无号整数同样利用2字节的内存空间,无号意谓着它不能储存负的数值,因此无号整数可表示的整数范围为0 到 65,535。

long 长整数

长整数利用到的内存大小是整数的两倍,因此它可表示的整数范围从–2,147,483,648 到 2,147,483,647。

unsigned long 无符号长整数

无号长整数可表示的整数范围为0 到 4,294,967,295。

float 浮点数

浮点数就是用来表达有小数点的数值,每个浮点数会用掉四字节的RAM,注意芯片内存空间的限制,谨慎的使用浮点数

double 双字节浮点

相关文档
最新文档