例如,如果我需要设置100赫兹的频率,我使用tone
功能使用PWM设置频率。现在我需要使用PWM在0到5伏之间改变幅度。是否可以同时使用tone
和analogWrite
来固定频率,即100赫兹和analogWrite
来改变幅度?
如果还有其他选择,请告诉我,因为我在同一个引脚上尝试了上述命令音和模拟写操作,但它无效。
答案 0 :(得分:1)
使用tone
功能无法做到这一点。查看https://en.wikipedia.org/wiki/Pulse-width_modulation以了解如何使用PWM生成“频率”。此图片可能会有所帮助:
如果您确实需要不同的电压,则需要在输出引脚上添加外部元件(至少是一个简单的分压器),或者仅使用analogWrite
生成信号。请注意,在后一种情况下,可能会出现时序问题,具体取决于代码的复杂程度。
答案 1 :(得分:0)
<强> 修改 强>
您考虑过digital potentiometer了吗?阅读完它的描述后,它几乎可以满足您的需求。
[...]控制立体声音量[...]
它的功能与普通电位器非常相似,我觉得它应该对你有用。
原帖
答案是否定的,因为tone
将以设定频率输出脉冲,但analogWrite
将要求引脚输出其他内容。微控制器可能会“混淆”,可能不会做你想做的事情。
解决这个问题的一种更机械的方法是使用电位计。它几乎是一个可变电阻器,它会根据旋钮的位置改变其电阻。为什么这样做不会涉及脉冲,你唯一要做的就是在不修改信号的情况下降低信号的强度。
答案 2 :(得分:0)
你可以
适合第一种解决方案的代码是
{
id: 1,
fieldA: “nameA”,
fieldB: [“textA”, “textB", “textC”, “textD”],
fieldC: “nameC”
}
对于第二种解决方案,您可以使用两个引脚,然后使用某些东西来混合输出。例如
如果您需要一些原理图,请询问..