LED多的可以尝试下GPT生成的音乐律动

[复制链接]
查看686 | 回复6 | 2023-12-5 15:07:41 | 显示全部楼层 |阅读模式
  1. #define NOTE_C4 262
  2. #define NOTE_D4 294
  3. #define NOTE_E4 330
  4. #define NOTE_F4 349
  5. #define NOTE_G4 392
  6. #define NOTE_A4 440
  7. #define NOTE_B4 494
  8. #define NOTE_C5 523

  9. // 定义音符和持续时间
  10. int melody[] = {NOTE_C4, NOTE_D4, NOTE_E4, NOTE_F4, NOTE_G4, NOTE_A4, NOTE_B4, NOTE_C5};
  11. int noteDuration = 200;

  12. // 定义LED矩阵的尺寸
  13. const int rows = 9;
  14. const int cols = 9;
  15. const int levels = 9;

  16. // 定义LED引脚
  17. int ledPins[rows][cols][levels] = {
  18.   // 你的LED引脚映射在这里
  19.   // 例如,ledPins[0][0][0]表示矩阵的第一个LED的引脚
  20. };

  21. void setup() {
  22.   // 初始化LED引脚
  23.   for (int i = 0; i < rows; ++i) {
  24.     for (int j = 0; j < cols; ++j) {
  25.       for (int k = 0; k < levels; ++k) {
  26.         pinMode(ledPins[i][j][k], OUTPUT);
  27.       }
  28.     }
  29.   }
  30. }

  31. void loop() {
  32.   for (int noteIndex = 0; noteIndex < sizeof(melody) / sizeof(melody[0]); ++noteIndex) {
  33.     // 播放当前音符
  34.     playTone(melody[noteIndex]);

  35.     // 更新LED矩阵
  36.     updateLEDMatrix(noteIndex);

  37.     // 等待一段时间
  38.     delay(noteDuration);
  39.   }
  40. }

  41. void playTone(int frequency) {
  42.   // 使用tone函数播放音符
  43.   tone(9, frequency, noteDuration);
  44. }

  45. void updateLEDMatrix(int noteIndex) {
  46.   // 更新LED矩阵的光效
  47.   // 这里可以根据需要自定义光效的规则
  48.   // 例如,可以使与当前音符对应的LED亮起,其他LED熄灭
  49.   // 也可以实现一些流光效果或者呼吸灯效果
  50. }
复制代码
回复

使用道具 举报

干簧管 | 2023-12-5 16:13:35 | 显示全部楼层
流水灯
回复

使用道具 举报

AXK123456 | 2023-12-5 17:23:13 | 显示全部楼层
拾音灯早就有了呀
回复 支持 反对

使用道具 举报

bzhou830 | 2023-12-5 17:35:43 | 显示全部楼层
不懂就问, 这是做啥用的呀
选择去发光,而不是被照亮
回复 支持 反对

使用道具 举报

boblhl | 2023-12-14 23:51:11 | 显示全部楼层
真羡慕你们会编程,
回复 支持 反对

使用道具 举报

qwe2079282957 | 2023-12-15 09:35:00 | 显示全部楼层
回复

使用道具 举报

san | 2024-1-1 21:42:19 | 显示全部楼层
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则