|
在上一个帖子中我做了显示部分:sw3518快充模块增加 电压、电流显示 但打板有错误,我就重新打了一块板,特点是模块化,引出了7个通道,支持7个i2c设备,修改代码就可以实现多显示屏+多快充模块的组合,只需要焊接4根线,就可以添加一块快充模块:
这是打的板,是免费打的样,做工还不错,我一次打了5块,就是有个电阻位置❀错了,不过不影响:
这是焊接好的样子:
按钮是用来复位和下载程序用的,虽然电源写的是5V,实际可以支持到30v,所以可以直接接在主电源上,下面是工程文件和打板文件,需要的话可以自己打板来耍,好多公司打样是免费的:
我还试了白色oled的,也挺好看的:
还写了中文的代码,接一个模块挺好,也可以接两块模块:
快充模块接线方法:左边是SDA,右边是SCK,
有的朋友说太细,不好焊接,说说我的方法:
1、必须是纯铜漆包线,头发粗细就差不多了;
2、不要刮漆,直接用电烙铁上锡,挂锡要长一点;
3、烙铁头要尖,我用的是刀头的,先焊接SDA(就是里面那根),把线对其,用镊子压住不动,用烙铁头烫上锡的漆包线,这样就好了,然后用同样的方式焊另一根。
4、最后用502或热熔胶,有条件的用绿油固定就行了。
是不是很简单,需要协助的朋友可以留言,我们共同探讨。
下面是中文的代码:
//该代码是单块模块使用
#include <Arduino.h>
#include <h1_SW35xx.h>
#include <U8g2lib.h>
#include <Wire.h>
#include "TCA9548A.h"
#define setFont_6 u8g_font_5x7
U8G2_SH1106_128X64_NONAME_F_HW_I2C u8g2(U8G2_R0, /* reset=*/U8X8_PIN_NONE); //该驱动是1.3寸的OLED屏幕。---------
using namespace h1_SW35xx;
TCA9548A I2CMux; // 地址可以传递到构造函数中
//TCA9548A(0x70);//不焊接选择电阻的i2c地址。
SW35xx sw(Wire);
void setup() {
Serial.begin(115200); //显示屏和引脚初始化
Wire.begin();
u8g2.enableUTF8Print();
I2CMux.begin(Wire); // Wire instance is passed to the library
I2CMux.closeAll(); // Set a base state which we know (also the default state on power on)
I2CMux.openChannel(0);
u8g2.begin();
I2CMux.closeChannel(0);
pinMode(LED_BUILTIN, OUTPUT); // Initialize the LED_BUILTIN pin as an output
sw.setMaxCurrent5A();//设置最大电流
}
void loop() {
digitalWrite(LED_BUILTIN, LOW); // Turn the LED on (Note that LOW is the voltage level
u8g2.setFont(setFont_6);
u8g2.setFontDirection(0);
u8g2.clearBuffer();
VIWH(); //框架绘制并显示//通道0
sw35XX(); //电流、电压数据读取通道1
I2CMux.openChannel(0);
u8g2.sendBuffer();
I2CMux.closeChannel(0);
digitalWrite(LED_BUILTIN, HIGH); // Turn the LED off by making the voltage HIGH
}
const char *fastChargeType2String(SW35xx::fastChargeType_t fastChargeType) {
switch (fastChargeType) {
case SW35xx::NOT_FAST_CHARGE:
return "NOT_FAST";
break;
case SW35xx::QC2:
return "QC2.0";
break;
case SW35xx::QC3:
return "QC3.0";
break;
case SW35xx::FCP:
return "FCP";
break;
case SW35xx::SCP:
return "SCP";
break;
case SW35xx::PD_FIX:
return "PD Fix";
break;
case SW35xx::PD_PPS:
return "PD PPS";
break;
case SW35xx::MTKPE1:
return "PE1.1";
break;
case SW35xx::MTKPE2:
return "PE2.0";
break;
case SW35xx::LVDC:
return "LVDC";
break;
case SW35xx::SFCP:
return "SFCP";
break;
case SW35xx::AFC:
return "AFC";
break;
default:
return "unknown";
break;
}
}
void sw35XX() {
I2CMux.openChannel(1);
/* 与总线上1通道显示的地址交互的代码 */
float vin=sw.vin_mV;
float vout=sw.vout_mV;
float aa=sw.iout_usba_mA;
float ac=sw.iout_usbc_mA;
float W1 = vout/1000 * (aa+ac)/1000;
sw.readStatus();
sw.begin();
Serial.println("==================CN1=====================");
printf("Current input voltage:%dmV\n", sw.vin_mV);
u8g2.setCursor(26, 12);
u8g2.print(vin/1000);
printf("Current output voltage:%dmV\n", sw.vout_mV);
u8g2.setCursor(50, 28);
u8g2.print(vout/1000);
printf("Current USB-C current:%dmA\r\n", sw.iout_usbc_mA);
printf("Current USB-A current:%dmA\r\n", sw.iout_usba_mA);
u8g2.setCursor(50, 40);
u8g2.print((ac+aa)/1000);
printf("Current fast charge type:%s\n", fastChargeType2String(sw.fastChargeType));
u8g2.setCursor(50, 63);
u8g2.print(fastChargeType2String(sw.fastChargeType));
if (sw.fastChargeType == SW35xx::PD_FIX || sw.fastChargeType == SW35xx::PD_PPS)
printf("Current PD version:%d\n", sw.PDVersion);
printf("temperature:", sw.readTemperature());
u8g2.setCursor(90, 12);
u8g2.print(sw.readTemperature()/100);
u8g2.setCursor(50, 52);
u8g2.print(W1);
Serial.println("=======================================");
Serial.println("");
I2CMux.closeChannel(1);
delay(400);
}
void VIWH() {
I2CMux.openChannel(0);
u8g2.drawStr(114, 6, "o"); //摄氏度圆圈
u8g2.enableUTF8Print();//enable UTF8
u8g2.setFont(u8g2_font_wqy12_t_gb2312b);//设置中文字符集
u8g2.drawRFrame(0,0,128,15,3);// 绘制一个空心框(圆角)
u8g2.drawStr(120, 12, "C");
u8g2.setCursor(2, 12);
u8g2.print("输入 V");
u8g2.setCursor(64, 12);
u8g2.print("温度:");
u8g2.setCursor(10, 28);
u8g2.print("电压: V");
u8g2.setCursor(10, 40);
u8g2.print("电流: A");
u8g2.setCursor(10, 52);
u8g2.print("功率: W");
u8g2.setCursor(10, 63);
u8g2.print("快充:");
I2CMux.closeChannel(0);
}
库文件可以在我上一个帖子里下载。
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
打赏
-
查看全部打赏
|