兰博

LCD1602 automatic range 100V10A voltage and ammeter

 
Overview

新人第一次开源,请大佬们多多指教!
特性:
多量程设计,最大限度利用ADC,成本较低的同时可以获得较高的精度
可以在校准时设置导线电阻值来大概地修正导线的压降,压降可正可负
自动切换量程,自动移动小数点
功率、电阻、时间、容量以及能量显示
体积较小,PCB尺寸与LCD1602大小相同
量程:0V~100V,0~10A
使用75mV分流器
单按键操作
低成本
宽电压供电:7V~35V
供电反接保护
 
 
 
参数:
供电电压(VCC):7V~35V,建议不超过30V
工作电流:大约30mA
测量电压(VIN):0.000V~100.0V,分5V、10V、50V、100V四个电压量程,自动移动小数点
测量电流(AIN):0.000A~10.00A,分3.8A和10A两个电流量程,自动移动小数点
刷新率:每秒5次
功率计算:0.000W~999.9W,自动移动小数点
电阻计算:0.000Ω~99999Ω,自动移动小数点
时间统计:00:00:00~99:99:99
容量统计:0.000Ah~999.9Ah,自动移动小数点
能量统计:0.000Wh~999.9Wh,自动移动小数点
 
 
 
接线:
参考这张经典图片,图片上的“供电”对应板子上的"VCC","V+"对应"VIN","A+"对应"AIN"。
 
 
 
物料购买:
单片机可以使用STC8H3K32S2、STC8H3K48S2或STC8H3K64S2
LCD1602的对比度可调电阻用立式蓝白可调电阻
使用了7.5mΩ的2512合金电阻作分流电阻,当然,如果你是土豪,也可以使用精度和温飘更优秀的大分流器(非必要),如:
(注意要选择10A 75mV的)
PCB右端的电流输入处可以焊接引脚间距为5mm或9.5mm的2P接线端子,如:
(此为引脚间距5mm的)
(此为引脚间距9.5mm的)
焊接9.5mm端子的效果如下图:
按键端(KEY)接地为按键按下,可以用线引出
PCB上的U4和U6是贴片和直插两种不同封装的TL431,选择一种焊接就好
每个表头需要M3螺母、M3*5螺丝和M3*10+6铜柱各4个
 
 
 
关于焊接:
焊接时按先贴片后直插,元器件从矮到高的顺序焊接,单片机是TSSOP-20封装的,比较难焊,有条件的可以使用锡膏和热风枪
电流输入端要过大电流,建议多上点锡
R1和R2为0欧电阻,可以直接一坨锡
 
 
 
下载与校准:
下载时选择IRC频率为11.0592MHz,如果使用的是STC8H3K64S2,设置用户EEPROM大小至少为0.5K,至多为40K。(可是最小也有0.5K啊)
校准工具:可调电源、一个你信得过的万用表
下载完程序后,程序检测到没有校准数据,会自动进入校准模式,显示“CAL_MODE”。
等待约3秒后,进入电压零点校正。"Zero:"后的数字是此时电压通道的AD值。这时,VIN在悬空时可能会有1~3的底数,建议保留。短按按键确认并进入下一步。
VIN短接到地后又归零了,但悬空后又有底数了,即使不引出线也是这样,望大佬解惑。(也许是PCB布线的问题?)
进入电流零点校正。这时,AIN在悬空时可能会有1~3的底数,建议保留。短按按键确认并进入下一步。
AIN短接到地后也归零,再次悬空后又有底数了,望大佬解惑。(也许也是PCB布线的问题?)
此时进入到电压分量程校准部分。下图为菜单解释。
短按按键执行光标位置的功能。长按按键一秒后,下菜单光标以每秒一个选项的速度开始滚动。
滚动效果如下图:
万用表调到电压挡位并与可调电源并联后并联到本表头的VIN端。本电压电流表的电压测量分4个量程,电压量程3(5V)、电压量程2(10V)、电压量程1(50V)、电压量程0(100V)(括号内为该量程的最大电压)。VIN输入此时的电压量程的最大电压内的电压。输入电压建议为满量程的5%~90%之间。对照万用表,调节表头显示的电压。注意:校准时保持AD值小于4095,大于等于4095则意味着超量程了,这时校准是没有用的,电压电流都一样。
分别校准完4个电压量程后,断开表头、可调电源和万用表的连接。万用表调到电流挡位并与可调电源串联后串联到本表头的AIN端。本电压电流表的电流测量分2个量程,电流量程1(3.8A)、电流量程0(10A)(括号内为该量程的最大电流)。AIN输入此时的电流量程的最大电流内的电流。输入电流建议为满量程的5%~90%之间。对照万用表,调节表头显示的电流。注意:校准时保持AD值小于4095,大于等于4095则意味着超量程了,这时校准是没有用的,电压电流都一样。
分别校准完2个电流量程后,进入导线电阻设置菜单。导线电阻值用于电压补偿,可正可负,正时电压减去电流乘导线电阻,可以用于可调电源;负时反之,可以用于电子负载。屏幕左上角为补偿后的电压值。此时电压量程恒为电压量程3(5V)。当电流和线阻都不为零时,即线损补偿起作用时,“V”增加下划线。
示例:导线电阻约为66mΩ,导线末端短路,通过1A电流。
未设置线阻时:
设置线阻为正时:可以用于可调电源,真实反映输出端的电压。此时线损补偿起作用,“V”增加下划线。
设置线阻为负时:可以用于电子负载,真实反映输入端的电压。此时线损补偿起作用,“V”增加下划线。
设置完导线电阻后,单片机开始向内部EEPROM写入校准数据(实际是把一部分Flash当EEPROM使用)。若写入成功,则显示下图字样:
并在约4秒后自动重启,进入正常工作模式。
 
