所以这里有一些超级酷和独特的东西,一个完全由 PCB 制成的花盆。
我通过组合三个不同的 PCB 制作了这个花盆,我使用 菱形板 作为花瓣,将它们以星形形式焊接在一起。
我使用以前制作的 PCB 作为叶子,因为它的形状有点类似于实际的叶子。
至于茎,我准备了一个将花和叶固定在一起的 PCB,然后将这个茎焊接在一个底座上,该底座支撑整个结构,还包含控制板。
我在花瓣和叶子上添加了 LED,这些 LED 是并联的。每个 PCB 上的 LED 并联连接,它们都由基板 PCB 上的六个 MOSFET 驱动。
这些 Mosfet 由 Atmega328PU 控制,我们可以按顺序将它们打开或关闭,或者将它们调暗或对它们进行一些褪色效果。
至于电源,我在底座上添加了一个升压 IC 设置,将锂电池的 3.7V 升压为 5V,为 LED 和微控制器供电。
本文将介绍整个 Flower 的构建过程,让我们开始吧。
这些是我在这个构建中使用的东西-
这个想法几乎是在两周前出现的,我准备了一个 菱形的 PCB 项链,完成项目后我注意到它可以并排排列成一个多边形,具体来说是一个五角星。
因此,我将五个菱形 PCB 粘在一起并制作了一个 PCB 花,只是为了形象化这个想法。
至于其余部分,我准备了一块长方形板,上面有三个大孔,用于连接两个或多个 PCB。
对于 Leaf,我使用了我 之前项目中的 PCB,因为 PCB 形状类似于实际的叶子。
对于驱动 LED,使用了六个 N 通道 Mosfet IC,它们连接到 Atmega328PU 的六个 PWM 引脚。
控制器板由三个主要部分组成,Atmega328PU 设置、升压模块部分和 Mosfet 设置。
我在这里使用了 Atmega328PU,而不是使用像 Arduino 这样的 MCU,因为我想从头开始制作这个项目,而不是使用模块和插件。
完成原理图后,我准备基板的 PCB 设计,使用 100mm 圆形作为轮廓,并将所有组件放在这个圆形内。
我在 PCB 的中间添加了一个插槽,这个插槽将容纳 STEM PCB,我还在这个插槽周围添加了所有 MOSFET 设置,这样可以很容易地通过连接线将 LED 部分与其每个 MOSFET 连接。
对于 Stem Board,我添加了三个 CON1 并将它们相互连接。
至于 PCB 设计,我在每个 CON1 中使用了一个孔尺寸为 5 毫米的机械孔垫,因此使用螺母和螺栓或焊接它们会更容易连接两个或更多,因为这些孔将从内部和外部电镀。
在完成两个设计后,我导出了他们的 Gerber 数据并将其上传到 PCBWAY 的报价页面。
我为基板选择带有白色丝印的黄色阻焊层,为 STEM 板选择绿色阻焊层。
一周后我收到了 PCB,速度非常快。至于PCB质量,它非常好。
如果您需要以可承受的价格提供高质量产品的优质 PCB 服务,你们可以查看 PCBWAY。
看看我的复杂设计,我在 PCB 上放置了许多不寻常的图案,例如不规则的轮廓和阻焊层形状,这很难制作,但他们在制作 PCB 方面做得非常出色,没有任何问题。
下一步是测试升压模块设置,因此我在其 SMD 支架上添加了一个锂电池,并使用板上的 SMD 开关打开设置。
这会触发 IP5306 IC,其指示 LED 会亮起,指示电池百分比。
我们使用万用表测量此设置的输出电压,输出电压为5V,表明这部分基板工作正常。
接下来,我们在此设置中添加一个 C 型充电器,以检查指示功能是否正常工作。
IP5306 具有四个基于 LED 的指示功能,分别显示电池百分比 25%、50%、75% 和 100%。
正确测试电源管理设置后,我们继续下一步,将 THT 组件添加到基板。
接下来,我收集所有 THT 组件并通过将它们放置在正确的位置开始 THT 组装,然后使用普通烙铁焊接它们的焊盘。
对于 Leaf PCB 组件,我们首先收集 24 个白色 0603 LED,然后将焊膏添加到 PCB 上的 LED 焊盘。
接下来,我们拾取并放置每个 LED,然后使用 SMT 热板熔化焊膏。
对于花瓣 PCB 组装,我使用了 12 个 0603 封装的蓝色 LED,并通过首先将焊膏涂在 PCB 上的 LED 焊盘上来开始组装。
然后,我们将每个 LED 拾取并放置在指定的位置,并将整个电路板放在 SMT 热板上进行回流。
因为我们准备的是五角花,所以一共需要准备五块板子。
接下来,我们通过使用几根跳线将它们的负极连接在一起,就像上一个板一样,将所有 LED 并联连接,六个 LED 并联连接,它们由单个 mosfet 驱动,我使用四个 Mosfet 来控制四个LED 的各个部分,因此通过将所有 LED 的负极端子连接在一起来并联连接所有 LED 非常重要。
我们在花瓣板和叶子板上都执行此过程,然后进入下一个过程,即测试每个板的 LED 连续性。
接下来,我们使用设置为二极管检查模式的万用表来检查 LED,方法是将万用表的正极探头连接到 LED 的正极端子上,将负极探头连接到负极端子。
我们用相同的方法检查 Leaf 和所有 Petal PCB。
第一步是收集所有菱形 PCB 并在背面添加胶带以将两个 PCB 固定在一起。
按照这种方法,我们将五块 PCB 连接在一起,形成五边形。
接下来,我们在所有 PCB 之间添加强力胶,使它们融合在一起,形成一个单一的花状结构。
然后,我们通过将三个 STEM PCB 以曲线图案焊接在一起来准备 STEM 部件,有点像由三条线组成的 Arc。
接下来,我们使用 3D 印刷电路支架将 Leaf PCB 与 STEM Structure 连接,我们首先将其拧到 STEM PCB 上,然后在其上添加 Leaf PCB。
同样,我们通过使用另一个连接 STEM 和 Flower 的 3D 印刷电路支架,将 Flower Structure 添加到 Leaf 和 STEM 组件中。
接下来是主要组件,我们首先通过将 STEM PCB 放入底座 PCB 上的插槽中将上花与底座连接起来,然后我们将 STEM PCB 的焊盘与底座焊盘焊接在一起,从而将 PCB 固定到位.
此构建的最后一个过程是将所有内容连接起来。
我们首先将花部分和叶子中使用的所有 LED 的正极连接在一起。
然后我们将每个 LED 部分负极的电线连接到基板 PCB 上的 mosfet 开关。
总共有 6 个不同的 LED 部分,五个花瓣和一个叶子。六个 MOSFET 控制每个部分,它们的 VCC 是通用的。每个 LED 部分的 GND 进入 Mosfet 的漏极端口。
因为我使用的是 Atmega328PU MCU,所以我们不能直接将它与 USB 连接并将代码放入其中。
为了在其中烧写代码,我们首先需要使用 ISP 设备来烧录引导加载程序,该设备将 MCU 的 SPI 引脚与其 ISP 引脚连接起来,让我们烧写 MCU。
我使用我之前制作的 Arduino 作为 ISP 模块,这是一个易于制作的用于闪烁 AVR MCU 的设置。
我们按照此布线布局将基本模块的 ISP 引脚与 Arduino 设置的 SPI 引脚连接起来。
至于代码,我首先使用了测试草图,它是一个追逐草图,可以按追逐顺序打开和关闭 LED。此草图仅用于测试。
int 针数= ; 声明整数变量 pinsCount int pins[] = { , , , , , }; 声明数组 pin[] void setup() { pinMode( , OUTPUT); pinMode(,输出);pinMode(,输出);pinMode(,输出);pinMode(,输出);pinMode(,输出);} void loop() { (int i= ; i; i=i- ){ 向左追(除了外部 LED) digitalWrite(pins[i], HIGH); )上切换索引 i 处的 LED ;停止程序 digitalWrite(pins[i], LOW); 关闭索引 i 处的 LED } }
这是我在这个项目中使用的最终草图。
常量 int switchPin = ; int pinCount= ; 声明整数变量 pinsCount int pins[] = { , , , , }; int lightMode = ; 国际领导 = ; LED 连接到的 PWM 引脚 int 亮度 = ; LED 有多亮 int fadeAmount = ; , OUTPUT); //使 LED 褪色多少点 pinMode(,输出);pinMode(,输出);引脚模式(、输出);pinMode(,输出);pinMode(switchPin, INPUT_PULLUP); pinMode(LED,输出);数字写入(,低);数字写入(,低);数字写入(,低);数字写入(,低);数字写入(,低);} void loop() { (digitalRead(switchPin) ==LOW) { lightMode = lightMode + ; (lightMode == ) { lightMode = ; } } (lightMode == ) { digitalWrite(pins[ , , , , ], 低的); 延迟();} (lightMode == ) { (int i= ; i; i=i- ){ 向左追(除了外部 LED)digitalWrite(pins[i], HIGH); )上切换索引 i 处的 LED ;停止程序 digitalWrite(pins[i], LOW); 关闭索引 i 处的 LED } } 模拟写入(LED,亮度);亮度 = 亮度 + 渐变量; (brightness <= 亮度 >= ) { fadeAmount = -fadeAmount; } 延迟();();见正文 }
这是这个完全由 PCB 制成的疯狂建造的 OverEngineered 花盆的结果。
我们首先打开打开 IP5306 IC 的 ON-OFF 开关,它为 atmega328PU MCU 供电。
要启动 LED 序列,我们使用拨动开关来启动或停止 LED 动画。
这就是今天的内容,请继续关注,我很快就会带着一个新项目回来。
特别感谢 PCBWAY 对这个项目的支持,看看他们以更低的成本获得优质的 PCB 服务。
和平
|
const int switchPin = 2; |
|
int pinsCount=5;// declaring the integer variable pinsCount |
|
int pins[] = {3,5,6,9,10}; |
|
int lightMode = 1; |
|
|
|
int led = 11; // the PWM pin the LED is attached to |
|
int brightness = 0;// how bright the LED is |
|
int fadeAmount = 5;// how many points to fade the LED by |
|
|
|
void setup() |
|
{ |
|
pinMode(3, OUTPUT); |
|
pinMode(5, OUTPUT); |
|
pinMode(6, OUTPUT); |
|
pinMode(9, OUTPUT); |
|
pinMode(10, OUTPUT); |
|
pinMode(switchPin, INPUT_PULLUP); |
|
pinMode(led, OUTPUT); |
|
digitalWrite(3, LOW); |
|
digitalWrite(5, LOW); |
|
digitalWrite(6, LOW); |
|
digitalWrite(9, LOW); |
|
digitalWrite(10, LOW); |
|
|
|
} |
|
void loop() |
|
{ |
|
if (digitalRead(switchPin) ==LOW) |
|
{ |
|
lightMode = lightMode + 1; |
|
if (lightMode == 3) |
|
{ |
|
lightMode = 1; |
|
} |
|
} |
|
if (lightMode == 1) |
|
{ |
|
digitalWrite(pins[3,5,6,9,10], LOW); |
|
delay(1000); |
|
} |
|
else if (lightMode == 2) |
|
{ |
|
for (int i=0; i |
|
digitalWrite(pins[i], HIGH); // switching the LED at index i on |
|
delay(70);// stopping the program for 100 milliseconds |
|
digitalWrite(pins[i], LOW);// switching the LED at index i off |
|
} |
|
for (int i=pinsCount-1; i>0; i=i-1){ // chasing left (except the outer leds) |
|
digitalWrite(pins[i], HIGH); // switching the LED at index i on |
|
delay(70);// stopping the program for 100 milliseconds |
|
digitalWrite(pins[i], LOW);// switching the LED at index i off |
|
} |
|
} |
|
analogWrite(led, brightness); |
|
brightness = brightness + fadeAmount; |
|
if (brightness <= 0 || brightness >= 255) { |
|
fadeAmount = -fadeAmount; |
|
} |
|
delay(30); |
|
//delay(200); // see text |
|
} |
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
全部0条评论
快来发表一下你的评论吧 !