0 特别声明
0.1 版权声明
程序中所有代码均由本人(即全体著作权所有人,下同)开发完成,程序开源后授权任何人可免费使用本程序(既可直接使用固件,亦可在程序基础上修改出任何衍生版本),但上述程序及本文档著作权属本人所有。
硬件设计中参考了广大网友的建议,不再声明版权,但请各位使用者尊重本人和其他网友的劳动成果。
0.2 开源协议
除本人以外的任何人对本程序(包括但不限于此版本,下同)进行修改后的任何衍生版本,以及以本程序思路或部分代码为基础设计的其它程序,必需开源所有代码。未经第一著作权所有人(@BEAT)之书面授权,任何单位和个人不得将上述程序(包括本程序及所有衍生版本和参考本程序设计的其它程序)及本文档以任何形式用于商业用途。
本程序受著作权法保护,本人保留对侵权者及违反开源协议者追究法律责任的权利。请遵守此开源协议,尊重原作者、及所有衍生版本作者的劳动成果,遵守著作权人所在地法律法规!
0.3 免责声明
本人只进行程序的设计,并无偿分享给网友。本人只保证该程序在我的手中可以正常工作,不保证其他人以任何形式得到的电路板、元器件及源程序均可正常工作,不承担其他任何人使用本人所设计的所有软硬件造成的一切后果。如您不同意此声明,请您立即删除本文档及其相关程序。
0.4 致谢
本程序中部分内容参考了@BEAT的相关算法;@ xzhyahoo1在V2.0和V2.1版本设计时提供了建议;V2.8版本修复的BUG是由@理解源于真诚发现的。V3.0中的UI是由@BEAT设计的。以上朋友的帮助,对程序的开发和更新起到了良好的作用,在此一并致谢。
1 硬件准备1.1 硬件介绍1.1.1 本人设计的PCB介绍
①存在已知问题是编码器和OLED屏距离太近,如果选用1.3寸OLED,编码器装上旋钮后会挡住部分OLED屏。因此需要各位试用的朋友自己飞线,或给屏装上排线,或EC11采用飞线,总之将屏和编码器分开。
②焊接蜂鸣器和编码器时,应先焊蜂鸣器再焊编码器,并用胶带或热熔胶将蜂鸣器的两个焊盘妥善绝缘,否则编码器背部的金属会将蜂鸣器短路,并且需要将编码器两个固定脚剪掉。
③选用5V供电的OLED屏时,R4/R5应选用1k,采用3.3V供电时,R4/R5选用470R,具体选用5V还是3.3V,由JP1跳线决定。
④请在5V加470uF以上电容,运放VCC加104电容。
⑤电容C5设计有误,实际不需要。
1.1.2 智萌版硬件介绍
①正面三个电容不需要焊接,否则无法下载程序;
②建议MOS更换为AO4413.
1.1.3 海绵宝宝版硬件介绍
①单片机应改为STC15W2K60S2;
1.2 烧录固件1.2.1 烧录步骤
固件在Prj文件夹下Objects子文件夹内,文件名为HAKKO.hex。
①将CH340模块连接焊台,先只接TX、RX、GND三根线,VCC不接;
②按图1-1步骤勾选相关选项;
图1-1 STC-ISP软件操作步骤
③将下载器VCC与焊台连接。
1.2.2 烧录失败排查
①编码器位置不合适,旋转编码器再试(请确保编码器转到位,不要卡在中间);
②TX、RX接反,V1.0beta版本硬件应是T-R、R-T;
③下载器供电不稳,检查下载器带载后的电源电压;
④降低下载时的最高波特率,并取消勾选“使用快速下载模式”。
2 功能介绍2.1 界面介绍
烙铁工作时,分为两种工作模式,即普通工作模式和通道工作模式,两种模式可短按编码器切换,以下将分别介绍。
2.1.1 普通工作模式
普通工作模式下,允许用户以自定义的步进(在菜单中可调),调整设定温度值。步进取值范围为1-50。普通工作模式界面如图2-1。
图2-1普通工作模式界面
2.1.2 通道工作模式
通道工作模式下,用户可以在0~5共计6个温度通道中选择设定温度,其中通道0为0℃,通道5为“最高温度”值,其余四个通道的值可在工厂模式中设定。通道工作模式界面如图2-2。
2.2 主菜单介绍
长按编码器进入一级菜单,旋转编码器选择想要进入的二级菜单,短按进入该二级菜单。再次旋转编码器,将光标移动至需要修改的具体参数上,短按编码器选中该内容(选中后该选项值显示在文字后方)。再次旋转编码器修改该值,修改完成后短按编码器取消选中(取消选中后该选项值消失),再次旋转编码器可以移动光标至其他参数上。退出一级菜单和二级菜单均需要长按编码器,长按时间为1s。菜单结构如图2-3所示。
图2-3 菜单结构图
2.2.1 温度设置
温度步进:用户在正常模式下旋转编码器的温度步进值,以及在其他菜单中设定与温度相关的参数时的温度步进值;
休眠温度:烙铁进入“休眠模式”下的工作温度,该选项值如小于50,则休眠时不加热,且该选项值不能超过“最高温度”的设定值(已在固件中进行了限制,下同);
默认温度:烙铁开机后默认的设定温度,该选项值不能超过“最高温度”的设定值,如希望焊台保存上次关机时的设定温度值,则可以将该选项置为“0”;
最高温度:烙铁可以设置的最高温度,该选项值不能超过500(在温度超过450℃后精度没有保证,请谨慎使用);
2.2.2 时间设置
休眠时间:当烙铁手柄停止振动且编码器没有动作后开始计时,到时进入休眠模式,以“休眠温度”进行工作,直至进入“待机模式”,在此时间内通过振动手柄或编码器动作可唤醒烙铁,重新以原先的设定温度进行加热。如不需要休眠,该位置0。该位置0后,不会进入休眠和待机模式,也不会切断220V电源。
待机时间:在进入休眠模式后开始计时,到时进入待机模式,烙铁停止加热。该位置0表示到休眠时间后直接进入待机模式。待机模式下,只能由编码器动作唤醒烙铁。
关机时间:在进入待机模式后开始计时,到时由单片机IO口(可自定义,参见第三章第五节)给出低电平信号,由硬件配合切断220V电源,该位置0表示不切断220V电源,没有硬件配合的该位无效,可置任何值不影响程序运行。由于单片机掉电唤醒定时器时钟不准,该时间存在较大误差(20%)。
2.2.3 通道设置
默认通道:烙铁开机后默认的设定通道,该选项取值范围为1-5,如希望焊台保存上次关机时的设定通道,则可以将该选项置为“0”;
通道1-4:允许用户设定通道1-通道4的通道值,在通道模式中调用,该选项取值不得大于“最高温度”值。
2.2.4 其它设置
焊咀选择:允许用户在工厂模式中事先储存4支烙铁头的参数;
振动阈值:烙铁头振动唤醒烙铁时的灵敏度设定,取值0~10,0为最灵敏;
按键音量:编码器转动或按下时的音量设定,取值为0~10,0为关闭蜂鸣器;
保护电压:烙铁停止加热的电压值,当电源(或电池)电压低于该设定值时,烙铁停止加热,但不影响菜单操作;
温度波动:烙铁显示温度波动较大时,可提高该值使显示稳定,取值范围1-5,1为显示实时值。
恢复出厂设置:如需恢复出厂设置,则将该位置1,退出菜单后所有参数均恢复出厂设置。
2.2.5 焊咀校准
焊咀选校: 如需矫正并存储烙铁头参数,需将该选项调整为想要校准的烙铁头编号,之后在其余子菜单中进行校准。
0~600℃: 单击选中100℃至500℃选项后,将按照“焊咀选校”中设置的烙铁头编号对应的温度表对烙铁加热,取消选中后自动停止加热。在校准过程中,如实际温度低于设定的温度,则调大AD值;如实际温度高于设定的温度,则调小AD值。0℃及600℃一般为默认值无需调整。温度有过冲比较严重的现象时,反复多次校准温度一般可以解决. 在烙铁头校准时,切记该组数据必须严格从小到大递增,否则温度无效。例如,如果校准前:100℃,AD=110;200℃,AD =270;300℃,AD = 380,当校准200℃时,温度不足200℃,需要将AD值从270调大,但其大小不能超过300°时的AD值380,如果从270调到380温度还不能达到200℃,那就说明300℃时的380这个值也偏小了,需先将300℃的380也增大。
2.2.6 其他校准
按键校准:不同厂家的编码器AB通道不一定相同,如编码器方向与习惯不符,可将该选项调整为1,默认为0。
电压校准:如需矫正电源电压,需旋转编码器将当前电源电压的测量值乘10取整保存在菜单中,如当前电源电压为24.4V,那么将该值调整为244即可;(注意此值对应的编码器步进不为1,需多次旋转才会进1)
室温校准:如需矫正室温,需旋转编码器将当前室温的测量值取证保存在菜单中,如当前室温为18℃,那么将该值调整为18即可;(注意此值对应的编码器步进不为1,需多次旋转才会进1)
3 程序修改
为方便各位朋友在本程序的基础上继续添加或修改自己需要的功能,在此介绍一些常见的问题。
3.1 准备工作
首先需安装Keil软件(见群文件),并下载解压STC-ISP软件(见群文件)。添加型号和头文件到Keil中,如图3-1。然后打开prj文件夹下的HAKKO.uvproj文件即可开始修改。
图3-1 添加型号和头文件
3.2 可快捷修改的几个设置
(1)打开程序文件的config.h文件,找到图3-2(a)所示位置。
(a) config.h文件部分代码
(b)编译按钮
图3-2 可快捷操作的几个设置
(2)根据需要注释相关定义;
(3)设置完毕后按编译按钮,编译按钮在Keil界面左上角如图3-2(b)所示的红圈内。
3.3 修改开机LOGO
①准备一张128*64的logo图片,单色BMP格式;
②打开PCtoLCD2002软件;
③点菜单上的模式,改成图片模式。
④点菜单上文件、打开(打开准备好的bmp格式的logo图片)如图3-3;
图3-3
⑤点上面的齿轮,设字模选项,阴码,列行式,逆向,C51,自定义格式(删去行前缀和行后缀的大括号),如图3-4所示;
图3-4 字模选项
⑥设定好后,点确定,然后点生成字模,如图3-6;
⑦复制生成的代码,替换源程序中LQ12864.C中的LOGO[1024]数组,如图3-5所示;
图3-5 替换LOGO数组
⑧点击图3-2(b)所示的编译按钮,编译后即可下载。
3.4 提高烙铁最大输出功率
烙铁最大输出功率(24V侧)实测已经达75w以上,如果认为不满意可以手动修改程序。但提高效果并不明显且会造成进口头温度检测的波动。为满足更多人需要,特给出修改方法:
(1)打开程序文件的Sys_Sample.c文件,找到图3-6所示位置。
图3-6 Sys_Sample.c文件部分代码
(2)根据需要将Get_ADC10bitResult也注释;
(3)修改完毕后按编译按钮,编译按钮在Keil界面左上角如图3-2(b)所示的红圈内。
3.5 修改控制器IO口
为方便使用其他控制板的朋友修改IO,特取消PCA功能并改用定时器生成PWM波,如图3-7所示.
(1)打开程序的config.h文件,找到图3-7所示位置。
图3-7 config.h文件部分代码
(2)修改适当的IO,其中KEY_A为切换烙铁头按键,KEY_B为休眠或关机按键;
(3)修改完毕后按编译按钮,编译按钮在Keil界面左上角如图3-2(b)所示的红圈内。
4 结语
本程序为天山T12焊台最终版程序,程序中不再新增任何功能,不再修复任何不影响使用的BUG。软硬件均已经开源,希望各位朋友在研究、使用的同时切实遵守开源协议,尊重各版本作者劳动成果,共同营造一个自由、平等、排除商业模式干扰的交流平台。再次感谢开发本焊台过程中向我提供过帮助的所有人,衷心感谢!
单片机源程序如下:
/*********************************************************************************
* COPYRIGHT NOTICE
* Copyright (c) 2017, XinJiang University
* All rights reserved.
*
* 文件名 : Sys_Basic.c
* 描述 : 系统基础函数,包括中断和MCU底层,延时函数等
*
* 版本 : V3.0.2
* 作者 : 王志浩
* 日期 : 2017-10-22
*
* 以下全部程序之著作权归属新疆大学所有,受《中华人民共和国著作权法》保护!
* 未经第一著作权所有人书面授权,任何单位和个人不得将以下程序用于商业用途!
* 修改此程序请保留上述版权声明,引用程序请注明出处!
**********************************************************************************/
#include "config.h"
/********************** 全局变量定义 ************************/
PWM_s PWM = {0,Disable}; //PWM相关变量
IRON_STATUS_e IronStateFlag = NORMAL; //烙铁工作状态标志位
TIMER_s Timer = {0,0,0}; //定时计数器
IRONUSE_STATUS_s IronUse_Status = {FREE,FREE}; //烙铁使用状态标志位
/************************************************************
* 函数名 : timer0_int
* 功能说明 : 定时器0中断,生成PWM波,蜂鸣器响
*
* 输入参数 : 无
* 输出参数 : 无
*
* 修改记录 : 新增函数,第一次编辑
* 历次作者 : 王志浩
* 日期 : 2017-10-18
*************************************************************/
void timer0_int (void) interrupt TIMER0_VECTOR
{
static unsigned int BeepCounter = 0;
static unsigned char PWM_counter = 0;
//PWM生成
PWM_counter++;
if((PWM_counter //IRON = 0; else IRON = 0; //蜂鸣器响 //旋转或按下后BeepCounterFlag被置位,开始计数 if(BeepCounterFlag) { BeepCounter++; } //计数小于设定值时打开,大于时关闭,Beep_Volume的值决定了占空比 if((BeepCounter > 0) && (BeepCounter <= MENU_DATA_Table.Other_s.Beep_Volume*BEEP_TIME)) { BEEP_ON; } else { BEEP_OFF; } //清零 if(BeepCounter >MENU_DATA_Table.Other_s.Beep_Volume*BEEP_TIME) { BeepCounter = 0; BeepCounterFlag = 0; } } /************************************************************ * 函数名 : timer1_int * 功能说明 : 定时器1中断,主要控制 * * 输入参数 : 无 * 输出参数 : 无
上一篇:三杯式风速传感器液晶显示单片机程序与实验报告
下一篇:用Proteus仿真H桥+直流伺服电机 附详细文档+源程序
设计资源 培训 开发板 精华推荐
- 一个现代化的MEGA2560
- ADL5390-EVALZ,基于 ADL5390 20 MHz 至 2.4 GHz RF/IF 矢量乘法器的评估板
- XRP7659 的典型应用,12 至 3.3V/1.5A DC 至 DC 非同步降压稳压器
- 使用 ON Semiconductor 的 LM2575-12 的参考设计
- RT8859M 多相 PWM 控制器 CPU 内核电源电流环路热补偿典型应用
- 五联2.7v,60F超级电容充电均衡电路
- RFFC2071混频器
- 基于LM2596的直流可调电源设计+778314A
- LT4321 的典型应用 - PoE 理想二极管桥控制器
- 使用符合 EN55022 B 类(24Vin 和 48Vin,双输出)具有 EMC 滤波的 RP40-2412SFR DC/DC 转换器的典型应用
- 报名观看TI 嵌入式处理器主题月直播,涨姿势还能拿全勤奖!
- 免费下载|是德科技邀你体验各种测试软件
- 打卡世健的ADI之路首站“工业自动化站”,赢Kindle、《新概念模拟电路》
- Mentor线上研讨会丨FPGA仿真验证平台ModelSim应用进阶
- Littelfuse 高效 • 可靠 • 精准的功率控制和电路保护方案在工业、交通、通讯、医疗及新能源中的应用
- EEWORLD十周年为你而任性——上百块ST开发板团购盛宴开始啦!49元包邮,发帖还返现
- 有奖直播报名中|想了解人形机器人背后的硬科技吗?来英飞凌直播为您揭晓!
- 答题赢好礼 | TDK专题报道只等你来(第3期)
- 重量级板子揭晓——TI M4开发板,你敢得到她么?