本教程演示如何使用 esp8266 nodemcu 使用 arduino ide 生成 pwm 訊號。例如,我們將通過一段時間改變占空比來降低 led 亮度。
esp8266 gpios 可以設定為輸出 0v 或 3.3v,但它們不能輸出任何電壓。但是,您可以使用脈衝寬度調製 (pwm) 輸出"假"中電平電壓,這就是您將為該專案生成不同級別的 led 亮度。
如果 led 的電壓在"高"和"低"之間快速交替,則眼睛無法跟上 led 開關的速度;你只會看到一些亮度的漸變。
這基本上就是pwm的工作原理——通過產生在高頻率和低之間變化的輸出。
占空比是將 led 設定為"高"的時間段的分數。下圖說明了 pwm 的工作原理。
50% 的占空比可產生 50% 的 led 亮度,占空比為 0 表示 led 完全關閉,占空比為 100 表示 led 完全開啟。改變占空比是產生不同亮度級別的方式。
要在給定引腳上生成 pwm 訊號,可以使用analogwrite()
函式:
analogwrite(pin, value);
您可以通過呼叫以下功能更改pwmrange:
analogwriterange(new_range);
預設情況下,esp8266 pwm 頻率為 1khz。可以使用analogwritefreq()
函式來修改
analogwritefreq(new_frequency);
在本節中,我們將構建乙個簡單的示例,該示例使 led 變暗。需要準備以下電子元器件
將 led 連線到 esp8266,如下圖所示。
將**複製到 arduino ide 並上傳到您的 esp8266。
const int ledpin = 2;
void setup()
void loop()
// 降低led亮度
for(int dutycycle = 1023; dutycycle > 0; dutycycle--)
}
首先定義引腳 led 所連線到。在這種情況下,led 連線到gpio 2(d4)。
const int ledpin = 2;
在for迴圈,將占空比值從 0 和 1023 之間變化,以提高 led 亮度。
for(int dutycycle = 0; dutycycle < 1023; dutycycle++)
然後,在1023和0之間降低亮度。
for(int dutycycle = 1023; dutycycle > 0; dutycycle--)
要設定 led 亮度,您需要使用analogwrite()
函式,該函式的引數是gpio針腳和占空比。
在 arduino ide 中,工具>開發板並選擇您的 esp8266 型號(如果沒有找到您開發板的型號,請選擇"generic esp8266 module")。
轉到工具>埠並選擇連線到 esp8266 的 com 埠。
如果您使用的是 esp-01,則需要使用序列介面卡來上傳**。以下是您需要建立的連線:
esp-01
ftdi 程式設計師
rxtx
txrx
ch_pd
3.3v
gpio 0
gndvcc
3.3v
gndgnd
將led連線到gpio2之後,上傳**並重啟後,會看到led像呼吸燈一樣的閃爍著。
您可以連線gpio 2到示波器,了解 pwm 訊號如何隨時間變化。
ESP8266輸出控制
gpio的輸出 esp8266的輸出控制。在esp8266引腳作為gpio輸出時,首先要配置gpio為輸出模式,這個和普通的32位微控制器的io輸出是一樣的,然後提供改變io口的電平來控制輸出模組的狀態。在這裡我用我自己手上的一款esp8266的微控制器為例。gpio相關介面位於 esp8266 n...
ESP8266 利用網頁控制ESP8266
說明 發出 gpio 1 就輸出 亮燈 gpio 0 就輸出 滅燈 include const char ssid jia 這裡輸入wifi名稱 const char password lm654321 這裡輸入wifi密碼 wifiserver server 80 開啟板子的80埠 int val...
ESP8266學習筆記
因為此模式可控性高且方便,所以推薦此模式 測試指令 at 應用模式設定 at cwmode 3 ap 模式 1 esp8266模組作為熱點,實現手機或電腦直接與模組通訊,實現區域網無線控制。sta 模式 2 esp8266模組通過路由器連線網際網路,手機或電腦通過網際網路實現對裝置的遠端控制 sta...