ESP8266-模擬輸出(PWM)


 

 PWM(Pulse Width Modulation,脈寬調制),是在保持波的頻率不變的同時改變脈寬的技術

 

首先,我們來理解一下 占空比。一個脈沖周期由一個ON周期(VCCC)和一個OFF周期(GND)組成。一段時間內ON周
期占據脈沖周期的比例就叫做占空比。例如,一個10ms的脈沖保持ON 2ms,那么根據公式,占空比是20%

 

NodeMcu PWM引腳 :

基本上數字IO都可以作為PWM復用引腳,除了D0。不過需要注意的是,D3盡量不用,它內部連接ESP8266 GPIO0

 

 

NodeMcu PWM有關Arduino函數:
函數: analogWrite(pin,val)       往指定引腳寫入數據
pin:要啟用軟件PWM的GPIO引腳
val:數值,一般在0到PWMRANGE范圍,默認PWMRANGE是1023
返回值: 無
 
 

 函數: analogWriteRange(new_range)    該功能用於改變PWMRANGE數值---改變引腳讀寫的數據范圍

返回值: 無

注意點:可以理解為PWM精度范圍。同樣的PWM頻率下,默認占空數值1023。如果你改變PWMRANGE為2047,那么占空數值就變成0-2047。精度高了一倍

 

函數: analogWriteFreq(new_frequency)     該功能用於改變PWM頻率

new_frequency:新PWM頻率,默認是1kHZ

返回值: 無

Arduino For ESP8266的PWM頻率范圍應該是100Hz-40KHz

 

 

例子:使D6引腳的LED燈亮暗變化

#define PIN_LED D6 
void setup() { 
 pinMode(PIN_LED,OUTPUT); //設置引腳模式
 analogWrite(PIN_LED,0); 
 }
 void loop() { 
  for(int val=0;val<1024;val++){ 
    analogWrite(PIN_LED,val); //給指定引腳寫入數據
    delay(2); 
    }
    for(int val=1023;val>=0;val--){ 
      analogWrite(PIN_LED,1023); 
      delay(2); 
      }
      }
      

 

 

 

 

 

 

 

 

 

天子驕龍


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM