設備與材料
個人電腦 × 1
ESP-12F × 1
MAX98357A 模組 × 1
按鈕 × 5
麵包板 × 1
連接線 若干
實體接線圖
開發環境
使用 Arduino IDE 安裝 ESP8266開發板,如果不知道如何安裝ESP8266開發板,可以參考 “準備你的 ESP12E/F 開發工具” ,安裝開發板之後,記得開發板選擇 “NodeMCU 1.0(ESP-12E Module)” ,安裝ESPDrum 程式庫,請在本站下載,選擇 Arduino IDE 中的 “草稿碼” ->”匯入程式庫” ->”加入.Zip程式庫” ,選擇你下載的程式庫,按 “開啟” 即可(可以參考 匯入 zip 程式庫 )。
ESPDrum
示範影片
範例程式
/*
* ESP12F I2S 電子鼓
* 開發工具 Arduino IDE 必需自行加入ESP12F 開發板
* 開發板 ESP12F(ESP8266)+MAX98357A
* 5個按鈕可以發出5種音軌的電子鼓聲
* MAX98357A ESP12F
* Vin 5V
* GND G
* SD 空腳
* GAIN G
* DIN RX
* BCLK D8
* LRC D4
* https://www.block.tw/blog/download/espdrum/
*/
//按鍵接腳
#define KEY0 13 //D7
#define KEY1 12 //D6
#define KEY2 14 //D5
#define KEY3 0 //D3
#define KEY4 4 //D2
#include <ESPDrum.h>
ESPDrum drum; //宣告電子鼓物件
//按鍵狀態
boolean key0Push=false;
boolean key1Push=false;
boolean key2Push=false;
boolean key3Push=false;
boolean key4Push=false;
void setup() {
Serial.begin(115200);
Serial.println("Edrum");
//輸入設定
pinMode(KEY0,INPUT_PULLUP);
pinMode(KEY1,INPUT_PULLUP);
pinMode(KEY2,INPUT_PULLUP);
pinMode(KEY3,INPUT_PULLUP);
pinMode(KEY4,INPUT_PULLUP);
drum.begin(); //啟用電子鼓
}
void loop() {
static int lastms;
//防彈跳 30ms 處理一次按鍵
if (millis() - lastms > 30) {
//KEY0
if(!digitalRead(KEY0)){
if(!key0Push){
key0Push=true;
drum.playTrack(0); //音軌0發音
}
}else{
//按鍵一直按只算1次
key0Push=false;
}
//KEY1 按鍵處理
if(!digitalRead(KEY1)){
if(!key1Push){
key1Push=true;
drum.playTrack(1); //音軌1發音
}
}else{
//按鍵一直按只算1次
key1Push=false;
}
//KEY2 按鍵處理
if(!digitalRead(KEY2)){
if(!key2Push){
key2Push=true;
drum.playTrack(2); //音軌2發音
}
}else{
//按鍵一直按只算1次
key2Push=false;
}
//KEY3 按鍵處理
if(!digitalRead(KEY3)){
if(!key3Push){
key3Push=true;
drum.playTrack(3); //音軌3發音
}
}else{
key3Push=false;
}
//KEY4 按鍵處理
if(!digitalRead(KEY4)){
if(!key4Push){
key4Push=true;
drum.playTrack(4); //音軌4發音
}
}else{
key4Push=false;
}
lastms = millis();
}
drum.play(); //電子鼓演奏
}
Arduino 輸出實習(單燈閃爍)
Arduino 輸出實習(跑馬燈-愚公移山)
Arduino 輸出實習(跑馬燈-for迴圈)
Arduino 數位輸入實習
Arduino 數位輸入實習(INPUT_PULLUP)
Arduino 類比輸入實習
Arduino PWM 實習 (呼吸燈)
Arduino PWM 實習 (光感應調光燈)
Arduino 8×8 LED Matrix MAX7219 實習
Arduino 紅綠燈小綠人 實習
Arduino 計時器 實習
Arduino 音樂盒
Arduino 電子琴(鍵盤掃描)
Arduino DHT11 溫濕度感應器
Arduino OLED 顯示
Arduino 超音波測距模組 HC-SR04
Arduino 執行時間實習
Arduino 電容測試器
Arduino 紅外線接收實習
Arduino 紅外線發射實習 EPSON 投影機控制
ESP-12F 網路智慧開關(MQTT)
ESP-12F 雲端記錄型 K-Type 溫度計(MQTT ThingSpeak)
ESP-12F 手機雲端紅外線控制
ESP-12F 網路電台收音機
ESP-12F 電子鼓