1. 项目概述与设计思路
这个电烙铁自动供丝装置的核心目标是通过单片机控制实现焊丝的精准输送和温度控制。作为一名电子爱好者,我在实际焊接工作中经常遇到单手操作不便的问题——既要控制烙铁温度,又要手动送焊丝,效率低下且容易出错。这个设计正是为了解决这个痛点。
系统采用STM32F103C8T6作为主控芯片,主要基于以下考量:
- 充足的GPIO接口(37个I/O)满足多外设控制需求
- 内置PWM控制器可精确调节电机转速
- 72MHz主频确保实时响应能力
- 丰富的中断资源适合处理按键事件
硬件架构分为三个主要模块:
- 电机驱动模块:L298N驱动直流电机实现正反转和调速
- 温度控制模块:拨动开关控制继电器通断发热电阻
- 人机交互模块:5个按键实现启停、转向和调速功能
关键设计决策:选择L298N而非MOSFET驱动是因为其内置H桥和续流二极管,简化了电路设计,虽然效率略低但完全满足本项目的电流需求(电机工作电流<2A)。
2. 硬件系统详细设计
2.1 核心电路解析
主控电路采用最小系统板设计,包含:
- 8MHz晶振+22pF负载电容
- 复位电路(10kΩ上拉+0.1μF电容)
- BOOT0/1配置电阻(10kΩ下拉)
- SWD调试接口(VCC、GND、SWDIO、SWCLK)
电源部分需要注意:
c复制// 典型供电方案
5V USB输入 → AMS1117-3.3V → MCU
12V DC输入 → L298N驱动电源
↘ 7805稳压 → 控制电路
2.2 电机驱动实现
L298N的典型连接方式:
bash复制IN1 - PC0 | OUT1 - 电机+
IN2 - PC1 | OUT2 - 电机-
ENA - PA8(PWM)
12V - 外部电源
GND - 共地
PWM参数计算示例(72MHz主频):
- 预分频值=71 → 计数器时钟=1MHz
- 自动重载值=999 → PWM频率=1kHz
- 占空比分辨率:1000级(实际使用8档)
实测发现:当占空比<30%时电机可能出现启动困难,建议设置最低档位起始值为40%。
2.3 温度控制模块
继电器电路设计要点:
- 采用SRD-05VDC-SL-C继电器
- 三极管驱动(2N3904+1kΩ基极电阻)
- 续流二极管1N4007保护
- 发热电阻功率计算:
P=V²/R → 24V/10Ω=57.6W(需考虑散热)
3. 软件系统实现
3.1 主程序流程
c复制void main() {
HAL_Init();
SystemClock_Config();
MX_GPIO_Init();
MX_TIM1_Init(); // PWM初始化
while(1) {
Key_Scan();
Motor_Control();
// 其他任务...
}
}
3.2 按键处理逻辑
采用状态机实现按键功能:
c复制typedef enum {
MOTOR_STOP,
MOTOR_CW, // 顺时针
MOTOR_CCW // 逆时针
} MotorState;
void Key_Handler(uint8_t key) {
static MotorState state = MOTOR_STOP;
static uint8_t speed_level = 4; // 默认中速
switch(key) {
case KEY_CW:
state = MOTOR_CW;
break;
case KEY_CCW:
state = MOTOR_CCW;
break;
case KEY_ACC:
if(speed_level < 8) speed_level++;
break;
// 其他按键处理...
}
Set_Motor(state, speed_level);
}
3.3 PWM调速实现
使用TIM1通道1生成PWM:
c复制void Set_Motor_Speed(uint8_t level) {
// 8级调速对应占空比
const uint16_t duty_table[8] = {
400, 450, 500, 550,
600, 650, 700, 750
};
__HAL_TIM_SET_COMPARE(&htim1, TIM_CHANNEL_1, duty_table[level-1]);
}
4. 制作与调试要点
4.1 组装注意事项
-
电机安装:
- 使用联轴器连接电机轴和送丝轮
- 保持焊丝通道直线度(偏差<3°)
- 压力调节螺丝预紧力适中
-
发热电阻安装:
- 涂抹导热硅脂
- 使用云母片绝缘
- 测温点靠近焊嘴(误差<5℃)
4.2 常见问题排查
| 现象 | 可能原因 | 解决方法 |
|---|---|---|
| 电机不转 | L298N使能端未接通 | 检查ENA连接 |
| 单向转动 | H桥一侧MOSFET损坏 | 更换L298N |
| PWM调速无效 | TIM未正确配置 | 检查ARR/CCR值 |
| 继电器不动作 | 三极管击穿 | 测量BE结压降 |
4.3 性能优化技巧
-
电机控制:
- 加入软启动功能(50ms斜坡)
- 死区时间设置(建议3-5μs)
- 速度环PID调节(如需精确控制)
-
温度控制改进:
- 替换为PID温控(需增加NTC)
- 增加过热保护(>300℃切断)
- 使用固态继电器降低噪声
5. 项目扩展方向
在实际使用三个月后,我发现几个值得改进的地方:
-
增加OLED显示:
- 实时显示温度/速度
- 菜单设置参数
- 需要修改为I2C通信
-
自动化送丝:
- 增加红外传感器检测焊接点
- 自适应送丝速度算法
- 需扩展IO中断资源
-
无线控制:
- 通过蓝牙模块连接手机
- 自定义速度曲线
- 需处理无线延迟问题
这个项目的关键收获是理解了机电一体化系统的协同设计方法。比如当发现电机启停会导致电源电压波动影响单片机时,通过在电源端增加470μF电解电容解决了问题。这种实战经验是书本上很难学到的。
