国歌节奏

作者 by 超米 / 2025-03-11 / 暂无评论 / 10 个足迹

**

国歌节奏程序源代码

**

 /*
 *开发板:Arduino Uno
 * 学号:220223433
 * 姓名:米热地力·买买提
 * 班级:物联网工程2201班
 */
const int BEAT_TIME = 500;            // 一拍(四分音符)时长(单位:毫秒)
const float BLINK_RATIO = 0.5;        // 一个音符LED点亮和熄灭的时间比例
const int BUZZER_PIN = 9;             // 蜂鸣器连接的引脚

#define NOTE_E4  330
#define NOTE_F4  349
#define NOTE_FS4 370
#define NOTE_G4  392
#define NOTE_A4  440
#define NOTE_B4  494
#define NOTE_C5  523
#define NOTE_D5  587
#define NOTE_E5  659
#define NOTE_G5  784
#define NOTE_A5  880
#define NOTE_B5  988
#define NOTE_F0  0


// 加电或复位开发板时,setup函数会被调用一次
void setup() {
  pinMode(LED_BUILTIN, OUTPUT);      // 设置LED引脚为输出
  pinMode(BUZZER_PIN, OUTPUT);       // 设置蜂鸣器引脚为输出
}

// 播放一个音符,参数为频率和拍数
void play_one_note(int frequency, float beat) {
  digitalWrite(LED_BUILTIN, HIGH);   // 点亮LED
  tone(BUZZER_PIN, frequency);       // 播放音符
  int lighten_time = beat * BEAT_TIME * BLINK_RATIO;         // 计算点亮时间
  delay(lighten_time);                                       // 等待点亮时间
  digitalWrite(LED_BUILTIN, LOW);    // 熄灭LED
  noTone(BUZZER_PIN);                // 停止音符
  delay(beat * BEAT_TIME * (1 - BLINK_RATIO));               // 休止
}

// 播放休止符
void play_rest(float beat) {
  noTone(BUZZER_PIN);                // 停止蜂鸣器
  digitalWrite(LED_BUILTIN, LOW);    // 熄灭LED
  delay(beat * BEAT_TIME);           // 休止时间
}

// 循环播放
void loop() {
// 第一段
delay(3000);
play_one_note(NOTE_G4, 0.5);       // 起
play_one_note(NOTE_C5, 1.5);       // 来
play_one_note(NOTE_C5, 0.5);       // 不
play_one_note(NOTE_C5, 0.5);       // 愿
play_one_note(NOTE_C5, 0.25);      // 做
play_one_note(NOTE_G4, 0.5);       // 奴
play_one_note(NOTE_A4, 0.25);      // 隶
play_one_note(NOTE_B4, 0.25);      // 的
play_one_note(NOTE_C5, 1.0);       // 人
play_one_note(NOTE_C5, 1.0);       // 们

// 第二段
play_rest(0.5);                    // 休止符
play_one_note(NOTE_E5, 0.5);      // 把
play_one_note(NOTE_C5, 0.5);       // 我
play_one_note(NOTE_D5, 0.25);       // 们
play_one_note(NOTE_E5, 0.25);       // 的
play_one_note(NOTE_G5, 0.75);       // 血
play_one_note(NOTE_G5, 1.25);       // 肉
play_one_note(NOTE_E5, 0.75);      // 筑
play_one_note(NOTE_E5, 0.25);      // 成
play_one_note(NOTE_C5, 0.75);       // 我
play_one_note(NOTE_E5, 0.25);       // 们
play_one_note(NOTE_G5, 0.75);       // 新
play_one_note(NOTE_E5, 0.25);       // 的
play_one_note(NOTE_D5, 1.0);       // 长
play_one_note(NOTE_D5, 2.0);       // 城

// 第三段
play_one_note(NOTE_A5, 1.0);       // 中
play_one_note(NOTE_G5, 1.0);       // 华
play_one_note(NOTE_D5, 1.0);       // 民
play_one_note(NOTE_E5, 1.0);       // 族
play_one_note(NOTE_G5, 0.5);      // 到
play_one_note(NOTE_E5, 1.0);      // 了
play_one_note(NOTE_G5, 0.5);       // 最
play_one_note(NOTE_E5, 0.5);       // 危
play_one_note(NOTE_D5, 0.25);      // 险
play_one_note(NOTE_E5, 0.25);      // 的
play_one_note(NOTE_D5, 0.75);       // 时
play_one_note(NOTE_E5, 1.0);      // 候

// 第四段
play_rest(0.5);                    // 休止符
play_one_note(NOTE_G5, 0.5);       // 每
play_one_note(NOTE_A5, 0.25);       // 个
play_one_note(NOTE_C5, 0.5);      // 人
play_one_note(NOTE_C5, 0.5);      // 被
play_one_note(NOTE_E5, 0.5);       // 迫
play_one_note(NOTE_E5, 0.25);     // 着
play_one_note(NOTE_G5, 0.5);       // 发
play_one_note(NOTE_G5, 0.25);      // 出
play_one_note(NOTE_D5, 0.3);      // 最
play_one_note(NOTE_D5, 0.3);       // 后
play_one_note(NOTE_D5, 0.3);      // 的
play_one_note(NOTE_A4, 1.0);       // 吼
play_one_note(NOTE_D5, 1.5);       // 声

// 第五段

play_one_note(NOTE_G4, 0.5);      // 起
play_one_note(NOTE_C5, 1.5);      // 来
play_one_note(NOTE_C5, 0.5);       // 起
play_one_note(NOTE_E5, 1.5);       // 来
play_one_note(NOTE_E5, 0.5);       // 起
play_one_note(NOTE_G5, 4.0);       // 来

 //第六段
play_one_note(NOTE_C5, 0.5);       // 我
play_one_note(NOTE_E5, 0.25);      // 们
play_one_note(NOTE_G5, 0.5);      // 万
play_one_note(NOTE_G5, 0.25);      // 众
play_one_note(NOTE_A5, 1.0);      // 一
play_one_note(NOTE_G5, 1.0);       // 心
play_one_note(NOTE_E5, 0.5);       // 冒
play_one_note(NOTE_C5, 0.25);      // 着
play_one_note(NOTE_G5, 0.3);      // 敌
play_one_note(NOTE_G5, 0.3);       // 人
play_one_note(NOTE_G5, 0.3);       // 的
play_one_note(NOTE_E5, 0.5);       // 炮
play_rest(0.25);                   // 休止符
play_one_note(NOTE_C5, 0.5);       // 火
play_rest(0.25);                   // 休止符

play_one_note(NOTE_G4, 1.5);       // 前
play_one_note(NOTE_C5, 1.0);       // 进

//第七段
play_one_note(NOTE_E4, 0.75);      // 冒
play_one_note(NOTE_C5, 0.25);      // 着
play_one_note(NOTE_G5, 0.3);       // 敌
play_one_note(NOTE_G5, 0.3);       // 人
play_one_note(NOTE_G5, 0.3);       // 的
play_one_note(NOTE_E5, 0.5);       // 炮
play_rest(0.25);                   // 休止符
play_one_note(NOTE_E5, 0.5);       // 火

play_one_note(NOTE_G4, 1.5);       // 前
play_one_note(NOTE_C5, 1.0);       // 进
play_one_note(NOTE_G4, 1.5);       // 前
play_one_note(NOTE_C5, 1.0);       // 进
play_one_note(NOTE_G4, 1.5);       // 前
play_one_note(NOTE_C5, 1.0);       // 进
play_one_note(NOTE_C5, 1.0);       // 进
play_rest(1.0);                    // 休止符
}

独特见解