本项目由负熵生之光大佬提供。

B站链接:ESP8266 点焊机 3.0 / 开源自制

OSHWHub:ESP8266 点焊机 3.0

由于大佬提供了 V3.0 和 V2.0 版本,本着追新不追旧的原则,还是研究 V3.0 项目是怎么实现的!

项目预览:

上板与中板通过四根排针相连接,底板就是普通底板,无实际作用。


点焊机原理

点焊机两极点瞬间放点,因接触点的接触电阻比较大,在电流通过的瞬间产生大量的能力而产生热熔接,形成熔核进而达到焊接目的。

本项目是由电容来提供瞬间大电流的。


放电电路

通过控制 MOS 管的通断,来达到瞬间导通、瞬间放电的效果。

放电电容采用外接方式!接在CN1接口。


控制电路

主控周边

电平设置部分就是一堆上拉、下拉电阻。设置端口为上拉/下拉。

2.54排针是和中板(放电板)相连控制的接口。

杂项目

电压采集 30V 是什么意思呢?是电压输入限制在了 30V 。

照明电路是给两电极提供照明的。

电源部分

过流过压保护此VCC由中板提供!这是控制板的电源来源。但是,这个保险选定不行吧!

ME3116是降压稳压器,采用PWM控制模式。

SX1308升压芯片:2V到24V的宽输入电压范围。VIN通过 +5V or BAT 提供电源。

外部接口

板载CH340,不必要吧。还自动下载电路。确实这样方便了。

TP4054 单颗锂电池充电管理芯片。

显示部分

采用的 0.42 OLED 进行显示。

中板控制电路

采用 TC4427 驱动芯片对MOS管进行驱动。

焊件检测问题:如果电容/供电电压达到较高值,那么 VDD 不就相当直接接到高电位了,这样大概不合适吧?


程序

代码比较简单。只几百行。

做了必要的注释!

经过验证,代码可编译!!

