条件判断结构是编程中的最基本结构,在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) {
} else if (anotherCondition) {
// someCondition是 假,并且anotherCondition是 真 的时候处理这个花括号里的语句
}
你可以随时随地使用if语句。下面的代码将在A0口模拟信号值大于临界值的时候点亮LED。本例使用大多数Arduino板上的板载LED(内部连接到13引脚)。
硬件需求
Arduino板
电位器或者可变电阻
连接线
电路连接
电路
原理图
代码
在下列代码中,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条件判断
本例展示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毫秒
}
请先
!