Arduino 编程中的判断和循环

2025-11-21 17:30:47

1、Arduino IDE 新建代码的方法,程序的上传方法,大家可以参考:

http://jingyan.baidu.com/article/414eccf6a8fb9f6b431f0ab1.html

来操作

Arduino 编程中的判断和循环

2、使用 if else 进行程序的判断

输入下列代码:

const int led = 13;

const int button = 2;

void setup()

{

  pinMode(led,OUTPUT);

  pinMode(button,INPUT);

  }

  void loop()

  {

    int val = digitalRead(button);

    if(val == HIGH)

    {

      digitalWrite(led,HIGH);

      }

      else

      digitalWrite(led,LOW);

    }

Arduino 编程中的判断和循环

3、硬件连接如图所示,效果是在按下按键的时候,Arduino UNO 控制器的 13 号引脚 LED 两起,松开时,LED 熄灭。

代码回顾:if...else

if 连接一个判断条件,而这个条件只有成立与不成立两种情况,当成立时,才会执行 if 内的程式。本例中是判断按键是否被按下,如果按下就执行 if 中的语句,会点亮 LED。

Arduino 编程中的判断和循环

4、使用 while 语句实现重复执行

输入下列代码:

const int led = 13;

const int sensor = 0;

void blink_led()

{

  digitalWrite(led,HIGH);

  delay(100);

  digitalWrite(led,LOW);

  delay(100);

 }

      

void setup()

{

  Serial.begin(9600);

  pinMode(led,OUTPUT);

  }

  

  void loop()

  {

    while(analogRead(sensor) > 500)

    {

      blink_led();

      Serial.print(".");

      }

      Serial.println(analogRead(sensor));

    }

Arduino 编程中的判断和循环

5、硬件连接如图所示,效果是当读取的 A0 接口模拟量大于 500 时,UNO 控制器 数字 13 号引脚所连接的 LED 会闪烁,并且通过串口打印 “.”,当 A0 接口模拟量小于 500 时,UNO 控制器数字 13 号引脚所连接的 LED熄灭,并通过串口打印当前读取的 A0 接口的值 

代码回顾:while 后加判断条件,当满足条件时,才会执行 while 内的程序

扩展:do...while...

于while的区别是,do 内的代码至少会被执行一次!而while中的代码不一定被执行

Arduino 编程中的判断和循环

Arduino 编程中的判断和循环

6、使用 for 语句循环

输入下列代码:

void setup() {

  Serial.begin(9600);

}

void loop() {

  Serial.println("for(int i=0;i<4;i++)");

  for(int i=0;i<4;i++)

  {

     Serial.println(i);

    }

}

Arduino 编程中的判断和循环

7、实验无需其他硬件,只需将 UNO 控制器连接到电脑即可。打开串口监视器,会循环打印 i 的值。

代码回顾:for(初始化条件; 判断条件; 反复执行内容)

例如本例中的代码执行顺序为:

(1)初始化 i=0 

(2)判断 i<4

(3)成立,就执行 for 内的代码

(4)执行 i++(自加 1)命令

(5)重复执行(2)-(4),直到判断 i 不小于 4 的时候,跳出循环

for 语句的使用方法类似 while,区别在于 for 是可以控制程序开始和结束的条件。

Arduino 编程中的判断和循环

8、使用 break 跳出循环

输入下列代码:

const int led = 13;

const int sensor = 0;

const int button = 2;

void blink_led()

{

  digitalWrite(led,HIGH);

  delay(100);

  digitalWrite(led,LOW);

  delay(100);

 }

      

void setup()

{

  Serial.begin(9600);

  pinMode(led,OUTPUT);

  }

  

  void loop()

  {

    while(analogRead(sensor) > 500)

    {

      if(digitalRead(button) == HIGH)

      {

        break;

        }

      blink_led();

      Serial.print(".");

      }

      Serial.println(analogRead(sensor));

    }

Arduino 编程中的判断和循环

9、如图所示连接硬件,按键连接到 D2 接口,电位计连接到 A0 接口,当判断 A0 的值大于 500 时,LED 闪烁;但是在按下按键时,会跳出循环,LED 停止闪烁。

Arduino 编程中的判断和循环

Arduino 编程中的判断和循环

10、switch 语句判断执行

输入下列代码:

const int led = 13;

void setup() {

  Serial.begin(9600);

  pinMode(led,OUTPUT);

}

void loop() {

  if(Serial.available()>0)

  {

     char ch = Serial.read();

     switch(ch)

     {

      case '1':

        blink_led();

        break;

      case '2':

        blink_led();

        blink_led();

        break;

      case '3':

        digitalWrite(led,HIGH);

        break;

      case '4':

        digitalWrite(led,LOW);

        break; 

      default:

        Serial.print(ch);

        break;

      }

    }

  }

  void blink_led()

  {

    digitalWrite(led,HIGH);

    delay(200);

    digitalWrite(led,LOW);

    delay(200);

    }

Arduino 编程中的判断和循环

11、实验无需其他硬件,只需将 UNO 控制器连接到电脑即可。打开串口监视器,输入相应的值“1,2,3,4”会对应执行相应的代码,当输入不是这四个数值时,会执行 default 内的代码。

代码回顾:switch...case...

1、switch 会判断串口接收到的值,并且跳到相应的 case 语句执行,case 的条件必须是个数值常数,也可使用字符串,且不可以有相同的值。在每个 case 语句中,如果没有 break 语句,程序就会连续执行。

例如:

case '1':

    blink();

case '2':

    blink();

    blink();

    break();

因为 case '1' 中没有 break 语句,所以当成立时,会执行三次 blink() 程序,在遇到 break 时才会跳出 case。

2、default 语句,是在前面所有的 case 语句都没有成立时,才会被执行,如果没有 default 语句,程序在所有 case 都不成立时,程序就不会做出任何处理。

Arduino 编程中的判断和循环

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