“AnalogWrite()”的版本间的差异

来自YFRobotwiki
跳转至: 导航搜索
(以“<font color="orange" size="+1">'''描述'''</font> 将一个模拟值(PWM波形)写入引脚。可用于以不同亮度点亮LED或以各种速度驱动电机...”为内容创建页面)
 
 
(未显示1个用户的3个中间版本)
第1行: 第1行:
 
<font color="orange" size="+1">'''描述'''</font>
 
<font color="orange" size="+1">'''描述'''</font>
  
 将一个模拟值 (PWM 波形)写入引脚。可用于以不同亮度点亮LED或以各种速度驱动电机。在调用analogWrite () 之后,该引脚将产生指定占空比的稳定方波,直到下一次调用analogWrite () (或在同一引脚上调用digitalRead () 或digitalWrite () )。大多数引脚上PWM信号的频率约为490 Hz。在Uno和类似的板上,引脚5和6的频率约为980 Hz。莱昂纳多的引脚3和11也以980赫兹运行。
+
 将一个模拟值 ([[PWM|PWM 波形]] )写入引脚。可用于以不同亮度点亮LED或以各种速度驱动电机。在调用analogWrite() 之后,该引脚将产生指定占空比的稳定方波,直到下一次调用analogWrite() (或在同一引脚上调用digitalRead() 或digitalWrite() )。大多数引脚上PWM信号的频率约为490 Hz。在Uno和类似的板上,引脚5和6的频率约为980 Hz。莱昂纳多的引脚3和11也以980赫兹运行。
  
 在大多数Arduino板卡(ATmega168或ATmega328)上,这个功能适用于针脚3,5,6,9,10和11.在Arduino Mega上,它可以在2 - 13和44 - 46的引脚上工作。带有ATmega8的电路板只支持9,10和11引脚上的analogWrite ()
+
 在大多数Arduino板卡(ATmega168或ATmega328)上,这个功能适用于针脚3,5,6,9,10和11.在Arduino Mega上,它可以在2 - 13和44 - 46的引脚上工作。带有ATmega8的电路板只支持9,10和11引脚上的analogWrite()
  
Arduino Due支持在引脚2至13,加上引脚DAC0和DAC1上的analogWrite () 。与PWM引脚不同,DAC0和DAC1是数模转换器,可作为真正的模拟输出。
+
Arduino Due支持在引脚2至13,加上引脚DAC0和DAC1上的analogWrite() 。与PWM引脚不同,DAC0和DAC1是数模转换器,可作为真正的模拟输出。
  
 在调用analogWrite () 之前,您不需要调用pinMode () 将引脚设置为输出。
+
 在调用analogWrite() 之前,您不需要调用pinMode() 将引脚设置为输出。
  
 
analogWrite函数与模拟引脚或模拟指令功能无关。
 
analogWrite函数与模拟引脚或模拟指令功能无关。
第32行: 第32行:
  
 
<font color="red" size="">'''注意'''</font>:
 
<font color="red" size="">'''注意'''</font>:
 引脚5和6上产生的PWM输出将具有高于预期的占空比。 这是因为与millis () 和delay () 函数的交互,它们共享用于生成这些PWM输出的相同内部定时器。 这将主要在低占空比设置(例如0 - 10)上注意到,并且可能导致值0不能完全关闭引脚5和6上的输出。
+
 引脚5和6上产生的PWM输出将具有高于预期的占空比。 这是因为与millis() 和delay() 函数的交互,它们共享用于生成这些PWM输出的相同内部定时器。 这将主要在低占空比设置(例如0 - 10)上注意到,并且可能导致值0不能完全关闭引脚5和6上的输出。
  
  
第62行: 第62行:
 
:- [[analogRead()]]
 
:- [[analogRead()]]
 
:- [[analogWriteResolution()]]
 
:- [[analogWriteResolution()]]
 +
:- [[PWM]]
  
  

2017年9月13日 (三) 10:26的最后版本

描述

将一个模拟值(PWM波形)写入引脚。可用于以不同亮度点亮LED或以各种速度驱动电机。在调用analogWrite()之后,该引脚将产生指定占空比的稳定方波,直到下一次调用analogWrite()(或在同一引脚上调用digitalRead()或digitalWrite())。大多数引脚上PWM信号的频率约为490 Hz。在Uno和类似的板上,引脚5和6的频率约为980 Hz。莱昂纳多的引脚3和11也以980赫兹运行。

在大多数Arduino板卡(ATmega168或ATmega328)上,这个功能适用于针脚3,5,6,9,10和11.在Arduino Mega上,它可以在2 - 13和44 - 46的引脚上工作。带有ATmega8的电路板只支持9,10和11引脚上的analogWrite()。

Arduino Due支持在引脚2至13,加上引脚DAC0和DAC1上的analogWrite()。与PWM引脚不同,DAC0和DAC1是数模转换器,可作为真正的模拟输出。

在调用analogWrite()之前,您不需要调用pinMode()将引脚设置为输出。

analogWrite函数与模拟引脚或模拟指令功能无关。


语法

analogWrite(pin, value)


参数

pin: 要写的引脚。

value: 占空比:介于0(始终关闭)和255(始终为开)之间。


返回

None


注意: 引脚5和6上产生的PWM输出将具有高于预期的占空比。 这是因为与millis()和delay()函数的交互,它们共享用于生成这些PWM输出的相同内部定时器。 这将主要在低占空比设置(例如0 - 10)上注意到,并且可能导致值0不能完全关闭引脚5和6上的输出。


示例

将输出设置为与从电位器读取的值成比例的LED。

int ledPin = 9;      // LED connected to digital pin 9
int analogPin = 3;   // potentiometer connected to analog pin 3
int val = 0;         // variable to store the read value

void setup()
{
  pinMode(ledPin, OUTPUT);   // sets the pin as output
}

void loop()
{
  val = analogRead(analogPin);   // read the input pin
  analogWrite(ledPin, val / 4);  // analogRead values go from 0 to 1023, analogWrite values from 0 to 255
}


扩展阅读

- analogRead()
- analogWriteResolution()
- PWM




返回Arduino语法参考列表

更多建议和问题欢迎反馈至 YFRobot论坛