【ESP8266点焊机】基于 ESP8266 for Arduino
本项目由负熵生之光大佬提供。
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相关推荐
- ESP8266(基于arduino平台)每篇一个知识点——2.wifi AP模式设置
ESP8266(基于arduino平台)每篇一个知识点--2.wifi AP模式设置 一.ESP8266(基于arduino平台)每篇一个知识点--2.wifi AP模式设置 1.添加头文件引用 2. ...
- ESP8266(基于arduino平台)每篇一个知识点—1.wifi STA模式连接指定wifi
ESP8266(基于arduino平台)每篇一个知识点--1.wifi STA模式连接指定wifi 一.ESP8266(基于arduino平台)每篇一个知识点--1.wifi STA模式连接指定wif ...
- php与硬件通过wifi对接,基于ESP8266的WiFi排插接入贝壳互联实现天猫精灵控制
认识众多玩家高手/拆客/DIYer,查阅更多资源,一起学习技术知识 您需要 登录 才可以下载或查看,没有帐号?立即注册 x 本帖最后由 hzy3774 于 2020-1-8 00:45 编辑 * 实验 ...
- Obloq模块:基于ESP8266的物联网模块
OBLOQ 物联网模块 OBLOQ模块是DFRobot公司开发的一款基于ESP8266芯片的物联网通信模块.模块使用串口(TTL UART)和Arduino(或者其他单片机)通信,支持MQTT,HTT ...
- 最简单DIY基于ESP8266的智能彩灯②(在网页用按键和滑动条控制RGB灯)
ESP8266和ESP32智能彩灯开发系列文章目录 第一篇:最简单DIY基于ESP8266的智能彩灯①(在网页用按钮点亮普通RGB灯) 第二篇:最简单DIY基于ESP8266的智能彩灯②(在网页用按键 ...
- 最简单DIY基于ESP8266的智能彩灯①(在网页用按钮点亮普通RGB灯)
ESP8266和ESP32智能彩灯开发系列文章目录 第一篇:最简单DIY基于ESP8266的智能彩灯①(在网页用按钮点亮普通RGB灯) 文章目录 ESP8266和ESP32智能彩灯开发系列文章目录 前 ...
- 最简单DIY基于ESP8266的智能彩灯③(在网页用按钮+滑动条+手机APP控制RGB灯)
ESP8266和ESP32智能彩灯开发系列文章目录 第一篇:最简单DIY基于ESP8266的智能彩灯①(在网页用按钮点亮普通RGB灯) 第二篇:最简单DIY基于ESP8266的智能彩灯②(在网页用按键 ...
- ESP8266(ESP模块)Arduino开发环境快速搭建方法--含网盘离线文件
目录 1. ESP8266简介 1.1 乐鑫ESP8266 1.2 安信可ESP模组 2. ESP8266开发 3. 开发环境搭建 4. 网盘文件离线安装 1. ESP8266简介 1.1 乐鑫ESP ...
- 基于ESP8266的智能家庭检测系统
基于ESP8266的智能家庭检测系统 利用空暇时间,做了一个软硬件结合的项目,项目结束了,写篇文章来记录下吧! 目录 基于ESP8266的智能家庭检测系统 绪论 项目背景 项目方法 应用场景 系统总体 ...
最新文章
- 计算机考试时间改革,武汉计算机二级考试时间和改革变化2021
- 解決 centos -bash: vim: command not found
- 使用SpringBoot Admin监控SpringCloud微服务
- vue 过滤器 filters
- 《影视特效镜头跟踪技术精粹(第2版)》——导读
- python科研计价_科研速递 | 花费15年众望所归!NumPy论文终登上Nature!
- matlab 柏林噪声,游戏AI怎么写(一)——高级随机技术
- 关于JS的面向对象总结
- php 查询条件 session,PHP获取不到SESSION信息之一般情况解决方案
- C#SHA1算法及注意事项
- win7下配置python_win7如何配置Python环境变量
- 微软浏览器Edge不能上网的解决办法
- mybatis/mybatis-plus 子查询实现 涉及到in、exist操作
- dedecms教程:单页制作教程
- HashMap源码探究
- C语言所有头文件整理
- python爬虫爬取网页内容
- kubectl插件管理工具krew
- p10单元板c语言程序,[原创]P10单元板驱动程序
- 谷粒商城异步编排(三十二)
热门文章
- 融云超级群的「同城社交平台」应用实践
- #小写金额转大写金额
- http协议基础笔记(请求报文及响应报文的组成)
- 施耐德服务器显示a320,A320S在STATUS SD页面上允许显示AIR BLEED MAINTENANCE信息的MEL保留M项操作.docx...
- Python Unittest简明教程
- 软件测试定义/过程/分类
- 显示器窗口分屏双显示器电脑安装指南
- 软件测评师知识点(2020.09.10)
- 安装erlang/otp和rebar3时遇到的一些问题和自己的见解
- 个体工商户注册登记流程!(详细版)