PWM
PWM(Pulse Width Modulation,脉宽调制),是在保持波的频率不变的同时改变脉宽的技术。
首先,来理解一下占空比。一个脉冲周期由一个ON周期(VCCC)和一个OFF周期(GND)组成。一段时间内ON周
期占据脉冲周期的比例就叫做占空比。例如,一个10ms的脉冲保持ON 2ms,那么根据公式,占空比是20%。
基本上数字IO都可以作为PWM复用引脚,除了D0。不过需要注意的是,D3尽量不用,它内部连接ESP8266 GPIO0。
analogWrite(pin,val)往指定pin引脚写入数据
例如analogWrite(4,520),表示给D4这个角写入占空比为520/1024的pwm波。
这里要说明一下,analogWrite()默认的频率是1khz,默认占空数值是1024。
如果要这个引脚输出的话,记得要在setup()函数里面声明
pinMode(4,OUTPUT);
analogWriteRange(new_range)
可以改变占空数值,默认是1024,可以改成2048,这样精度就提高了1倍,其实也只是控制输出而已,实际我感觉没卵用。
analogWriteFreq(new_frequency)
设置新的pwm频率,analogWrite()默认是1khz,可以设置成别的,其实改变的是周期。
其他方法
要输出pwm,其实也可以直接
digitalWrite(4,HIGH)
delayMicroseconds(time1) //单位是us
digitalWrite(4,LOW)
delayMicroseconds(time2) //单位是us