数码之家

 找回密码
 立即注册
搜索
查看: 5379|回复: 58

[工仪] 用廉价器件打造一台电容点焊机

[复制链接]
发表于 2023-7-18 12:22:28 | 显示全部楼层 |阅读模式
本帖最后由 wjxhone 于 2023-7-18 16:58 编辑

前段时间一直在折腾电容点焊机,驱动电压是通过法拉电容升压得到的,要想不炸管的话,只能使用300A以上的管子,用那些150A的管子都是随机炸管。直到某一天在b站上看到了有位网友用96个80A的MOS管做驱动板,通过继电器触发居然能正常使用。我也想尝试下效果如何,上网买了些最便宜的80A管子,单价只要2毛左右。
砸开看了下,内部芯片确实小。

掰掉中间的引脚,焊上OT1-3的线鼻,线鼻的材质要用紫铜的。

用6根4平方的镀锡铜线并联。

点焊针直接压在35平方的铝连接头内。

用的是3x20的纯铝排,背面还有12个管子和一个1K电阻没拍到。

焊点相当牢固

原理图:

MOS管的关断全靠上图中栅极对地的那个1K电阻,我也不清楚最合适的值。这次测试下来,感觉比我以前DIY的那些机子效果都要好,点焊时火花明显增大。像以前出现的一些问题,比如炸管,烧单片机都没有了,不知是单独供电还是继电器触发的原因。拨码开关的四位依次代表1,2,4,8毫秒,像点0.15的镀镍片,我设到2毫秒就够了(实际可能不止,因为关断时间没有数字示波器看不了)。附上FT60E211单片机的源代码,可以自行改写触发延时时间和各档的时间。
  1. #include "SYSCFG.h"

  2. #define pulse_1ms        PA3  
  3. #define pulse_2ms        PA2  
  4. #define pulse_4ms        PA1
  5. #define pulse_8ms        PA0

  6. unsigned char pulse;
  7. unsigned char p1,p2,p4,p8;
  8. bit start=0;  //开始点焊标志

  9. void auto_weld()  //自动点焊
  10. {
  11.         static bit key_lock=0; //自锁标志
  12.         static unsigned char count=0;// 计数变量
  13.                                     
  14.                 if(!PA4) //检测到光耦信号如果为0
  15.            {
  16.                 if((count++>=61)&&(key_lock==0))//延时 16.384ms*61 ≈ 1秒
  17.                 {                        
  18.                    key_lock=1;//自锁标志置1                                                                                
  19.                                    start=1; //开始点焊
  20.                 }
  21.            }
  22.         else  //没有检测到光耦信号
  23.           {
  24.                 key_lock=0;  //自锁标志清0
  25.                 count=0;  //消抖计数清0
  26.           }
  27. }

  28. /*-------------------------------------------------
  29. * 函数名:interrupt ISR
  30. * 功能:  中断处理
  31. * 输入:  无
  32. * 输出:  无
  33. --------------------------------------------------*/
  34. void interrupt ISR(void)
  35. {  
  36.         //定时器0的中断处理
  37.         if(T0IE && T0IF)   //16.384ms翻转一次
  38.         {
  39.                 T0IF = 0;
  40.                 auto_weld();
  41.         }
  42. }

  43. /*-------------------------------------------------
  44. * 函数名:POWER_INITIAL
  45. * 功能:  上电系统初始化
  46. * 输入:  无
  47. * 输出:  无
  48. --------------------------------------------------*/        
  49. void POWER_INITIAL (void)
  50. {
  51.         OSCCON = 0B01110001;        //IRCF=111=16MHz/4T=4MHz,0.25us
  52.         INTCON = 0;                          //暂禁止所有中断
  53.         PORTA = 0B00000000;               
  54.         TRISA = 0B00011111;                //PA输入输出 0-输出 1-输入
  55.                                                                                                                
  56.         WPUA = 0B00011111;            //PA端口上拉控制 1-开上拉 0-关上拉                                                        
  57.                            
  58.         OPTION = 0B00001000;        //Bit3=1,WDT MODE,PS=000=WDT RATE 1:1                             
  59.     PSRCA = 0B11111111;            //源电流设置最大

  60.     PSINKA = 0B11111111;    //灌电流设置最大
  61.                      
  62.     MSCON = 0B00110000;                           
  63.         //Bit5:        PSRCAH4和PSRCA[4]共同决定源电流。00:4mA; 11: 33mA; 01、10:8mA
  64.         //Bit4:        PSRCAH3和PSRCA[3]共同决定源电流。00:4mA; 11: 33mA; 01、10:8mA
  65.         //Bit3:        UCFG1<1:0>为01时此位有意义。0:禁止LVR;         1:打开LVR
  66.         //Bit2:        快时钟测量慢周期的平均模式。0:关闭平均模式;1:打开平均模式
  67.         //Bit1:        0:关闭快时钟测量慢周期;1:打开快时钟测量慢周期
  68.         //Bit0:        0:睡眠时停止工作:1: 睡眠时保持工作。
  69.     //                当T2时钟不是选择指令时钟的时
  70.         }   
  71.    
  72. /*----------------------------------------------------
  73. * 函数名称:TIMER0_INITIAL
  74. * 功能:初始化设置定时器
  75. * 相关寄存器:T0CS T0SE PSA
  76. * 设置TMR0定时时长=(1/系统时钟频率)*指令周期*预分频值*255
  77. *                                   =(1/16000000)*4*256*255=16.384ms
  78. ----------------------------------------------------*/
  79. void TIMER0_INITIAL (void)  
  80. {
  81.         OPTION = 0B00000111;
  82.     //Bit5                T0CS Timer0时钟源选择
  83.         //                        1-外部引脚电平变化T0CKI 0-内部时钟(FOSC/2)
  84.         //Bit4                T0CKI引脚触发方式 1-下降沿 0-上升沿
  85.         //Bit3                PSA 预分频器分配位 0-Timer0 1-WDT
  86.         //Bit[2:0]        PS 8个预分频比 111 - 1:256
  87.         T0IF = 0;                                //清空T0软件中断
  88. }   
  89.         
  90. /*-------------------------------------------------
  91. *  函数名:DelayUs
  92. *  功能:  短延时函数
  93. *  输入:  Time延时时间长度 延时时长Time us
  94. *         输出:  无
  95. -------------------------------------------------*/
  96. void DelayUs(unsigned char Time)
  97. {
  98.         unsigned char a;
  99.         for(a=0;a<Time;a++)
  100.         {
  101.                 NOP();
  102.         }
  103. }
  104.                   
  105. /*-------------------------------------------------
  106. *         函数名:DelayMs
  107. *         功能:  短延时函数--16M-4T--大概快1%左右.
  108. *         输入:  Time延时时间长度 延时时长Time ms
  109. *         输出:  无
  110. -------------------------------------------------*/
  111. void DelayMs(unsigned char Time)
  112. {
  113.         unsigned char a,b;
  114.         for(a=0;a<Time;a++)
  115.         {
  116.                 for(b=0;b<5;b++)
  117.                 {
  118.                          DelayUs(98);      //快1%
  119.                 }
  120.         }
  121. }

  122. /*-------------------------------------------------
  123. *  函数名:  main
  124. *        功能:  主函数
  125. *  输入:  无
  126. *  输出:  无
  127. --------------------------------------------------*/
  128. void main()
  129. {
  130.         POWER_INITIAL();
  131.     PA5=0;
  132.     TIMER0_INITIAL();
  133.         GIE  = 1;                                 //开中断
  134.         T0IE = 1;                                //开定时器/计数器0中断          //系统初始化

  135.         while(1)
  136.         {   
  137.             if(!pulse_1ms) p1=1;
  138.                         else p1=0;
  139.                         
  140.                         if(!pulse_2ms) p2=2;
  141.                         else p2=0;
  142.                                        
  143.                         if(!pulse_4ms) p4=4;
  144.                         else p4=0;
  145.                         
  146.             if(!pulse_8ms) p8=8;
  147.                         else p8=0;

  148.                         pulse=p1+p2+p4+p8+4; //数字4为继电器吸合时间,根据实际情况调整此值
  149.                  
  150.             if(start==1) //开始点焊
  151.                 {                    
  152.                      PA5=1;
  153.                                      DelayMs(pulse);
  154.                      PA5=0;                                
  155.                      start=0;                       
  156.                 }               
  157.         }
  158. }
