analogWrite()
描述
对 pin 脚写入一个类比讯号数值 (pin 脚将输出 PWM 波型),可以用在改变 LED 的亮度以及控制马达的转速,在呼叫 analogWrite()
之后,pin 脚将会产生一个指定 duty 的 PWM 方波,直到下一次再呼叫 analogWrite()
(或者在同一个 pin 脚上呼叫 digitalRead()/digitalWrite());在 86Duino 上 PWM 讯号的频率是 1000Hz。
在 86Duino ZERO 上,这个函式会作用在 pin 3、5、6、9、10、11、13;在 86Duino EduCake 上,这个函式会作用在 pin 3、5、6、9、10、11、13、21;在 86Duino ONE 上,这个函式会作用在 pin 3、5、6、9、10、11、13、29、30、31、32。在 86Duino PLC 上,这个函式会作用在 pin 1、3、4、7。
呼叫 analogWrite()
之前不需要去呼叫 pinMode()
来设定 pin 脚为输出。
analogWrite 或 analogRead 函式都不会对类比讯号输入做额外的动作。
语法
analogWrite(pin, value)
参数
pin
: 输出 PWM 的 pin 脚
value
: PWM 的 duty 值 预设值介于 0 (常闭状态) 到 255 (常开状态)
可以呼叫 analogWriteResolution()
去设定更高的 PWM 数值
回传
无回传值
范例
根据可变电阻读取到的数值,设定 LED 的亮度比例
int ledPin = 9; // LED 灯连接到数位 pin 9 int analogPin = 3; // 可变电阻连接到类比 pin 3 int val = 0; // 储存读取到的电压数值 void setup() { pinMode(ledPin, OUTPUT); // 设定 pin 9 脚为输出 } void loop() { val = analogRead(analogPin); // 读取类比输入 pin 脚 analogWrite(ledPin, val / 4); // analogRead 数值从 0 到 1023 // analogWrite 数值从 0 到 255 }
See also
- analogRead()
- analogWriteResolution()
- Tutorial: PWM
本页由热血青年 LBU 译自英文版。
The text of the 86Duino reference is a modification of the Arduino reference, and is licensed under a Creative Commons Attribution-ShareAlike 3.0 License. Code samples in the reference are released into the public domain.