如何在多个引脚上同时使用analogWrite()?

时间:2017-04-18 12:50:53

标签: arduino-uno arduino-ide electronics

我想做,

analogWrite(3,100); analogWrite(6,200);

同时。但问题是只有引脚3上的LED指示灯亮起。我希望两者同时点亮。我听说过直接端口操作,但我只能找到digitalWrite()的替代品,但我找不到analogWrite()的替代品。有人可以帮我一个关于如何进行上述操作的简单例子吗?

4 个答案:

答案 0 :(得分:0)

当您使用它时,analogWrite(pin, value)不是analogWrite(value, pin)。 交换这些数字可以解决您的问题。

请参阅https://cdn.arduino.cc/reference/en/language/functions/analog-io/analogWrite/

答案 1 :(得分:0)

您使用的代码很好,应使用脉冲宽度调制将引脚3至39%的功率设置为引脚,并将引脚设置为6至78%的功率。 analogWrite()取0(off)和255(on)之间的数字。

您应该检查您的引脚和LED是否正常工作。您可以通过交换两个LED来实现,因为您已经知道您的引脚3及其LED工作正常。

您的引脚6或LED可能已损坏或烧毁,或者您可能在引脚6处使用需要更多电流或电压的LED。

答案 2 :(得分:0)

Arduino有一个端口操作功能。要同时打开引脚3和5,请执行

DDRD = B11111110; //set pins 1-7 as output EXCEPT for 0 AT THE SAME TIME
PORTD = B00101000; // sets digital pins 5 and 3 HIGH AT THE SAME TIME
PORTD = B00000000; // sets all digital pins LOW AT THE SAME TIME

AnalogWrite通过PWM工作,因此您可以根据所需的输出电压切换延迟。请注意,您不能使用此方法同时打开引脚2和12,因为它们位于不同的寄存器中。我敢肯定,如果你浏览arduino文件夹,你会发现一个包含analogWrite定义的C / C ++文件。只需将其复制,然后将digitalWrite替换为下面的端口操作函数。希望这有帮助!

答案 3 :(得分:-1)

如果您忘记在设置中设置@Bean public ConnectionFactory connectionFactory() { ConnectionFactory connectionFactory = null Tibjms.setPingInterval(10); try { TibjmsConnectionFactory tibjmsConnectionFactory = new TibjmsConnectionFactory( environment.getProperty("url")); //few more statments to set other properties } catch (Exception ex) { } return connectionFactory; } ,可能会遇到这种情况:

pinMode