欢迎光临
我们一直在努力

控制部分-Switch和Case条件语句

If语句允许你根据条件的真假(真(TRUE)或假(FALSE))进行两个分支操作。当需要进行多个判断时,你就必须使用If嵌套。不过其实还有一种更为简洁的处理多条件判断的方法,那就是使用switch语句,switch语句允许你一次对多种情况进行区分。本例向你展示如何使用switch语句来一次根据光敏电阻的四种不同状态(全黑,较暗,中等,较亮)进行不同的处理。

程序首先读取光敏电阻的模拟信号值。然后它使用**map()函数来将模拟值映射到四个数字:0,1,2,3。最终,一个switch()**语句将会根据映射后的数字输出不同的信息到电脑。

硬件需

Arduino板

光敏电阻 或 其他输出模拟信号的传感器

10kΩ电阻

跳线

面包板

连接线

电路

光敏电阻通过一个分压电路连接到A0口(使用10kΩ电阻进行分压)。在这个电路中,**analogRead()**函数在室内一般会返回0-600的数字。

原理图

代码

/*

Switch和Case条件语句

 

展示switch语句的使用,switch语句让你能够一次对变量的多个可能值进行分支处理,这和使用一系列if语句嵌套的功效相同。但使用switch将使代码更加简洁。

 

为了更好的看到效果,请在有良好照明的房间进行实验。实验过程中你只需要打开串口监视器,并且逐渐将你的手移到串口监视器上方。

 

电路搭建:

* 连接模拟信号传感器到A0口和+5V接口

* 连接10KΩ电阻到A0口和GND接口

 

代码公开。

*/

 

// 常量,定义了传感器的最大、最小值:

const int sensorMin = 0;      // 最小值

const int sensorMax = 600;    // 最大值

 

void setup() { 

// 初始化串口通信:

  Serial.begin(9600); 

 

 void loop() { 

// 读取传感器:

 int sensorReading = analogRead(A0); 

// 将传感器值映射到0-3:

 int range = map(sensorReading, sensorMin, sensorMax, 0, 3); 

 

// 根据映射后的值进行不同处理:

 switch (range) { 

 case 0:    //0表示手应该在正上方 输出全黑

      Serial.println("全黑"); 

 break

 case 1:    // 0表示手遮挡了部分光 输出较暗

      Serial.println("较暗"); 

 break

 case 2:    // 2表示手遮挡了小部分光 输出中等

      Serial.println("中等"); 

 break

 case 3:    // 3手未挡光 输出较亮

      Serial.println("bright"); 

break

  } 

  delay(1);        // 为串口稳定性延迟1毫秒

未经允许不得转载:Arduino-Maker » 控制部分-Switch和Case条件语句

支付宝扫码打赏 微信打赏

原创文章,若帮到您,欢迎打赏

分享到:更多 ()

评论 抢沙发

评论前必须登录!

 

线上商城

中贝斯特创客空间蘑菇云创客教育