LED追逐器是一种利用LED(发光二极管)作为光源,通过电子电路控制LED灯依次或按特定模式点亮和熄灭,从而产生追逐、闪烁或动态变化的视觉效果的电子装置。
LED追逐器通常由多个LED灯、控制电路、电源等部分组成。控制电路通过编程或电路设计,控制LED灯按照一定的顺序和频率进行点亮和熄灭,从而在视觉上形成追逐、闪烁或流动的效果。这种效果在舞台灯光、广告牌、装饰照明等领域有着广泛的应用。
LED追逐器的工作原理主要依赖于控制电路对LED灯的精确控制。控制电路通常包括一个或多个微控制器(如Arduino、STM32等)、定时器、驱动电路等。通过编程或电路设计,微控制器能够产生特定的时序信号,这些信号经过驱动电路放大后,驱动LED灯依次或按特定模式点亮和熄灭。
具体来说,LED追逐器的工作原理可以分为以下几个步骤:
在设计LED追逐器时,需要考虑以下几个要点:
LED追逐器由于其独特的视觉效果和广泛的应用性,在多个领域都有着重要的应用。以下是一些典型的应用场景:
构建LED追逐器的方法多种多样,以下是一种基于Arduino控制器的构建方法:
在构建了基本的LED追逐器之后,为了进一步提升其视觉效果和用户体验,可以通过以下几种方式进行优化:
随着科技的不断进步和人们对视觉效果需求的不断提高,LED追逐器在未来将呈现出以下几个发展趋势:
LED追逐器作为一种集创意、技术、艺术于一体的电子装置,在多个领域都有着广泛的应用前景和发展空间。通过不断优化设计、提升性能和拓展应用场景,LED追逐器将为人们带来更加丰富多彩的视觉体验和创意享受。
尽管 ESP32 Board 能够完成复杂的工作,但它也可以用于简单的项目和任务,以获得高效和更高级的选项。在这里,我们将使用这个嵌入式板和几个 LED 进行实验。使用 ESP32 板的LED追逐器制作项目既简单又有趣。
这里我们使用 10 个 5mm 红色 LED,并通过 220Ω 电阻将其连接到 ESP32 板。通过使用GPIO引脚和代码我们可以制作不同图案的LED追逐效果。
按以下顺序将 LED 阳极连接到 ESP32 板的 GPIO 引脚 {15, 2, 4, 16, 17, 5, 18, 19, 21, 3},将 LED1 视为 LED10 引脚。
我们这样连接是因为硬件管脚和GPIO管脚结构,取决于板子和版本,硬件中的这些GPIO管脚可能会改变,所以参考ESP32开发板的数据手册然后连接LED,记住在代码中正确提及。
硬件连接完成后上传以下代码,观察LED追逐效果。
ESP32 的简单 LED 运行代码
// Define the number of LEDs
#define NUM_LEDS 10
// Array of LED pins
int ledPins[NUM_LEDS] = {15, 2, 4, 16, 17, 5, 18, 19, 21, 3};
// Time delay between each LED change (in milliseconds)
int delayTime = 100;
void setup() {
// Initialize each pin as an output
for (int i = 0; i < NUM_LEDS; i++) {
pinMode(ledPins[i], OUTPUT);
digitalWrite(ledPins[i], LOW); // Ensure all LEDs are off initially
}
}
void loop() {
// Turn on each LED in sequence
for (int i = 0; i < NUM_LEDS; i++) {
digitalWrite(ledPins[i], HIGH); // Turn on the LED
delay(delayTime); // Wait
digitalWrite(ledPins[i], LOW); // Turn off the LED
}
// Turn on each LED in reverse sequence
for (int i = NUM_LEDS - 1; i >= 0; i--) {
digitalWrite(ledPins[i], HIGH); // Turn on the LED
delay(delayTime); // Wait
digitalWrite(ledPins[i], LOW); // Turn off the LED
}
}
ESP32 的不同模式 LED 运行代码
// Define the number of LEDs
#define NUM_LEDS 10
// Array of LED pins
int ledPins[NUM_LEDS] = {15, 2, 4, 16, 17, 5, 18, 19, 21, 3};
// Time delay between each LED change (in milliseconds)
int delayTime = 80;
// Number of iterations before switching patterns
int iterationsPerPattern = 5;
void setup() {
// Initialize each pin as an output
for (int i = 0; i < NUM_LEDS; i++) {
pinMode(ledPins[i], OUTPUT);
digitalWrite(ledPins[i], LOW); // Ensure all LEDs are off initially
}
}
void loop() {
// Single LED chase
for (int iter = 0; iter < iterationsPerPattern; iter++) {
for (int i = 0; i < NUM_LEDS; i++) {
digitalWrite(ledPins[i], HIGH);
delay(delayTime);
digitalWrite(ledPins[i], LOW);
}
}
// Two LEDs chase
for (int iter = 0; iter < iterationsPerPattern; iter++) {
for (int i = 0; i < NUM_LEDS - 1; i++) {
digitalWrite(ledPins[i], HIGH);
digitalWrite(ledPins[i + 1], HIGH);
delay(delayTime);
digitalWrite(ledPins[i], LOW);
digitalWrite(ledPins[i + 1], LOW);
}
}
// Center outwards chase
for (int iter = 0; iter < iterationsPerPattern; iter++) {
for (int i = 0; i < NUM_LEDS / 2; i++) {
digitalWrite(ledPins[NUM_LEDS / 2 - 1 - i], HIGH);
digitalWrite(ledPins[NUM_LEDS / 2 + i], HIGH);
delay(delayTime);
digitalWrite(ledPins[NUM_LEDS / 2 - 1 - i], LOW);
digitalWrite(ledPins[NUM_LEDS / 2 + i], LOW);
}
}
// Outwards to center chase
for (int iter = 0; iter < iterationsPerPattern; iter++) {
for (int i = 0; i < NUM_LEDS / 2; i++) {
digitalWrite(ledPins[i], HIGH);
digitalWrite(ledPins[NUM_LEDS - 1 - i], HIGH);
delay(delayTime);
digitalWrite(ledPins[i], LOW);
digitalWrite(ledPins[NUM_LEDS - 1 - i], LOW);
}
}
// Blink all LEDs
for (int iter = 0; iter < iterationsPerPattern; iter++) {
for (int i = 0; i < NUM_LEDS; i++) {
digitalWrite(ledPins[i], HIGH);
}
delay(delayTime);
for (int i = 0; i < NUM_LEDS; i++) {
digitalWrite(ledPins[i], LOW);
}
delay(delayTime);
}
}
如果您想构建 10 个 LED 追逐器电路,我们首先推荐此电路。
这是使用4017和555的LED追逐器电路
工作原理
参见上面的电路。 IC555 -IC1 是常用的定时器 IC ,用作非稳态多谐振荡器或自由运行脉冲发生器。
其中IC1第3脚输出脉冲频率由R1、R2-1.5K、VR1-100K和电容C1-1uF决定。
十进制计数器 CD4017 -IC2 充当 10 个输出的 LED 驱动器,LED 将在快速序列中仅发光一个。然后,IC2 将脉冲发送到输入引脚 14。
接下来,10 个输出 Q0 至 Q9 在IC555 波形的上升沿上一次激活一个,以驱动 LED。复位引脚为15 计数。
当一个 LED 关闭时,第二个 LED 将亮起。此循环 LED 会像循环运行灯一样重复。
我们可以通过旋转100K-VR1微调器的旋钮来调节LED追逐器的速度或脉冲频率。
参考下面的第三个追逐器电路图,我们可以看到一个低频、非稳态振荡器电路,由 IC 4011 四路两输入与非门的两个门 IC1a 和 IC1b 组成。
该非稳态器件的工作频率由 C1 和 R11 的值决定。该电路配置可以很好地用作时钟脉冲发生器,为 IC1 的 74C164 移位寄存器供电。 IC2 引脚4 时钟的正输出脉冲被提供给IC1 引脚8 移位寄存器的时钟输入。
移位寄存器的每个输出都连接到 LED。每个LED串联一个1K的限流电阻。
门IC2c的输入通过由R10和C3组成的延时RC配置连接到移位寄存器的第八个输出(位于引脚13)。
门的输出通过电容器连接至移位寄存器的引脚9处的清零输入。 LED8 由第八个时钟脉冲打开,一旦 IC1 的引脚 13 变为正极,C3 就会充电。
经过一点延迟后,IC2c 的输出变低,清除移位寄存器的输出。
LED 按以下顺序点亮:LED1 在第一个时钟脉冲时打开,LED2 在第二个时钟脉冲时打开,依此类推,直到所有 8 个 LED 都点亮。
一旦第八个 LED 亮起,来自 IC2c 的清除脉冲就会关闭每个 LED,然后重复该过程。
可以更改 R10 和 C3 的值,以使 LED8 保持与其余 LED 相同的时间。
为了获得更快的序列,RC延时电路必须更小;对于较慢的系列,它必须更大。增大R10或C3的值将缩短延迟时间,减小该值将延长延迟时间。
全部0条评论
快来发表一下你的评论吧 !