07 / 20
填满一圈 LED
将电位器的 12 位读数映射为十二颗可寻址灯珠。
运行此实验 →实验目标
将旋钮从 0 调到 4095,数出点亮的灯珠。
工作原理
将电位器的 12 位读数映射为十二颗可寻址灯珠。 十二颗。一个数据引脚依次发送每颗可寻址 LED 的颜色值。 此处为配套教学模型,硬件示例基于经典 ESP32 与 Arduino-ESP32 3.x;网络、声波、负载和机械运动均为简化演示。
动手试一试
- 打开此实验
- 将旋钮从 0 调到 4095,数出点亮的灯珠。
接线
- GPIO 34 — 电位器滑动端,两端接 3V3/GND
- GPIO 23 — 电平转换器 → 灯环 DIN
- External 5V / GND — 灯环供电/共地
示例代码
#include <Adafruit_NeoPixel.h>
Adafruit_NeoPixel ring(12, 23, NEO_GRB + NEO_KHZ800);
// 5V pixel power; common GND; use an appropriate 3.3V-to-5V data level shifter.
void setup() {
ring.begin();
ring.setBrightness(40);
analogReadResolution(12);
}
void loop() {
int reading = analogRead(34);
int count = map(reading, 0, 4095, 0, 12);
for (int i = 0; i < 12; i++) ring.setPixelColor(i, i < count ? ring.Color(20, 120, 80) : 0);
ring.show();
delay(20);
}检查理解
最大读数会点亮几颗?
查看答案
十二颗。一个数据引脚依次发送每颗可寻址 LED 的颜色值。