跳到主要内容

电压比较器

注意:该功能仅适用于 ShineBlink C1 Mini 开发板,C2 内部不具备电压比较器。

一、实现功能

Core 提供 1 个比较器,输入端固定为 Core 的 A0。参考电压可以取 (1/16~15/16) 倍的 3.3v 电压值。并且可以配置成检测电压上升、下降或上升下降都检测。比较器内部自带迟滞功能,迟滞电压为 50mv 左右,提高了抗干扰能力。

​ 本实例配置电压比较器的参考电压为 0.75*3.3v,当 A0 引脚上的电压升高到大于参考电压时 LIB_CompCallBack 函数会自动被 Lua 调用,并 print() 打印输出。

二、接线图

layout

三、完整代码

--定义比较器的回调函数,该函数在比较器输入电压高于0.75倍的Vdd时会自动被调用
function LIB_CompCallBack()
print("Input voltage up\r\n")
end
--配置USB以USB转串口模式工作,用于print打印输出到PC串口终端
LIB_UsbConfig("CDC")
--配置电压比较器开始工作,参考电压=0.75Vdd,工作模式为Up
--即当A0引脚上电压升高到大于0.75倍的Vdd时,Lua会立即自动调用用户定义的LIB_CompCallBack()回调函数
LIB_CompConfig("0.75Vdd", "Up")
--开始大循环
while(GC(1) == true)
do
--do something
--可以在代码中调用LIB_CompCtrl("OPEN")或LIB_CompCtrl("CLOSE")随时开关比较器
end
如果感兴趣,上面代码中出现的LIB开头的库函数可以在 API文档 中通过Ctrl+F查询。

四、演示结果

comp_result