今天我接受了一次采访,他们问我,如果给定一个微控制器和电池,那么你如何测量电压水平。使用伪代码从头开始编写步骤。
如何才能做到这一点?
今天我接受了一次采访,他们问我,如果给定一个微控制器和电池,那么你如何测量电压水平。使用伪代码从头开始编写步骤。
如何才能做到这一点?
如果他们追求的是伪代码,那么这是一个糟糕的问题;这一切都取决于微控制器。我可能会给应聘者微控制器的数据表,并观察他是如何浏览那份 300 页的文档的。
无论如何,您将电池连接到 ADC 输入(假设:微控制器板载 ADC 并且电池电压低于微控制器电源电压)。
我认为这里的问题是微控制器需要为其 A/D 提供外部参考。默认参考是电源。您可以使用外部参考,并将电池电压划分为低于该参考的电压,但这会持续消耗电池,这可能不是一个好主意。
我的答案是:为低于感兴趣的电池范围的电压获取分流型参考。让我们假设一个~5V 的电池和一个 TL431 等作为 2.5V 的参考。现在测量 TL431 电压,使用电池作为参考。假设有一个 10 位 A/D(最常见),其读数为 N。现在您知道了
N * (Battery / 1023) = 2.5
因此
Battery = 2.5 * 1023 / N
如果参考电流是一个问题,我会从输出引脚切换它的电源:除非我们想要进行测量(这将是一个非常短的时间),否则不会消耗电源。
==========================================
现在做一些功课,为下一次面试做准备:你有一个 USB 供电的 5V gadet,它有一个微控制器和一个 LM35 温度传感器。你将如何确定温度?提示:LM35输出什么,检查USB插座的电压范围。(有一个替代答案:为什么 $&^*^& 首先不使用数字温度传感器?)。