复制代码





本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

打赏

参与人数 2家元 +37 收起 理由
33333333 + 30 優秀文章
作死的家伙 + 7 謝謝分享

查看全部打赏

发表于 2023-7-18 13:07:02 | 显示全部楼层
对mosG的上升沿下降沿越陡越安全  就是驱动能力要求大
回复 支持 反对

使用道具 举报

发表于 2023-7-18 13:25:54 | 显示全部楼层
就是说MOS的驱动电阻要小,驱动电流要大吗?
回复 支持 反对

使用道具 举报

发表于 2023-7-18 13:35:23 | 显示全部楼层
alangxl 发表于 2023-7-18 13:25
就是说MOS的驱动电阻要小,驱动电流要大吗?

MOS电压型器件,驱动电压上升沿和下降沿要陡,就是开要立即全开,关要立即全关。

回复 支持 反对

使用道具 举报

发表于 2023-7-18 13:46:00 | 显示全部楼层
加大铜线鼻子,可以有效减少使用数量
回复 支持 反对

使用道具 举报

发表于 2023-7-18 14:02:26 | 显示全部楼层
测试效果怎样?
难道还有下一集?
回复 支持 反对

使用道具 举报

发表于 2023-7-18 14:18:46 | 显示全部楼层
我在想可不可以用大模块的IGBT来代替mos
回复 支持 反对

