我对Arduino和编码很陌生,但是我已经完成了所有的教程,并且认为我已经掌握了它是如何工作的。
我有一个现实世界的问题,我很想用arduino来解决。
我有一个来自汽油发动机喷油器的PWM信号,我需要从arduino内部导出两个独立的逻辑函数。
确定每个上升边之间的延迟(以求出发动机RPM),范围在6ms -120‘s之间,上升边与读取脉宽占空比(确定喷油器的占空比)脉宽范围从0.02ms到10’s以上的脉冲长度。
这些需要在逻辑中独立地表示为"RPM“和”脉冲宽度“。
我读过这关于“Arduino PWM的秘密”的博客,发现它提供了关于如何编写不同频率和占空比的脉宽输出的信息,但我正在尝试读取不同频率和占空比的脉冲宽度,以创建一个可变字节或int来供每个人使用。
发布于 2014-01-24 05:41:42
正确的是,没有太多的定时脉冲输入或类似。在此,Arduino的ATmega可以通过以下方法捕获占空比的每一方的时间。这将取决于代码将他们放在一起,并考虑他们的PWM,以满足您的需要。
有几种方法给出了例子。
发布于 2015-03-22 01:16:15
我只是用一个例子写了一个库,它就是这样做的。在我的"read_PWM_pulses_on_ANY_pin_via_pin_change_interrupt“库中,我已经编写了一个示例,名为”read_PWM_pulses_on_ANY_pin_via_pin_change_interrupt“,它读取脉冲,然后输出脉冲宽度,分辨率为0.5us,以及脉冲之间的周期和脉冲的频率。
下载库并查看示例。为了测试该示例,您可以从PWM引脚连接电线,将PWM信号输出到输入引脚。在这里可以找到带有示例的库:http://www.electricrcaircraftguy.com/2014/02/Timer2Counter-more-precise-Arduino-micros-function.html
PS。此示例代码使用引脚更改中断,并且可以在任何Arduino引脚上执行,包括模拟引脚。
https://stackoverflow.com/questions/21320299
复制相似问题