南陽東莞網(wǎng)站建設(shè)公司優(yōu)化排名推廣關(guān)鍵詞
文章目錄
- 前言
- ESP32簡介
- 認(rèn)識arduino的兩個函數(shù)
- 點燈
- 步驟
- 函數(shù)介紹
- LED燈閃爍
- 流水燈
- 總結(jié)
前言
esp32有很多的功能,例如wifi,藍(lán)牙等,這節(jié)我們學(xué)習(xí)最簡單的點燈。
提示:以下是本篇文章正文內(nèi)容,下面案例可供參考
ESP32簡介
ESP32模塊是ESP8266的升級版本。除了Wi-Fi模塊,該模塊還包含藍(lán)牙4.0模塊。雙核CPU工作頻率為80至240 MHz,包含兩個Wi-Fi和藍(lán)牙模塊以及各種輸入和輸出引腳, ESP32是物聯(lián)網(wǎng)項目的理想選擇。
雖然ESP32的引腳數(shù)比常用的處理器少,但在引腳上復(fù)用多個功能時不會遇到任何問題。
警告:ESP32引腳的電壓電平為3.3伏。如果要將ESP32連接到其他工作電壓為5伏的設(shè)備,則應(yīng)使用電平轉(zhuǎn)換器轉(zhuǎn)換電壓電平。
認(rèn)識arduino的兩個函數(shù)
我們創(chuàng)建了一個arduino項目后,他會自動生成下面的兩個函數(shù):
void setup() {// put your setup code here, to run once:}void loop() {// put your main code here, to run repeatedly:}
setup()是整個程序只在開始時調(diào)用,用于初始化作用。
loop()可以類比while(1)。他會一直調(diào)用
變成C語言就會是這樣。(注意:不能把下面的代碼弄到arduino里面):
void setup()
{}void loop()
{}int main()
{setup();while(1){loop();}}
點燈
步驟
- 將LED的正極接到ESP32開發(fā)板的GPIO口,負(fù)極接到GND口。
- 使用ESP32的Arduino IDE編寫代碼,將GPIO口設(shè)置為輸出模式,并將其設(shè)置為高電平,以便點亮LED。
- 上傳代碼到ESP32開發(fā)板,LED就會點亮。
函數(shù)介紹
在esp32中,我們需要通過杜邦線來連接燈與我們的引腳。
在這里我的D1燈的引腳為2.
使用pinMode函數(shù)來指定我們引腳的模式
pinMode(pin,value);
value為模式。
在點燈中,我們使用OUTPUT模式,表示輸出模式。
使用digitalWrite函數(shù)對指定的引腳進(jìn)行寫入高低電平.
digitalWrite(pin,LOW/HIGH);
delay()延時函數(shù):delay(ms)
LED燈閃爍
#define LED1 2void setup() {// put your setup code here, to run once:pinMode(LED1,OUTPUT);
}void loop() {// put your main code here, to run repeatedly:digitalWrite(LED1,HIGH);delay(200);digitalWrite(LED1,LOW);delay(200);
}
現(xiàn)在D0就200毫秒閃爍一次了。
#define 的原因:使名稱引腳更清晰,當(dāng)然,你不寫#define也可以,直接寫引腳名到LED1這里。
流水燈
流水燈相等于我們編程語言的hello world。
所以,在這,我寫一下代碼:
學(xué)過51單片機的同學(xué)都知道,流水燈可以:P1 = ~(1 << i)
去實現(xiàn),但是esp32就不行了,因為他要連線
并且線的位置不同,不連續(xù),所以只能用老辦法了。
Pin腳在#define中
#define LED1 2
#define LED2 21
#define LED3 4
#define LED4 5
#define LED5 22
#define LED6 25
#define LED7 26
#define LED8 18void setup() {// put your setup code here, to run once:pinMode(LED1,OUTPUT);pinMode(LED2,OUTPUT);pinMode(LED3,OUTPUT);pinMode(LED4,OUTPUT);pinMode(LED5,OUTPUT);pinMode(LED6,OUTPUT);pinMode(LED7,OUTPUT);pinMode(LED8,OUTPUT);
}void loop() {// put your main code here, to run repeatedly:digitalWrite(LED1,HIGH);delay(200);digitalWrite(LED1,LOW);delay(200);digitalWrite(LED2,HIGH);delay(200);digitalWrite(LED2,LOW);delay(200);digitalWrite(LED3,HIGH);delay(200);digitalWrite(LED3,LOW);delay(200);digitalWrite(LED4,HIGH);delay(200);digitalWrite(LED4,LOW);delay(200);digitalWrite(LED5,HIGH);delay(200);digitalWrite(LED5,LOW);delay(200);digitalWrite(LED6,HIGH);delay(200);digitalWrite(LED6,LOW);delay(200);digitalWrite(LED7,HIGH);delay(200);digitalWrite(LED7,LOW);delay(200);digitalWrite(LED8,HIGH);delay(200);digitalWrite(LED8,LOW);delay(200);
}
現(xiàn)在D1~D8就開始逐個閃爍了。
總結(jié)
恭喜你,完成了點燈大師的挑戰(zhàn),希望你在下一次的蜂鳴器的挑戰(zhàn)中也能像這次一樣。(達(dá)成成就:點燈)