在本教程中,我们将展示如何制作最棒的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
  • 阿杜伊诺引脚12220欧姆电阻LED阳极
  • 阿杜伊诺引脚11220欧姆电阻LED阳极
  • 阿杜伊诺引脚10220欧姆电阻LED阳极
  • 阿杜伊诺销9220欧姆电阻LED阳极
  • 阿杜伊诺引脚8220欧姆电阻LED阳极
  • 阿杜伊诺引脚7220欧姆电阻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,请使用以下接线图:

  • 引脚11330欧姆电阻器对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的信息: