基于ESP8266的雪花灯设计

  最近在逛开源广场的时候,看到了一些雪花灯的设计,比如这个,感觉这个设计还是比较好看的,还是想着自己做一个来玩玩,当个挂饰什么的。自己也重新想了想把设计稍微改进了一些。

ESP8266最小系统板的设计

  当然不能和普通的彩灯一样只要供上电就可以亮起来了,还是希望雪花灯能够亮出各种各样的花样,能够去控制它亮的样式,所以呢还是要加上一块ESP8266去能够控制它。为什么选ESP8266呢,一个是它自带WiFi功能,方便下次去联网控制它,玩出更多的花样。另一个是与ESP32相比引脚稍微少一点,整个系统板能够更小,不影响美观。为了方便用了安信可的模组。(其实是不想自己画模组,而且画不来天线)

  模组用的是3.3V供电,所以直接一波1117来降压。

  下面是最小系统和串口自动下载电路,串口芯片用了常用的CH340C,不用外加晶振。建议画之前还是得看一下模组的手册,让自己知道要怎么用它。

  系统板的原理图设计还是比较简单的,但是PCB要尽量做的小,这就有点棘手了,之前也想过用买的板子,但是感觉还是有点太大了,所以自己做了个PCB,元器件双面放置,尽量做小了,就是可能有些地方画的不是很合理,但是做出来还是能够正常使用的,还是挺小巧的。注意我引出的是5V而不是3.3V,主要是灯珠需要5V供电。

附上完整工程地址:https://oshwhub.com/wywy/esp8266-zui-xiao-ji-tong-ban

雪花灯的设计

  网上很多的设计都是直接将主控画在了这个板子上,虽然比较简洁,但是有一个问题就是,必须USB线连着电脑或者充电宝这个灯才会亮,用起来并不是很方便,带出去就不是很好,更别说做成小挂件了。

  我采用了TP5400这个芯片,这电池电源管理芯片确实顶,这芯片让我的灯可以用那种3.7V的电池供电而且还能充电,电池没电了就充,插着电脑充电宝都能充,不用频繁更换电池,充电还有指示灯。就是画之前得仔细看看它的芯片手册,他对PCB的布局还是有点讲究的,之前布局有问题就是不能正常使用。这个两路的拨码开关还是不能省掉的,一个是电池的开关很好理解,另一个是控制芯片出来的5V,当esp8266插上去的时候,上面板子USB的5V和电池出来的5V不会同时加到AMS1117上,以免出现意想不到的结果。

  板子上的灯珠当然是采用炫酷的WS2812,能够得到各种想要的颜色,而且只用一根信号线串起来就行,使用非常方便。

  注意这个USB的摆放,这里用的是直插的,因为之前用贴片的,然后尴尬的事情发生了,USB头被板子挡住了,插不进去。。。。。

  这里附上第一版的工程:https://oshwhub.com/wywy/snow

  还有一点小问题没有解决,等解决了补上。

最终效果

  虽然还是有一点点小问题,但是最终效果还是不错的。特地找了白色的排针排母和这个挂绳,淘宝上都有的卖。要是这个拨码开关也有白色的就更完美了。所有元器件立创上都可以买到,淘宝上买元器件有时候还是会碰到伪劣产品的。

  

  代码的话呢 emmm目前我只用了arduino上的Adafruit_NeoPixel这个库里的示例代码,把引脚编号和灯的数量改一改就好了,效果已经很炫酷了。有空的话再结合Blink这个app写点程序,或者用APP Inventer做个,或者再做个上位机。大家自己做一个送朋友小孩还是挺有意思的。也欢迎大家在评论里提一些改进意见。

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要下载adafruit_neopixel常用库函数,首先需要打开Arduino IDE软件。然后,在顶部菜单栏依次选择“工具”、“管理库”,这将打开库管理器窗口。 在库管理器窗口的搜索栏中输入“adafruit_neopixel”,按下回车键进行搜索。在搜索结果中找到并点击“Adafruit Neopixel by Adafruit”,然后点击“安装”按钮。 安装完成后,你可以在代码中使用adafruit_neopixel库的函数。在你的Arduino程序中,首先需要引入库,在开头添加`#include <Adafruit_NeoPixel.h>`。 接下来,你可以使用该库中的各种函数来控制和操作NeoPixel LED灯带。例如,你可以使用`Adafruit_NeoPixel`类的构造函数来初始化灯带对象。例如,使用以下代码初始化一个NeoPixel灯带对象: ``` #define PIN 6 // NeoPixel数据线连接到引脚6上 #define NUM_LEDS 16 // NeoPixel灯带上的LED数量 Adafruit_NeoPixel strip = Adafruit_NeoPixel(NUM_LEDS, PIN, NEO_GRB + NEO_KHZ800); ``` 在此之后,你就可以使用其他adafruit_neopixel库函数来设置和控制灯带的亮度、颜色、动画效果等。例如,使用`setPixelColor`函数可以设置某个LED的颜色,如`strip.setPixelColor(0, strip.Color(255, 0, 0))`设置第一个LED为红色。 最后,记得在你的主循环函数中加入`strip.show()`以更新灯带的显示。并在程序结束时使用`strip.clear()`函数来清除灯带的显示。 这样,通过上述步骤,你就可以下载、安装和使用adafruit_neopixel库函数来控制NeoPixel LED灯带了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值