使用IO口检测电源电压的转换逻辑

使用IO口检测电源电压主要是用于大功耗产品,电池电压会随着功耗的增大而变化,这个时候就要使用IO口来检测电压的变化。

我们能够得到的是芯片IO口检测到电压的数字值,需要将其转换为实际的电压值方法如下:
V为IO口检测到的实际电压(模拟值),vbat 为IO口电压换算之后的值,3.3是设置芯片IO口输入或者的最大电压值(实际可能会有偏差),255是软件储存电压变量的最大值,能够得到一个算式:3.3/255=V/Vbat,转换之后:V = ( 3.3 * Vbat ) / 255。V为一个模拟值,并不是我们计算需要的元素,所以需要将其消除,因此需要另外一个算式。
另外一个算式需要根据硬件计算,硬件连接如下:
在这里插入图片描述
Vdd为电池电压,V为IO口检测的电压,R1和R2为硬件所接的电阻,换算方法:VDD / V = ( R1 + R2 ) / R2,变形之后得到:V = ( R2 * Vdd ) / ( R1 + R2 )。

上面两个算式左边的意义相同,所以能够将无用的元素V去掉,右边相等,得到:( 3.3 * Vbat ) / 255 =( R2 * Vdd ) / ( R1 + R2 ) ,变形之后得到:Vdd = ( 3.3 * ( R1 + R2 ) * Vbat ) / ( 255 * R2 ),这样我们就将软件和硬件结合起来了,也可以根据需要修改电阻大小,还不清楚的小伙伴可以添加我的个人微信 lqy—1997 (中间是三个英文的杠)进行交流。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章