首頁(yè) > 評(píng)測(cè) > FireBeetle Board-ESP32 arduino開(kāi)發(fā)體驗(yàn)
FireBeetle Board-ESP32 arduino開(kāi)發(fā)體驗(yàn)
- [導(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)眼睛,找了半天,修改方式如下
這里只能更改字體大小,修改配置文件來(lái)更改使用的字體。這個(gè)字體路徑在用戶下的AppData中,要查看隱藏文件
打開(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)看下板子的資源
小板子上有兩個(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
}
修改字體以后的樣子,還可以吧
直接點(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的定義
然后在通過(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)放投稿
- NRF52810藍(lán)牙數(shù)字耳機(jī)找人定制
預(yù)算:¥30005天前
- 125KW模塊式PCS軟硬件外包開(kāi)發(fā)
預(yù)算:¥1100000015小時(shí)前
- 12V汽車(chē)啟動(dòng)電源項(xiàng)目BMS設(shè)計(jì)
預(yù)算:¥50000023小時(shí)前
- 數(shù)據(jù)可視化軟件 開(kāi)發(fā)
預(yù)算:¥5000023小時(shí)前
- PLC項(xiàng)目調(diào)試修改
預(yù)算:¥100001天前
- 起動(dòng)電機(jī)控制器開(kāi)發(fā)
預(yù)算:¥1100001天前