数码之家

 找回密码
 立即注册
搜索
查看: 4350|回复: 14

[焊接] 求助下点焊机控制板怎么接

[复制链接]
发表于 2020-12-3 15:11:01 | 显示全部楼层 |阅读模式
原贴https://www.mydigit.cn/forum.php ... d=798824&page=1
testing接什么,还有那3个三极管是什么




本帖子中包含更多资源

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

x
发表于 2020-12-3 15:48:06 | 显示全部楼层
testing应该是接触发开关的(脚踏,手控,触控),S1、S2为时间调整,三个三极管为数码管动态显示驱动用。TO MOS G接摸死管栅极。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-12-3 17:33:10 | 显示全部楼层
本帖最后由 沨の痕 于 2020-12-3 17:35 编辑
温力口 发表于 2020-12-3 15:48
testing应该是接触发开关的(脚踏,手控,触控),S1、S2为时间调整,三个三极管为数码管动态显示驱动用。T ...


testing是对地触发么,还有我看别人的控制板还要连mos d脚,并焊针极,s脚法拉电容负极
回复 支持 反对

使用道具 举报

发表于 2020-12-3 17:56:51 | 显示全部楼层
沨の痕 发表于 2020-12-3 17:33
testing是对地触发么,还有我看别人的控制板还要连mos d脚,并焊针极,s脚法拉电容负极 ...

要接在5V电源端上(或者别的电压,反正就是电源正极)。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-12-3 18:39:30 | 显示全部楼层
温力口 发表于 2020-12-3 17:56
要接在5V电源端上(或者别的电压,反正就是电源正极)。

好的谢谢
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-12-21 11:20:12 | 显示全部楼层
温力口 发表于 2020-12-3 17:56
要接在5V电源端上(或者别的电压,反正就是电源正极)。

你好,我想问下那帖子作者程序介绍15W413AS点焊机源程序,但是电路图是15w401as,我用的15w401as烧录检测单机片时数码管能亮,烧录后完全没反应,请问是要用15w413as吗
回复 支持 反对

使用道具 举报

发表于 2020-12-21 13:33:46 | 显示全部楼层
沨の痕 发表于 2020-12-21 11:20
你好,我想问下那帖子作者程序介绍15W413AS点焊机源程序,但是电路图是15w401as,我用的15w401as烧录检测 ...

我刚才花了35M币下了这个程序看了下,这程序很简单,没有调整焊接时间的功能,并且跟原理图不相符,吸看到两个固定的延时程序,那些数码管都没有驱动。
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2020-12-21 14:25:45 | 显示全部楼层
温力口 发表于 2020-12-21 13:33
我刚才花了35M币下了这个程序看了下,这程序很简单,没有调整焊接时间的功能,并且跟原理图不相符,吸看 ...



#include "reg51.h"       //此文件中定义了单片机的一些特殊功能寄存器
typedef unsigned int u16;//对数据类型进行声明定义
typedef unsigned char u8;//对数据类型进行声明定义
sbit P30=P1^0;                        //数码管第1位
sbit P31=P1^1;                        //数码管第2位
sbit k1=P1^6;        //将单片机的P3.2端口定义为时间加
sbit k2=P1^5;        //将单片机的P3.3端口定义为时间减
sbit k3=P1^7;        //将单片机的P3.4端口定义为检测点焊笔

sbit out=P1^4;       //驱动脉冲输出
//数码管真值表//
u8 code LED_CODE[]={0x03,0x9f,0x25,0x0d,0x99,0x49,0x41,0x1f,0x01,0x09}; //显示0~F的段码

u16 Cntms1=0,Cntms2=0,num1,num2;ke;

u8 num;                //定时变量=毫秒

void Delay(unsigned long int t)
{
        while(--t);
         
}

