Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arduino 如何在多个管脚上同时使用analogWrite()?_Arduino_Embedded_Arduino Uno_Arduino Ide - Fatal编程技术网

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

Arduino 如何在多个管脚上同时使用analogWrite()?,arduino,embedded,arduino-uno,arduino-ide,Arduino,Embedded,Arduino Uno,Arduino Ide,我想做, 模拟写入(3100); 模拟量(6200) 同时,。但问题是,只有引脚3上的led亮起。我想两个灯同时点亮。我听说过直接端口操作,但我只能找到digitalWrite()的替代方法,但找不到analogWrite()的替代方法。有人能帮我举一个简单的例子来说明如何进行上述操作吗 它是analogWrite(pin,value)而不是analogWrite(value,pin)。 交换这些号码应该可以解决你的问题 请参见它是模拟写入(pin,value)而不是模拟写入(value,pin

我想做,

模拟写入(3100); 模拟量(6200)

同时,。但问题是,只有引脚3上的led亮起。我想两个灯同时点亮。我听说过直接端口操作,但我只能找到
digitalWrite()
的替代方法,但找不到
analogWrite()
的替代方法。有人能帮我举一个简单的例子来说明如何进行上述操作吗

它是
analogWrite(pin,value)
而不是
analogWrite(value,pin)
。 交换这些号码应该可以解决你的问题

请参见它是
模拟写入(pin,value)
而不是
模拟写入(value,pin)
。 交换这些号码应该可以解决你的问题


请参见

您使用的代码很好,应使用脉宽调制将引脚3设置为39%功率,将引脚6设置为78%功率。analogWrite()接受介于0(关闭)和255(打开)之间的数字

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


您的引脚6或LED可能损坏或烧坏,或者您可能正在使用引脚6上的LED,需要更多电流或电压才能打开。

您使用的代码很好,应使用脉宽调制将引脚3设置为39%功率,将引脚6设置为78%功率。analogWrite()接受介于0(关闭)和255(打开)之间的数字

您应该检查PIN和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文件夹中浏览,您会发现一个C/C++文件,其中包含analogWrite的定义。只需复制它,并用下面的端口操作函数替换digitalWrite。希望这有帮助

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文件夹中浏览,您会发现一个C/C++文件,其中包含analogWrite的定义。只需复制它,并用下面的端口操作函数替换digitalWrite。希望这有帮助

如果您忘记在设置中设置
pinMode
,您可能会遇到这种情况:

pinMode(3,输出);
pinMode(6,输出);

如果您忘记在设置中设置
pinMode
,您可能会遇到这种情况:

pinMode(3,输出);
pinMode(6,输出);

当然,它可能只是微控制器损坏、LED损坏、线路故障等。当然,它可能只是微控制器损坏、LED损坏、线路故障等。