发作品签到
专业版

RGB耳环 V1.0

工程标签

1.9k
0
0
3

简介

前些日子突然刷到一个视频,国外大佬纯手工打造了一个戴在耳朵上的RGB耳环,看起来非常漂亮,我自己就想着也来打造一块,采用了ws2812的灯珠,于是有了这款基于立创EDA设计的RGB耳环的样品。

简介:前些日子突然刷到一个视频,国外大佬纯手工打造了一个戴在耳朵上的RGB耳环,看起来非常漂亮,我自己就想着也来打造一块,采用了ws2812的灯珠,于是有了这款基于立创EDA设计的RGB耳环的样品。

开源协议

GPL 3.0

创建时间:2023-03-12 12:03:52更新时间:2023-03-31 01:54:24

描述

一、WS2812概述:

WS2812 内部集成了处理芯片和3颗不同颜色的led灯(红,绿,蓝),通过单总线协议分别控制三个灯的亮度强弱,达到全彩的效果。

1、数据传输时间:

gLspOx86DslNUiAQd10gF74DKtmbOUyaMybDQsjK.png

2、时序波形图:

zsWNaMNbPmxvI2eJsFaor3B3J1EzmilxMM3sfgxu.png

3、24 bit数据结构:

每一个灯需要 8 bits(1 byte) 的数据 (8个1时最亮、8个0时不亮),所以一颗 ws2812 共需要24 bits(3 bytes) **(24个1时最亮、24个0时不亮)**的数据。

注:高位先发,按照 GRB 的顺序发送数据

amiUUKRfaufwE51sBOexqFRCXmpgMcygP0ygh8ZD.png

二、WS2812驱动的几种方式

1、使用 延时函数

直接翻转IO口产生时序,这种方式最为简单易用,只需要控制延时的时间,就可以从产生0和1码,它需要占用系统资源。
2、通过SPI控制

使用 SPI 数据传输产生时序,只需要控制在合适的波特率,在传输不同数据的时候,可以产生符合要求的0和1码,这种方式需要等同于使用了一个SPI设备。
3、使用 DMA+Timer 产生时序

这种方式需要使用一个定时器,其中一个通道固定产生一个周期1.25us的PWM,占空比2/3,接着需要另一个通道,在周期的1/3处搬运数据到IO口,若为1,PWM不变,若为0,PWM则为0码,这种方式有更大的局限性,由于DMA只能搬运至少一个字节,所以每次会同时改变8个IO口的高低电平,或许使用位带操作可以解决这问题
4、使用 Timer+PWM+DMA 产生时序

本文讨论的实现方案,这种方案有2种驱动的方式,一种是直接建立一个大的数组,存放所有灯珠的数据,然后启动DMA传输,第二种是建立2个灯组数据大小的数组,当DMA传输一个灯珠数据时,改变另一个灯组数据,通过不断改变数组的方式,节约内存,相比较而言,第一种方式较为直观,第二种方式则可以解决灯珠较多的情况,本文讨论第一种的原理和程序的实现。

三、TIM+PWM+DMA驱动WS2812
定时器 TIM 用以产生一个固定周期的PWM,DMA用以改变PWM 的占空比:
cEtL6fO7GBOhF0STrW9W3DQzQflCNwmnFf9pZFFN.png

如图,DMA通过不断的搬运数据到定时器调节占空比的CCR寄存器,实现ws2812时序的产生,在STM32中,通过配置外设可实现:定时器每产生一次溢出事件(即计数完成),就请求一次DMA搬运一个数据(长度:字节/半字/字可选),所以用户只需要将数据排列在数组里,就可以产生所需要的时序。
四、原理图介绍

1、主控电路:

obr1bSTydec9OUKlNkTY3WcvOblONfSF6hq4iZpY.png

采用STM32F103C8T6这款单片机,加入必要的滤波电容,使其防止波形不稳。

2、晶振电路:

NNuUVi1eAViFLlqLDsMbuMPKHo5bt6kyUXcS2sLy.png

采用贴片的8MHz晶振使其节约空间。

3、复位电路:

1cBMUantE7uS2RkXzsnTKmsTDy9hQvUuImHWZQFx.png

4、电源电路:

HHejmAsfM8WBTvKLEakMxp3P4Vy008p59CXW88HO.png

采用AMS117-3.3对宽电压输入非常友好。加入滤波电容使其波形更加平顺,提供一个3.3V的稳压电源,为单片机供电。

5、指示灯电路:

Cp2AtR0DkbhCONuNRCjDAEwcKufHxdjFT2yxc17W.png

加入指示灯是指示PCB板有没有电源输入,为了更好地看清PCB板是否在工作状态。

6、下载电路:

T93Xo4lMHLsOl1rTrzkd0c954sNQfCdY0ySiqFLd.png

此接口是为方便调试才引入,调试完成后次针脚可撤除,影响成品美观性。

7、电源接口:

eu59dQUU8ghxnZpp00OtKPQyiKWVjPE0DhZmGPfm.png

此接口为PCB板提供一个电池电源,为整个PCB板供电。

8、RGB灯电路:

x6fOfrxfQABy2i004be5IOl7VGPFXLazDqDJGVfH.png

相较于直驱RGB灯,此内置芯片集成的WS2812灯占用针脚少,方便在拥挤的PCB板上布线,可增加其拓展性。

五、PCB介绍

1、顶层:

jCwsZfb5koxBQovN2JFDijEB7H7zZqjZ0R6B1imw.png

2、底层:

Ve8yyHPciW3t2viqsN69RwnP0OA2v4vMFKAX21RH.png

3、整体:

QUAbQqEfRRrt5qvymwWdd5MG4bBBJHt0DObGY612.png

6、3D仿真图

VVMcsMxADZ6M3VLWHQkKjOwYo34PYg8eXFiHP3Uz.pngTGAuQyqyKgBKEeN8jwGgG8wgt46JUH33NUeau3HI.png

 

 

 

 

设计图

未生成预览图,请在编辑器重新保存一次

BOM

暂无BOM

附件

序号文件名称下载次数
1
video_20230311_201112.mp4
189
2
stm32f103_ws2812-main(2023.3.30).zip
606
克隆工程
添加到专辑
0
0
分享
侵权投诉

评论

全部评论(1)
按时间排序|按热度排序
粉丝0|获赞0
相关工程
暂无相关工程

底部导航