1.前言
不論學習什么單片機,最簡單的外設莫過于 IO 口的高低電平控制 LED,本節課將向大家介紹如何使用AduinoC控制 ESP32 的 GPIO 輸出。通過本節課的學習,讓大家對ArduinoC的程序架構有一定的認識,為以后大型項目程序學習打下基礎,增強信心。
2.esp32簡介
ESP32模塊是ESP8266的升級版本。除了Wi-Fi模塊,該模塊還包含藍牙4.0模塊。雙核CPU工作頻率為80至240 MHz,包含兩個Wi-Fi和藍牙模塊以及各種輸入和輸出引腳, ESP32是物聯網項目的理想選擇。
雖然ESP32的引腳數比常用的處理器少,但在引腳上復用多個功能時不會遇到任何問題。
警告:ESP32引腳的電壓電平為3.3伏。如果要將ESP32連接到其他工作電壓為5伏的設備,則應使用電平轉換器轉換電壓電平。
3.前提下載
Software | Arduino下載Arduino IDE 2.x版本
4.硬件支持
esp32一塊
杜邦線若干
LED燈一盞
5.開始點燈
在esp32中,我們需要通過杜邦線來連接燈與我們的引腳。
在這里我的D1燈的引腳為2.
使用pinMode函數來指定我們引腳的模式
pinMode(pin,value);
value為模式。
在點燈中,我們使用OUTPUT模式,表示輸出模式。
使用digitalWrite函數對指定的引腳進行寫入高低電平.
digitalWrite(pin,LOW/HIGH);
delay()延時函數: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);}
現在D0就200毫秒閃爍一次了。
#define 的原因:使名稱引腳更清晰,當然,你不寫#define也可以,直接寫引腳名到LED1這里。
流水燈
流水燈相等于我們編程語言的hello world。
所以,在這,我寫一下代碼:
學過51單片機的同學都知道,流水燈可以:P1 = ~(1 << i)去實現,但是esp32就不行了,因為他要連線
并且線的位置不同,不連續,所以只能用老辦法了。
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);}
現在D1~D8就開始逐個閃爍了。
總結
恭喜你,完成了點燈大師的挑戰,希望你在下一次的蜂鳴器的挑戰中也能像這次一樣。(達成成就:點燈)
|