「ESPr Developer 32」は、スイッチサイエンス社が出しているESP32の評価基板。
2200円ととても安い。子育て中の私のおこづかいでも買える。
ESP32は組み込み系のブログを見るといたるところで使われているのと遊べそうなので買ってみた。
必要部材
・ESPr Developer 32 Type-C
・ブレッドボード
・ジャンパ
・LED(抵抗なし)
・抵抗(270Ω 赤紫茶金)
・タクトスイッチ
・ブザー
・[ピンヘッダセット]https://www.amazon.co.jp/%E3%82%A2%E3%82%A4%E3%82%A6%E3%82%A3%E3%82%B9-IWISS-2-54mm%E3%83%94%E3%83%83%E3%83%81-2550%E3%82%B3%E3%83%8D%E3%82%AF%E3%82%BF-%E3%83%87%E3%83%A5%E3%83%9D%E3%83%B3%E3%82%B3%E3%83%8D%E3%82%AF%E3%82%BF/dp/B092ZP3C5D/ref=sr_1_50?keywords=%E3%83%94%E3%83%B3%E3%83%98%E3%83%83%E3%83%80&qid=1699486193&sr=8-50
ブレッドボードって案外高いな…。
ピンヘッダが付いていないものを買ってしまったので、まずはちまちまとはんだ付けする。
定番のボタン入力、LED点灯、ブザー鳴動を作った。
ブレッドボードやLEDやらは昔買って結局使ってなかったもの。
環境はArudino IDE。ボードは「ESP32 Dev Module」でOK。
スケッチ。button_led_buzzer.ino
const int DIN_PIN = 13; // ボタン入力のピン番号
const int LED_PIN = 25; // LED出力のピン番号
const int BUZZER_CHANEL = 0; // ブザーのチャネル番号
const int BUZZER_PIN = 2; // ブザーのピン番号
const int BEAT = 300; // 音の長さ(0.3秒間隔)
// 初期設定
void setup() {
// ピン設定
pinMode( DIN_PIN, INPUT_PULLUP );
pinMode( LED_PIN, OUTPUT );
// PWM設定(チャンネル(0~15),PWM周波数(~40MHz),ビット数(1~16))
ledcSetup(BUZZER_CHANEL, 12000, 8);
ledcAttachPin(BUZZER_PIN, BUZZER_CHANEL);
}
// メインループ
void loop()
{
/*
const int TONENUM = 16;
int onkai_tbl[TONENUM] = {
// ド レ ミ ファ ソ ラ シ
262, 294, 330, 349, 392, 440, 494,
523, 587, 659, 698, 784, 880, 988,
1049, 0
};
*/
const int TONENUM = 16;
int onkai_tbl[TONENUM] = {
262, 262, 392, 392, 440, 440, 392, 0,
349, 349, 330, 330, 294, 294, 262, 0
};
int value = 0;
value = digitalRead( DIN_PIN );
if ( value == LOW ){
// ボタンON
digitalWrite( LED_PIN, LOW ); // LED消灯
// 音階テーブルを実行
for (int i=0; i < TONENUM; i++){
if (0 != onkai_tbl[i]){ // 0は消音しないでキープ
ledcWriteTone(BUZZER_CHANEL, onkai_tbl[i]);
}
delay(BEAT) ;
}
}
else
{
// ボタンOFFはLED点灯しブザー消音
digitalWrite( LED_PIN, HIGH );
ledcWriteTone(BUZZER_CHANEL, 0);
}
delay( 100 );
}
参考
・LED配線
https://electwork.net/esp32-1/
・ボタン配線、入力
https://deviceplus.jp/arduino/arduino_f06/
・ブザー
https://www.e-tecinc.co.jp/blog/2021/04/23/esp32_buzzerpwm/