【基础使用】玩转掌控板7—双向开关灯

论坛小助手, 创意当实现
帖子创建于2019年05月31日 基础使用 1754 次浏览 2 个赞 2 人关注

在生活中,我们为了使用方便,常常需要使用多个开关来控制一个光源的亮灭,比如我们的房间内照明灯通常就是使用多个开关来控制,那本节课我们就来学习如何使用掌控板来做一个双向开关灯。

学习目标

1、了解位运算符的按位异或运算符“^”

2、使用板载A,B键控制板载RGB灯的亮灭

程序流程

首先我们需要创建一个变量,用该变量来控制RGB灯的亮灭,变量名称可以自己随意,我们这里设置变量名称为“deng”


将变量的初始值设置为0


我们通过板载AB按键来控制灯的亮灭,在mPyhtonX“事件”模组里找到当按键A(B)按下指令



在程序中我们A键和B键都可以控制灯的亮灭,即按下A键或B键灯亮,再按A键或B键灯灭,我们可以使用按位异或运算符“^”实现效果,按位异或运算是将两个运算分量的对应位按位遵照以下规则进行计算:

0 ^ 0 = 0, 0 ^ 1 = 1, 1 ^ 0 = 1, 1 ^ 1 = 0

即相应位的值相同的,结果为 0,不相同的结果为 1。

例如:

a = 60 (60 = 0011 1100)

b = 13 ( 13 = 0000 1101)

c = a ^ b( 49 = 0011 0001)

贴士

按位运算符是以二进制数进行计算的,可以通过十进制转换位二进制运算,十进制与二进制的区别在于:

基数不同,前者满10进1,后者满2进1

有效字符不同,前者有效字符有10个:0,1,2,3,4,5,5,6,7,8,9;后者有效字符有2个:0,1

在mPython X“数学”模组里找到异或运算符



每当按键A或者按键B被按下,将变量“deng”的值^1然后在赋值给变量“deng”

十进制的1和0在二进制也是1和0

初始化deng变量为0,按键按下执行异或运算deng^1=1;

此时deng变量为1,按键按下执行异或运算deng^1=0;

依此类推即可实现按键控制deng变量的数值。


通过判断变量“deng”的数值来决定板载RGB灯的亮灭和oled屏文本的显示


示例程序


显示效果


1 条评论

欧皇

2019年05月31日

掌控板测试0^1是0 0^0是1....为什么

有 6 条回复