用Arduino实现跨年倒计时
前言
在2021年到来之际,用Arduino实现新年倒计时。
一、设计思路
使用 按键 控制倒计时,从10倒计时1,然后 在OLED屏幕上显示“烟花”图像和“新年好”的图像,与此同时蜂鸣器播放“新年好”歌曲以及六个LED“星型”灯火显示。当歌曲播放结束后,屏幕显示文字“没看够?再来一次”。再按一次按键开关,灯光熄灭以及重新倒计时。
二、管脚
2-7管脚——LED小灯;
8管脚——蜂蜜器;
12管脚——按键。
二、程序如下
#include "U8glib.h"//使用u8g类库
U8GLIB_SSD1306_128X64 u8g(13,11,10,9); //OLED显示屏对应管脚
int i,j,k;
int buzzerPin=8;//蜂鸣器连接管脚
int buttonPin = 12;//按键检测管脚
int KEY_NUM=0;
int a[48]={ 523,523,523,523,392,392,659,659,659,659,523,523,
523,659,784,784,784,784,698,659,587,587,587,587,//《新年好》歌曲对应频率
587,659,698,698,698,698,659,587,659,659,523,523,
523,659,587,587,392,392,494,587,523,523,523,523};
void scanKey()
{
if(digitalRead(buttonPin)==LOW){
delay(20); //按键防抖动程序
if(digitalRead(buttonPin)==LOW){
while(digitalRead(buttonPin)==LOW); //按键被按下KEY_NUM就会+1
KEY_NUM++; }}
}
static const unsigned char x1[]PROGMEM={ //《烟花图片》对应fritzing取模
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x60,0x00,0x00,0x00,0x0F,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x80,0x01,0x00,0xC0,0x00,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x08,0x03,0x38,0x80,0xFF,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x08,0x20,0x04,0x00,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x00,
0x00,0x20,0x00,0x10,0x98,0x03,0x00,0x00,0x00,0x02,0x10,0x00,0x06,0x06,0x0C,0x00,
0x00,0x00,0x00,0x10,0x48,0x00,0x00,0x00,0x00,0x0C,0x20,0x80,0x01,0x01,0x03,0x00,
0x00,0x00,0x00,0x21,0x28,0x00,0x00,0x00,0x00,0x30,0x20,0xC0,0xC0,0x80,0x00,0x00,
0x00,0x80,0x07,0x20,0x1C,0x20,0x00,0x00,0x00,0x42,0x20,0x24,0x20,0x60,0x00,0x00,
0x80,0x0F,0x64,0x20,0x04,0x1C,0x00,0x00,0x30,0x46,0x40,0x04,0x10,0x18,0x00,0x00,
0x60,0x80,0xC0,0x60,0x06,0x03,0x80,0x07,0x60,0x98,0x42,0x04,0x08,0x06,0x00,0x00,
0x20,0x00,0x80,0x61,0xE2,0x00,0x7E,0x00,0x84,0x21,0x87,0x04,0x06,0x01,0x00,0x7C,
0x00,0x00,0x00,0xA1,0x19,0x00,0x01,0x00,0x0C,0x41,0x8C,0x04,0x82,0x00,0x80,0x03,
0x00,0x00,0x00,0xA2,0x0D,0x00,0x00,0x00,0x30,0x82,0x98,0x04,0x41,0x00,0x63,0x00,
0x00,0x00,0x40,0xA6,0x05,0x00,0x00,0x00,0x40,0x04,0x99,0x84,0x20,0xF8,0x18,0x00,
0x00,0x00,0x04,0xA4,0x00,0xFF,0x01,0x00,0x80,0x09,0x91,0x44,0x10,0x07,0x06,0x00,
0x80,0x00,0x00,0xAC,0xFC,0x00,0xC0,0x01,0x00,0x32,0x32,0x24,0xD0,0x80,0x01,0x00,
0x60,0x7C,0x00,0xB8,0x00,0x00,0x00,0x07,0x00,0x2C,0x74,0x24,0x60,0x61,0x00,0x00,
0x38,0x00,0xFE,0xB0,0x00,0x00,0x00,0x38,0x00,0x50,0x58,0x94,0x80,0x20,0x00,0x00,
0x38,0x00,0x80,0xB3,0x1E,0x00,0x00,0xF0,0x03,0xA0,0x58,0xD4,0x70,0x10,0x00,0x00,
0x14,0x00,0x00,0x22,0xFE,0x1F,0x00,0x00,0x0C,0x40,0x01,0x34,0x08,0x0C,0x00,0x00,
0x06,0x00,0x00,0x00,0x00,0xE0,0x00,0x00,0x30,0x80,0x00,0x1C,0x04,0x1C,0x00,0x00,
0x02,0x00,0xF0,0x07,0x00,0x00,0x07,0x00,0x40,0x3F,0x01,0x0E,0xC3,0x03,0x00,0x00,
0x00,0x00,0x0C,0x70,0x80,0x00,0x1C,0x00,0x80,0x01,0x06,0x00,0x41,0x02,0x00,0x00,
0x00,0x10,0x06,0x80,0x81,0x01,0x00,0x00,0xFE,0x07,0x04,0x80,0x00,0x01,0x00,0x00,
0x00,0x80,0x01,0x00,0x0E,0x30,0x00,0xF0,0x11,0x03,0x3B,0x40,0x80,0xE0,0xFF,0x1F,
0x00,0x00,0x00,0x07,0x08,0xE0,0x00,0x0F,0x0C,0x80,0x2F,0x40,0x80,0x00,0x00,0x60,
0x00,0x3E,0x80,0x00,0x10,0x00,0xC1,0x00,0x06,0xE0,0x01,0x40,0x80,0x00,0x00,0x80,
0xC0,0x01,0x40,0x00,0x60,0x00,0x3E,0x00,0x60,0x30,0x00,0x1E,0x40,0x00,0x00,0x00,
0x00,0x00,0x20,0x00,0x81,0x00,0x0E,0x00,0x10,0x10,0x00,0x3F,0x40,0x00,0x00,0x00,
0x30,0x00,0x10,0x00,0x01,0x01,0x11,0x00,0x08,0x08,0xC0,0x7F,0x40,0x00,0x00,0x00,
0x10,0x00,0x0C,0x10,0x02,0x0A,0x20,0x00,0x84,0x0C,0xC0,0x73,0x00,0xFE,0x00,0x00,
0x10,0x00,0x04,0x10,0x02,0x06,0x40,0x00,0x42,0x04,0xC0,0x73,0x00,0x00,0x0F,0x00,
0x00,0x00,0x02,0x10,0x04,0x08,0x80,0x00,0x21,0x04,0xC8,0x7F,0x00,0x00,0x70,0x00,
0x00,0x00,0x22,0x08,0x04,0x08,0x00,0x01,0x11,0x04,0x48,0x3F,0x00,0x00,0x80,0x01,
0x00,0x00,0x01,0x08,0x04,0x10,0x00,0x83,0x08,0x00,0x4F,0x1E,0x00,0x00,0x00,0x03,
0x10,0x00,0x01,0x08,0x89,0x10,0x10,0x42,0x08,0x80,0x45,0x00,0x00,0x00,0x00,0x04,
0x10,0x88,0x00,0x08,0x08,0x10,0x00,0x20,0x04,0xC4,0x42,0x00,0xC0,0x1F,0x00,0x0C,
0x10,0x80,0x00,0x08,0x08,0x20,0x00,0x24,0x04,0x24,0x42,0x00,0x00,0x60,0x00,0x08,
0x08,0x80,0x00,0x04,0x11,0x40,0x00,0x14,0x04,0x22,0x42,0x02,0x06,0x80,0x01,0x00,
0x08,0x80,0x00,0x04,0x11,0x80,0x00,0x0C,0x00,0x11,0x42,0x06,0x18,0x00,0x06,0x00,
0x08,0x40,0x00,0x04,0x00,0x80,0x00,0x08,0x00,0x11,0x41,0x04,0x60,0x00,0x0C,0x00,
0x08,0x40,0x00,0x04,0x00,0x80,0x01,0x08,0x80,0x08,0x41,0x04,0x80,0x00,0x10,0x00,
0x08,0x40,0x00,0x05,0x00,0x00,0x01,0x04,0x40,0x08,0x81,0x08,0x00,0x01,0x33,0x00,
0x08,0x40,0x00,0x04,0x00,0x00,0x00,0x04,0x40,0x84,0x80,0x08,0x00,0x02,0x26,0x00,
0x00,0x00,0x00,0x04,0x10,0x00,0x00,0x08,0x20,0x84,0x80,0x08,0x00,0x04,0x08,0x00,
0x00,0x00,0x00,0x04,0x00,0x00,0x04,0x08,0x10,0x84,0x80,0x08,0x00,0x08,0x08,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x84,0x80,0x10,0x00,0x10,0x10,0x00,
0x00,0x20,0x00,0x00,0x10,0x00,0x00,0x00,0x08,0x82,0x00,0x11,0x04,0x20,0x10,0x00,
0x00,0x20,0x00,0x04,0x30,0x00,0x00,0x00,0x08,0x82,0x00,0x21,0x08,0x40,0x30,0x00,
0x00,0x20,0x00,0x04,0x20,0x00,0x00,0x00,0x08,0x82,0x80,0x20,0x08,0x40,0x00,0x00,
0x00,0x20,0x00,0x0C,0x20,0x00,0x00,0x00,0x04,0x82,0x80,0x40,0x08,0x80,0x00,0x00,
0x00,0x20,0x00,0x08,0x20,0x00,0x00,0x00,0x04,0x82,0x80,0x40,0x08,0x00,0x01,0x00,
0x00,0x20,0x00,0x08,0x20,0x00,0x00,0x00,0x02,0x82,0x80,0x80,0x10,0x00,0x02,0x00,
0x00,0x20,0x00,0x08,0x00,0x00,0x00,0x00,0x02,0x84,0x80,0x80,0x30,0x00,0x04,0x00,
0x00,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x84,0x80,0x81,0x60,0x00,0x0C,0x00,
0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x80,0x00,0x01,0x81,0x01,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x80,0x00,0x02,0x01,0x06,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x80,0x00,0x0C,0x01,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x02,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x02,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x02,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
};
static const unsigned char x2[]PROGMEM={ //《新年快乐》对应fritzing取模
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0xE0,0x0F,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0x00,0x00,0x00,0x00,
0x00,0x00,0xC0,0xFF,0xFF,0x07,0x00,0x00,0x00,0x00,0xFE,0xFF,0x3F,0x00,0x00,0x00,
0x00,0x00,0xF8,0xFF,0xFF,0x3F,0x00,0x00,0x00,0xC0,0xFF,0xFF,0xFF,0x01,0x00,0x00,
0x00,0x00,0xFE,0xFF,0xFF,0xFF,0x01,0x00,0x00,0xF8,0xFF,0xFF,0xFF,0x07,0x00,0x00,
0x00,0x80,0xFF,0xFF,0xFF,0xFF,0x0F,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0x1F,0x00,0x00,
0x00,0xE0,0xFF,0x0F,0xE0,0xFF,0x3F,0x00,0x80,0xFF,0xFF,0x00,0xFF,0x7F,0x00,0x00,
0x00,0xF0,0x7F,0x00,0x00,0xFC,0x7F,0x00,0xE0,0xFF,0x01,0x00,0xE0,0xFF,0x00,0x00,
0x00,0xF8,0x0F,0x00,0x00,0xC0,0xFF,0x01,0xF8,0x3F,0x00,0x00,0x00,0xFF,0x01,0x00,
0x00,0xFC,0x03,0x00,0x00,0x00,0xFF,0x03,0xFC,0x0F,0x00,0x00,0x00,0xFC,0x03,0x00,
0x00,0xFE,0x00,0x00,0x00,0x00,0xFC,0x07,0xFE,0x03,0x00,0x00,0x00,0xF0,0x07,0x00,
0x00,0x7F,0x00,0x00,0x00,0x00,0xF0,0x0F,0xFF,0x00,0x00,0x00,0x00,0xE0,0x0F,0x00,
0x00,0x3F,0x00,0x00,0x00,0x00,0xC0,0x9F,0x3F,0x00,0x00,0x00,0x00,0xC0,0x0F,0x00,
0x80,0x1F,0x00,0x00,0x00,0x00,0x80,0xFF,0x1F,0x00,0x00,0x00,0x00,0x80,0x1F,0x00,
0x80,0x0F,0x00,0x00,0x00,0x00,0x00,0xFF,0x0F,0x00,0x00,0x00,0x00,0x00,0x1F,0x00,
0x80,0x0F,0x00,0x00,0x00,0x00,0x00,0xFE,0x07,0x00,0x00,0x00,0x00,0x00,0x1F,0x00,
0xC0,0x0F,0x00,0x00,0x00,0x00,0x00,0xFC,0x03,0x00,0x00,0x00,0x00,0x00,0x3F,0x00,
0xC0,0x07,0x00,0x08,0x00,0x00,0x00,0xF8,0x01,0x00,0x00,0x00,0x00,0x00,0x3E,0x00,
0xC0,0x07,0x00,0x18,0x80,0x03,0x01,0xF0,0x04,0x04,0x00,0x80,0x0F,0x00,0x3E,0x00,
0x80,0x07,0x00,0x10,0x7C,0x80,0x00,0x00,0x04,0x04,0xC0,0x7F,0x00,0x00,0x3E,0x00,
0x80,0x0F,0x00,0xFF,0x05,0x80,0xFF,0x3F,0x04,0x04,0x40,0x00,0x00,0x00,0x3E,0x00,
0x80,0x0F,0x00,0x82,0x04,0x40,0x40,0x00,0xCC,0xFF,0x40,0x20,0x00,0x00,0x1F,0x00,
0x80,0x0F,0x00,0x46,0x04,0x40,0x40,0x00,0x1D,0x84,0x60,0x20,0x00,0x00,0x1F,0x00,
0x80,0x1F,0x00,0x24,0x04,0x20,0x40,0x00,0x35,0x84,0x60,0x20,0x00,0x00,0x1F,0x00,
0x00,0x1F,0x80,0xFF,0x05,0x30,0x40,0x00,0x25,0x84,0x60,0x20,0x00,0x80,0x1F,0x00,
0x00,0x3F,0x00,0x00,0xFC,0x93,0xFF,0xBF,0x04,0x84,0x60,0x20,0x00,0xC0,0x0F,0x00,
0x00,0x3F,0x00,0x10,0x44,0x80,0x40,0x80,0x04,0x84,0xE0,0xFF,0x3F,0xC0,0x0F,0x00,
0x00,0x7E,0x00,0x10,0x44,0x80,0x40,0x80,0x04,0x84,0x00,0x20,0x00,0xE0,0x07,0x00,
0x00,0xFC,0x00,0xFF,0x44,0x80,0x40,0x00,0xE4,0xFF,0x03,0x21,0x02,0xF0,0x03,0x00,
0x00,0xFC,0x01,0x10,0x44,0x80,0x40,0x00,0x04,0x0C,0x80,0x21,0x04,0xF8,0x03,0x00,
0x00,0xF8,0x03,0x52,0x44,0xF0,0xFF,0x7F,0x04,0x0A,0xC0,0x20,0x0C,0xFC,0x01,0x00,
0x00,0xF0,0x07,0x51,0x42,0x00,0x40,0x00,0x04,0x1A,0x60,0x20,0x18,0xFE,0x00,0x00,
0x00,0xE0,0x0F,0x91,0x42,0x00,0x40,0x00,0x04,0x11,0x30,0x20,0x30,0x7F,0x00,0x00,
0x00,0xC0,0x9F,0x90,0x43,0x00,0x40,0x00,0x84,0x31,0x18,0x20,0xE0,0x3F,0x00,0x00,
0x00,0x80,0x3F,0x10,0x41,0x00,0x40,0x00,0xC4,0x60,0x08,0x20,0xC0,0x3F,0x00,0x00,
0x00,0x00,0xFF,0x8F,0x40,0x00,0x40,0x00,0x64,0xC0,0x01,0x1E,0xF0,0x1F,0x00,0x00,
0x00,0x00,0xFE,0x01,0x00,0x00,0x00,0x00,0x34,0x00,0x03,0x00,0xF8,0x07,0x00,0x00,
0x00,0x00,0xFC,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0x03,0x00,0x00,
0x00,0x00,0xF8,0x0F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x01,0x00,0x00,
0x00,0x00,0xE0,0x3F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0x7F,0x00,0x00,0x00,
0x00,0x00,0xC0,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0x3F,0x00,0x00,0x00,
0x00,0x00,0x00,0xFF,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0xF8,0x0F,0x00,0x00,0x00,
0x00,0x00,0x00,0xFE,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0x07,0x00,0x00,0x00,
0x00,0x00,0x00,0xF8,0x3F,0x00,0x00,0x00,0x00,0x00,0x80,0xFF,0x01,0x00,0x00,0x00,
0x00,0x00,0x00,0xE0,0xFF,0x00,0x00,0x00,0x00,0x00,0xF0,0x7F,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0xC0,0xFF,0x03,0x00,0x00,0x00,0x00,0xFC,0x3F,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0xFF,0x1F,0x00,0x00,0x00,0x80,0xFF,0x0F,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0xFC,0xFF,0x00,0x00,0x00,0xE0,0xFF,0x03,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0xE0,0xFF,0x03,0x00,0x00,0xFC,0x7F,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x80,0xFF,0x1F,0x00,0x80,0xFF,0x1F,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0xFE,0xFF,0x01,0xF8,0xFF,0x07,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0xF0,0xFF,0x0F,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x80,0xFF,0xFF,0xFF,0x1F,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0xFF,0xFF,0x07,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x0F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
};
static const unsigned char x3[]PROGMEM={ //《没看够,再来一次》对应fritzing取模
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x08,0x00,0x00,0xC0,0x83,0x80,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x30,0xFE,0xE0,0x3F,0xC0,0xC0,0xC0,0x07,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x20,0x82,0x00,0x0C,0xC0,0xCF,0x4F,0x08,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x82,0xE0,0xFF,0x23,0x28,0x0C,0x18,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x08,0x83,0x07,0x06,0x20,0x18,0x06,0x18,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x98,0x01,0x00,0x02,0xF0,0xC9,0x03,0x08,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x20,0x00,0xF0,0xFF,0x2F,0x89,0x01,0x0C,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0xFF,0x01,0x01,0x20,0x69,0x01,0x06,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x20,0x82,0x81,0xFF,0x23,0xB9,0x01,0x03,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x30,0x82,0xC0,0x00,0x22,0x89,0x1F,0x03,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x10,0x44,0xB0,0xFF,0x23,0x49,0x08,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x10,0x38,0x98,0x00,0xE2,0x29,0x04,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x18,0x38,0x80,0xFF,0x23,0x98,0x03,0x03,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x08,0xC6,0x80,0x00,0x02,0x84,0x01,0x03,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0xC8,0x01,0x87,0xFF,0x03,0x64,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x82,0x1F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0xC0,0xFF,0x1F,0x40,0x00,0x00,0x00,0x02,0x01,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x20,0x00,0xFF,0x3F,0x00,0x00,0x86,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x20,0x00,0x40,0x00,0x00,0x00,0x8C,0xFF,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0xFF,0x07,0x42,0x08,0x00,0x00,0x48,0xC0,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x21,0x04,0x44,0x0C,0x00,0x00,0x40,0x44,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x21,0x04,0x48,0x02,0x00,0x00,0x20,0x44,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0xFF,0x07,0x40,0x80,0xFF,0xFF,0x00,0x66,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x21,0x84,0xFF,0x3F,0x00,0x00,0x18,0x06,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x21,0x04,0xE0,0x00,0x00,0x00,0x08,0x0A,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x21,0x04,0x50,0x01,0x00,0x00,0x04,0x0A,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0xE0,0xFF,0x3F,0x48,0x02,0x00,0x00,0x04,0x11,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x01,0x04,0x46,0x04,0x00,0x00,0x82,0x10,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x01,0x04,0x41,0x18,0x00,0x00,0x42,0x20,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x01,0xC4,0x40,0x60,0x00,0x00,0x20,0xC0,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x81,0x07,0x40,0x00,0x00,0x00,0x18,0x80,0x01,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,};
void draw1(){ u8g.drawXBMP(0,0,128,64,x1);}//将三个数组放入三个函数中
void draw2(){ u8g.drawXBMP(0,0,128,64,x2);}
void draw3(){ u8g.drawXBMP(0,0,128,64,x3);}
void setup()
{
for(i=2;i<=7;i++)
pinMode(i,OUTPUT);//LED小灯管脚定义为输出
pinMode(buttonPin,INPUT_PULLUP); //按键管脚定义为输入
pinMode(buzzerPin,OUTPUT);//蜂鸣器管脚定义为输出
}
void loop()
{
scanKey();//按键函数
if(KEY_NUM%2==1){
for(k=9;k>=1;k--){ //进入倒计时
u8g.firstPage();
do{
u8g.setPrintPos(50,50);
u8g.setFont(u8g_font_fub30);
u8g.print(k);
}while(u8g.nextPage());
tone(buzzerPin,700);//倒计时同时蜂鸣器发出500ms声音
delay(500);
noTone(buzzerPin);
delay(500);}
u8g.firstPage();do draw1();while(u8g.nextPage());
//显示烟花图片
for(i=2;i<=3;i++)//小灯依次点亮
{ digitalWrite(2,1);
delay(200);
digitalWrite(3,1);
digitalWrite(4,1);
delay(200);
digitalWrite(5,1);
digitalWrite(6,1);
delay(200);
digitalWrite(7,1);
delay(200);
}
u8g.firstPage();do draw2();while(u8g.nextPage());
//第二张图片《新年快乐》
for(i=2;i<=7;i++)
digitalWrite(i,0);
delay(100);
digitalWrite(2,1);
delay(100);
digitalWrite(3,1);
digitalWrite(4,1);
delay(100);
digitalWrite(5,1);
digitalWrite(6,1);
delay(100);
digitalWrite(7,1);
delay(300);
//再次点亮
u8g.firstPage();do draw1();while(u8g.nextPage());
for(int i=2;i<=11;i++)//蜂鸣器第一句歌词
{ tone(buzzerPin,a[i]);
delay(250);}
for(i=2;i<=7;i++)
digitalWrite(i,0);
delay(250);
for(j=0;j<=2;j++)
{ for(i=2;i<=7;i++)
digitalWrite(i,1);
delay(100);
}
u8g.firstPage();do draw2();while(u8g.nextPage());
for(int i=12;i<=21;i++)//第二句
{ tone(buzzerPin,a[i]);
delay(250);}
for(i=2;i<=7;i++)
digitalWrite(i,0);
delay(200);
digitalWrite(2,1);
delay(100);
digitalWrite(3,1);
digitalWrite(4,1);
delay(100);
digitalWrite(5,1);
digitalWrite(6,1);
delay(100);
digitalWrite(7,1);
delay(300);
u8g.firstPage();do draw1();while(u8g.nextPage());
for(int i=24;i<=35;i++)//第三句
{ tone(buzzerPin,a[i]);
delay(250);}
for(i=2;i<=7;i++)
digitalWrite(i,0);
delay(100);
for(j=0;j<=2;j++)
{ for(i=2;i<=7;i++)
digitalWrite(i,1);
delay(100);
}
u8g.firstPage();do draw2();while(u8g.nextPage());
for(int i=36;i<=45;i++)//第四句
{ tone(buzzerPin,a[i]);
delay(250);}
delay(1000);
noTone(buzzerPin);
u8g.firstPage();do draw3();while(u8g.nextPage());
//播放完之后显示图片《没看够?再来一次》
}else{
noTone(buzzerPin);
for(i=2;i<=7;i++)//再按一次,灯光熄灭
digitalWrite(i,0);
delay(100);
u8g.firstPage();do draw3();while(u8g.nextPage());
}}
总结
一学期Arduino获益匪浅,为以后嵌入式学习打下了一个很好的基础,收官!
同时祝大家新年快乐,事事开心!!!