首頁(yè) > 評(píng)測(cè) > FireBeetle Board-ESP32 arduino開(kāi)發(fā)體驗(yàn)

FireBeetle Board-ESP32 arduino開(kāi)發(fā)體驗(yàn)

FireBeetle   ESP32   arduino   
  • 作者:BinWin
  • 來(lái)源:21ic
  • [導(dǎo)讀]
  • 本文來(lái)給大家展示一下如何來(lái)修改Arduino的IDE的字體以及對(duì)螢火蟲(chóng)開(kāi)發(fā)板進(jìn)行呼吸燈的代碼調(diào)整。

 感謝二姨送出的螢火蟲(chóng),不僅有了ESP32,儼然也是一個(gè)arduino開(kāi)發(fā)板,首次入手,對(duì)比了一下開(kāi)發(fā)環(huán)境,首先以arduino切入。

下載windows平臺(tái)的安裝包,安裝過(guò)程就不需多說(shuō)了。第一次打開(kāi)后,字體較小,并且比較難看,費(fèi)眼睛,找了半天,修改方式如下

 5@KD)ME%L)RDW$EW1@W_V`2.png

這里只能更改字體大小,修改配置文件來(lái)更改使用的字體。這個(gè)字體路徑在用戶下的AppData中,要查看隱藏文件

 ZJYAQ2JP}[ZG5SB1DDV0_4W.png

打開(kāi)這個(gè)文件可以修改很多內(nèi)容,不過(guò)要先關(guān)閉IDE,重新打開(kāi)就可以生效了

board=firebeetle32

boardsmanager.additional.urls=

build.verbose=false

build.warn_data_percentage=75

compiler.cache_core=true

compiler.warning_level=none

console=true

console.auto_clear=true

console.error.file=stderr.txt

console.length=500

console.lines=4

console.output.file=stdout.txt

custom_FlashFreq=firebeetle32_80

custom_UploadSpeed=firebeetle32_921600

editor.antialias=true

editor.auto_close_braces=true

editor.caret.blink=true

editor.code_folding=false

editor.divider.size=2

editor.external=false

editor.font=Microsoft YaHei Mono,plain,14

editor.indent=true

.........

我這里給修改的結(jié)果是:Microsoft YaHei Mono,plain,14,這是后來(lái)安裝的字體,代碼看起來(lái)舒服。

來(lái)看下板子的資源

900px-ESP32pinout.png

小板子上有兩個(gè)LED,可以使用的LED對(duì)應(yīng)的口線是D9,于是點(diǎn)燈的程序就可以這樣

void setup() {

// initialize digital pin LED_BUILTIN as an output.

pinMode(LED_BUILTIN, OUTPUT);

}

// the loop function runs over and over again forever

void loop() {

digitalWrite(LED_BUILTIN, HIGH); // turn the LED on (HIGH is the voltage level)

delay(1000); // wait for a second

digitalWrite(LED_BUILTIN, LOW); // turn the LED off by making the voltage LOW

delay(1000); // wait for a second

}

修改字體以后的樣子,還可以吧

ZJYAQ2JP}[ZG5SB1DDV0_4W.png

直接點(diǎn)擊上傳會(huì)先進(jìn)行編譯后再上傳,對(duì)于esp32來(lái)說(shuō),代碼是存放在外部16M的flash中的,和通常使用的單片機(jī)有所不同,這里對(duì)flash編程算法部分不做詳細(xì)說(shuō)明。上傳成功可以看到藍(lán)色的led已1秒頻率閃爍。

以上可以驗(yàn)證成功的操作了IO口。只有一個(gè)led,那再嘗試一下呼吸燈。對(duì)照dfrobot給出的用戶手冊(cè)來(lái)看下PWM的定義

 5@KD)ME%L)RDW$EW1@W_V`2.png

然后在通過(guò)arduino高度封裝的代碼來(lái)配置一個(gè)脈沖輸出

//設(shè)置通道 0

#define LEDC_CHANNEL_0 0

//設(shè)置 13 位定時(shí)器

#define LEDC_TIMER_13_BIT 13

//設(shè)置定時(shí)器頻率位 5000Hz

#define LEDC_BASE_FREQ 5000

//設(shè)置 LED 燈

#define LED_PIN D9

int brightness = 0; // how bright the LED is

int fadeAmount = 5; // how many points to fade the LED by

//設(shè)置 led 燈的亮度

void ledcAnalogWrite(uint32_t value, uint32_t valueMax = 255) {

//計(jì)算占空比

uint32_t duty = (LEDC_BASE_FREQ / valueMax) * min(value, valueMax);

//設(shè)置占空比

ledcWrite(LEDC_CHANNEL_0, duty);

}

void setup() {

// put your setup code here, to run once:

ledcSetup(LEDC_CHANNEL_0, LEDC_BASE_FREQ, LEDC_TIMER_13_BIT);

ledcAttachPin(LED_PIN, LEDC_CHANNEL_0);

}

void loop() {

// put your main code here, to run repeatedly:

ledcAnalogWrite(brightness); brightness += fadeAmount;

if (brightness <= 0 || brightness >= 255) { fadeAmount = -fadeAmount; } delay(30);

}

注釋足夠清晰,配置定時(shí)器計(jì)數(shù)數(shù)值和通道,設(shè)置頻率, 然后使用void ledcAnalogWrite(uint32_t value, uint32_t valueMax = 255) 函數(shù)計(jì)算占空比和設(shè)置使用的占空比數(shù)值,關(guān)于具體的實(shí)現(xiàn)方式在arduino的庫(kù)文件中有詳細(xì)的實(shí)現(xiàn)過(guò)程,有興趣可以看看,arduino的庫(kù)是比例如stm32的庫(kù)函數(shù)更易用的一種方式。例如打開(kāi)串口只需要一句Serial.begin(115200); 即已115200的波特率開(kāi)啟了對(duì)應(yīng)的串口,再來(lái)一句Serial.println("hello esp32"); 即可以輸出字符串。習(xí)慣C開(kāi)發(fā)單片機(jī)的朋友們是不是也會(huì)突然感覺(jué)arduino原來(lái)是這么的平易近人。

  • 本文系21ic原創(chuàng),未經(jīng)許可禁止轉(zhuǎn)載!

網(wǎng)友評(píng)論

  • 聯(lián)系人:巧克力娃娃
  • 郵箱:board@21ic.com
  • 我要投稿
  • 歡迎入駐,開(kāi)放投稿

熱門(mén)標(biāo)簽
項(xiàng)目外包 more+