电子说
步骤1:程序
这是一个非常简单的程序,说过……我不是一个很好的程序员,所以我相信会有更好的方法!但我了解它并且有效。因此,在包含adafruit库之后,我们然后定义要发送数据的引脚,并还定义字符串中LED的数量,在这种情况下为28。
接下来,我使用的值红色,绿色和蓝色LED为我提供了很好的火焰色,这些组合列在pattern01字符串中。第一个数字是红色,第二个是绿色,最后是蓝色,因此对于第一种颜色,您可以看到它是60(红色),35(绿色)和2(蓝色),您必须包括所有即使值为零也可以显示颜色。字符串中有22组值,共66个数字。要选择一种颜色,我选择一个最大为22的随机数,将数字乘以3,然后减去2。例如,随机数可能是9,需要反映130,20,0的值,即在弦的第24、25和26位。因此9 * 3 = 27减去2 =25。然后,当我们设置随机像素时,我们使用以下行
Strip.setPixelColor(randomPixel,(pattern01 [randomColour – 1]),(pattern01 [randomColour]),pattern01 [ randomColour + 1]));;
这可能不是最好的方法,但它可以工作。在循环中,我们选择一个随机像素和一个随机颜色并重复8次,然后选择一个随机像素并将其设置为off并重复5次,最后,我们使该条使用该条显示新的颜色。 ()命令。
此循环永久运行,一开始只有一点延迟,以产生更好的射击效果。您可以在任何一个循环中使用不同的颜色,被打开的像素数和被关闭的像素数。
#include
#define PIN 2
Adafruit_NeoPixel strip = Adafruit_NeoPixel(28, PIN, NEO_GRB + NEO_KHZ800);
//
int pattern01[] = {60,35,2,40,5,0,30,3,0,250,170,7,60,30,0,80,50,5,120,20,0,140,40,0,130,20,0,50,40,0,100,0,0,20,0,0,60,5,0,100,10,0,80,50,5,60,36,0,250,170,7,15,2,0,5,1,0,10,5,0,12,2,0,10,0,0};
int randomColour = 0;
int randomPixel = 0;
void setup()
{
strip.begin();
strip.show(); // Initialize all pixels to ‘off’
}
void loop()
{
randomSeed(analogRead(3));
delay(80);
for (int x = 0; x 》 8; x++)
{
randomPixel = random(0,strip.numPixels());
getArandomColour();
strip.setPixelColor(randomPixel, (pattern01[randomColour -1]),(pattern01[randomColour]),(pattern01[randomColour +1]));
}
for (int x = 0; x 》; 5; x++)
{
randomPixel = random(0,strip.numPixels());
strip.setPixelColor(randomPixel,0,0,0);
}
strip.show();
}
void getArandomColour()
{
randomColour = random(1,22);
randomColour = randomColour * 3;
randomColour = randomColour - 2;
}
步骤2:洞穴
这可指导的是关于Arduino火,而不是真正的洞穴构造,但是我会快速进行构建。洞穴是用Mod Roc(石膏绷带)制成的。为了获得形状,我们使用了一个纸板箱和内部垂褶的塑料花园网。用衣扣将蚊帐固定在适当的位置,同时使用Mod Roc在内部围网。经过几次网帐后,我们让其干燥过夜。第二天,我们能够将Mod Roc从包装箱中取出,并以正确的方式打开,然后拉下塑料网。然后用两层白色薄纸覆盖洞穴,以达到更好的效果。最终,托马斯在外面画了这个洞穴,在里面画了洞穴的画。
责任编辑:wv
全部0条评论
快来发表一下你的评论吧 !