使用道具 举报

发表于 2023-7-18 14:39:05 | 显示全部楼层
自己写的程序厉害
回复 支持 反对

使用道具 举报

发表于 2023-7-18 18:37:59 | 显示全部楼层
关键是焊点非常好
回复 支持 反对

使用道具 举报

发表于 2023-7-19 09:30:02 | 显示全部楼层
又是一个经验之谈,以后可以学习利用
回复 支持 反对

使用道具 举报

发表于 2023-7-19 10:05:28 | 显示全部楼层
自己写程序制作调试很厉害啊。
回复 支持 反对

使用道具 举报

发表于 2023-7-19 10:11:09 来自手机浏览器 | 显示全部楼层
焊点很漂亮啊。我怕mos 炸,试了一下时间继电器控制大继电器,启动电瓶做能量源,0.1的镍带直接烧断了
回复 支持 反对

使用道具 举报

发表于 2023-7-19 10:15:42 | 显示全部楼层
焊点很漂亮啊,这可是最小巧的点焊机了。
回复 支持 反对

使用道具 举报

发表于 2023-7-19 10:41:14 | 显示全部楼层
焊点很漂亮  这么多管一致性怎么解决?
回复 支持 反对

使用道具 举报

发表于 2023-7-19 11:05:04 | 显示全部楼层
看到电焊机就心动,眼馋,先看看
回复 支持 反对

使用道具 举报

发表于 2023-7-19 15:56:51 | 显示全部楼层
myrydddddd 发表于 2023-7-18 14:18
我在想可不可以用大模块的IGBT来代替mos

大模块igbt耐压高,导通电阻大,不适合做点焊用
回复 支持 反对

使用道具 举报

发表于 2023-7-19 22:19:05 | 显示全部楼层
管多了不安全吧,便宜的拆机管电流不平衡就容易炸啊
回复 支持 反对

使用道具 举报

发表于 2023-7-19 22:55:06 来自手机浏览器 | 显示全部楼层
这个焊点可以
回复 支持 反对

使用道具 举报

发表于 2023-7-20 09:10:43 | 显示全部楼层
焊点很漂亮,谢谢楼主的分享。
回复 支持 反对

使用道具 举报

发表于 2023-7-20 10:49:15 | 显示全部楼层
很好的启发,有时越原始、越简单,也就越可靠。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

APP|手机版|小黑屋|关于我们|联系我们|法律条款|技术知识分享平台

闽公网安备35020502000485号

闽ICP备2021002735号-2

GMT+8, 2025-5-1 09:01 , Processed in 0.202801 second(s), 12 queries , Redis On.

Powered by Discuz!

© 2006-2025 MyDigit.Net

快速回复 返回顶部 返回列表