概述
我們已經(jīng)看過(guò)幾個(gè)使用各種微控制器(或IC)的PWM教程,如8051,Arduino,Raspberry Pi和IC 555.使用PWM技術(shù),我們控制了LED的強(qiáng)度(增加或減少了亮度),改變了直流電機(jī)的速度(增加或減少速度),還旋轉(zhuǎn)了伺服電機(jī)。
現(xiàn)在在ESP8266 PWM教程中,我將控制連接到ESP8266 WiFi模塊的GPIO2引腳的LED的亮度,即使用ESP8266進(jìn)行LED衰落。
ESP8266中的PWM
ESP8266EX微控制器即所有ESP8266模塊(如ESP-01,NodeMCU等)的核心SoC由四個(gè)組成專用PWM輸出接口。 ESP8266EX中與PWM對(duì)應(yīng)的引腳如下:
ESP8266EX中的PWM引腳
引腳名稱Pin Number
MTDI10
MTDO13
MTMS9
GPIO416
如果您發(fā)現(xiàn),我們的ESP8266 ESP-01 WiFi模塊中沒(méi)有這四個(gè)引腳。那么我們?nèi)绾卧贓SP8266中實(shí)現(xiàn)PWM呢?
這個(gè)問(wèn)題的答案非常簡(jiǎn)單:使用軟件編程,即準(zhǔn)確使用微控制器的定時(shí)器。
ESP8266 WiFi模塊中的PWM可以通過(guò)定時(shí)器中斷實(shí)現(xiàn)。 PWM信號(hào)的頻率可以是1Hz到1KHz之間的任何值(有人說(shuō),最低頻率是100Hz!)。
如何在ESP8266中實(shí)現(xiàn)PWM?
ESP8266中PWM生成的軟件實(shí)現(xiàn)與Arduino中的非常相似。由于我們使用Arduino IDE對(duì)ESP8266進(jìn)行編程,因此負(fù)責(zé)產(chǎn)生PWM信號(hào)的功能是analogWrite(與我們?cè)贏rduino中使用的功能相同)。
analogWrite函數(shù)有兩個(gè)參數(shù):引腳號(hào)和PWM值。代替引腳編號(hào),輸入要通過(guò)其使用PWM輸出的引腳編號(hào)。
進(jìn)入PWM值,此處需要輸入基于的值PWM的分辨率。對(duì)于Arduino,分辨率為8位,因此您必須輸入介于0和255之間的值。
對(duì)于ESP8266,ESP8266中的PWM使用10位分辨率。因此,您必須輸入0到1023之間的值。這里,PWM值“0”表示0%占空比,PWM值“1023”表示100%占空比。 0到1023之間的任何值都將成為占空比。
注意:
如果ESP8266中的一個(gè)引腳被分配了analogWrite來(lái)產(chǎn)生PWM信號(hào),則它不能用作數(shù)字輸出引腳,即你不能使用digitalWrite();該引腳上的功能。
為了將該引腳用作數(shù)字引腳,您需要寫入analogWrite(引腳號(hào),0)以釋放它。
用于LED衰落的ESP8266 PWM教程電路圖
下圖是使用Arduino作為USB轉(zhuǎn)串口轉(zhuǎn)換器編程ESP8266 WiFi模塊的電路圖以及使用PWM信號(hào)的LED衰落。
所需組件
ESP8266 WiFi模塊(ESP-01)
Arduino UNO
按鈕
SPDT開(kāi)關(guān)(滑動(dòng)開(kāi)關(guān))
電阻器(1KΩ和2.2KΩ)
小型LED(5mm或3mm)
連接線
面包板
連接LED(我使用的是8mm LED,你可以使用5mm或3mm LED和限流電阻istor)到ESP8266 WiFi模塊的GPIO2引腳。
VCC和CH_PD連接到3.3V電源,GND連接到GND。 ESP8266 WiFi模塊的RST(復(fù)位)引腳通過(guò)按鈕連接到GND。
現(xiàn)在,ESP8266的RX和TX引腳連接到RX和TX Arduino UNO。請(qǐng)注意,電路圖中ESP8266的RX引腳并未直接連接到Arduino的RX引腳,而是通過(guò)電平轉(zhuǎn)換器(由1KΩ和2.2KΩ電阻組成)。
最后,GPIO0引腳。該引腳負(fù)責(zé)在ESP8266中啟用編程模式。將GPIO0引腳連接到SPDT滑動(dòng)開(kāi)關(guān),即連接到其中心端子,并將兩個(gè)端子中的一個(gè)連接到GND。另一個(gè)端子用作GPIO引腳。
代碼
ESP8266的代碼PWM LED衰落教程如下:
工作
正確連接所有連接后按照電路圖,在ESP8266中啟用編程模式,即將GPIO0開(kāi)關(guān)滑動(dòng)到GND位置并按下RST按鈕。
使用Arduino IDE上傳代碼(首先選擇Generic板上的ESP8266模塊以及正確的端口號(hào)。)
上傳程序后,將GPIO0引腳滑動(dòng)到GPIO位置并按下RST按鈕一次?,F(xiàn)在,代碼將開(kāi)始運(yùn)行,最初您可以看到LED通過(guò)5步到最大強(qiáng)度緩慢增加亮度。
此后,淡入淡出動(dòng)作開(kāi)始于LED褪色進(jìn)出,即從低到高,從高到低是循環(huán)。
應(yīng)用
ESP8266 PWM教程只是ESP8266 WiFi模塊PWM功能的演示。
使用ESP8266中的PWM技術(shù),可以實(shí)現(xiàn)多個(gè)項(xiàng)目,如伺服電機(jī)控制,網(wǎng)絡(luò)控制伺服,直流電機(jī)速度控制等
-
led
+關(guān)注
關(guān)注
242文章
23826瀏覽量
673715 -
PWM
+關(guān)注
關(guān)注
116文章
5493瀏覽量
219246 -
ESP8266
+關(guān)注
關(guān)注
51文章
965瀏覽量
47376
發(fā)布評(píng)論請(qǐng)先 登錄
微控制器中的PWM模塊介紹
PWM信號(hào)生成方法 PWM調(diào)制原理講解
ESP8266筆記-05.ESP8266 WIFI的使用
脈沖變壓器中如何增加脈沖寬度
ESP8266 通過(guò) MQTT 協(xié)議實(shí)現(xiàn) LED 的遠(yuǎn)程控制

評(píng)論