使用 arduino nano DIY小台灯

前段时间忙于项目和比赛,因此没时间捣鼓些小玩意。上星期总算都结束了,然后发现手上有个arduino nano和WS2812,就想着要不做个台灯玩玩,有想法就要动手,走起!


下面先列出我用到的器件

  • arduino nano
  • WS2812
  • T型数据线
  • 三根杜邦线
  • 一个小洞洞板
  • 捡漏的3D打印边角料
  • 热熔胶

好了材料找到了,就开始一步步搭建模型啦!

  1. 底座搭建
    使用 arduino nano DIY小台灯_第1张图片
    可以看到底座由两部分组成,下面是较大的被切了的不规则圆环,上面也是被切了一部分的球体,这两个材料包括后面的台灯盖子都是实验室其他小伙伴玩3D打印剩下的,被我废物利用了,哈哈哈。

  2. 台灯盖子
    使用 arduino nano DIY小台灯_第2张图片
    盖子上面主要放了WS2812,这个模块某宝上有卖,也有源码提供,这里我选用的是环形的24小灯的模块,这里吐槽一下那个焊盘位置,个人感觉小了点,不好焊接,总担心焊不稳,然后就是引出三根导线,分别是DI、5V、GND。

  3. 整体外观
    然后我试着盖上盖子,先看看效果如何
    使用 arduino nano DIY小台灯_第3张图片
    使用 arduino nano DIY小台灯_第4张图片
    好像有台灯的样子,是不是呢?

  4. WS2812与arduino nano连接
    使用 arduino nano DIY小台灯_第5张图片
    nano板是个好东西,便宜又小巧,编程又不难,是用来DIY的不二之选。焊接比较随意,毕竟就用到三个管脚。
    使用 arduino nano DIY小台灯_第6张图片
    使用 arduino nano DIY小台灯_第7张图片

  5. 硬件搭载总体效果
    经过上面的步骤,硬件就搭完了,来看看效果:
    使用 arduino nano DIY小台灯_第8张图片

  6. 代码部分
    现在开始软件的编写啦,代码是卖家送的资料,自己也看了一下,也不难理解,那些主要的驱动代码都封装好了,我们直接用就行了,直接贴出来吧!

#include 

#define PIN 6

// Parameter 1 = number of pixels in strip
// Parameter 2 = Arduino pin number (most are valid)
// Parameter 3 = pixel type flags, add together as needed:
//   NEO_KHZ800  800 KHz bitstream (most NeoPixel products w/WS2812 LEDs)
//   NEO_KHZ400  400 KHz (classic 'v1' (not v2) FLORA pixels, WS2811 drivers)
//   NEO_GRB     Pixels are wired for GRB bitstream (most NeoPixel products)
//   NEO_RGB     Pixels are wired for RGB bitstream (v1 FLORA pixels, not v2)
Adafruit_NeoPixel strip = Adafruit_NeoPixel(60, PIN, NEO_GRB + NEO_KHZ800);

// IMPORTANT: To reduce NeoPixel burnout risk, add 1000 uF capacitor across
// pixel power leads, add 300 - 500 Ohm resistor on first pixel's data input
// and minimize distance between Arduino and first pixel.  Avoid connecting
// on a live circuit...if you must, connect GND first.

void setup() {
  strip.begin();
  strip.show(); // Initialize all pixels to 'off'
}

void loop() {
  // Some example procedures showing how to display to the pixels:
  colorWipe(strip.Color(255, 0, 0), 50); // Red
  colorWipe(strip.Color(0, 255, 0), 50); // Green
  colorWipe(strip.Color(0, 0, 255), 50); // Blue
  // Send a theater pixel chase in...
  theaterChase(strip.Color(127, 127, 127), 50); // White
  theaterChase(strip.Color(127,   0,   0), 50); // Red
  theaterChase(strip.Color(  0,   0, 127), 50); // Blue

  rainbow(20);
  rainbowCycle(20);
  theaterChaseRainbow(50);
}

// Fill the dots one after the other with a color
void colorWipe(uint32_t c, uint8_t wait) {
  for(uint16_t i=0; i

还有就是,需要添加头文件的库,这里也分享压缩包给大家:提取码:x9im

  1. 烧录代码
    这个相信不用记录了。直接看效果吧!

  2. 图片展示
    使用 arduino nano DIY小台灯_第9张图片
    使用 arduino nano DIY小台灯_第10张图片
    使用 arduino nano DIY小台灯_第11张图片
    大白天效果不是特别好,然后程序跑得比较快,也可以改代码实现不同的效果。

  3. 视频展示
    看链接吧:
    转B站

小台灯的小DIY到此啦!

你可能感兴趣的:(项目实践)