立创节气转盘DIY:基于步进电机与PCB彩印的二十四节气动态显示模块

📅 发布时间:2026/7/8 7:48:00 👁️ 浏览次数:
立创节气转盘DIY:基于步进电机与PCB彩印的二十四节气动态显示模块
立创节气转盘DIY基于步进电机与PCB彩印的二十四节气动态显示模块最近想做个有仪式感的桌面摆件就想到了咱们传统的二十四节气。本来打算用亚克力面板来做刚好看到立创EDA有PCB彩印的活动就想着试试看效果。于是一个结合了PCB彩印、步进电机和LED灯珠的“节气转盘”想法就诞生了。这个项目非常适合有一定焊接基础想尝试软硬件结合的电子爱好者。通过它你不仅能学到如何用立创EDA设计一块漂亮的圆形PCB还能掌握步进电机的驱动原理以及如何巧妙地设计电路让旋转的部件也能稳定通电。今天我就把这个项目的设计思路、踩过的坑和实现方法手把手分享给大家。1. 项目构思与核心设计这个节气转盘的核心目标是让一个圆盘转动上面的LED灯珠能依次点亮指示出当前的节气。听起来简单但实现起来有几个关键点需要解决。首先显示面板。我直接使用了立创的PCB彩印工艺。这意味着你可以在PCB的丝印层通常是白色的那层上印刷出彩色的图案。我设计了一个直径100毫米的圆形PCB上面印好了二十四节气的文字和刻度既当电路板又当显示面板一举两得。其次机械旋转。要让中间的圆盘指示节气的那部分相对于外圈转动我选择了步进电机。步进电机的优点是控制精准说转多少度就转多少度非常适合这种需要精确定位的场景。最后也是最关键的一点旋转部件的供电。中间的圆盘在转上面的LED灯珠要亮电怎么接过去总不能拖着电线转吧这里我用了一个非常巧妙的设计弹片导电。让中间的圆板通过几个有弹性的金属片弹片与外圆接触形成一个可以相对滑动但始终导通的电路回路。注意这个“弹片导电”的设计是整个项目的精髓它解决了活动部件供电的世界性难题后面我们会详细讲。2. 硬件设计与迭代2.1 第一版电路串联方案的挑战我最开始的想法比较简单直接。中间的圆盘上不是要装一个LED灯珠来指示节气吗我干脆把24个LED对应24个节气全部焊在圆盘上。为了让走线简单我采用了串联方案。如下图所示我把9个LED灯珠先串联成一组为什么是9个因为布局方便计划用多组这样的串联来覆盖24个节气。串联电路的特点和问题原理电流像串联的糖葫芦一样从一个LED的正极流到负极再流到下一个LED。所有LED通过的电流相同。优点布线简单只需要两条线一正一负就能点亮一整串灯。致命缺点电压需求高。一个普通的LED点亮大概需要2-3V的电压。9个LED串联就需要至少9 * 2V 18V的驱动电压。这意味着我需要一个额外的、电压较高的电源这增加了系统的复杂度和成本。另一个问题如果其中一个LED坏了开路整串灯都会不亮不利于排查故障。所以虽然第一版PCB做出来了就是上面彩印的那个圆盘但这个串联方案在实际测试前就被我否定了。2.2 优化方案并联才是正道经过思考我决定将电路方案改为并联。并联电路的优势原理所有LED的正极接在一起负极接在一起像并排的几条支路。核心优势所有LED两端的电压相同。假设每个LED需要3V那么我只需要一个3V左右的电源就可以驱动所有的LED。控制灵活我可以很容易地通过单片机的一个IO口控制一个三极管或MOS管来单独开关任何一个LED实现精准的节气指示。可靠性高一个LED坏了不影响其他LED工作。改为并联后新的设计思路是电源统一使用较低的电压比如5V或3.3V与单片机系统兼容。中间的圆盘上不再焊接所有LED而是只焊接当前需要点亮的那一个LED。或者更优的方案是将24个LED都固定在外圈静止的PCB上。通过步进电机带动一个指针或者带动一个装有单颗LED的小圆盘旋转到对应节气的位置。当指针或小圆盘上的触点与对应节气的电路触点接触时该节气的LED被点亮。上图可以理解为一种并联思路的布局每个灯珠都有独立的触点。2.3 核心机械结构弹片导电详解无论最终采用串联还是并联方案只要存在旋转部分就需要解决供电问题。我采用的“弹片导电”方案如下图所示我们来分解一下这个结构外圆定子这是固定不动的部分是整个PCB的主体。它的内圈边缘会制作出几个同心圆环的导电铜环比如一个环是电源正极VCC一个环是地GND。中心圆板转子这是由步进电机驱动可以旋转的部分。它通过轴与电机连接。弹片安装在中心圆板背面或侧面的弹性金属片。通常需要至少两个弹片一个压接在VCC铜环上一个压接在GND铜环上。由于弹片有弹性即使圆板在旋转它也能始终紧贴铜环保持电气连接。电路回路电流的路径是这样的电源从外圆PCB的VCC铜环流出 → 通过弹片A传导到中心圆板→ 为中心圆板上的电路比如那颗唯一的LED供电 → 电流再从中心圆板经弹片B流回外圆PCB的GND铜环形成完整回路。这个设计巧妙地将动态的供电问题转化为了一个简单的滑动接触问题非常可靠且成本低廉。3. 软件与控制思路硬件搭好了怎么让它智能起来呢控制核心我们可以选用一块常见的单片机比如STM32、ESP32或者Arduino。控制逻辑非常清晰初始化配置好控制步进电机的GPIO口通常需要4个IO口控制两相四线步进电机以及控制LED开关的IO口。节气计算写一个简单的函数输入当前日期可以从RTC实时时钟模块获取或者联网校准计算出当前所处的节气。位置映射将24个节气映射到圆盘的24个等分位置上。每个节气对应步进电机需要旋转的固定步数角度。驱动执行单片机根据计算出的节气驱动步进电机旋转到对应角度。然后点亮该节气对应的LED灯珠如果是并联方案且LED在外圈则直接给对应IO口高电平如果LED在中心圆盘上则通过弹片导电中心圆盘上的电路自动接通当前LED。休眠与唤醒为了省电可以让单片机大部分时间进入休眠模式每天只需要在节气交替的时刻唤醒并调整一次位置即可。这里给出一个极其简化的Arduino控制步进电机的伪代码思路// 定义步进电机引脚 #define IN1 8 #define IN2 9 #define IN3 10 #define IN4 11 // 步进电机顺序四拍 int stepSequence[4][4] { {1, 0, 0, 0}, {0, 1, 0, 0}, {0, 0, 1, 0}, {0, 0, 0, 1} }; void rotateToSolarTerm(int targetIndex) { // 1. 计算从当前位置到目标位置需要多少步 int stepsNeeded calculateSteps(currentIndex, targetIndex); // 2. 驱动电机旋转相应步数 for (int i 0; i stepsNeeded; i) { for (int j 0; j 4; j) { digitalWrite(IN1, stepSequence[j][0]); digitalWrite(IN2, stepSequence[j][1]); digitalWrite(IN3, stepSequence[j][2]); digitalWrite(IN4, stepSequence[j][3]); delay(5); // 控制转速 } } // 3. 更新当前位置 currentIndex targetIndex; // 4. 如果是并联外置LED方案点亮对应LED digitalWrite(ledPins[targetIndex], HIGH); }4. 总结与心得这个“节气转盘”项目从想法到第一版PCB打样核心的乐趣在于解决一个个具体的问题如何让画面好看如何让零件转起来如何给转动的零件供电我最大的几点心得是PCB彩印是真香对于这种需要个性化图案的项目PCB彩印大大简化了结构把装饰和电路合二为一效果很棒。供电方案优先并联对于低电压的数字系统并联LED方案在电压需求、控制和可靠性上全面优于串联除非你有特殊的高压驱动需求。弹片导电很实用这个小技巧在旋转屏、舵机云台等需要360度旋转供电的场景里都能用上记住弹片要有足够的弹力和接触面积。先仿真再打板在立创EDA里把电路图好好画完用仿真功能检查一下尤其是LED的限流电阻要算对能避免很多不必要的浪费和返工。这个第一版主要验证了结构和彩印效果下一步就是优化电路为并联方案并焊接上电机和控制器让它真正动起来。希望这个分享能给你带来一些灵感也欢迎你基于这个思路做出更有创意的作品。