新手求教关于ATTiny的ADC
{:tongue:}各位前辈好, 小第玩手电筒的, 俗称桶友. 本职工作搞Java开发的, 爱好玩单片机, 但毕竟不是专业, 也没专门学过, 所以可能有些地方比较RZ, 还请各位前辈体谅.
因为爱好最近正在做一个手电的驱动板, 用ATTiny的pwm驱动一个MOSFet点亮灯泡, 以期实现灯泡软启动(慢慢变亮)的功能.
当然软启动很容易的就实现了, 现在我想使用ADC来检测电池电压, 然后根据电池电压计算出pwm的频率, 使灯泡的功率恒定.
另外还可以判断当电压低于某一设定值的时候终止点亮灯泡, 保护电池.
很不幸.. 我遇到了问题~~
当灯泡点亮时我无法检测出准确的电池电压! 具体问题描述如下:
原理图
电池使用6节镍镉, 充满电电压约为7.8v
分压电阻120k和27k, 理论ADC电压在0v~7.8/(120+27)*27=1.432653061v
因为是PWM(频率490Hz)驱动, 所以我使用了两个中断函数, 以2Hz的频率分别在波形周期的开始和进入波谷时测量两次电池电压. 如下图:
---------- -A--------
| | |
| | |
| | |
| | |
------------------- -B-----------------
ISR(TIM0_COMPA_vect) 取B点电池电压
ISR(TIM0_OVF_vect) 取A点电池电压
理论上, A点电压是灯泡点亮时, 即电池接入负载时的电压定义为Vload,
B点电压是灯泡熄灭时, 即电池空闲时的电压(此时电池仍对单片机, 采样电阻, 稳压管供电)定义为Vidle
实际测量我发现下面的情况:
档位 Vidle Vload 占空比
1 7062 7062 91
1 6718 6638 103
1 7009 6612 104
1 7088 6533 107
1 7088 6533 107
1 7062 6506 108
1 7009 6506 108
1 7009 6533 107
1 7035 6533 107
1 7035 6506 108
1 7088 6533 107
1 6638 6533 107
1 6533 6533 107
1 6533 6533 107
1 6533 6453 109
1 6533 6533 107
1 6480 6559 106
1 6533 6506 108
1 6533 6506 108
1 6559 6533 107
1 6533 6506 108
1 6506 6559 106
1 6506 6506 108
1 6533 6533 107
1 6480 6506 108
2 6718 6506 172
2 6903 6506 172
2 7009 6533 171
2 7035 6533 171
2 7009 6533 171
2 7009 6559 170
2 6982 6533 171
2 6982 6506 172
2 6982 6559 170
2 6929 6559 170
2 6929 6559 170
2 6956 6559 170
2 6956 6506 172
2 7035 6506 172
2 7009 6533 171
2 6956 6506 172
2 6956 6533 171
2 6956 6533 171
2 7009 6480 174
2 6956 6533 171
2 6956 6533 171
3 6982 6533 214
3 6982 6533 214
3 6956 6506 216
3 6929 6533 214
3 6877 6506 216
3 6903 6506 216
3 6929 6480 217
3 6929 6506 216
3 6929 6559 212
3 6956 6506 216
3 6929 6453 219
3 6929 6480 217
3 6903 6506 216
3 6877 6533 214
3 6877 6506 216
3 6956 6453 219
3 6956 6480 217
3 6956 6480 217
3 6929 6533 214
3 6903 6533 214
3 6877 6453 219
3 6877 6453 219
对于Vload列, 数据走势还是符合实际情况的, 随着占空比的增大Vload减小, 而Vidle列的数据就有点跟我想象的不一样了, 我认为Vidle应该保持恒定, 不随占空比的变化而变化. 实际上Vidle的总体趋势却随着占空比的增大而增大...
难道说电池在接入负载的一瞬间电压迅速降低, 然后慢慢升高, 在负载断开后电压慢慢恢复, 而不是一下子恢复到无负载状态?
还请各位前辈赐教! {:cry:}前辈们, 帮帮忙啊, 顶上去. {:dizzy:}再顶上去啊..
页:
[1]