找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 1103|回復(fù): 0
收起左側(cè)

AduinoC+ ESP32 當(dāng)電燈大師

[復(fù)制鏈接]
ID:1130086 發(fā)表于 2024-8-2 17:59 | 顯示全部樓層 |閱讀模式
1.前言

不論學(xué)習(xí)什么單片機(jī),最簡(jiǎn)單的外設(shè)莫過于 IO 口的高低電平控制 LED,本節(jié)課將向大家介紹如何使用AduinoC控制 ESP32 的 GPIO 輸出。通過本節(jié)課的學(xué)習(xí),讓大家對(duì)ArduinoC的程序架構(gòu)有一定的認(rèn)識(shí),為以后大型項(xiàng)目程序?qū)W習(xí)打下基礎(chǔ),增強(qiáng)信心。
2.esp32簡(jiǎn)介

ESP32模塊是ESP8266的升級(jí)版本。除了Wi-Fi模塊,該模塊還包含藍(lán)牙4.0模塊。雙核CPU工作頻率為80至240 MHz,包含兩個(gè)Wi-Fi和藍(lán)牙模塊以及各種輸入和輸出引腳, ESP32是物聯(lián)網(wǎng)項(xiàng)目的理想選擇。
雖然ESP32的引腳數(shù)比常用的處理器少,但在引腳上復(fù)用多個(gè)功能時(shí)不會(huì)遇到任何問題。
警告:ESP32引腳的電壓電平為3.3伏。如果要將ESP32連接到其他工作電壓為5伏的設(shè)備,則應(yīng)使用電平轉(zhuǎn)換器轉(zhuǎn)換電壓電平。


3.前提下載
Software | Arduino下載Arduino IDE 2.x版本

4.硬件支持
esp32一塊
杜邦線若干
LED燈一盞

5.開始點(diǎn)燈

在esp32中,我們需要通過杜邦線來連接燈與我們的引腳。
在這里我的D1燈的引腳為2.

使用pinMode函數(shù)來指定我們引腳的模式
pinMode(pin,value);

value為模式。
在點(diǎn)燈中,我們使用OUTPUT模式,表示輸出模式。

使用digitalWrite函數(shù)對(duì)指定的引腳進(jìn)行寫入高低電平.
digitalWrite(pin,LOW/HIGH);

delay()延時(shí)函數(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單片機(jī)的同學(xué)都知道,流水燈可以:P1 = ~(1 << i)去實(shí)現(xiàn),但是esp32就不行了,因?yàn)樗B線
并且線的位置不同,不連續(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就開始逐個(gè)閃爍了。
總結(jié)

恭喜你,完成了點(diǎn)燈大師的挑戰(zhàn),希望你在下一次的蜂鳴器的挑戰(zhàn)中也能像這次一樣。(達(dá)成成就:點(diǎn)燈)
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表