/*===加按键检测===*/
/*当此函数检测到有效按键时返回1,没有检测到有效值时返回0*/
bit skey0(void)
{
        static unsigned char a = 0;
        if(k1 == 0)                                        //如果检测到按键引脚有低电平,记数变量开始累加.
        {
                if(a < 50)                                //控制延时计数返0,因为当按键不松开时,j一直在累加
                        a++;                                //CPU每检测到一次按键引脚为低电平0,j就累加1次.
        }
        else                                                //如果按键没有按下或者按下后有高电平(抖动)j清0
                a = 0;
       
        if(a == 49)                                //如果变量j的值累加到49,说明按键已跨过抖动区.
                return 1;                                //返回1,说明已检测到按键有效值.
        else
                return 0;                                //返回0,说明没有检测到有效值.
}
/*===减按键检测===*/
/*当此函数检测到有效按键时返回1,没有检测到有效值时返回0*/
bit skey1(void)
{
        static unsigned char i = 0;        //定义静态变量,用来记录延时用.
        if(k2 == 0)                                        //如果检测到按键引脚有低电平,记数变量开始累加.
        {
                if(i < 50)                                //控制延时计数返0,因为当按键不松开时,i一直在累加.
                        i++;                                //CPU每检测到一次按键引脚为低电平0,i就累加1次.
        }
        else                                                //如果按键没有按下或者按下后有高电平(抖动)i清0
                i = 0;
       
        if(i == 49)                                //如果变量i的值累加到49,说明按键已跨过抖动区
                return 1;                                //返回1,说明已检测到按键有效值.
        else
                return 0;                                //返回0,说明没有检测到有效值.
}

bit skey2(void)
{
        static unsigned  int l = 0;        //定义静态变量,用来记录延时用.                   unsigned long int
        if(k3 == 0)                                //如果检测到按键引脚有低电平,记数变量开始累加.
        {
                if(l <5000)                                //控制延时计数返0,因为当按键不松开时,i一直在累加
                        l++;                                //CPU每检测到一次按键引脚为低电平0,i就累加1次.
        }
        else                                                //如果按键没有按下或者按下后有高电平(抖动)i清0
                l = 0;
       
        if(l == 4999)                                //如果变量i的值累加到4999,说明点焊笔已经做好准备,可以焊接了.
                return 1;                                //返回1,说明已检测到按键有效值.
        else
                return 0;                                //返回0,说明没有检测到有效值.
}


/********************************
                数码管动态显示程序
********************************/
void display()
{
        static u8 i=0;
      
                  
         
        if(i==0)
        {
                P30=1;
                P31=0;
                P3=LED_CODE[num/10];
                                for(ke = 0;ke <100;ke++);        //延时一段时间
                            P31=1;
                                P3=0Xff;
                               
                i=1;
                               
        }
        else
        {
                P31=1;
                P30=0;
                P3=LED_CODE[num%10];
                                for(ke = 0;ke <100;ke++);        //延时一段时间
                                P30=1;
                                P3=0Xff;                 //消隐
                               
                i=0;
                       
        }
}



//主函数//
void main()
{      
                 bit m = 0,m1 = 0,m2=0;                        //声明一个位变量.用来存储按键状态.
         unsigned char i;
        out=1; //初始化输出端口
        num=40;//定时变量赋初值
        
            
                k1 = 1;                                                //加按键输入端口电平置高
                k2 = 1;                                                //减按键输入端口电平置高
                k3 = 1;               
                                       
                        while(1)                                        //主循环
                        {
                          
                                m  = skey0();                        //采集加按键
                                m1 = skey1();                        //采集减按键
                            m2 = skey2();                        //采集按键
                                if(m == 1)                                //如果采集到加按键值.
                                {
                                 if(num < 99)
                                        num++;                                //计数自增       
                                }
                                if(m1 == 1)                                //如果采集到减按键值.
                                {
                                 if(num >1)       
                                        num--;                                //计数自减
                                  }
                                 if(m2 == 1)
                                         { for(i=0;i<2;i++)        //加入 for循环,表明for循环大括号中的程序循环执行2次
                                          {
                                                out=0;                        //将P1.0口赋值 0,对外输出低电平
                                                Delay(num*50);        //调用延时程序;更改延时数字可以更改延时长度;用于改变输出脉冲时间
                                                out=1;                        //将P1.0口赋值 1,对外输出高电平
                                                Delay(3000);
                                           }
                                         }                        
                        display();//数码管动态显示        
                    }
}

      


