第13章Arduino编程参考

第13章Arduino编程参考

一、最重要的两个函数

在Arduino中, 标准的程序入口main函数在内部被定义, 只需要关心两个函数。

void setup() {

  // put your setup code here, to run once:

}

说明:Arduino板起动,setup()函数被调用。初始化变量,引脚模式,使用某个库等。在Arduino板的上电和复位时只运行一次。

void loop() {

  // put your main code here, to run repeatedly:

}

说明:用程序改变状态和响应事件,实时控制arduino板,效果连续循环。

二、控制语句

1.if语句

if (x >1)

{

  // 加入代码

}

说明:if与比较运算符结合使用,测试是否已达到某种条件。当x大于1,可以执行代码。圆括号中的语句为真,大括号中的语句就会执行。否则,程序将跳过这段代码。

2.if...else语句

if (x < 1)

{

  // 执行A

}

else if (x >= 2)

{

  // 执行B

}

else

{

  // 执行C

}

说明:某个测试条件为真,关联的代码块就会执行,程序将跳到结构的下一行。如果没有测试被验证为真。缺省的else语句块,被设为默认行为,并执行。

3.for语句

结构:for (初始化部分; 条件判断部分; 数据递增部分) {

//语句块

}

举例:for(int x = 1; x < 10; x = x +1){

    println(x);

}

说明:x初始化为1;条件判断,x小于10;每循环一次x加1。

  1. switch case 语句

举例: switch (x) {

    case 1:

      //当x等于1执行

      break;//跳出

    case 2:

      //当x等于2执行

      break;

    default:

      // 如果没有匹配项,将执行此缺省段

        }

说明:根据不同的条件,指定执行的代码,控制程序流。

  1. while循环语句

举例:

x= 8;

 while(x < 19){

      x++;

 }

说明:while循环持续,直到圆括号()中的表达式变为假。

  1. do...while循环语句

举例:

do

{

  delay(20);          // 保证传感器稳定

  x = readSensors();  // 读取传感器的值

} while (x < 50);     //当x不小于50。

说明:do...while循环,条件在循环的末尾被测试。

  1. break语句

举例:参考4实例

说明:中止do,跳出循环。

  1. continue语句

举例:

for (x = 0; x < 10; x ++)

{

if (x > 5 && x < 7){  

continue;//创建值跳转

    }

    digitalWrite(Mpin, x);

    delay(8);

}

说明:continue语句只结束本次循环,而不是终止整个循环的执行。

  1. return语句

举例:

int checkSensor(){      

    if (analogRead(1) < 100) {

        return 0;

    else{

        return 1;

    }

}

说明:终止函数,向被调用函数返回一个值。

10.goto语句

举例:

三、语法

举例:

1.注释:帮助理解程序的创意过程。

形式:

x = 0;  //单行注释。

 /* 这是多行注释

if (Y> 0){  

x = 3;         

*/

2.#define 宏定义

格式:#define Hpin 0

在程序编译前,给常量取一个名字。

#include 包含(包含外部的库。)

3.算术运算符

PinVal = analogRead(2); =赋值运算符(单个等号),等号右边的值存储到等号左边的变量中。

加,减,乘,除运算符(关注数据类型的影响)

y = y + 1;

x = x - 1;

i = j * 2;

r = r / 2;

%(取模)(不能用于浮点型数。)

x = 9 % 5;   // x的值是4

比较运算符

if(条件) and ==, !=, <, >

举例:

if (x ==10){

  digitalWrite(Lpin1, HIGH);

  digitalWrite(Lpin1, LOW);

}   

如果x与10相等,点亮灯,否则关闭。

布尔运算符 。 

 x > 0 && y > 0

&& (逻辑与),只有在两个操作数都为真时才返回真。

x > 0 || y > 0

|| (逻辑或),任意一个为真时返回真。

!x

! (非),当操作数为假时返回真。

位运算

按位与(&)两个输入位都是1,结果输出1,否则输出0。

int a = 2;    //   00000000000000010

int b = 3;    //   00000000000000011

int c = a & b;  // 00000000010000010

按位或(|)两个输入位其中一个或都是1按位或将得到1,否则为0。

int a = 2;    //   00000000000000010

int b = 3;    //   00000000000000011

int c = a | b;  // 00000000010000011

按位异或(^),当输入位都为1时它返回0

int a = 2;    //   0000000000000010

int b = 3;    //   0000000000000011

int c = a ^ b;  // 0000000010000001

按位取反(~),翻转其每一位,0变为1,1变为0。

int a = 2;    //   00000000000000010

int b = ~ a;//1111111111111101

左移运算(<<)

int a = 1;        // 0000000000000001

int b = a << 1;  // 0000000000000010

右移运算(>>)

int x = 1000;

int y = x >> 3;

复合运算符

自加++

i++; //相当于 i = i + 1;

自减--

i--; //相当于 i = i - 1;

复合加+=

i+=1; //相当于 i = i + 1;

复合减-=

i-=1; //相当于 i = i - 1;

复合乘*=

i*=2; //相当于 i = i * 2;

复合除/=

i/=2; //相当于 i = i / 2;

复合与&=

i&=2; //相当于 i = i & 2;

复合或|=

i|=2; //相当于 i = i | 2;

 

posted @ 2020-03-23 20:51  创智养成教育  阅读(730)  评论(0编辑  收藏  举报