得捷电子 Follow me 第2期任务提交——控制WS2812B
[复制链接]
首先要按键控制就需要知道按键的工作原理,按键原理就是按下时的电平变化,来判断。
我们先建立一个对象给按键,并且给他为上拉电阻,所以说为高电平,代码如下:
button = digitalio.DigitalInOut(board.BUTTON)
button.switch_to_input(pull=digitalio.Pull.UP)
这个button变量就继承了按键,然后我就只需要判断他是否被按下,如果button的值为0就是被按下了。所以说按键部分就解决了
下一个就是霓虹灯了
首先我们先要对霓虹灯的电源进行配置,
power = digitalio.DigitalInOut(board.NEOPIXEL_POWER)
这个代码是对霓虹灯电源对象赋值的
power.direction = digitalio.Direction.OUTPUT
这个是输出
power.value = True
使能
pixel = neopixel.NeoPixel(board.NEOPIXEL,1)
霓虹灯对象赋值,1是数量
pixel.brightness = 0.1 #亮度
灯珠的亮度
然后pixel里面有几个重要的函数
Pixel.fill((R,G,B))是设置灯珠的颜色
Pixel[0];这个是设置单棵灯珠的颜色
这里就介绍完了,下面就是这个的全部代码
import time
import board
import digitalio
import neopixel
Neoflag = 1
#led灯的情况
led = digitalio.DigitalInOut(board.LED)
led.direction = digitalio.Direction.OUTPUT
#按键
button = digitalio.DigitalInOut(board.BUTTON)
button.switch_to_input(pull=digitalio.Pull.UP)
#板载ws2812B灯珠
power = digitalio.DigitalInOut(board.NEOPIXEL_POWER)
power.direction = digitalio.Direction.OUTPUT
power.value = True
pixel = neopixel.NeoPixel(board.NEOPIXEL,1)
pixel.brightness = 0.1 #亮度
# 普通按键
status = False
while True:
if not button.value:
time.sleep(0.1)
if button.value:
print("按键已按下")
Neoflag = Neoflag + 1
if Neoflag == 1:
pixel.fill((255,0,255))
elif Neoflag == 2:
pixel.fill((0,255,0))
elif Neoflag == 3:
pixel.fill((255,255,0))
Neoflag = 0
下面是硬件运行的结果
|