单片机怎样采集12V脉冲信号

单片机怎样采集12V脉冲信号,第1张

用降压芯片或者用运放器设计个比较器电路都可以实现,但是电路会稍微复杂。最容易实现且实用的方法就是,把12V脉冲信号输出端 用三个1K-10K等值电阻串起来接地,从离地最近两个电阻间引出导线,可以算得输出脉冲电压是4V,对于单片机来说,4V就是高电平1了,接到单片机IO口,用定时器测试即可。

没仔细研究,这一节的说明特别长,看起来费劲 但我学习STM32时对捕获有所理解,应该是两个捕获寄存器1和2联合使用,第一个上升沿到来,两个捕获寄存器同时复位,下降沿时,捕获寄存器2产生捕获更新事件,即可得到脉冲宽度 第二个上升沿到来捕获寄存器1产生捕获更新事件,即可得到脉冲周期 同时占空比也知道了 两个寄存器的捕获值是内部时钟个数,根据晶振频率和分频系数即可得到时间
而不是一段时间内外部的脉冲数量

可以用查询和中断两种方法实现脉冲捕捉,定时器是必须的。
以0为高电平25ms,低电平25ms;1为高电平25ms低电平75ms为例:
查询方式下,查询到下降沿时开启并清零timer,查询到上升沿时读取timer计时值,25ms为0,75ms为1即可分离出数据。
中断方式下,查询上升沿沿中断。第一个中断进入时开启并清零Timer,第二个中断进入时读取timer计时值后判断50ms为0,100ms为1即可分离出数据。之后立即清零timer等待下一个中断(即下一位数据)。
这个没啥原理好讲,实现的理由完全是脉冲的要求,很单纯。
脉冲串也是一个一个收的,一个会收一串也能收。
其实我还真不明白你“脉冲串和间隔的宽度进行计时”的说法想表达什么意思


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/13217702.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-06-22
下一篇 2023-06-22

发表评论

登录后才能评论

评论列表(0条)

保存