逻辑¶
逻辑模块中的指令大多是逻辑运算处理内容,具体可分为:条件判断、逻辑运算、?运算。
比较运算符¶
1 | 0 == 0;
|
描述¶
注解
比较运算符适用于比较两个值的运算符号,用比较运算符比较两个值时,结果是一个逻辑值,不是TRUE就是FALSE。
等于(=)¶
等于用在变量之间、变量和自变量之间以及其他类型的信息之间的比较,判断符号两侧的数据值是否相等,要求两侧数据类型相同时才能比较。
规则是:如果两个数据值相等,数据类型相同,则结果为TRUE,否则输出FALSE。
范例¶
1=1,返回True;1=“1”,不成立
1 2 3 4 5 6 7 8 9 10 | void setup(){
Serial.begin(9600);
if (1 == 1) {
Serial.print("True");
}
}
void loop(){
0 == "1";
1;
}
|
小于(<)¶
小于符号进行有顺序的比较,如果符号左边的数据值小于右边的数据值,则返回TRUE,否则返回FALSE。
小于等于(≤)¶
小于等于符号与小于符号类似,多出一种返回TRUE的情况,如果符号左边的数据值小于等于右边的数据值,则返回TRUE,否则返回FALSE。
大于(>)¶
大于符号进行有顺序的比较,如果符号左边的数据值大于右边的数据值,则返回TRUE,否则返回FALSE。
大于等于(≥)¶
大于等于符号与大于符号类似,多出一种返回TRUE的情况,如果符号左边的数据值大于等于右边的数据值,则返回TRUE,否则返回FALSE。
范例¶
在A0连接电位器,D9连接LED。转动电位器,大于600灯一直亮,在400和600之间,灯灭,小于400灯闪。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | void setup(){
Serial.begin(9600);
pinMode(9, OUTPUT);
}
void loop(){
Serial.println(analogRead(A0));
delay(1000);
if (analogRead(A0) >= 600) {
digitalWrite(9,HIGH);
} else if (analogRead(A0) <= 400) {
digitalWrite(9,HIGH);
delay(200);
digitalWrite(9,LOW);
delay(200);
} else {
digitalWrite(9,LOW);
}
}
|
逻辑运算符¶
1 | false && false;
|
描述¶
注解
逻辑运算符用于判定变量或值之间的逻辑。
且¶
且的含义同逻辑运算符与,只有当符号两边的表达式均为真时,才被判断为真,否则为假。
或¶
或也是逻辑运算符的一种,只有当两边的表达式均为假时,才被判断为假,否则为真。
范例¶
光控按钮灯:A0连接光线传感器,D4连接LED,D3连接按钮,当A0<50光线暗)并按钮被被下时,LED为高电平;否则,LED为低电电平
1 2 3 4 5 6 7 8 9 10 11 | void setup(){
pinMode(3, INPUT);
pinMode(4, OUTPUT);
}
void loop(){
if (analogRead(A0) < 50 && digitalRead(3)) {
digitalWrite(4,HIGH);
} else {
digitalWrite(4,LOW);
}
}
|