【得捷电子Follow me第2期】任务3:控制WS2812B(必做任务)
[复制链接]
本帖最后由 转生异世界成为码农 于 2023-9-24 18:34 编辑
实验步骤:
1. 硬件介绍
1. 硬件准备
2. 导入neopixel.py 到esp32-s3
3. 编写代码
0. 介绍硬件:
Adafruit ESP32-S3 TFT Feather 板载了一颗 NeoPixel LED , Neopixel 是一种智能RGB LED(三色 LED)灯带,由Adafruit Industries开发。它的特点是每个像素可独立控制颜色和亮度,且可以级联连接多个像素,形成长灯带或灯光矩阵。Neopixel 使用串行通信协议(如WS2812B或者 SK6812),其中每个像素通过单个数据线连接,并且可以通过控制信号来改变每个像素的颜色。这使得 Neopixel 灯带非常适合用于创建彩色光效、动态灯光和互动装置。我们可以通过circuitpython 内置库neopixel.py轻松控制使用它
1. 硬件准备
器件:使用 Adafruit ESP32-S3 TFT Feather 连接电脑
2. 导入neopixel.py 到esp32-s3
neopixel 不是内置函数需要手动从 adafruit-circuitpython-bundle.zip 里复制导入到 esp32 才能使用
3. 编写代码
通过如下代码我们可以设置并启用 NeoPixel LED
import time
import board
import neopixel
#寻址neopixel
pixel = neopixel.NeoPixel(board.NEOPIXEL, 1)
#设置亮度
pixel.brightness = 0.5
#白色
white = (255, 255, 255)
#显示颜色
pixel.fill(white)
while True:
pass
我们通过设置NeoPixel LED 显示白色,亮度为0.5
通过触摸按钮改变LED颜色、亮度:
import time
import board
import neopixel
import touchio
#寻址neopixel
pixel = neopixel.NeoPixel(board.NEOPIXEL, 1)
#设置亮度
pixel.brightness = 0.5
#白色
white = (255, 255, 255)
blue = (48, 211, 155)
#显示颜色
pixel.fill(white)
#设置触摸按键io
touch_1 = touchio.TouchIn(board.D5)
touch_2 = touchio.TouchIn(board.D10)
touch_3 = touchio.TouchIn(board.D7)
touch_4 = touchio.TouchIn(board.D11)
li = 0.1
while True:
if touch_1.value:
#显示白颜色
pixel.fill(white)
if touch_2.value:
#显示白颜色
pixel.fill(blue)
if touch_3.value:
#亮度+
pixel.brightness = li +0.1
if touch_4.value:
#亮度-
pixel.brightness = li -0.1
time.sleep(0.3)
总结和感受:通过这次实验,我们初步学习NeoPixel LED 和Touch IO 配合使用,通过简单的代码编写我们可以方便地使用LED 和触摸按钮,这个触摸按钮让我感觉十分惊艳。
|