[经验分享] 【得捷Follow me第3期】XIAO主板读取磁力开关

eew_Ya3s2d   2024-1-29 01:50 楼主

大家好,我是郑工,之前Follow me第三期还买了一个磁力开关,这个帖子就介绍一下,怎么用XIAO主板读取磁力开关。

 

磁力开关顾名思义,就是一个用磁铁可以打开和关闭的开关,在一些不想给用户接触的场合里,可以当作一个隐藏式的开关使用。

 

image.png  

 

上面就是GROVE接口的磁力开关,可以看出连线也就是电源/地还有一个信号(SIG)接口。可以直接接到XIAO底板上的ADC接口上。

 

使用方法也很简单,只需要把AD口对应的接口初始化为数字输入口。接口定义如下

 

image.png  

 

对应的pin口为:

image.png  

所以初始化的代码如下

from machine import Pin

p2 = Pin(2, Pin.IN)

然后使用p2.value()读取具体端口的值。

 

我的全部代码如下,因为比较简单,就不用附件的方式上传了

 

from machine import Pin, SoftI2C
import ssd1306
import math
import time


p2 = Pin(2, Pin.IN)
i2c = SoftI2C(scl=Pin(7), sda=Pin(6))
oled_width = 128
oled_height = 64
oled = ssd1306.SSD1306_I2C(oled_width, oled_height, i2c)

oled.fill(0)
oled.text("pin2 off", 10, 15)
oled.fill_rect(40, 40, 20, 20, 1)
oled.show()  # Show the text
p2_status = False
while True:
    if p2.value() == True:
        if p2_status == False:
            p2_status = True
            oled.fill(0)
            oled.text("pin2 on", 10, 15)
            oled.fill_rect(40, 40, 20, 20, 1)
            oled.show()  # Show the text
    else:
        if p2_status == True:
            p2_status = False
            oled.fill(0)
            oled.text("pin2 off", 10, 15)
            oled.fill_rect(40, 40, 20, 20, 1)
            oled.show()  # Show the text

 

回复评论 (3)

郑工把XIAO主板读取磁力开关讲的很明白了

点赞  2024-1-29 07:30

这传感器的检测距离大概是多少?

点赞  2024-1-29 14:32
引用: wangerxian 发表于 2024-1-29 14:32 这传感器的检测距离大概是多少?

也就一两厘米,可能跟磁铁的磁性也有关系

点赞  2024-7-10 21:46
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复