基于Arduino的嵌入式系统入门与实践-Arduino的编程语言
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
n 1 定时函数
(1) delay() 功能:延时一段时间(单位为ms)。 语法格式:delay(ms)。 参数说明:ms:延时的毫秒数 (unsigned long型)。 返回值:无。
2
3.1 函数
例子:下面代码中,LED灯亮灭时间间隔是1秒钟。
int ledPin = 13;
// LED 连到 13引脚
20
3.1 函数
n 4 随机函数
(1)random() 功能:随机函数,产生伪随机数。 语法格式:random(max)和random(min, max)。 参数说明:min:随机数的下限值,可选;max:随机数的 上限值。 返回值:在min 和 max-1 (long类型)之间的随机数。
random() 不是真正的随机数发生器,每次程序执行时, 产生的序列是一样的。
19
3.1 函数
(13)isWhitespace() 功能:判断字符是否是空格、走纸('\f')、换行('\n')、回车('\ 水平制表符('\t')、垂直制表符 ('\v')。 语法格式:isWhitespace (thisChar)。 参数说明:thisChar:变量(char类型)。 返回值:如果字符是空格、走纸('\f')、换行('\n')、回车('\r' 水平制表符('\t')、垂直制表符 ('\v'),返回真;否则返回假。
y = map(x, 0, 255, 0, 1000); //将0~255映射为0~1000。 上下限也可以是负数。
9
3.1 函数
(4)max() 功能:计算两个数中的较大值。 语法格式:max(x, y)。 参数说明:x:第一个数据;y:第二个数据。 返回值:两个数中的较大者,二者可以为任意数据类型。 (5)min() 功能:计算两个数中的较小值。 语法格式:min(x, y)。 参数说明:x:第一个数据;y:第二个数据,二者可以为任 意数据类型。 返回值:两个数中的较小者。
16
3.1 函数
(7)isHexadecimalDigit() 功能:判断字符是否是十六进制数。 语法格式:isHexadecimalDigit (thisChar)。 参数说明thisChar:变量(char类型)。 返回值:如果字符是十六进制数,返回真;否则返回假。 (8)isLowerCase() 功能:判断字符是否是小写字母。 语法格式:isLowerCase (thisChar)。 参数说明:thisChar:变量(char类型)。 返回值:如果字符是小写字母,返回真;否则返回假。
8
3.1 函数
(3)map() 功能:将整数从一个范围映射到另一个范围。下限可能大于或 小于上限,该函数可用于将数的范围取反。只适用整数。 语法格式:map(value, fromLow, fromHigh, toLow, toHigh)。 参数说明:value:要映射的整数。fromLow :映射前数 据范围的下限,fromHigh :映射前数据范围的上限。 toLow:映射后数据范围的下限,toHigh:映射后数据范 围的上限。 返回值:映射后的数据。 例如
10
3.1 函数
(6)pow() 功能:计算一个数的幂。幂可以是一个分数幂。方便用于求一 个数或曲线的指数映射。 语法格式:pow(base, exponent)。 参数说明:base:数据(float类型);exponent:幂(float类 型)。 返回值:求幂的结果(double类型)。 (7)sqrt() 功能:计算一个数的平方根。 语法格式:sqrt (x)。 参数说明:x:数据,任意数据类型。 返回值:求平方根的结果(double类型)。
第3章 Arduino的编程语言
3.1 函数 3.2 变量 3.3 程序结构 3.4 控制语句 3.5 运算符 3.6 Arduino类库 3.7 Arduino自定义类库
3.1 函数
在C/C++语言编程中,函数是很常见的。Arduino提 供了许多函数,其功能是控制 Arduino开发板,进行数值计 算等。包括数字I/O函数、模拟I/O函数、高级I/O函数、 时间函数、数学函数、字符函数、随机函数、位和字节函数、 外部中断函数以及串口通讯函数等。
13
3.1 函数
n 3 字符函数
(1)isAlpha() 功能:判断字符是否是字母。 语法格式:isAlpha(thisChar)。 参数说明:thisChar:变量(char类型)。 返回值:如果字符是字母,返回真;否则返回假。 (2) isAlphaNumeric() 功能: 判断字符是否是字符或数字。 语法格式:isAlphaNumeric(thisChar)。 参数说明:thisChar:变量(char类型)。 返回值:如果字符是字母或数字,返回真;否则返回假。
24
3.1 函数
(5)bitWrite() 功能:给一个数字变量的指定位赋值。 语法格式:bitWrite(x,n,b)。 参数说明:x:数字变量;n:指定要赋值的位(最低位是0位) ;b:要赋的值(0或1)。 返回值:无。 (6)highByte() 功能:提取一个字的高字节,或一个较大数据的第二个低字节。 语法格式:highByte(x)。 参数说明:x:数字变量(任意类型)。 返回值:字节。
n 5 位和字节函数
(1) bit() 功能:计算指定位的二进制权值(bit 0 是 1, bit 1 是 2, bit 2是4,等等)。 语法格式:bit(n) 。 参数说明:n:指定位。 返回值:位的权值 (2)bitClear() 功能:清零一个数字变量的指定位。 语法格式:bitClear(x,n)。 参数说明:x:数字变量。n:指定要清零的位(最低位是0位) 。无返回值。
void setup()
{
pinMode(ledPin, OUTPUT); // 设置13引脚为输出模式
}
void loop()
{
digitalWrite(ledPin, HIGH); // 点亮LED
delay(1000);
// 延时1s=1000ms
digitalWrite(ledPin, LOW); // 熄灭LED
18
3.1 函数
(11)isSpace() 功能:判断一个字符是否是空格。 语法格式:isSpace (thisChar)。 参数说明:thisChar:变量(char类型)。 返回值:如果字符是空格,返回真;否则返回假。 (12)isUpperCase() 功能:判断字符是否是大写字母。 语法格式:isUpperCase (thisChar)。 参数说明:thisChar:变量(char类型)。 返回值:如果字符是大写字母,返回真;否则返回假。
23
3.1 函数
(3) bitRead() 功能:读取一个数字变量的指定位的值。 语法格式:bitRead (x,n)。 参数说明:x:数字变量。n:指定要读取的位(最低位是0位) 。 返回值:指定位的值(0 或 1)。 (4) bitSet() 功能:将一个数字变量的指定位置1。 语法格式:bitSet(x,n)。 参数说明:x:数字变量。n:指定要置1的位(最低位是0位) 。无返回值受影响:RX引脚上的串行通讯被记录下来; PWM (analogWrite函数输出)的值和引脚状态保持不变; 中断操作正常。
4
3.1 函数
(2)delayMicroseconds()
功能:延时一段时间(μs为单位,1ms=1000μs)。可实 现最大16383μs的精确延时。若延时时间超过几千毫秒,应 该选择delay()函数。
11
3.1 函数
(8)sq() 功能:计算一个数的平方。 语法格式:sq(x)。 参数说明:x:数,任意数据类型。 返回值:求x的平方的结果。 (9)cos() 功能:计算一个角度(弧度)的余弦值。结果在-1~1之间。 语法格式:cos(rad)。 参数说明:rad:弧度角。 返回值:角度的余弦值(double类型)。
6
3.1 函数
(4)millis() 功能:获取程序运行的ms数。大约50天后溢出,从0开始。 语法格式:time = millis()。 参数说明:无。 返回值:以毫秒为单位的程序运行的时间值 (unsigned long 型)。
7
3.1 函数
n 2 数学函数
(1)abs() 功能:取绝对值。 语法格式:abs(x)。 参数说明:x:整数。 返回值: 若 x大于等于0,返回x;若x小于0,返回-x。 (2)constrain() 功能:将值归一化在某个范围内。 语法格式:constrain(x, a, b)。 参数说明:x:需归一化的数据。a:数据下限,b:数据上限。 三者均为任意数据类型。 返回值:若 x在a和b之间,返回x;若x小于a,返回a;若x 大于b,返回b。
14
3.1 函数
(3)isAscii() 功能:判断字符是否是ASCII码。 语法格式:isAscii(thisChar)。 参数说明:thisChar:变量(char类型)。 返回值:如果字符是ASCII码,返回真;否则返回假。 (4)isControl() 功能:判断字符是否是控制符。 语法格式:isControl(thisChar)。 参数说明:thisChar:变量(char类型)。 返回值:如果字符是控制符,返回真;否则返回假。
21
3.1 函数
(2)randomSeed() 功能:随机种子初始化伪随机数发生器,使产生的随机序列始 于一个随机点。当很长时,这个序列总是相同的。 语法格式:randomSeed(seed)。 参数说明:seed:初始化伪随机序列的数据(unsigned long类型)。无返回值。
22
3.1 函数
17
3.1 函数
(9)isPrintable() 功能:判断任意一个字符是否可输出打印。 语法格式:isPrintable (thisChar)。 参数说明:thisChar:变量(char类型)。 返回值:如果任意字符可输出打印,返回真;否则返回假。 (10)isPunct() 功能:判断一个字符是否是标点符号。 语法格式:isPunct (thisChar)。 参数说明:thisChar:变量(char类型)。 返回值:如果字符是标点符号,返回真;否则返回假。
12
3.1 函数
(10)sin() 功能:计算一个角度(弧度)的正弦值。结果在-1~1之间。 语法格式:sin(rad)。 参数说明:rad:弧度角。 返回值:角度的正弦值(double类型)。 (11) tan() 功能:计算一个角度(弧度)的正切值。结果在-1~1之间。 语法格式:tan(rad)。 参数说明:rad:弧度角。 返回值:角度的正切值(double类型)。
语法格式:delayMicroseconds (μs)。
参数说明:μs: 延时的微妙数 (unsigned int型)。
用法与delay()函数一样。
delayMicroseconds(50);
// 延时50μs
5
3.1 函数
(3)micros() 功能:返回μs为单位的程序运行时间。大约70分钟后溢出。 语法格式:time = micros()。 返回值:返回μs为单位的程序运行时间 (unsigned long型)。 (4)millis() 功能:返回ms为单位的程序运行时间。大约50天后溢出。 语法格式:time = millis()。 返回值:返回ms为单位的程序运行时间 (unsigned long型)。
delay(1000);
// 延时1s
}
3
3.1 函数
许多程序使用delay()函数来实现较短的延时,例如开 关去抖动,但delay()的使用也有严重缺陷。例如:延时期间 无法读取传感器的值,无法进行数学计算,或无法控制引脚等。 因此,延时函数阻止了大部分操作。控制时间的另一种方法是 调用millis() 函数。当延时时间超过10s时,有经验的人一 般都尽量避免使用delay()函数。
15
3.1 函数
(5)isDigit() 功能:判断字符是否是数字。 语法格式:isDigit(thisChar)。 参数说明:thisChar:变量(char类型)。 返回值:如果字符是数字,返回真;否则返回假。 (6)isGraph() 功能:判断一个非空字符是否可输出。 语法格式:isGraph(thisChar)。 参数说明:thisChar:变量(char类型)。 返回值:如果字符是可打印的,返回真;否则返回假。
(1) delay() 功能:延时一段时间(单位为ms)。 语法格式:delay(ms)。 参数说明:ms:延时的毫秒数 (unsigned long型)。 返回值:无。
2
3.1 函数
例子:下面代码中,LED灯亮灭时间间隔是1秒钟。
int ledPin = 13;
// LED 连到 13引脚
20
3.1 函数
n 4 随机函数
(1)random() 功能:随机函数,产生伪随机数。 语法格式:random(max)和random(min, max)。 参数说明:min:随机数的下限值,可选;max:随机数的 上限值。 返回值:在min 和 max-1 (long类型)之间的随机数。
random() 不是真正的随机数发生器,每次程序执行时, 产生的序列是一样的。
19
3.1 函数
(13)isWhitespace() 功能:判断字符是否是空格、走纸('\f')、换行('\n')、回车('\ 水平制表符('\t')、垂直制表符 ('\v')。 语法格式:isWhitespace (thisChar)。 参数说明:thisChar:变量(char类型)。 返回值:如果字符是空格、走纸('\f')、换行('\n')、回车('\r' 水平制表符('\t')、垂直制表符 ('\v'),返回真;否则返回假。
y = map(x, 0, 255, 0, 1000); //将0~255映射为0~1000。 上下限也可以是负数。
9
3.1 函数
(4)max() 功能:计算两个数中的较大值。 语法格式:max(x, y)。 参数说明:x:第一个数据;y:第二个数据。 返回值:两个数中的较大者,二者可以为任意数据类型。 (5)min() 功能:计算两个数中的较小值。 语法格式:min(x, y)。 参数说明:x:第一个数据;y:第二个数据,二者可以为任 意数据类型。 返回值:两个数中的较小者。
16
3.1 函数
(7)isHexadecimalDigit() 功能:判断字符是否是十六进制数。 语法格式:isHexadecimalDigit (thisChar)。 参数说明thisChar:变量(char类型)。 返回值:如果字符是十六进制数,返回真;否则返回假。 (8)isLowerCase() 功能:判断字符是否是小写字母。 语法格式:isLowerCase (thisChar)。 参数说明:thisChar:变量(char类型)。 返回值:如果字符是小写字母,返回真;否则返回假。
8
3.1 函数
(3)map() 功能:将整数从一个范围映射到另一个范围。下限可能大于或 小于上限,该函数可用于将数的范围取反。只适用整数。 语法格式:map(value, fromLow, fromHigh, toLow, toHigh)。 参数说明:value:要映射的整数。fromLow :映射前数 据范围的下限,fromHigh :映射前数据范围的上限。 toLow:映射后数据范围的下限,toHigh:映射后数据范 围的上限。 返回值:映射后的数据。 例如
10
3.1 函数
(6)pow() 功能:计算一个数的幂。幂可以是一个分数幂。方便用于求一 个数或曲线的指数映射。 语法格式:pow(base, exponent)。 参数说明:base:数据(float类型);exponent:幂(float类 型)。 返回值:求幂的结果(double类型)。 (7)sqrt() 功能:计算一个数的平方根。 语法格式:sqrt (x)。 参数说明:x:数据,任意数据类型。 返回值:求平方根的结果(double类型)。
第3章 Arduino的编程语言
3.1 函数 3.2 变量 3.3 程序结构 3.4 控制语句 3.5 运算符 3.6 Arduino类库 3.7 Arduino自定义类库
3.1 函数
在C/C++语言编程中,函数是很常见的。Arduino提 供了许多函数,其功能是控制 Arduino开发板,进行数值计 算等。包括数字I/O函数、模拟I/O函数、高级I/O函数、 时间函数、数学函数、字符函数、随机函数、位和字节函数、 外部中断函数以及串口通讯函数等。
13
3.1 函数
n 3 字符函数
(1)isAlpha() 功能:判断字符是否是字母。 语法格式:isAlpha(thisChar)。 参数说明:thisChar:变量(char类型)。 返回值:如果字符是字母,返回真;否则返回假。 (2) isAlphaNumeric() 功能: 判断字符是否是字符或数字。 语法格式:isAlphaNumeric(thisChar)。 参数说明:thisChar:变量(char类型)。 返回值:如果字符是字母或数字,返回真;否则返回假。
24
3.1 函数
(5)bitWrite() 功能:给一个数字变量的指定位赋值。 语法格式:bitWrite(x,n,b)。 参数说明:x:数字变量;n:指定要赋值的位(最低位是0位) ;b:要赋的值(0或1)。 返回值:无。 (6)highByte() 功能:提取一个字的高字节,或一个较大数据的第二个低字节。 语法格式:highByte(x)。 参数说明:x:数字变量(任意类型)。 返回值:字节。
n 5 位和字节函数
(1) bit() 功能:计算指定位的二进制权值(bit 0 是 1, bit 1 是 2, bit 2是4,等等)。 语法格式:bit(n) 。 参数说明:n:指定位。 返回值:位的权值 (2)bitClear() 功能:清零一个数字变量的指定位。 语法格式:bitClear(x,n)。 参数说明:x:数字变量。n:指定要清零的位(最低位是0位) 。无返回值。
void setup()
{
pinMode(ledPin, OUTPUT); // 设置13引脚为输出模式
}
void loop()
{
digitalWrite(ledPin, HIGH); // 点亮LED
delay(1000);
// 延时1s=1000ms
digitalWrite(ledPin, LOW); // 熄灭LED
18
3.1 函数
(11)isSpace() 功能:判断一个字符是否是空格。 语法格式:isSpace (thisChar)。 参数说明:thisChar:变量(char类型)。 返回值:如果字符是空格,返回真;否则返回假。 (12)isUpperCase() 功能:判断字符是否是大写字母。 语法格式:isUpperCase (thisChar)。 参数说明:thisChar:变量(char类型)。 返回值:如果字符是大写字母,返回真;否则返回假。
23
3.1 函数
(3) bitRead() 功能:读取一个数字变量的指定位的值。 语法格式:bitRead (x,n)。 参数说明:x:数字变量。n:指定要读取的位(最低位是0位) 。 返回值:指定位的值(0 或 1)。 (4) bitSet() 功能:将一个数字变量的指定位置1。 语法格式:bitSet(x,n)。 参数说明:x:数字变量。n:指定要置1的位(最低位是0位) 。无返回值受影响:RX引脚上的串行通讯被记录下来; PWM (analogWrite函数输出)的值和引脚状态保持不变; 中断操作正常。
4
3.1 函数
(2)delayMicroseconds()
功能:延时一段时间(μs为单位,1ms=1000μs)。可实 现最大16383μs的精确延时。若延时时间超过几千毫秒,应 该选择delay()函数。
11
3.1 函数
(8)sq() 功能:计算一个数的平方。 语法格式:sq(x)。 参数说明:x:数,任意数据类型。 返回值:求x的平方的结果。 (9)cos() 功能:计算一个角度(弧度)的余弦值。结果在-1~1之间。 语法格式:cos(rad)。 参数说明:rad:弧度角。 返回值:角度的余弦值(double类型)。
6
3.1 函数
(4)millis() 功能:获取程序运行的ms数。大约50天后溢出,从0开始。 语法格式:time = millis()。 参数说明:无。 返回值:以毫秒为单位的程序运行的时间值 (unsigned long 型)。
7
3.1 函数
n 2 数学函数
(1)abs() 功能:取绝对值。 语法格式:abs(x)。 参数说明:x:整数。 返回值: 若 x大于等于0,返回x;若x小于0,返回-x。 (2)constrain() 功能:将值归一化在某个范围内。 语法格式:constrain(x, a, b)。 参数说明:x:需归一化的数据。a:数据下限,b:数据上限。 三者均为任意数据类型。 返回值:若 x在a和b之间,返回x;若x小于a,返回a;若x 大于b,返回b。
14
3.1 函数
(3)isAscii() 功能:判断字符是否是ASCII码。 语法格式:isAscii(thisChar)。 参数说明:thisChar:变量(char类型)。 返回值:如果字符是ASCII码,返回真;否则返回假。 (4)isControl() 功能:判断字符是否是控制符。 语法格式:isControl(thisChar)。 参数说明:thisChar:变量(char类型)。 返回值:如果字符是控制符,返回真;否则返回假。
21
3.1 函数
(2)randomSeed() 功能:随机种子初始化伪随机数发生器,使产生的随机序列始 于一个随机点。当很长时,这个序列总是相同的。 语法格式:randomSeed(seed)。 参数说明:seed:初始化伪随机序列的数据(unsigned long类型)。无返回值。
22
3.1 函数
17
3.1 函数
(9)isPrintable() 功能:判断任意一个字符是否可输出打印。 语法格式:isPrintable (thisChar)。 参数说明:thisChar:变量(char类型)。 返回值:如果任意字符可输出打印,返回真;否则返回假。 (10)isPunct() 功能:判断一个字符是否是标点符号。 语法格式:isPunct (thisChar)。 参数说明:thisChar:变量(char类型)。 返回值:如果字符是标点符号,返回真;否则返回假。
12
3.1 函数
(10)sin() 功能:计算一个角度(弧度)的正弦值。结果在-1~1之间。 语法格式:sin(rad)。 参数说明:rad:弧度角。 返回值:角度的正弦值(double类型)。 (11) tan() 功能:计算一个角度(弧度)的正切值。结果在-1~1之间。 语法格式:tan(rad)。 参数说明:rad:弧度角。 返回值:角度的正切值(double类型)。
语法格式:delayMicroseconds (μs)。
参数说明:μs: 延时的微妙数 (unsigned int型)。
用法与delay()函数一样。
delayMicroseconds(50);
// 延时50μs
5
3.1 函数
(3)micros() 功能:返回μs为单位的程序运行时间。大约70分钟后溢出。 语法格式:time = micros()。 返回值:返回μs为单位的程序运行时间 (unsigned long型)。 (4)millis() 功能:返回ms为单位的程序运行时间。大约50天后溢出。 语法格式:time = millis()。 返回值:返回ms为单位的程序运行时间 (unsigned long型)。
delay(1000);
// 延时1s
}
3
3.1 函数
许多程序使用delay()函数来实现较短的延时,例如开 关去抖动,但delay()的使用也有严重缺陷。例如:延时期间 无法读取传感器的值,无法进行数学计算,或无法控制引脚等。 因此,延时函数阻止了大部分操作。控制时间的另一种方法是 调用millis() 函数。当延时时间超过10s时,有经验的人一 般都尽量避免使用delay()函数。
15
3.1 函数
(5)isDigit() 功能:判断字符是否是数字。 语法格式:isDigit(thisChar)。 参数说明:thisChar:变量(char类型)。 返回值:如果字符是数字,返回真;否则返回假。 (6)isGraph() 功能:判断一个非空字符是否可输出。 语法格式:isGraph(thisChar)。 参数说明:thisChar:变量(char类型)。 返回值:如果字符是可打印的,返回真;否则返回假。