在本教程中,我们将展示如何制作最棒的Arduino骑士LED!这是一篇要求很高的文章,在我们上次更新闪烁一个LED后,我们偷偷达到了顶峰,显然,每个人都想知道更多!
有些人可能不知道,《霹雳游侠》是20世纪80年代的一部电视节目,由大卫·哈塞尔霍夫(David Hasselhoff)主演,主角是一辆未来派的庞蒂克Trans-Am,名叫凯特(KITT)。“凯特”是一辆全自动汽车,它似乎有自我意识,并为为打击犯罪的秘密行动工作的车主迈克尔·奈特(Micheal Knight)提供各种功能和帮助。这款车的标志性设计之一是在车的前面闪烁的LED阵列。这个闪烁的LED阵列也是太空堡垒卡拉狄加赛昂人眼睛的一个标志性特征。
创建Arduino骑士LED
有两种不同的方式来创建Arduino骑士LED。第一种是标准LED,第二种是使用一组WS2812b可寻址的发光二极管. 两种选择我们都会考虑!
选项1:带标准LED的骑士LED
使用标准LED,您可以使用Arduino上数字I/O引脚的数量。每个LED将连接到专用数字I/O引脚,为其供电。如果你想做更多的事情,请查看下面的选项2,在这里你只需一个pin就可以无限量地运行!
我们需要在每个LED上串联一个220欧姆的电阻来限制电流。在我们的例子中,为了简单起见,我们只使用6个led。开始之前,你需要做的第一件事就是连接Arduino的硬件来连接所有的led。我使用的是绿色led,但你也可以使用红色(或任何你喜欢的颜色)。
选项1的零件清单
这里有一个方便的部件清单,用于使用LED构建Arduino骑士LED
数量 | 部分/链接 | ||
---|---|---|---|
1X | Arduino Uno | ||
1X | USB B型线 | ||
1X | 电阻套件(220欧姆) | ||
1X | 领导的工具包 | ||
1X | 无焊试验板 | ||
1X | 跳线设备 |
其中一些链接是附属机构。如果你使用他们,它花费你什么都没有,但我们得到一个小的佣金,这有助于我们继续为你制作内容!

使用以下接线图连接骑士LED:
- 阿杜伊诺GND试验板GND
- 所有LED阴极试验板GND
- 阿杜伊诺引脚12到220欧姆电阻到LED阳极
- 阿杜伊诺引脚11到220欧姆电阻到LED阳极
- 阿杜伊诺引脚10到220欧姆电阻到LED阳极
- 阿杜伊诺销9到220欧姆电阻到LED阳极
- 阿杜伊诺引脚8到220欧姆电阻到LED阳极
- 阿杜伊诺引脚7到220欧姆电阻到LED阳极
在连接好硬件后,需要将以下代码放到Arduino IDE中并上传。如果您使用更多或更少的LED(或不同的管脚),请确保在中更改管脚pinArray.
int pinArray[]={12,11,10,9,8,7};整数计数=0;int定时器=10;void setup(){for(count=0;count<6;count++){pinMode(pinArray[count],OUTPUT);}}void loop(){for(count=0;count<5;count++){digitalWrite(pinArray[count],HIGH);delay(timer);digitalWrite(pinArray[count+1],HIGH);delay(timer);digitalWrite(pinArray[count],LOW);delay(timer*2)}for(count=5;count>0;count--){digitalWrite(pinArray[count],高);延迟(计时器);数字写入(pinArray[count-1],高);延迟(计时器);数字写入(pinArray[count],低);延迟(计时器*2);}
选项2:骑士LED与WS2812b LED
进行Arduino骑士LED的第二种选择是使用一条可寻址WS2812b LED。这些都是了不起的,因为你可以从一个引脚运行基本上无限数量的LED。WS2812b LED在每个LED上都包含一个小型集成电路,允许Arduino通过数据线分别向每个LED发送命令。事实上,在没有收到命令的情况下,所有LED都保持在关闭位置,即使Vcc+引脚通电。
在下面的接线图中,您会注意到我们正在添加一个外部电源。如果只运行8个或更少的LED,可以跳过电源,直接将其连接到Arduino的5V引脚。对于超过8个LED,您需要为LED条提供外部电源。
选项2的零件清单
下面是使用WS2812b LED条构建Arduino Knight Rider LED的方便部件列表:
数量 | 部分/链接 | ||
---|---|---|---|
1X | Arduino Uno | ||
1X | USB B型线 | ||
1X | 无焊试验板 | ||
1X | 跳线设备 | ||
1X | WS2812b带领带 | ||
1X | 5 v电源(适用于WS2812b LED带) |

要连接WS2812b Arduino Knight Rider LED,请使用以下接线图:
- 引脚11到330欧姆电阻器对WS2812b数据
- 阿杜伊诺GND对试验板GND
- 5 v电源GND对试验板GND
- 5 v电源Vcc +对WS2812bVcc +
- WS2812bGND对试验板GND

接下来,我们需要将以下代码行放入ArduinoIDE并上传它们。为了便于学习,这是一个非常简单的代码。但是,我们强烈建议您查看Peter Gullberg的代码彼得·古尔伯格密码. 他s创造了一个奇妙的褪色算法,制作出我们见过的最真实的骑士连环漫画。但是,这些复杂性不在本基础教程的范围之内。
#include int PIN = 11;Int count = 0;Int timer = 10;Adafruit_NeoPixel strip = Adafruit_NeoPixel(6, PIN, NEO_GRB + NEO_KHZ800);void setColor(int Pixel, int R2, int G2, int B2) {uint32_t color = strip. setColor(int Pixel, int R2, int G2, int B2) {uint32_t color = strip. setColor(int Pixel, int R2, int G2, int B2)}颜色(R2、G2、B2);//制作一个彩条。setPixelColor(像素、颜色);//设置单个像素的颜色条带。//更新颜色}void setup() {strip.begin();//初始化WS2812b strip strip.show(); // just make sure everything is off } void loop() { for (count = 0; count < 5; count++) { setColor(count, 255, 0, 0); delay(timer); setColor(count + 1, 255, 0, 0); delay(timer); setColor(count, 0, 0, 0); delay(timer * 2); } for (count = 5; count > 0; count--) { setColor(count, 255, 0, 0); delay(timer); setColor(count - 1, 255, 0, 0); delay(timer); setColor(count, 0, 0, 0); delay(timer * 2); } }
确保更改代码中的计数常量,以设置正在使用的LED数量。
我鼓励您使用这段代码,您可以想出一些非常巧妙的变体。这是一个15像素的蓝色版本:
我们希望这有助于您的骑士骑士(或赛昂人的眼睛)Arduino项目。如果你遇到任何问题,请在下方留言,我们会尽力帮助你解决!
下一个步骤
在这里,你可以通过以下链接了解更多关于Arduino的信息:
这绝对要放在我的车前!吸引吸引
在你的车吗?我要把这个放到我的新游戏电脑上!
对于那些想弄清楚LED的正极(阳极)和负极(阴极)的人。较长的腿是积极(+)腿。
Neopixel版本也可以在我的8个led光环上正常工作,只需稍微修改一下代码?
好主意。我对Arduino不熟悉。有没有一个地方可以买到像这样的好东西?我想在我的电脑里放一个,但到目前为止,我发现你能买到的只有8或10个LED。在5 1/4的间隔中,这看起来不太好。