Arduino编程语言及物联网中的条件语句、循环语句、变量、数组与函数详解

MENU

  • 注释
  • 变量
  • 条件语句
  • if语句
  • switch语句
  • 循环语句
  • for循环
  • while循环
  • 数组
  • 函数
  • 函数基本介绍
  • 常用函数介绍
  • 总结

  • 注释

    当编写代码时,注释(comments)非常重要。注释是对代码的解释和说明,且对于其他开发者或者自己日后需要修改代码的时候,都非常有帮助。注释可以提高代码的可读性和可维护性,并且可以帮助自己更好地理解代码。
    注释由双斜线//或者斜线星号/*...*/来表示。单行注释以两个斜线开头,多行注释则以斜线星号开头,以星号斜线结尾。

    // 这是一个单行注释
    
    /*
    这是一个多行注释
    它可以跨越多行
    */
    

    注释可以用来解释代码的功能,算法或者实现细节。
    1、函数或者方法的用途
    2、参数的说明
    3、返回值的说明
    4、代码实现的说明
    5、代码的限制或者假设条件
    6、作者信息、创建时间、修改时间

    注释应该尽可能的清晰、简洁和明了,同时避免无用的注释,以免给代码带来混淆和干扰。注释应该随着代码一起更新,以确保注释和代码的一致性。


    变量

    当编写程序时,变量是一个非常基本的概念。一个变量可以存储一个值,这个值可以是数字、字符串、布尔值、对象等。
    在Arduino编程语言中,变量需要使用前声明。

    数据类型 变量名;
    

    数据类型指定变量可以存储的数据类型。
    1、int: 整数类型,占用2个字节,可以表示范围从-3276832767之间的整数。
    2、float: 浮点数类型,占用4个字节,可以表示小数。
    3、char: 字符类型,占用1个字节,可以表示一个字符。
    4、bool: 布尔类型,占用1个字节,只有两个值truefalse

    变量名是标识符,命名规则为字母、数字、下划线的组合,第一个字符不能是数字。

    // 声明一个名为a的整型变量
    int a;
    // 声明一个名为b的浮点型变量,并初始化为3.14
    float b = 3.14;
    // 声明一个名为c的字符型变量,并初始化为字符'A'
    char c = 'A';
    // 声明一个名为d的布尔型变量,并初始化为true
    bool d = true;
    

    变量在程序中可以被赋值或者修改。

    // 初始化a为10
    int a = 10;
    // 修改a的值为20
    a = 20;
    

    除上述基本数据类型外,Arduino还支持其他的数据类型,如字符串类型String,数组类型等。在使用变量时,需要根据需求选择合适的数据类型,避免浪费内存。


    条件语句

    当需要根据某个条件来执行不同的代码时,就需要使用条件语句。在Arduino编程语言中,常见的条件语句有if和switch。


    if语句

    if语句是最基本的条件语句。

    if (condition) {
      // if条件成立时要执行的代码
    }
    

    其中,condition是一个条件表达式,如果这个条件表达式的值为真,则执行花括号中的代码块。
    如果需要在条件不成立时执行代码,则可以添加else语句。

    if (condition) {
    	// if条件成立时要执行的代码
    } else {
    	// if条件不成立时要执行的代码
    }
    

    当然,也可以在else语句后面添加一个if语句,从而实现多个条件判断。这个语法结构被称为else if

    if (condition1) {
      // if条件1成立时要执行的代码
    } else if (condition2) {
      // if条件2成立时要执行的代码
    } else {
      // 如果以上条件都不成立,则执行这里的代码
    }
    

    switch语句

    switch语句也是一种条件语句,通常用于比较一个变量与一系列常量值。

    switch (variable) {
      case value1:
        // 如果variable的值等于value1,则执行这里的代码
        break;
      case value2:
        // 如果variable的值等于value2,则执行这里的代码
        break;
      default:
        // 如果variable的值不等于任何一个case的值,则执行这里的代码
        break;
    }
    

    在switch语句中,variable是要进行比较的变量,而case是常量值。如果variable的值等于某个case的值,则执行该case对应的代码块,并且在代码块末尾添加break语句,以防止执行其他的case。如果variable的值不等于任何一个case的值,则执行default中的代码块。需要注意的是,在switch语句中,每个case的值必须是常量,且不可重复。
    总的来说,if语句和switch语句都是用于控制程序执行流程的条件语句,开发者可以根据具体情况选择使用哪种语句。


    循环语句

    当需要重复执行一段代码时,就需要用到循环语句。在Arduino中,有两种主要的循环语句for循环和while循环。


    for循环

    for循环是一个控制结构,它允许重复执行一系列语句,具体次数由循环次数确定。

    for (初始化表达式; 布尔表达式; 更新表达式) {
      // 代码块
    }
    

    初始化表达式:在循环开始时执行一次,通常用于初始化计数器。
    布尔表达式:在每次迭代开始前计算,如果结果为true,则执行循环体语句,否则退出循环。
    更新表达式:在每次迭代结束后执行,通常用于更新计数器。

    for (int i = 0; i < 10; i++) {
      Serial.println(i);
    }
    

    在例子中,初始化表达式初始化了计数器i为0,布尔表达式检查i是否小于10,更新表达式将i增加1。在每次迭代中,计数器i的值都会被输出。


    while循环

    while循环是另一种重复执行语句块的方法。它会在条件为true时重复执行代码块。

    while (布尔表达式) {
      // 代码块
    }
    

    while循环只由一个条件表达式组成,当这个表达式为true时,执行循环体语句。在每次循环执行后,条件表达式都会被重新计算。如果条件表达式为false,则跳过循环体语句,直接执行循环后面的代码。

    int i = 0;
    
    while (i < 10) {
      Serial.println(i);
      i++;
    }
    

    在例子中,初始化变量i的值为0。while循环的条件表达式检查变量i是否小于10。只要条件为true,循环就会一直执行,每次将变量i的值增加1。在每次循环中,变量i的值都会被输出。
    总体来说,for循环适用于知道循环次数的情况,而while循环适用于不知道循环次数的情况。


    数组

    数组是一种用于存储多个值的数据类型。数组的每个元素都有一个唯一的索引,可以使用这个索引来访问数组中的元素。

    type arrayName[arraySize];
    

    其中,type是数组中元素的数据类型,arrayName是数组的名称,arraySize是数组的大小。

    int myArray[5];
    

    代码定义一个包含5个整数的数组,可以使用myArray[0]到myArray[4]访问这些元素。
    可以在定义数组时初始化数组。

    int myArray[5] = {1, 2, 3, 4, 5};
    

    代码定义一个包含5个整数的数组,并将其初始化为1、2、3、4、5。
    也可以使用以下方式初始化数组。

    int myArray[] = {1, 2, 3, 4, 5};
    

    代码定义一个包含5个整数的数组,并将其初始化为1、2、3、4、5。
    可以使用下标访问数组元素,下标从0开始。

    int myArray[5] = {1, 2, 3, 4, 5};
    // 将x的值设置为数组中下标为2的元素,即3。
    int x = myArray[2];
    

    可以使用循环遍历数组中的所有元素。

    int myArray[5] = {1, 2, 3, 4, 5};
    
    for (int i = 0; i < 5; i++) {
      // 打印数组中的每个元素
      Serial.println(myArray[i]);
    }
    

    Arduino中还支持多维数组。

    int myArray[3][3] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
    

    代码定义一个3行3列的二维数组。

    1 2 3
    4 5 6
    7 8 9
    

    可以使用两个下标来访问数组中的元素。

    int myArray[3][3] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
    // 将x的值设置为数组中第2行第3列的元素,即6。
    int x = myArray[1][2];
    

    函数

    函数基本介绍

    当程序中需要执行某个特定任务时,函数非常有用。函数可以包含一些代码块,这些代码块可以在程序的其他地方多次调用。在Arduino编程语言中,函数包含一个函数头和一个函数体。函数头包含函数名称和参数列表,函数体包含一些要执行的代码。

    // 函数头
    int add(int a, int b) {
      //函数体
      int sum = a + b;
      
      return sum;
    }
    

    函数的名称是add,它有两个参数,分别是a和b,函数体包含a和b相加的操作,最后通过return返回结果。
    在程序中调用函数。

    int x = 3;
    int y = 5;
    // 调用函数
    int z = add(x, y);
    

    在示例中,将x和y作为参数传递给add函数,该函数返回它们的和,最后将结果存储在z变量中。
    函数的参数也可以是其他类型的数据,例如字符串、浮点数等等。在Arduino编程语言中,函数也可以没有参数,也可以没有返回值。

    // 函数头
    void sayHello() {
    // 函数体
      Serial.println("Hello World!");
    }
    

    函数的名称是sayHello,它没有参数和返回值。函数体包含一条输出语句,它将字符串"Hello World!"输出到串行监视器中。
    函数的使用可以让代码更加清晰、易读和易于维护。通过将代码块封装到函数中,可以使代码更加模块化,也可以避免在多个地方重复编写相同的代码。在编写代码时,应该尽可能地使用函数,以便使代码更加可读、易于维护和可扩展。


    常用函数介绍

    使用Arduino进行编程时,有许多内置函数可用。这些函数可以更轻松地编写程序,处理输入和输出,控制逻辑流和实现其他功能。


    01、pinMode(pin, mode): 用于配置数字引脚的输入或输出模式。pin是数字引脚的编号,mode是要设置的模式(输入或输出)。
    02、digitalWrite(pin, value): 用于在数字引脚上写入数字值(HIGH或LOW)。pin是数字引脚的编号,value是要写入的值。
    03、digitalRead(pin): 用于读取数字引脚上的数字值(HIGH或LOW)。pin是数字引脚的编号。
    04、analogRead(pin): 用于读取模拟引脚上的模拟值(0-1023)。pin是模拟引脚的编号。
    05、analogWrite(pin, value): 用于在支持PWM输出的数字引脚上输出模拟值(0-255)。pin是数字引脚的编号,value是要输出的值。
    06、delay(ms): 用于在程序中创建暂停(延迟)时间。ms是要延迟的毫秒数。
    07、millis(): 返回自启动以来的毫秒数,可以用于时间跟踪和计时器。
    08、Serial.begin(baud): 用于初始化串口通信,其中baud是波特率。
    09、Serial.print(data): 用于将数据打印到串口监视器。data可以是数字,字符串或其他数据类型。
    10、Serial.available(): 用于检查是否有数据可以从串口读取。


    这些函数只是Arduino可用的众多函数中的一部分。熟悉这些常用函数可以帮助我们更轻松地编写程序,并为实现特定功能提供了有用的工具。
    下面是一个简单的实例代码,演示如何控制一个LED灯的亮灭。

    // 设置LED引脚
    int led_pin = 2;
    
    void setup() {
      // 设定引脚为输出模式
      pinMode(led_pin, OUTPUT);
    }
    
    void loop() {
      // 点亮LED
      digitalWrite(led_pin, HIGH);
      // 等待一段时间
      delay(1000);
      // 关闭LED
      digitalWrite(led_pin, LOW);
      // 等待一段时间
      delay(1000);
    }
    

    代码段中,首先定义一个整型变量led_pin,表示连接LED灯的引脚。在setup()函数中,我们将该引脚设定为输出模式,然后在loop()函数中交替点亮和关闭LED灯,并在两次操作之间等待1秒钟的时间。


    总结

    本文介绍Arduino的基本概念和编程语言,并演示如何通过Arduino板上的数字和模拟引脚来控制硬件设备。对于初学者而言,理解这些基础知识是开始进行更高级项目的基础。如果想进一步深入了解Arduino,可以参考官方文档或者更高级别的教程。

    作者:智码帮MJ682517

    物联沃分享整理
    物联沃-IOTWORD物联网 » Arduino编程语言及物联网中的条件语句、循环语句、变量、数组与函数详解

    发表回复