标准版
#第四届立创大赛#AI恒温电烙铁

创建时间:5年前

项目主题:自拟主题

描述

<p>简要介绍: 基于触摸感应+单片机控制的可携带的智能恒温电烙铁,携带方便、智能控制、烙铁芯和烙铁头永不干烧、节能环保、烙铁头和烙铁芯使用寿命延长一倍以上。 一、详细描述:    把触摸+智能控制内置到电烙铁手柄里,当使用者拿起电烙铁时,切换到高功率快速升温恒温模式,当使用者放下电烙铁时,切换到低功率保温节能模式,烙铁芯和烙铁头免于干烧和节省电力,延长了电烙铁使用寿命,普通电烙铁烙铁芯和烙铁头使用寿命是3个月左右,AI恒温电烙铁的烙铁头和烙铁芯寿命寿命在6个月以上。 二、所面临的挑战及所解决的问题; A、面临的挑战:1、把感应电路、单片机、供电芯片如何内置到电烙铁手柄里。2、从闲置状态到使用状态,如何快速升温。3、如何可靠识别使用者状态。 B、解决的问题:使用电烙铁(或者电焊台)者分为研发工程师、调试工程师、维修工程师和电器维修人员、生产线上技术工人以及初学电子技术人员。1、研发工程师、调试工程师调试线路板时,也许几个小时使用一下电烙铁,烙铁80%的时间处于等待状态。因为:a、工程师不会也不可能等到要使用电烙铁时插上电烙铁,上电电烙铁预热需要3-5分钟。b、长期插上电烙铁(或者电焊台),电烙铁烙铁头和烙铁芯就会干烧,充气干烧烙铁头会很脏污,脏污的烙铁头会严重影响焊接质量。2、维修工程师和电器维修人员,由于测量分析时间不一,使用电烙铁或者电焊台的时间也不同,电烙铁(或者电焊台)80%的时间在干烧,另外,一个维修人员背着一个2-3公斤的大焊台,很不方便。3、初学电子技术人员,由于电焊台价格贵,初学电子技术人员买普通的没有恒温功能的电烙铁,没有恒温控制,电烙铁2-3个月就会烧坏,而且电烙铁温度高,焊接焊接质量没有保障。本AI恒温电烙铁,恒温、智能感应控制,携带方便(普通电烙铁大小),价格跟普通恒温电烙铁几乎一样。 三、硬件、软件的关键点: A、硬件: 1、电源芯片、触摸芯片、单片机等硬件如何装进手感好的烙铁小手柄里(大的手柄手感极差,现在没有人使用):电源芯片选用必易科技的KP3310 SOP8分钟,外围元件只有5个元件;触摸芯片选用专用触摸芯片SC01,SOP8封装,单片机选用松翰或者中微12位ADC12  SOP8封装,上述配置元件就能内置到手柄里。 2、烙铁芯:烙铁芯的选择要求,低功率保温模式时,功率在8-10W,高功率工作模式时,要求在3秒内快速升温值350度左右,并且恒温。这样选用内置感温电阻的陶瓷4线发热芯,感温电阻45-55欧姆,发热电阻选用90W功率的陶瓷发热芯,但是这么高的功率发热芯,如何保持恒温。 3、感应模式:由于使用220V或者110V电压,触摸感应片(点)不能外置,一定要在手柄里才安全。同时由于使用者手握时千差万别,如何保证触摸感应可靠。本设计选用专用触摸芯片SC01,+弹簧紧贴手柄内壳, B、软件: 1、烙铁芯发热部位离焊嘴有20mm左右,烙铁芯感温电阻检测到是烙铁芯的温度,不是焊嘴的温度,软件采取先全速加热,再延时一定时间后,再逐步减少输入功率。 2、环境影响,在同样功率下,环境10度和环境36度,烙铁焊嘴的温度相差很大,目前采取时用单片机一路检测环境温度,烙铁工作时,把环境温度低时的影响补偿。 四、材料清单:</p> <table> <tr> <th></th> <th></th> <th></th> <th></th> <th></th> </tr> <tr> <td>序号</td> <td>名称</td> <td>编号</td> <td>封装</td> <td>数量</td> </tr> <tr> <td>1</td> <td>二极管M7F</td> <td>D1,D2</td> <td>SMD</td> <td>2</td> </tr> <tr> <td>2</td> <td>单片机8F5701</td> <td>IC5</td> <td>SOP8</td> <td>1</td> </tr> <tr> <td>3</td> <td>可控硅BT131</td> <td>Q1</td> <td>SOT223</td> <td>1</td> </tr> <tr> <td>4</td> <td>电源芯片3310</td> <td>IC1</td> <td>SOP8</td> <td>1</td> </tr> <tr> <td>5</td> <td>电容100uF/10V</td> <td>C15,C3</td> <td>EC8MM_3.81MM</td> <td>2</td> </tr> <tr> <td>6</td> <td>温度探头1000K</td> <td>RNTC</td> <td></td> <td>1</td> </tr> <tr> <td>7</td> <td>贴片电阻100K 5%</td> <td>R1</td> <td>0603</td> <td>1</td> </tr> <tr> <td>8</td> <td>贴片电容104</td> <td>C8,C10,C13,C14</td> <td>0603</td> <td>3</td> </tr> <tr> <td>9</td> <td>贴片电容4.7nF</td> <td>C5</td> <td>0603</td> <td>1</td> </tr> <tr> <td>10</td> <td>贴片电容15pF NPO</td> <td>C16</td> <td>0603</td> <td>1</td> </tr> <tr> <td>11</td> <td>贴片电阻3k 5%</td> <td>R2,R4</td> <td>0603</td> <td>2</td> </tr> <tr> <td>12</td> <td>贴片电阻1k 5%</td> <td>R11</td> <td>0603</td> <td>1</td> </tr> <tr> <td>13</td> <td>贴片电阻1k 1%</td> <td>R13</td> <td>0805</td> <td>1</td> </tr> <tr> <td>14</td> <td>贴片电阻510R 5%</td> <td>R9,R3</td> <td>0603</td> <td>2</td> </tr> <tr> <td>16</td> <td>感应ICSC01</td> <td>IC2</td> <td>SOP8</td> <td>1</td> </tr> <tr> <td>17</td> <td>贴片电容8p NPO</td> <td>C17</td> <td>0603</td> <td>1</td> </tr> <tr> <td>18</td> <td>NTC 100K</td> <td>RNTC1</td> <td></td> <td>1</td> </tr> <tr> <td>19</td> <td>贴片电阻10k 1%</td> <td>R12</td> <td>0603</td> <td>1</td> </tr> <tr> <td>20</td> <td>LED 红色 蓝色</td> <td>LED1,LED2</td> <td>0603</td> <td>2</td> </tr> </table> <p>五、电烙铁照片: 1、线路板:<img src="//image.lceda.cn/pullimage/hTpi27UsY0ozMFGSZqGo2j5JkhoE7tw004zJqDCn.jpeg" alt="微信图片_20190922134752_副本.jpg"> <img src="//image.lceda.cn/pullimage/TzudHAhLgYbltVUciVywIAAvfWSSkR9X3i7il6gV.jpeg" alt="微信图片_20190922134746_副本.jpg"> <img src="//image.lceda.cn/pullimage/TkiwfhCsd0oTJgIgPD9rs2ocGaQCzTH7kKkDMHp1.jpeg" alt="微信图片_20190922134742_副本.jpg"> <img src="//image.lceda.cn/pullimage/Rr4r90n3JotTbVumfRBj3xqaAZsNMPXPFHdptVAq.jpeg" alt="微信图片_20190922134736_副本.jpg"> 2、成品:<img src="//image.lceda.cn/pullimage/JFkgvUcc8fTulVPZMGVHrCzcnfK1QQHrsKc4TJUy.jpeg" alt="微信图片_20190922134706_副本.jpg"> 六、视频:见11附件。</p> <p>七、开源文档:    七、开源文档。</p> <h1>include</h1> <h1>include</h1> <h1>include</h1> <h1>define  unchar  unsigned char              //8位,值域0~255</h1> <h1>define  unint   unsigned int                 //16位,值域0~65535</h1> <h1>define CLR_ADCCH           (ADM & 0xE0)        // 清除CHS[4:0]</h1> <h1>define _EOC                ADM & 0x20          // ADC status (EOC)</h1> <p>#define _ADENB              ADM |= 0x80         // ADC enable (ADENB) #define EnADC_Coverting     ADM |= 0x40         // ADC converting start (ADS) //#define BufSize     20</p> <p>unint  uiADCL=0; //AD值低8位 unint  uiADC=0; //AD值高4位</p> <p>unint ADC_Room_Temperature=0;// unint Value_Room_Temperature=0;//室温ADC unint Value_Room_Temperature_Average=0;//室温平均值 //unint xdata ADC_Room_Temperature_Last=0;</p> <p>unint ADC_NTC=0;// unint Value_NTC=0;//烙铁ADC unint Value_NTC_Average=0;//室温平均值 unint Value_NTC_Last=0;</p> <p>unint Value_Work=0; unint Value_Work1=0; unint Value_Work2=0; unint Low_Default=4018; unint High_Default=3993; unint Low=3861; unint High=3798;</p> <p>unchar Time_20ms=0; //20ms计数器 unchar Time_500ms=0; unchar Time_1s=0; unchar Time_1m=0; unchar Time_90m=90; unchar Time_240m=240; unchar Time_1h=0; unchar i=0; unchar j=0; unchar Count_50=50; unchar Count_5=5; unchar Open_Time=15; //unchar Count_Heating=0; unchar Mode_Temperature=1; unchar Time_10s=10; unchar Time_45s=45; unchar Time_30s=30; unchar Count_20ms=0;</p> <p>bit Tag_1s=0; //bit Tag_500ms=0; bit Tag_100ms=0; bit Tag_240m=0; bit Tag_90m=0; bit Tag_20ms=0; bit Tag_Touch=0; bit Tag_Pre_Insulation=0; bit Tag_Smart=1; bit Tag_Timing_Control=1; bit Tag_10s=1; bit Tag_Temperature_Setting=1; bit Tag_Compensate=0; bit Tag_45s=0; bit Tag_Compensate1=0; bit Tag_30s=0; bit Tag_Stop_High=0; bit Tag_ADC_Deal=0;</p> <p>/************输入输出定义***************/ sbit LED_Blue=P0^0;      //蓝色灯 sbit NTC=P0^1; //NTC检测 sbit SCR=P0^2; //可控硅输出 sbit Touch=P0^3;             //触摸接口 sbit Room_Temperature=P0^4; //温度监测 sbit LED_Red=P0^5;     //红色灯</p> <p>//********************系统初始化************************ void System_Init(void) { WDTR   = 0x5A;   //清看门狗 CLKSEL = 0x04; //Fcpu=32M/2=16M CLKCMD = 0x69; //使能设置 CKCON  &= 0x4F; //Wait 4 Cycle From=16M //P0OC   |= 0x02; //1pin开漏输出模式 }</p> <p>//********************IO输入输出设置************************ void Init_GPIO(void) { P0M  = 0x25;        //1,3,4为输入,其余为输出 P0UR = 0x08;          // 3设为上拉电阻 P0CON=0x12; //1和4只作为模拟输入脚,其余为GPIO P0   = 0x08; //3为高电平,其余为低电平</p> <p>}</p> <p>//*********************定时器0初始化**************** void Timer0_Init_Mode1(void) //50ms { TCON0 = 0x22; //定时器外部时钟选择寄存器T1RATE=Fext0/32=32/32=1M TMOD  = 0x65;               // 定时器模式1                               // T0GATE = 0,                               // T0CT = 0, 16位定时器 TH0   = 0xB1; TL0   = 0xE0;        // 65536-45536=20ms初始化初值</p> <p>TF0   = 0; //没有溢出位 ET0   = 1; //中断开启 TR0   = 1; //定时功能开启 }</p> <p>//*********************ADC初始化***************************** void ADC_Init(void) {     ADR |= 0x40;                    // 开启ADC中断功能 (GCHS)     ADR |= 0x30;                      //1/2时钟源</p> <p>VREFH = 0x04;                  // 使能内部VDD电压参考     //VREFH &= 0xFD;                  // 使能内部低电压参考     //VREFH |= 0x03;                  // VHS[2] = 0 :  ADC internal VREFH function is depend on VHS[1:0].                                     // VHS[1:0] = 0X03 : 内部参考电压为VDD. }</p> <p>//*********************ADC处理*********************** void ADC_Deal(void) // 只有在保温阶段方去ADC判断 { if(Tag_100ms==1&&Tag_10s==0) { //Tag_100ms=0; i++; IEN2 |= 0x01;  //ADC中断使能 _ADENB; //ADC 使能(ADENB),STOP模式下,禁止ADC以省电 ADR  |= 0x40;                    //开启ADC全局通道(GCHS) ADM = CLR_ADCCH |0x04; //选中ADC 04通道 P0CON |= 0x10; //P04置1,作为ADC输入 EnADC_Coverting; while(!_EOC); //等待转换结束 ADC_Room_Temperature=uiADC; IEN2 &= 0xFE; //关闭ADC中断 Value_Room_Temperature=Value_Room_Temperature+ADC_Room_Temperature; if(i==10) { i=0; Value_Room_Temperature_Average=Value_Room_Temperature/10; Value_Room_Temperature=0; ADC_Room_Temperature=0; Tag_ADC_Deal=1; } } if(Tag_100ms==1) { Tag_100ms=0; j++; IEN2 |= 0x01;  //ADC中断使能 _ADENB; //ADC 使能(ADENB),STOP模式下,禁止ADC以省电 ADR  |= 0x40;                    //开启ADC全局通道(GCHS) P0CON |= 0x02; //P01置1,作为ADC输入 ADM = CLR_ADCCH |0x01; //选中ADC 01通道 EnADC_Coverting; while(!_EOC); //等待转换结束 ADC_NTC=uiADC; IEN2 &= 0xFE; //关闭ADC中断 Value_NTC=Value_NTC+ADC_NTC; if(j==10) { j=0; Value_NTC_Average=Value_NTC/10; Value_NTC=0; ADC_NTC=0;</p> <p>if(Value_NTC_Last!=0) { if(Value_NTC_Average=41)Open_Time=40; } //Value_NTC_Last=Value_NTC_Average; } else Value_NTC_Last=Value_NTC_Average; } } }</p> <p>/*****************按键扫描**********************/ void Key_Scan(void) { if(Tag_10s==1) { SCR=0; if(Touch==0) { Mode_Temperature+=1;     if(Mode_Temperature==4)Mode_Temperature=1; switch(Mode_Temperature) { //case 1:Low_Default=3913;High_Default=3866;Tag_Temperature_Setting=1;break;//130-140 //case 1:Low_Default=4018;High_Default=3993;Tag_Temperature_Setting=1;break;//130-140 case 1:Low=3861;High=3798;LED_Red=1;LED_Blue=0;Tag_Temperature_Setting=0;Value_Work1=32;break;//140-150 case 2:Low=3798;High=3725;LED_Red=0;LED_Blue=0;Tag_Temperature_Setting=0;Value_Work1=40;break;//150-160 case 3:Low=3725;High=3640;LED_Red=0;LED_Blue=1;Tag_Temperature_Setting=0;Value_Work1=49;break;//160-170 } while(1) { if(Touch==1) return; //触摸松开跳到主程序 if(Tag_10s==0) return; //10秒定时到跳到主程序 } } } }</p> <p>// ********************室温温度处理************************ void Value_Work_Deal(void) //头10秒处理室温,因为室温传感器会被烙铁头传热 { if(Tag_ADC_Deal==1&&Tag_10s==0) { Tag_ADC_Deal=0; if(Value_Room_Temperature_Average=119&&Value_Room_Temperature_Average=146&&Value_Room_Temperature_Average=185&&Value_Room_Temperature_Average=232&&Value_Room_Temperature_Average=289&&Value_Room_Temperature_Average=355&&Value_Room_Temperature_Average=432&&Value_Room_Temperature_Average=520&&Value_Room_Temperature_Average=619&&Value_Room_Temperature_Average=731&&Value_Room_Temperature_Average=880)Value_Work2=31; } }</p> <p>// ********************烙铁头温度处理************************ void Temperature_Treatment(void) //1s查询一次 { if(Tag_10s==0&&Tag_20ms==1) {   Tag_20ms=0; //初始温度设置 if(Value_Work1>=Value_Work2)Value_Work=Value_Work1; else Value_Work=Value_Work2;   //手握时电烙铁的处理,高温恒温工作状态 if(Touch==0) { Tag_Smart=0; Tag_Pre_Insulation=1; Tag_Compensate1=1; Tag_45s=1; Time_45s=45; if(Tag_Compensate==1) //从低温返回时,全功率工作30s { Tag_Compensate=1; Tag_30s=1; LED_Blue=1; LED_Red=0; SCR=1; } else //手握时温度处理 {</p> <p>LED_Blue=1; if(Value_NTC_Average=Value_Work)SCR=0; else SCR=1; } if(Value_NTC_Average=High) { if(Open_Time=Open_Time)SCR=0; else SCR=1; } if(Value_NTC_Average>=Low)SCR=1;      }   } //闲置时电烙铁的处理,进入烙铁头防氧化状态 if(Touch==1) { Tag_Smart=1; Tag_Pre_Insulation=0; Tag_Compensate=1; Tag_30s=1; Time_30s=30; if(Tag_Compensate1==1) //从高温返回时,40%功率工作45s { Tag_Compensate1=1; Tag_45s=1; LED_Blue=0; LED_Red=0; if(Count_50>=26)SCR=0; else SCR=1; } else  //闲置时温度恒温 { LED_Red=1; if(Value_NTC_Average=Open_Time)SCR=0; else SCR=1; } if(Value_NTC_Average=High_Default) { if(Count_50>=Open_Time)SCR=0; else SCR=1; } if(Value_NTC_Average>=Low_Default)SCR=1; }   } Value_NTC_Last=Value_NTC_Average; } }</p> <p>// ********************主程序************************ void main(void) { EAL=1; //开总中断 System_Init(); //系统初始化 Init_GPIO(); //IO口输入输出定义 Timer0_Init_Mode1(); //定时器0初始化 ADC_Init(); while (1) { ADC_Deal(); Key_Scan(); Value_Work_Deal(); Temperature_Treatment(); } }</p> <p>//*********************time0中断函数************************* void Timer0_ISR(void) interrupt ISRTimer0   // 20ms定时中断 { TH0  = 0xB1; TL0  = 0xE0;        // 65536-45536=20ms初始化初值 Tag_20ms=1; Count_5-=1; //100ms倒计时   if(Count_5==0) { Tag_100ms=1;   Count_5=5; } Count_50-=1; //功率计时基准 if(Count_50==0)Count_50=50; Time_20ms+=1; if(Time_20ms==25) { Time_20ms=0; Time_500ms+=1; if(Time_500ms==2) //1秒计数 { Time_500ms=0; Time_1s+=1; Tag_1s=1; if(Tag_10s==1)Time_10s-=1; if(Time_10s==0) { Tag_10s=0; Tag_Temperature_Setting=0; } if(Tag_30s==1)Time_30s-=1; if(Time_30s==0) { Tag_30s=0; Time_30s=30; Tag_Compensate=0; } if(Tag_45s==1)Time_45s-=1; if(Time_45s==0) { Tag_45s=0; Time_45s=45; Tag_Compensate1=0; }</p> <p>if(Time_1s==60)//60 { Time_1m+=1; Time_1s=0; if(Tag_Timing_Control==1)Time_240m-=1; if(Time_240m==0) { Tag_90m=1; Tag_Timing_Control=0; Time_240m=240; } if(Tag_90m==1) { Time_90m-=1; P0M = 0x00; P0  = 0x08; if(Time_90m==0) { Tag_90m=0; P0M  = 0x25;        //1,3,4为输入,其余为输出 P0UR = 0x08;          // 3设为上拉电阻 P0CON=0x12; //1和4只作为模拟输入脚,其余为GPIO P0   = 0x08; //2为低电平,其余为高电平 } } if(Time_1m==60) { Time_1h+=1; Time_1m=0; if(Time_1h==10)//4 { P0M=0x00; P0 = 0x08; //关掉LED和输出,掉电重启后恢复 Time_1h=0; EAL=1; } } } if(Tag_Temperature_Setting==1) { LED_Red=\~LED_Red; LED_Blue=1; } if(Tag_Smart==1&&Tag_10s==0&&Value_NTC_Average>=High_Default) { LED_Blue=\~LED_Blue; //LED_Red=1; } if(Tag_Pre_Insulation==1&&Tag_10s==0&&Value_NTC_Average>=High) { LED_Red=\~LED_Red; //LED_Blue=1; } } } }</p> <p>//*********************ADC中断函数************************* void ADC_ISR(void) interrupt ISRAdc { IRCON2 &= 0xFE;                 //清除中断请求 if (_EOC) // 检查ADC状态 { uiADCL = ADR; uiADCL &= 0x0F;             // 获取ADB3~ADB0</p> <p>uiADC = ADB ; uiADC</p>