源码应该是这个,对应我上面的原理图,现在我做出来了,加减只有中间的数字会动,而且要按10次左右
回复 支持 反对

使用道具 举报

发表于 2020-12-21 16:07:50 | 显示全部楼层
#include <STC15F2K60S2.h>       //此文件中定义了单片机的一些特殊功能寄存器
typedef unsigned int u16;//对数据类型进行声明定义
typedef unsigned char u8;//对数据类型进行声明定义
//sbit Wei1=P1^2;                        //数码管第1位
//sbit Wei2=P1^1;                        //数码管第2位
//sbit Wei3=P1^0;                        //数码管第3位
sbit k1=P1^6;        //将单片机的P1.6端口定义为时间加
sbit k2=P1^5;        //将单片机的P1.5端口定义为时间减
sbit k3=P1^7;        //将单片机的P1.7端口定义为检测点焊笔

sbit out=P1^4;       //驱动脉冲输出

//数码管真值表//
u8 code LED_CODE[]={0x03,0x9f,0x25,0x0d,0x99,0x49,0x41,0x1f,0x01,0x09}; //显示0~F的段码

//u16 Cntms1=0;       //这变量只声明
//u16 Cntms2=0;       //这变量只声明
//u16 num1;           //这变量只声明
//u16 num2;           //这变量只声明
u16 ke;               //扫描延时量参数

u16 num;                //定时变量,毫秒,由按键控制。

void Delay(unsigned long int t)
{
        while(--t);
         
}

/*===加按键检测===*/
/*当此函数检测到有效按键时返回1,没有检测到有效值时返回0*/
bit skey0(void)
{
        static unsigned char a = 0;
        if(k1 == 0)                                        //如果检测到按键引脚有低电平,记数变量开始累加.
        {
                if(a < 50)                                //控制延时计数返0,因为当按键不松开时,j一直在累加
                        a++;                                //CPU每检测到一次按键引脚为低电平0,j就累加1次.
        }
        else                                                //如果按键没有按下或者按下后有高电平(抖动)j清0
                a = 0;
      
        if(a == 49)                                //如果变量j的值累加到49,说明按键已跨过抖动区.
                return 1;                                //返回1,说明已检测到按键有效值.
        else
                return 0;                                //返回0,说明没有检测到有效值.
}
/*===减按键检测===*/
/*当此函数检测到有效按键时返回1,没有检测到有效值时返回0*/
bit skey1(void)
{
        static unsigned char i = 0;        //定义静态变量,用来记录延时用.
        if(k2 == 0)                                        //如果检测到按键引脚有低电平,记数变量开始累加.
        {
                if(i < 50)                                //控制延时计数返0,因为当按键不松开时,i一直在累加.
                        i++;                                //CPU每检测到一次按键引脚为低电平0,i就累加1次.
        }
        else                                                //如果按键没有按下或者按下后有高电平(抖动)i清0
                i = 0;
      
        if(i == 49)                                //如果变量i的值累加到49,说明按键已跨过抖动区
                return 1;                                //返回1,说明已检测到按键有效值.
        else
                return 0;                                //返回0,说明没有检测到有效值.
}

bit skey2(void)
{
        static unsigned  int l = 0;        //定义静态变量,用来记录延时用.                   unsigned long int
        if(k3 == 0)                                //如果检测到按键引脚有低电平,记数变量开始累加.
        {
                if(l <5000)                                //控制延时计数返0,因为当按键不松开时,i一直在累加
                        l++;                                //CPU每检测到一次按键引脚为低电平0,i就累加1次.
        }
        else                                                //如果按键没有按下或者按下后有高电平(抖动)i清0
                l = 0;
      
        if(l == 4999)                                //如果变量i的值累加到4999,说明点焊笔已经做好准备,可以焊接了.
                return 1;                                //返回1,说明已检测到按键有效值.
        else
                return 0;                                //返回0,说明没有检测到有效值.
}


