以下内容源自Mixly官方技术文档:
https://mixly.readthedocs.io/zh_CN/latest/Arduino/AVR/04Logic.html
逻辑模块中的指令大多是逻辑运算处理内容,具体可分为:条件判断、逻辑运算、?运算。
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; }
|
不等于是等于符号的相反判断。
规则:符号两边的数据值相等时,返回FALSE,否则返回TRUE。
小于符号进行有顺序的比较,如果符号左边的数据值小于右边的数据值,则返回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) <=< span=""> 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为低电电平< span="">
1
2
3
4
5
6
7
8
9
10
11
| void setup(){ pinMode(3, INPUT); pinMode(4, OUTPUT); }
void loop(){ if (analogRead(A0) << span=""> 50 && digitalRead(3)) { digitalWrite(4,HIGH); } else { digitalWrite(4,LOW); } }
|
1
| (0 > 0)?false:false; |
注解
对于条件表达式b ? x : y,先计算条件b,然后进行判断。如果b的值为true,计算x的值,运算结果为x的值;否则,计算y的值,运算结果为y的值。一个条件表达式绝不会既计算x,又计算y。条件运算符是右结合的,也就是说,从右向左分组计算。例如,a ? b : c ? d : e将按a ? b : (c ? d : e)执行。
·判断条件:先计算判断条件的值
·x:当判断条件的值为true,运算结果为x的值
·y:当判断条件的值为false,运算结果为y的值
声控灯:A0连接声音传感器,D2连接LED,当A0>50时,LED为高电平;否则,LED为低电平
1
2
3
4
5
6
7
8
| void setup(){ Serial.begin(9600); pinMode(2, OUTPUT); }
void loop(){ Serial.println(analogRead(A0)); digitalWrite(2,(analogRead(A0) > 50)?HIGH:LOW); }
|