2026.10.3 MY — ESP32-S3 simulation

An interactive ESP32-S3 circuit simulation you can run free in your browser on Velxio, by a2982887131.

Components

Sketch code

/* ============================================================
   声光同步 · 节奏联动小设备
   硬件平台:ESP32-S3
   外设:无源蜂鸣器 ×1、LED ×9、按键 ×9
   功能:
     1) 上电后总开关LED亮,按总开关 → 熄灭
     2) 其余8个LED亮起,对应8首曲子
     3) 按某键 → 全部熄灭,进入该曲节拍跟弹模式
     4) 每个音对应一个LED,按下该键 → 蜂鸣器发声、LED灭、下一个亮
     5) 跟弹完毕 → 自动完整播放全曲,灯光随拍闪烁,结束
   ============================================================ */

/* -------------------- 引脚定义 -------------------- */
const uint8_t LED_PINS[9] = {4, 5, 6, 7, 15, 16, 17, 18, 21};  // LED0 = 总开关灯
const uint8_t BTN_PINS[9] = {1, 2, 8, 9, 10, 11, 12, 13, 14};  // BTN0 = 总开关键
const uint8_t BUZZER_PIN  = 38;                                 // 无源蜂鸣器

/* -------------------- 音调表(C大调 C4~C5) -------------------- */
const uint16_t TONE_FREQ[8] = {262, 294, 330, 349, 392, 440, 494, 523};

/* -------------------- 节拍时值 -------------------- */
const uint16_t DUR_Q = 350;   // 四分音符
const uint16_t DUR_H = 700;   // 二分音符
const uint16_t DUR_E = 175;   // 八分音符

struct Note {
  uint8_t  n;    // 音调编号 0~7(同时对应 LED / 按键 编号+1)
  uint16_t d;    // 持续时长 ms
};

/* ==================== 8 首曲子 ==================== */
// 音名对照:0=C4 1=D4 2=E4 3=F4 4=G4 5=A4 6=B4 7=C5

const Note SONG1[] = {          // 小星星
  {0,DUR_Q},{0,DUR_Q},{4,DUR_Q},{4,DUR_Q},{5,DUR_Q},{5,DUR_Q},{4,DUR_H},
  {3,DUR_Q},{3,DUR_Q},{2,DUR_Q},{2,DUR_Q},{1,DUR_Q},{1,DUR_Q},{0,DUR_H}
};

const Note SONG2[] = {          // 两只老虎
  {0,DUR_Q},{1,DUR_Q},{2,DUR_Q},{0,DUR_Q},
  {0,DUR_Q},{1,DUR_Q},{2,DUR_Q},{0,DUR_Q},
  {2,DUR_Q},{3,DUR_Q},{4,DUR_H},
  {2,DUR_Q},{3,DUR_Q},{4,DUR_H},
  {4,DUR_E},{5,DUR_E},{4,DUR_E},{3,DUR_E},{2,DUR_Q},{0,DUR_Q},
  {4,DUR_E},{5,DUR_E},{4,DUR_E},{3,DUR_E},{2,DUR_Q},{0,DUR_Q},
  {1,DUR_Q},{4,DUR_Q},{0,DUR_H},
  {1,DUR_Q},{4,DUR_Q},{0,DUR_H}
};

const Note SONG3[] = {          // 欢乐颂
  {2,DUR_Q},{2,DUR_Q},{3,DUR_Q},{4,DUR_Q},
  {4,DUR_Q},{3,DUR_Q},{2,DUR_Q},{1,DUR_Q},
  {0,DUR_Q},{0,DUR_Q},{1,DUR_Q},{2,DUR_Q},
  {2,DUR_Q+DUR_E},{1,DUR_E},{1,DUR_H}
};

const Note SONG4[] = {          // 玛丽有只小羊羔
  {2,DUR_Q},{1,DUR_Q},{0,DUR_Q},{1,DUR_Q},{2,DUR_Q},{2,DUR_Q},{2,DUR_H},
  {1,DUR_Q},{1,DUR_Q},{1,DUR_H},
  {2,DUR_Q},{4,DUR_Q},{4,DUR_H},
  {2,DUR_Q},{1,DUR_Q},{0,DUR_Q},{1,DUR_Q},{2,DUR_Q},{2,DUR_Q},{2,DUR_Q},{2,DUR_Q},
  {1,DUR_Q},{1,DUR_Q},{2,DUR_Q},{1,DUR_Q},{0,DUR_H}
};

const Note SONG5[] = {          // 铃儿响叮当(片段)
  {2,DUR_Q},{2,DUR_Q},{2,DUR_H},
  {2,DUR_Q},{2,DUR_Q},{2,DUR_H},
  {2,DUR_Q},{4,DUR_Q},{0,DUR_Q},{1,DUR_Q},{2,DUR_H},
  {3,DUR_Q},{3,DUR_Q},{3,DUR_Q},{3,DUR_Q},{3,DUR_Q},
  {2,DUR_Q},{2,DUR_Q},{2,DUR_Q},{2,DUR_Q},
  {1,DUR_Q},{1,DUR_Q},{2,DUR_Q},{1,DUR_Q},{4,DUR_H}
};

const Note SONG6[] = {          // 伦敦桥
  {4,DUR_Q},{5,DUR_Q},{4,DUR_Q},{3,DUR_Q},{2,DUR_Q},{3,DUR_Q},{4,DUR_H},
  {1,DUR_Q},{2,DUR_Q},{3,DUR_H},
  {2,DUR_Q},{3,DUR_Q},{4,DUR_H},
  {4,DUR_Q},{5,DUR_Q},{4,DUR_Q},{3,DUR_Q},{2,DUR_Q},{3,DUR_Q},{4,DUR_H},
  {1,DUR_Q},{4,DUR_Q},{2,DUR_Q},{0,DUR_H}
};

const Note SONG7[] = {          // 音阶上下行
  {0,250},{1,250},{2,250},{3,250},{4,250},{5,250},{6,250},{7,250},
  {7,250},{6,250},{5,250},

More projects by a2982887131