大家好,我是郑工,之前Follow me第三期还买了一个磁力开关,这个帖子就介绍一下,怎么用XIAO主板读取磁力开关。
磁力开关顾名思义,就是一个用磁铁可以打开和关闭的开关,在一些不想给用户接触的场合里,可以当作一个隐藏式的开关使用。
上面就是GROVE接口的磁力开关,可以看出连线也就是电源/地还有一个信号(SIG)接口。可以直接接到XIAO底板上的ADC接口上。
使用方法也很简单,只需要把AD口对应的接口初始化为数字输入口。接口定义如下
对应的pin口为:
所以初始化的代码如下
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
这传感器的检测距离大概是多少?
引用: wangerxian 发表于 2024-1-29 14:32 这传感器的检测距离大概是多少?
也就一两厘米,可能跟磁铁的磁性也有关系