合规国际互联网加速 OSASE为企业客户提供高速稳定SD-WAN国际加速解决方案。 广告
## **If条件判断** **条件判断结构**是编程中的最基本结构,在Arduino和其他语言中往往用**if()**语句实现条件判断。**if()**让你能够根据某个**条件**(**Condition**)的真假执行不同的代码。(条件只有两种可能,要么是**真**(**true**)要么是**假**(**false**))if语句的最简单形式如下: ~~~ if (someCondition) { // someCondition为 真 的时候处理这个花括号里的语句 } ~~~ If语句的完整形式如下: ~~~ if (someCondition) { // someCondition为 真 的时候处理这个花括号里的语句 } else { // someCondition为 假 的时候处理这个花括号里的语句 } ~~~ 还可以使用**if-else**嵌套多个if条件语句。使用**if-else**就可以在只有第一个条件为false(假)时才继续检查其他条件,如果第一个为true(真)就不检查了: ~~~ if (someCondition) { // someCondition是 真 的时候处理这个花括号里的语句 } else if (anotherCondition) { // someCondition是 假,并且anotherCondition是 真 的时候处理这个花括号里的语句 } ~~~ 你可以随时随地使用if语句。下面的代码将在A0口模拟信号值大于临界值的时候点亮LED。本例使用大多数Arduino板上的板载LED(内部连接到13引脚)。 ### **所需硬件** * Arduino板或Genuino板 * 电位器或者可变电阻 * 连接线 * 电路连接 ![图片来自官网](http://img.blog.csdn.net/20160525130827677) ### **原理图** ![图片来自官网](http://img.blog.csdn.net/20160525130840841) ### **代码** 在下列代码中,**analogValue **变量用来存储电位器的模拟信号值(电位器在A0口)。analogValue的值将与临界值(用**threshold**变量存储)进行比较。如果大于临界值就将13号引脚上的板载LED打开,如果小于临界值就将它关闭。 ~~~ /* If条件判断 本例展示if()语句的使用。代码将读取电位器的值,如果超过临界值就把LED打开,否则就将LED关闭。程序会把电位器的值输出到电脑。 电路搭建: * 电位器中间引脚连接到A0。两侧的引脚分别连接到+5V和GND。 * LED连接13号引脚到GND * 提示: 在大多数Arduino板上有13号引脚连接的板载LED,因此你一般不许要多加LED。 代码公开。 */ // 常量定义: const int analogPin = A0; // 电位器引脚 const int ledPin = 13; // LED引脚 const int threshold = 400; // 模拟信号临界值 void setup() { // 初始化LED引脚为输出模式: pinMode(ledPin, OUTPUT); // 初始化串口通信: Serial.begin(9600); } void loop() { // 读取电位器值: int analogValue = analogRead(analogPin); // 模拟信号值是否超过临界: if (analogValue > threshold) { digitalWrite(ledPin, HIGH); } else { digitalWrite(ledPin, LOW); } // 打印模拟信号值: Serial.println(analogValue); delay(1); // 为了稳定性,延迟1毫秒 } ~~~ ### **相关资料** [if()](https://www.arduino.cc/en/Reference/If)  [if…else](https://www.arduino.cc/en/Reference/Else)  [analogRead()](https://www.arduino.cc/en/Reference/AnalogRead)  [digitalWrite()](https://www.arduino.cc/en/Reference/DigitalWrite)  [serial.begin()](https://www.arduino.cc/en/Serial/Begin)  [serial.print()](https://www.arduino.cc/en/Serial/Print)  [原文链接](http://www.arduino.cc/en/Tutorial/IfStatement)