首页/作品列表/小型多功能生日灯
小型多功能生日灯
9470 0
主要内容
项目背景:
        设计目的:
我们想设计一个给人过生日的套装,希望这个东西可以给寿星们带来一个很特别的生日
      产品运行规则:
              在等开灯时,大家大喊“生日快乐”,音乐响起,大家在开心的氛围下,拿出蛋糕插下蜡烛。关灯,在寿星准备吹蜡烛时,按下开关, 柔和的灯光亮起来,寿星吹熄蜡烛,众人闭眼许愿,许完愿望后,灯渐渐熄灭,营造了一个很好,很温馨的气氛。

制作清单:
1.硬件清单
电池盒,核心模块MC,传感器接口板,声音强度传感器,多彩LED,蜂鸣器,碰撞开关,光敏传感器
2.造型制作
           采用了生日单搞的造型切合主题,灯藏在了花中,更加美丽。
3.程序代码


#include
#include

#define LED_PIN 6
#define LED_NUM 2
#define buzzer_pin 8 //定义蜂鸣器引脚
#define Light_PIN1 A0 //定义光敏传感器引脚为A0
#define Sound_PIN0 A2 //定义声音传感器引脚为A2
#define PIN_Key 4 //定义开关引脚
#define B0 31
#define C1 33
#define CS1 35
#define D1 37
#define DS1 39
#define E1 41
#define F1 44
#define FS1 46
#define G1 49
#define GS1 52
#define A1 55
#define AS1 58
#define B1 62
#define C2 65
#define CS2 69
#define D2 73
#define DS2 78
#define E2 82
#define F2 87
#define FS2 93
#define G2 98
#define GS2 104
#define A_2 110
#define AS2 117
#define B2 123
#define C3 131
#define CS3 139
#define D3 147
#define DS3 156
#define E3 165
#define F3 175
#define FS3 185
#define G3 196
#define GS3 208
#define A3 220
#define AS3 233
#define B3 247
#define C4 262
#define CS4 277
#define D4 294
#define DS4 311
#define E4 330
#define F4 349
#define FS4 370
#define G4 392
#define GS4 415
#define A4 440
#define AS4 466
#define B4 494
#define C5 523
#define CS5 554
#define D5 587
#define DS5 622
#define E5 659
#define F5 698
#define FS5 740
#define G5 784
#define GS5 831
#define A5 880
#define AS5 932
#define B5 988
#define C6 1047
#define CS6 1109
#define D6 1175
#define DS6 1245
#define E6 1319
#define F6 1397
#define FS6 1480
#define G6 1568
#define GS6 1661
#define A6 1760
#define AS6 1865
#define B6 1976
#define C7 2093
#define CS7 2217
#define D7 2349
#define DS7 2489
#define E7 2637
#define F7 2794
#define FS7 2960
#define G7 3136
#define GS7 3322
#define A7 3520
#define AS7 3729
#define B7 3951
#define C8 4186
#define CS8 4435
#define D8 4699
#define DS8 4978
DigitalKey keyDigital(PIN_Key); //定义开关参数
boolean sta = false; //定义布尔变量为假

ColorLED strip = ColorLED (LED_NUM, LED_PIN);
int i; //定义一个整数变亮
int Sound; //定义一个整数变量state
int Light; //定义一个整数变量state
int notes0[] = {
C4, C4, D4, C4, F4, E4, C4, C4, D4, C4, G4, F4, C4,b
C4, C5, A4, F4, E4, D4, AS4, AS4, A4, F4, G4, F4,

};
byte beats0[] = {
1, 1, 2, 2, 2, 4, 1, 1, 2, 2, 2, 4, 1,
1, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 4,



};
int tempo0 = 220; //设定播放速率
int songLength0 = sizeof(beats0); //定义歌曲长度


void setup() {
strip.begin();
pinMode(buzzer_pin, OUTPUT); //定义蜂鸣器引脚为输出状态
pinMode(Sound_PIN0, INPUT); //设置光敏传感器引脚为输入状态
pinMode(Light_PIN1, INPUT); //设置光敏传感器引脚为输入状态

Serial.begin(9600); //设置串口波特率为9600
keyDigital.begin(INPUT_PULLUP); //设置开关引脚为输入状态
}
void loop() {
Sound = analogRead(Sound_PIN0);
Serial.print("Sound:");
Serial.print(Sound);

Light = analogRead(Light_PIN1);
Serial.print(" Light:");
Serial.println(Light);
delay(500);



if (Light < 150 && keyDigital.readEvent()==SHORT_PRESS) {
sta = !sta; //反转布尔变量值
noTone(buzzer_pin); //蜂鸣器关闭
for (int i = 255; i >= 0; i--) {
strip.setPixelColor(0, i, 0, 0);
strip.show();

delay(100); //延时1秒
}
} else {
strip.setPixelColor(0, 0, 0, 0);
strip.show();

}


if (Light >= 150 && Sound >= 20)
for ( int i = 0; i < songLength0; i++) {
int beatD0 = tempo0 * beats0[i]; //将节奏值转化为毫秒值
tone(buzzer_pin, notes0[i], beatD0); //播放音乐
int pauseB0 = beatD0 * 1.2; //设置声音间隔
delay(pauseB0); //播放间隔
}
}



团队分工:
      牛灵星:程序设计

      王丽娜:PPT制作

      丁炜玉:外观设计制作


所需硬件
暂无数据!
代码展示

1. 小型多功能生日灯

编程语言: C/C++(Arduino)

软件工具:Arduino IDE 1.8.4


附件下载
  • 资料展示
  • 视频.zip
  • 程序和PPT.zip
0
大牛,别默默的看了,快登录帮我点评一下吧!

立即注册