#include <Arduino.h>
#include <EEPROM.h>
#include <U8g2lib.h>#ifdef U8X8_HAVE_HW_SPI
#include <SPI.h>
#endif
#ifdef U8X8_HAVE_HW_I2C
#include <Wire.h>
#endifU8G2_SSD1306_72X40_ER_F_HW_I2C u8g2(U8G2_R0, /* reset=*/ U8X8_PIN_NONE);byte k1 = 0  ;              // +按键,低调平有效
byte k2 = 2  ;              // -按键,低电平有效
byte k3 = 13 ;              // 模式按键,低电平有效byte g1  = 14;              // 焊件检测
byte ADC = A0;              // 电池电压检测
byte mos = 12;              // MOS 控制 float V = 0;                // 电池电压v
int hms;                    // 焊接延时
int yms;                    // 延时焊接
volatile byte ms = 0;       // 模式,这里其实用不到 volatile 吧,总共就0~4 /* 中断程序,执行模式切换 */
ICACHE_RAM_ATTR void zd1()
{ ms++;
}/*  调参函数,参数,参数上限 */
void key(int &a , int b)
{   if(digitalRead(k1) !=  digitalRead(k2))    // KEY1&KEY2 不在同一电平状态{  long int t =  millis();                 // 记录当前时间if(digitalRead(k1) == LOW)              // KEY1 按下{ a++;                                  // 参数增加while(digitalRead(k1) == LOW)         // 长按情况{if(millis() - t > 1200)            // 长按大于 1200ms{     a = a + 10;                     // 增加步长为 10}if(a > b)                          // 大于参数上限a = b ;           delay(10);                        oled(a);                           // 显示参数 a}   }else                                    // KEY2 按下{a--;                                  // KEY2 按下分析过程同 KEY1 按下while(digitalRead(k2) == LOW){if(millis() - t > 1200){ a = a - 10;   }if(a < 0){  a = 0 ; }delay(10);oled(a);}  }sjx(hms, yms);                          // EEPROM写入数据}oled(a);
}/* 写入Flash数据,焊接延时,延时焊接 */
void sjx(int a, int b){EEPROM.begin(1024);EEPROM.put(0, a);  delay(10);EEPROM.put(4, b);  delay(10);EEPROM.commit(); //保存更改的数据
}/* 读取Flash数据,焊接延时,延时焊接 */
void sjd(){EEPROM.begin(64);EEPROM.get(0, hms);delay(10);EEPROM.get(4, yms);
}/* 供电电压读取 */
void BAT(){V = map(analogRead(A0),0,1023,0,1000);V = V*31.3/1000;
}/* 0.420 LED 显示 */
void OLED(){u8g2.clearBuffer();                   //清除内存中数据缓冲区         u8g2.setFont(u8g2_font_ncenB12_tr);   //设置字体u8g2.setCursor( 0, 12);u8g2.print(V);                     u8g2.setCursor(48, 12);u8g2.print("V");u8g2.setCursor(62, 12);u8g2.print(ms);u8g2.setCursor( 0, 26);u8g2.print(hms);                     u8g2.setCursor(48, 26);u8g2.print("ms");u8g2.setCursor( 0, 40);u8g2.print(yms);                     u8g2.setCursor(48, 40);u8g2.print("ms");u8g2.sendBuffer();                    //绘制缓冲区的内容
}/* 调参界面显示 */
void oled(int a)
{u8g2.clearBuffer();u8g2.setFont(u8g2_font_ncenB12_tr);u8g2.clearBuffer();u8g2.setCursor(0, 14);if(ms == 3){                // 焊接等待时间调参u8g2.print("weld ms");    // 焊接等待时间}else{                      // 等待焊接时间调参u8g2.print("wait ms");    // 等待焊接时间}u8g2.setCursor(0, 40);u8g2.print(a);u8g2.sendBuffer();
}/* 延时函数(ms) */
void sj(int a)
{long int i = millis();while((millis() - i) < a) OLED();
}/* 自动模式 */
void zdhj()
{if(digitalRead(g1) == HIGH)    // 检测是否有焊件{sj(yms);                     // 延时函数充电(ms)digitalWrite(mos,HIGH);      // 导通MOS放电sj(hms);                     // 延时放电时间digitalWrite(mos,LOW);       // 关闭MOS}
}/* 手动模式 */
void sddh()
{if(digitalRead(g1) == HIGH)    // 检测是否有焊件{if(digitalRead(k1) == LOW || digitalRead(k2) == LOW )    // KEY1/KEY2按下{  sj(yms);                  // 延时函数充电(ms)digitalWrite(mos,HIGH);   // 导通MOS放电sj(hms);                  // 延时放电时间digitalWrite(mos,LOW);    // 关闭MOS}}
}/* 调节焊接延时时间 */
void hjms()
{ key(hms, 1000);
}/* 调节延时焊接时间 */
void ysms()
{ key(yms, 3000);
}void setup()
{u8g2.begin();pinMode(k1 ,INPUT_PULLUP); pinMode(k2 ,INPUT_PULLUP); pinMode(k3 ,INPUT_PULLUP);      pinMode(g1 ,INPUT);pinMode(mos ,OUTPUT);digitalWrite(mos,LOW);/* 中断函数 */attachInterrupt(k3, zd1, RISING);     // 上升沿触发,按键松开触发sjd();    // 读取Flash数据 }void loop()
{BAT();switch(ms){case 0 : OLED();   break;case 1 : zdhj();    // 自动模式OLED();break;case 2 : sddh();    // 手动模式OLED();break; case 3 : hjms();    // 焊接时间调参break; case 4 : ysms();    // 延时焊接调参break; default: ms = 0;    // 超出置0break;}
}

参考:

U8g2库的详细使用

项目资料:

链接:https://pan.baidu.com/s/1cm7Nr6hIkZjasgeOpbPCCQ
提取码:k7d3


总结

给以后做点焊机提供了思路,是一个好项目!值得学习!

感谢开源!

【ESP8266点焊机】基于 ESP8266 for Arduino相关推荐

  1. ESP8266(基于arduino平台)每篇一个知识点——2.wifi AP模式设置

    ESP8266(基于arduino平台)每篇一个知识点--2.wifi AP模式设置 一.ESP8266(基于arduino平台)每篇一个知识点--2.wifi AP模式设置 1.添加头文件引用 2. ...

  2. ESP8266(基于arduino平台)每篇一个知识点—1.wifi STA模式连接指定wifi

    ESP8266(基于arduino平台)每篇一个知识点--1.wifi STA模式连接指定wifi 一.ESP8266(基于arduino平台)每篇一个知识点--1.wifi STA模式连接指定wif ...

  3. php与硬件通过wifi对接,基于ESP8266的WiFi排插接入贝壳互联实现天猫精灵控制

    认识众多玩家高手/拆客/DIYer,查阅更多资源,一起学习技术知识 您需要 登录 才可以下载或查看,没有帐号?立即注册 x 本帖最后由 hzy3774 于 2020-1-8 00:45 编辑 * 实验 ...

  4. Obloq模块:基于ESP8266的物联网模块

    OBLOQ 物联网模块 OBLOQ模块是DFRobot公司开发的一款基于ESP8266芯片的物联网通信模块.模块使用串口(TTL UART)和Arduino(或者其他单片机)通信,支持MQTT,HTT ...

  5. 最简单DIY基于ESP8266的智能彩灯②(在网页用按键和滑动条控制RGB灯)

    ESP8266和ESP32智能彩灯开发系列文章目录 第一篇:最简单DIY基于ESP8266的智能彩灯①(在网页用按钮点亮普通RGB灯) 第二篇:最简单DIY基于ESP8266的智能彩灯②(在网页用按键 ...

  6. 最简单DIY基于ESP8266的智能彩灯①(在网页用按钮点亮普通RGB灯)

    ESP8266和ESP32智能彩灯开发系列文章目录 第一篇:最简单DIY基于ESP8266的智能彩灯①(在网页用按钮点亮普通RGB灯) 文章目录 ESP8266和ESP32智能彩灯开发系列文章目录 前 ...

  7. 最简单DIY基于ESP8266的智能彩灯③(在网页用按钮+滑动条+手机APP控制RGB灯)

    ESP8266和ESP32智能彩灯开发系列文章目录 第一篇:最简单DIY基于ESP8266的智能彩灯①(在网页用按钮点亮普通RGB灯) 第二篇:最简单DIY基于ESP8266的智能彩灯②(在网页用按键 ...

  8. ESP8266(ESP模块)Arduino开发环境快速搭建方法--含网盘离线文件

    目录 1. ESP8266简介 1.1 乐鑫ESP8266 1.2 安信可ESP模组 2. ESP8266开发 3. 开发环境搭建 4. 网盘文件离线安装 1. ESP8266简介 1.1 乐鑫ESP ...

  9. 基于ESP8266的智能家庭检测系统

    基于ESP8266的智能家庭检测系统 利用空暇时间,做了一个软硬件结合的项目,项目结束了,写篇文章来记录下吧! 目录 基于ESP8266的智能家庭检测系统 绪论 项目背景 项目方法 应用场景 系统总体 ...

最新文章

  1. 计算机考试时间改革,武汉计算机二级考试时间和改革变化2021
  2. 解決 centos -bash: vim: command not found
  3. 使用SpringBoot Admin监控SpringCloud微服务
  4. vue 过滤器 filters
  5. 《影视特效镜头跟踪技术精粹(第2版)》——导读
  6. python科研计价_科研速递 | 花费15年众望所归!NumPy论文终登上Nature!
  7. matlab 柏林噪声,游戏AI怎么写(一)——高级随机技术
  8. 关于JS的面向对象总结
  9. php 查询条件 session,PHP获取不到SESSION信息之一般情况解决方案
  10. C#SHA1算法及注意事项
  11. win7下配置python_win7如何配置Python环境变量
  12. 微软浏览器Edge不能上网的解决办法
  13. mybatis/mybatis-plus 子查询实现 涉及到in、exist操作
  14. dedecms教程:单页制作教程
  15. HashMap源码探究
  16. C语言所有头文件整理
  17. python爬虫爬取网页内容
  18. kubectl插件管理工具krew
  19. p10单元板c语言程序,[原创]P10单元板驱动程序
  20. 谷粒商城异步编排(三十二)

热门文章

  1. 融云超级群的「同城社交平台」应用实践
  2. #小写金额转大写金额
  3. http协议基础笔记(请求报文及响应报文的组成)
  4. 施耐德服务器显示a320,A320S在STATUS SD页面上允许显示AIR BLEED MAINTENANCE信息的MEL保留M项操作.docx...
  5. Python Unittest简明教程
  6. 软件测试定义/过程/分类
  7. 显示器窗口分屏双显示器电脑安装指南
  8. 软件测评师知识点(2020.09.10)
  9. 安装erlang/otp和rebar3时遇到的一些问题和自己的见解
  10. 个体工商户注册登记流程!(详细版)