说明
通过if…else语句,用户可以让Arduino判断某一个条件是否达到,并且根据这一判断结果执行相应的程序。
结构
1 2 3 4 5 6 |
if( 表达式1 ) { 语句块1 } else { 语句块2 } |
上述结构表示:如果 “表达式1” 的条件得到满足则执行”语句块1″。否则Arduino将执行”语句块2″。(如下图所示)
例:
1 2 3 4 5 6 |
if( a == 0 ) { digitalWrite(LEDpin, HIGH); }else { digitalWrite(LEDpin, LOW); } |
在以上示例中,Arduino控制器通过判断变量a是否等于0,从而决定是否执行指令(点亮LED)
digitalWrite(LEDpin, HIGH);
假如变量a确实等于0,则执行这条指令。否则Arduino将不执行指令:(保持LED熄灭)
digitalWrite(LEDpin, LOW);
注意:在以上示例的表达式a == 0
中,==
是关系运算符号,这条语句的作用是让Arduino判断变量a是否等于零。切记不能使用单一等号=
。=
是赋值符号。 a = 0
的含义是给变量a赋值0。
关系运算符号
x == y (x 等于 y)
x != y (x 不等于 y)
x < y (x 小于 y)
x > y (x 大于 y)
x <= y (x 小于等于 y)
x >= y (x 大于等于 y)
if…else示例程序
在本示例中,我们将配置Arduino引脚2为输入模式。当开关闭合后,引脚2将获得高电平开关信号,引脚13旁的LED(如下照片红圈所示)将被点亮。反之,该LED为熄灭状态。
连接说明(如下图)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
/* if...else示例程序 v1.0 Created 2016 by 太极创客 www.taichi-maker.com 说明: 本程序旨在演示如何使用if...else语句。 在本示例中,当按钮被按下后,引脚13旁的LED将会点亮。 获得具体连接电路图,请参阅太极创客网站。 This example code is in the public domain. */ void setup() { Serial.begin(9600); //开始串口通讯 pinMode(2, INPUT_PULLUP); //将引脚2设置为输入上拉模式 pinMode(13, OUTPUT); } void loop() { int sensorVal = digitalRead(2); //将开关状态数值读取到变量中 Serial.println(sensorVal); //输出开关状态数值 //请留意在上拉模式下,按钮的逻辑状态是反的。 //即:开关断开时引脚读取到高电平。开关被按下后引脚读取到低电平。 //按钮被按下后,引脚13连接的LED将被点亮。按钮没有按下时,LED熄灭。 //如果按钮没有按下,熄灭LED。否则,点亮LED if (sensorVal == HIGH) { //按钮没有按下 digitalWrite(13, LOW); //熄灭LED } else { //否则 digitalWrite(13, HIGH); //点亮LED } } |
相关阅读:switch case, if