/********************************
                数码管动态显示程序
********************************/
void display()
{

        P1 |=0x0f;
        P3=LED_CODE[num%10];
        P1 &=0xfe;
        for(ke = 0;ke <100;ke++);        //延时一段时间
       
        P1 |=0x0f;
        P3=LED_CODE[num/10%10];
        P1 &=0xfd;
        for(ke = 0;ke <100;ke++);        //延时一段时间
       
        P1 |=0x0f;
        P3=LED_CODE[num/100];
        P1 &=0xfb;
        for(ke = 0;ke <100;ke++);        //延时一段时间                       
   
}



//主函数//
void main()
{      
                 bit m = 0,m1 = 0,m2=0;                        //声明一个位变量.用来存储按键状态.
        unsigned char i;
        out=1; //初始化输出端口
        num=40;//定时变量赋初值
        
            
        k1 = 1;                                                //加按键输入端口电平置高
        k2 = 1;                                                //减按键输入端口电平置高
        k3 = 1;               
                                       
                                while(1)                                        //主循环
                                {
                                       
                                                m  = skey0();                        //采集加按键
                                                m1 = skey1();                        //采集减按键
                                                m2 = skey2();                        //采集按键
                                               
                                          if(m == 1)                                //如果采集到加按键值.
                                                {
                                                 if(num < 999)
                                                                                num++;                                //计数自增      
                                                }
                                               
                                                if(m1 == 1)                                //如果采集到减按键值.
                                                {
                                                 if(num >1)      
                                                                num--;                                //计数自减
                                                }
                                               
                                         if(m2 == 1)
                                         {
                                                 for(i=0;i<2;i++)        //加入 for循环,表明for循环大括号中的程序循环执行2次
                                                                {
                                                                                        out=0;                        //将P1.4口赋值 0,对外输出低电平(点焊机摸死管GATE电平)
                                                                                        Delay(num*50);        //调用延时程序;更改延时数字可以更改延时长度;用于改变输出脉冲时间
                                                                                        out=1;                        //将P1.0口赋值 1,对外输出高电平
                                                                                        Delay(3000);
                                                                 }
                                                                         }                        
                                  display();//数码管动态显示        
                   }
}
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-12-21 16:30:06 | 显示全部楼层
本帖最后由 沨の痕 于 2020-12-21 16:49 编辑
温力口 发表于 2020-12-21 16:07
#include        //此文件中定义了单片机的一些特殊功能寄存器
typedef unsigned int u16;//对数据类型进行 ...

这是你改过?需要换单机片吗,我试过编译出现一堆error c202
回复 支持 反对

使用道具 举报

发表于 2020-12-21 17:13:49 | 显示全部楼层
沨の痕 发表于 2020-12-21 16:30
这是你改过?需要换单机片吗,我试过编译出现一堆error c202

这个就是针对你的这个单片机的。你要加上头文件。
回复 支持 反对

使用道具 举报