文档

智能电烙铁(双NTC)

AI恒温电烙铁

0987

oiuj

oiuj copy

BOM

ID Name Designator Footprint Quantity Manufacturer Part Manufacturer Supplier Supplier Part
1 M7F D1,D2 R4000F 2
2 8F5701 IC5 SOP8 1
3 BT131 Q1 BT131_SOT223 1
4 3310 IC1 SOP8 1
5 100uF/16V C15,C3 EC8MM_3.81MM 2
6 1000K RNTC XH2.54_CON2 1
7 100K R1 0603 1
8 104 C8,C13,C14 0603 3
9 4.7nF C5 0603 1
10 15pF C16 0603 1
11 3k R2,R4 0603 2
12 1k R11 0603 1
13 1k R13 0805 1
14 510 R9,R3 0603 2
15 104 C10 0805 1
16 SC01 IC2 SOP8 1
17 8p C17 0603 1
18 100K RNTC1 XH2.54_CON2 1
19 10k R12 0603 1
20 204-10SURD/S530-A3 LED1,LED2 LED-3MM/2.54 2
21 30W/220V HEATER AXIAL-0.3 1

附件

附件名 下载
11.mp4

成员

评论(2)

  • 表情
    emoji
    小嘉工作篇
    小嘉日常篇
  • 图片
成功
工程所有者当前已关闭评论
立创电赛 回复
<p>温馨提示:距项目提交截止还有11天,记得完善作品上传哟!</p>
立创电赛 回复
<p>恭喜您的项目获得第四届立创电子设计大赛优秀奖,点击查看获奖名单:<a href="https://diy.szlcsc.com/posts/7b78bd99e53745588a4f2d81cc11af92" target="_blank">https://diy.szlcsc.com/posts/7b78bd99e53745588a4f2d81cc11af92</a></p>
goToTop
svg-battery svg-battery-wifi svg-books svg-more svg-paste svg-pencil svg-plant svg-ruler svg-share svg-user svg-logo-cn svg-double-arrow