若写入失败,则显示“Flash Error!!!”,表头会在约4秒后自动重启。建议检查供电、重新下载程序或更换单片机。
 
 
 
操作说明:
给表头上电,自动进入正常工作模式。
当电流和线阻都不为零时,即线损补偿起作用时,“V”增加下划线。屏幕左侧电压、电流显示不变。短按按键,屏幕右侧在显示功率、电阻,显示容量、时间,显示能量、时间之间来回切换。
显示功率、电阻:电流为零时,电阻显示“NoLoad”。
显示容量、时间:
显示能量、时间:
在显示容量、时间和显示能量、时间时长按按键2秒后,容量、能量和时间清零,并一直保持为零,直到松开按键。
在显示功率、电阻时长按按键2秒后,进入版本菜单,短按退出
按住按键再上电,进入校准模式。校准步骤参照下载与校准:
电阻测量展示:此时设置线阻为60mΩ
10Ω
100Ω
1000Ω
 
 
 
量程切换的原理:
电压量程切换:通过MOS管选择不同的分压电阻,实现不同的分压比例,以实现切换量程。
问:在小量程时接入大电压不会把单片机淦坏吗?
答:不会,STC8H的IO口有保护二极管,电压会被钳位,除非R7短路。
 
问:那为什么不加一个肖特基二极管来起到双重保护的作用呢?
答:肖特基二极管的漏电流太大,加了之后电压会有几十毫伏的底数。
 
问:切换量程会影响测量大电压的速度吗?
答:会,但很小。下图为测量60V电压时与VC99的速度比较
 
问:切换量程时电压不会抖动吗?
答:会,但是我已经在程序里将抖动屏蔽掉了。
 
电流量程切换:还是一样的套路,通过MOS管选择不同的分压电阻,实现不同的放大倍数,以实现切换量程。
 
 
 
成本计算:
可以看出,本表头有成本较低的优势。
 
 
 
用料可以缩水的地方:
(奸商狂喜)
回过头来,发现有些元器件大概率是冗余的,可以省略。
以下元器件可以不焊:C6,C7,C9,C12,C15,C16,以下元器件可以通过修改PCB来直接短接:R1,R2,R3,R17,R22,精密运放SGM8551可以换成更便宜的GS8551、OPA336或TP5551,缩水后的PCB如图:
经过测试,发现短期以内性能几乎没有变化
缩水后的成本:
(其实负压电路也可以省去,运放的-Vs直接接地,不过省去后小电流的测量精度可能会降低)
注意:缩水后不保证性能不会下降!
 
 
 
后记:
本项目是用周末和放假时间赶出来的,经历了一个学期和半个寒假。
因本人技术拙劣,如果有错误的地方,欢迎在评论区里指出
参考设计图片
×
 
 
Search Datasheet?

Supported by EEWorld Datasheet

Forum More
Update:2025-06-19 08:59:58

EEWorld
subscription
account

EEWorld
service
account

Automotive
development
community

Robot
development
community

About Us Customer Service Contact Information Datasheet Sitemap LatestNews


Room 1530, 15th Floor, Building B, No.18 Zhongguancun Street, Haidian District, Beijing, Postal Code: 100190 China Telephone: 008610 8235 0740

Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号