发表于 2020-12-21 17:22:33 | 显示全部楼层
:030000000200A15A
:0C00A100787FE4F6D8FD7581200200E8AD
:0A02B000039F250D9949411F010924
:0A02A500010800010900020A000030
:10028F008F138E128D118C10781074FF120196EC53
:06029F004D4E4F70F322EA
:10025B0020960BE508C39432500705088003E4F59C
:09026B0008E508B43102D322C3F6
:010274002267
:1002750020950BE509C39432500705098003E4F581
:0902850009E509B43102D322C3DA
:01028E00224D
:10023000209715C3E50B9488E50A9413500F050B1E
:10024000E50B7009050A8005E4F50AF50BE50BB42A
:0A0250008707E50AB41302D322C3A6
:01025A002281
:1000030043900FAE0EAF0F7C007D0A12013F74B018
:100013002DF58274023CF583E493F5B05390FEE42E
:10002300F50CF50D050DE50D7002050C6464450C2A
:1000330070F243900FAE0EAF0F7C007D0A12013FAA
:100043007C007D0A12013F74B02DF58274023CF5E9
:1000530083E493F5B05390FDE4F50CF50D050DE540
:100063000D7002050C6464450C70F243900FAE0EE4
:10007300AF0F7C007D6412013F74B02FF5827402D0
:100083003EF583E493F5B05390FBE4F50CF50D05D1
:0E0093000DE50D7002050C6464450C70F22240
:1001B400C200C201C202D294750E00750F28D296F5
:1001C400D295D29712025B9200120275920112022A
:1001D400309202300013C3E50F94E7E50E94035008
:1001E40008050FE50F7002050E300113D3E50F94D7
:1001F40001E50E94004008E50F150F7002150E304E
:100204000225E4FBC294AE0EAF0F7C007D321201D6
:100214002DE4FD12028FD2947FB87E0B7D007C000A
:0C02240012028F0BBB02DD120003809859
:1000AD000201B4E493A3F8E493A34003F68001F2B4
:1000BD0008DFF48029E493A3F85407240CC8C33354
:1000CD00C4540F4420C8834004F456800146F6DF23
:1000DD00E4800B01020408102040809002A5E47E0C
:1000ED00019360BCA3FF543F30E509541FFEE49318
:1000FD00A360010ECF54C025E060A840B8E493A3DF
:10010D00FAE493A3F8E493A3C8C582C8CAC583CA09
:10011D00F0A3C8C582C8CAC583CADFE9DEE780BEC1
:0102AF00004E
:10012D00EF8DF0A4A8F0CF8CF0A428CE8DF0A42EE6
:02013D00FE22A0
:10013F00BC000BBE0029EF8DF084FFADF022E4CCA4
:10014F00F875F008EF2FFFEE33FEEC33FCEE9DEC6D
:10015F00984005FCEE9DFE0FD5F0E9E4CEFD22EDB3
:10016F00F8F5F0EE8420D21CFEADF075F008EF2FFD
:10017F00FFED33FD4007985006D5F0F222C398FDEE
:05018F000FD5F0EA228B
:100194007401FF3395E0FEFDFC080808E62FFFF626
:1001A40018E63EFEF618E63DFDF618E63CFCF6229F
:00000001FF

打赏

参与人数 1家元 +40 收起 理由
沨の痕 + 40 熱心助人

查看全部打赏

回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-12-21 18:17:18 | 显示全部楼层
本帖最后由 沨の痕 于 2020-12-21 18:20 编辑
温力口 发表于 2020-12-21 17:22
:030000000200A15A
:0C00A100787FE4F6D8FD7581200200E8AD
:0A02B000039F250D9949411F010924

你这个数码管在前面多了一个0,其他跟原来的代码功能一样,现在是做出来了,试了也正常,依然是那样按很多次数字才变化,还有有时触发后不知道哪里保护,数码管不显示,要断开供电重新接才行,电容万用表接着电压一直正常,m币打赏回了
回复 支持 反对

使用道具 举报

发表于 2020-12-21 18:23:38 | 显示全部楼层
沨の痕 发表于 2020-12-21 18:17
你这个数码管在前面多了一个0,其他跟原来的代码功能一样,现在是做出来了,试了也正常,依然是那样按很多 ...

晚上帮你改下按键输入部分。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-12-21 20:37:04 | 显示全部楼层
本帖最后由 沨の痕 于 2020-12-21 20:56 编辑
温力口 发表于 2020-12-21 18:23
晚上帮你改下按键输入部分。

现在主要问题是点焊会保护,用你的源码保护后数码管第一个还显示0,无法控制了,需要断开供电充电接,还有无档位记忆。
保护问题找到了,电路图单机片输入电路图1000uf,我没装,装上就好了

回复 支持 反对

使用道具 举报

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

本版积分规则

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

闽公网安备35020502000485号

闽ICP备2021002735号-2

GMT+8, 2025-5-12 08:18 , Processed in 0.218401 second(s), 10 queries , Redis On.

Powered by Discuz!

© 2006-2025 MyDigit.Net

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