如何同时在多个引脚上使用 analogWrite()?
How to use analogWrite() on multiple pins at the same time?
我愿意,
analogWrite(3,100);
analogWrite(6,200);
同时。但问题是只有引脚 3 上的 LED 灯亮了。我希望两者同时亮起。我听说过直接端口操作,但我只能找到 digitalWrite()
的替代方法,但找不到 analogWrite()
的替代方法。有人可以帮我举一个简单的例子来说明如何进行上述操作吗?
它是 analogWrite(pin, value)
而不是 analogWrite(value, pin)
,因为您正在使用它。
交换这些数字应该可以解决您的问题。
见https://cdn.arduino.cc/reference/en/language/functions/analog-io/analogWrite/
您使用的代码很好,应该使用脉冲宽度调制将引脚 3 设置为 39% 功率,将引脚 6 设置为 78% 功率。 analogWrite() 取一个介于 0(关闭)和 255(打开)之间的数字。
您应该检查您的引脚和 LED 是否正常工作。你可以通过交换两个 LED 来做到这一点,因为你已经知道你的引脚 3 和它的 LED 工作正常。
您的引脚 6 或 LED 可能损坏或烧毁,或者您可能在引脚 6 处使用了需要更大电流或电压才能点亮的 LED。
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 替换为下面的端口操作函数。希望这对您有所帮助!
如果您忘记在设置中设置 pinMode
,您可能会遇到这种情况:
pinMode(3, OUTPUT);
pinMode(6, OUTPUT);
我愿意,
analogWrite(3,100);
analogWrite(6,200);
同时。但问题是只有引脚 3 上的 LED 灯亮了。我希望两者同时亮起。我听说过直接端口操作,但我只能找到 digitalWrite()
的替代方法,但找不到 analogWrite()
的替代方法。有人可以帮我举一个简单的例子来说明如何进行上述操作吗?
它是 analogWrite(pin, value)
而不是 analogWrite(value, pin)
,因为您正在使用它。
交换这些数字应该可以解决您的问题。
见https://cdn.arduino.cc/reference/en/language/functions/analog-io/analogWrite/
您使用的代码很好,应该使用脉冲宽度调制将引脚 3 设置为 39% 功率,将引脚 6 设置为 78% 功率。 analogWrite() 取一个介于 0(关闭)和 255(打开)之间的数字。
您应该检查您的引脚和 LED 是否正常工作。你可以通过交换两个 LED 来做到这一点,因为你已经知道你的引脚 3 和它的 LED 工作正常。
您的引脚 6 或 LED 可能损坏或烧毁,或者您可能在引脚 6 处使用了需要更大电流或电压才能点亮的 LED。
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 替换为下面的端口操作函数。希望这对您有所帮助!
如果您忘记在设置中设置 pinMode
,您可能会遇到这种情况:
pinMode(3, OUTPUT);
pinMode(6, OUTPUT);