这还是在禹州那边弄的,应该是在10月8日的时候,怀念一下当初的设计。

我们的蜂鸣器弄的音乐是自己在乐谱上扣的,如果想要学习请点击以下,

学习怎样Arduino蜂鸣器演奏音乐

目录

1.led8*8点阵

2.这是我们的蜂鸣器音乐(当然不可能只是简单的音乐,这其中的led灯会跟随着音乐的频率进行流水以及呼吸)

3.这是我们的呼吸三位数码管(数字跑的时间会加快,以及在666和888会进行变速的呼吸)

4.最后放几张图怀念一下

1.led8*8点阵

学习点阵,学习8*8点阵(引脚的连接和这个是一样的)

其实先在8*8开发板上设计好相应的图案然后转换每一列装换成对应的16进制,这个可以用字模提取器进行提取

代码看我写的注释,理解一下

/*国庆项目*/
int leds[8] = {6, 11, 5, 9, 14, 4, 15, 2}; //正引
int gnds[8] = {10, 16, 17, 7, 3, 8, 12, 13}; //负引
//字库
char test[] = {
0x7,0x38,0x49,0x4a,0xdc,0xdc,0x4a,0x41,//庆
0x00,0x3c,0x24,0x24,0xff,0x24,0x24,0x3c,//中
0x00,0xff,0x81,0xd3,0xff,0xd3,0x85,0xff, 0x00, 0x00, 0x00,//国
0x00, 0x80, 0x8E, 0x90, 0xA0, 0xC0, 0x00, 0x00, // -7-
0x00, 0x7C, 0x8A, 0x92, 0xA2, 0x7C, 0x00, 0x00,//-0-
0x00,0x7f,0x88,0xaf,0xfd,0xaf,0x88,0xff,0x00,0x00,//周
0x14,0x24,0xcc,0x54,0x7f,0x54,0x54,0x04,0x00,0x00,//年
};
char tanke[] = {0x07,0x3d,0x3f,0x3d,0x17,0x15,0x07,0x10,//坦克  0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x00,//子弹};
//倒计时
char testnumber[] = {  0x00,0x00,0x00,0x74,0x5C,0x00,0x00,0x00,//小5
0x00,0x00,0x74,0x54,0x54,0x5C,0x00,0x00,//中5
0x00,0xE4,0xA2,0xA2,0xA2,0x9C,0x00,0x00,//大5
0x00,0x00,0x08,0x18,0x3C,0x00,0x00,0x00,//小4
0x00,0x00,0x18,0x28,0x7C,0x00,0x00,0x00,//中4
0x00,0x38,0x48,0x88,0xFE,0x08,0x00,0x00,//大4
0x00,0x00,0x54,0x54,0x6C,0x00,0x00,0x00,//小3
0x00,0x00,0x54,0x54,0x54,0x7C,0x00,0x00,//中3
0x00,0x84,0x82,0x92,0xB2,0xCC,0x00,0x00,//大3
0x00,0x00,0x4C,0x54,0x64,0x00,0x00,0x00,//小2
0x00,0x00,0x5C,0x54,0x54,0x74,0x00,0x00,//中2
0x00,0x00,0x46,0x8A,0x92,0x82,0x62,0x00,//大2
0x00,0x00,0x00,0x00,0x38,0x00,0x00,0x00,//小1
0x00,0x00,0x00,0x24,0x7C,0x04,0x00,0x00,//中1
0x00,0x00,0x00,0x42,0xFE,0x02,0x00,0x00,//大1
};
//升旗
char shenqi[] = {
0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0xFF,0x02,0x02,0x04,0x04,0x02,0x03,
0x00,0xFF,0x04,0x04,0x02,0x02,0x04,0x07,
0x00,0xFF,0x08,0x08,0x04,0x04,0x08,0x0F,
0x00,0xFF,0x11,0x11,0x22,0x22,0x11,0x1F,
0x00,0xFF,0x44,0x44,0x88,0x88,0x44,0x7C,
0x00,0xFF,0x88,0x88,0x44,0x44,0x88,0xF8,
};
char guoqi[] = {
0x00,0xFF,0x44,0x44,0x88,0x88,0x44,0x7C,
0x00,0xFF,0x88,0x88,0x44,0x44,0x88,0xF8,
};
//爆炸
char yanhua[] = {
0x00,0x00,0x00,0x10,0x28,0x10,0x00,0x00,//爆炸特效
0x00,0x00,0x10,0x28,0x44,0x28,0x10,0x00,
0x00,0x10,0x28,0x44,0x82,0x44,0x28,0x10,
0x00,0x10,0x44,0x00,0x82,0x00,0x44,0x10,
0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,//升起
0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,//升起
0x00,0x00,0x00,0x00,0x10,0x00,0x00,0x00,//升起
0x00,0x00,0x00,0x10,0x28,0x10,0x00,0x00,
0x00,0x00,0x10,0x28,0x44,0x28,0x10,0x00,
0x00,0x10,0x28,0x44,0x82,0x44,0x28,0x10,
0x00,0x10,0x44,0x00,0x82,0x00,0x44,0x10,
};
void ledclean()
{for (int i = 0; i < 8; i++)//将点阵屏正极ladies,负极拉高,关断显示{   digitalWrite(leds[i], LOW);digitalWrite(gnds[i], HIGH);}}
//字符显示
void ledShow(char num, char dat)//每一列的16进制传到这里都会被读入然后亮灯
{  digitalWrite(gnds[num], LOW);for (int i = 0; i < 8; i++){digitalWrite(leds[i], dat & 0x80); // 1 0 0 0 0 0 0 0dat <<= 1;}delayMicroseconds(100);digitalWrite(gnds[num], HIGH);ledclean();
}
void xs(char ha[],int b,int time,int tt)//这里进行了一个小封装
{ for (int a = 0; a <=b; a+=tt) {//控制流动for (int i = 0 ; i < time ; i++)    {//控制显示的时间for (int c = 0; c < 8; c++) {//列循环扫描,扫描8列,显示整个点阵ledShow(c, ha[c + a]);}}}
}
void setup() {for (int i = 0; i < 8; i++){pinMode(leds[i], OUTPUT);pinMode(gnds[i], OUTPUT);digitalWrite(gnds[i], HIGH); //负极引脚拉高,熄灭所有LED}}
void loop() {xs(testnumber,112,300,8);//倒计时xs(shenqi,48,500,8);int t;t=4;while(t--){                                xs(guoqi,8,300,8);//国旗飘动}xs(yanhua,80,300,8);//烟花xs(tanke,8,100,1);//坦克发射t=5;while(t--){xs(test,55,100,1);//流动字幕xs(yanhua,80,300,8);//烟花 }
}

2.这是我们的蜂鸣器音乐(当然不可能只是简单的音乐,这其中的led灯会跟随着音乐的频率进行流水以及呼吸)

想学自己做乐谱的点击学习怎样Arduino蜂鸣器演奏音乐

//音乐歌唱祖国#define NTF0 -1
#define NTF1 350
#define NTF2 393
#define NTF3 441
#define NTF4 495
#define NTF5 556
#define NTF6 624
#define NTF7 661#define NTFL1 175
#define NTFL2 196
#define NTFL3 221
#define NTFL4 234
#define NTFL5 262
#define NTFL6 294
#define NTFL7 330#define NTFH1 700
#define NTFH2 786
#define NTFH3 882
#define NTFH4 935
#define NTFH5 1049
#define NTFH6 1178
#define NTFH7 1322//列出全部D调的频率
#define WHOLE 1
#define HALF 0.5
#define QUARTER 0.25
#define EIGHTH 0.125
#define SIXTEENTH 0.0625
//列出所有节拍
int tune1[] =
{NTF1,NTF1,NTF1,NTFL5,NTF3,NTF1,NTF5,NTF6,NTF5,NTF5,NTF5,NTF6,NTF6,NTF6,NTF5,NTF4,NTF6,NTF5,NTF5,NTF5,NTF5,NTF6,NTF6,NTF2,NTF2,NTF2,NTF5,NTF4,NTF3,NTFL5,NTFL5,NTF5,NTF5,NTF6,NTF5,NTF4,NTF3,NTF2,NTF1,NTF1,NTF5,NTF5,NTFH1,NTFH1,NTF6,NTF6,NTF5,NTF4,NTF5,NTF6,NTF2,NTF2,NTF5,NTF5,NTF6,NTF5,NTF4,NTF3,NTF2,NTF1,NTF1,NTF0,NTF1,NTFL5,NTF3,NTF3,NTF0,NTF3,NTF1,NTF6,NTF6,NTF0,NTFL6,NTFL6,NTF2,NTF2,NTF3,NTF2,NTF1,NTFL7,NTFL6,NTFL5,NTF1,NTFL5,NTFL6,NTFL6,NTFL5,NTF1,NTF2,NTF3,NTF0,NTF2,NTF6,NTF6,NTF5,NTF5,NTF3,NTF2,NTF6,NTF5,NTF0,NTFH1,NTFH1,NTFH1,NTFH1,NTF5,NTF6,NTF1,NTF6,NTF5,NTF4,NTF6,NTF5,NTF0,NTFH1,NTFH1,NTFH1,NTFH1,NTF5,NTF5,NTF6,NTF5,NTF4,NTF3,NTF2,NTF1,NTFL5,NTFL5,
};
float durt1[]=
{0.5+0.25,0.25,1,1,1,1,1+0.5,0.5,1,0.5+0.25,0.25,1,1,0.5+0.25,0.25,0.5,0.5,1+1,1,0.5+0.25,0.25,1,1,1,0.5+0.25,0.25,1+0.5,0.5,1,0.5+0.25,0.25,1,0.5,0.5,0.5,0.5,0.5,0.5,1+1,1,0.5+0.25,0.25,1,1,1,0.5+0.25,0.25,1+0.5,0.5,1,0.5+0.25,0.25,1,0.5,0.5,0.5,0.5,0.5,0.5,1+1,1+0.5,0.5,0.5+0.25,0.25,1,1+0.5,0.5,0.5+0.25,0.25,1,1+0.5,0.5,1+0.5,0.5,1,0.5+0.25,0.25,0.5,0.5,0.5,0.5,1+1,1,1,0.5,1,0.5,1,1,1,1,1,0.5,0.5,0.5,1,0.5,1,1,1,0.5,0.5,0.5+0.25,0.25,0.5,0.5,1+0.5,0.5,0.5+0.25,0.25,0.5,0.5,1,1,0.5+0.25,0.25,0.5,0.5,1,0.5,0.5,0.5,0.5,0.5,0.5,1,0.5+0.25,0.25,
};
int length;
int tonepin=1;   //得用6号接口
int led[] = {2,4,7,8,10,11,12,13};
int huxi[] ={5,6,9};
void setup()
{pinMode(tonepin,OUTPUT);for(int i=0;i<8;i++){pinMode(led[i],OUTPUT); }for(int i=0;i<3;i++){pinMode(huxi[i],OUTPUT); }length=sizeof(tune1)/sizeof(tune1[0]);   //计算长度
}
void loop()
{for(int i=0;i<3;i++){digitalWrite(huxi[i],1);delay(100);}//小三角逐个亮起for(int i=0;i<8;i++){digitalWrite(led[i],1);delay(100);}//箭头型led逐个亮起delay(1000);for(int i=0;i<8;i++){digitalWrite(led[i],0);delay(500);}//箭头型灯逐个灭掉for(int i=0;i<3;i++){digitalWrite(huxi[i],0);delay(500);}//小三角灯逐个灭掉int bright = 0,f = -15;int k=0;for(int x=0;x<length;x++){k++;if(k<45){//两个led流水digitalWrite(led[k%8],1);digitalWrite(led[(k+1)%8],1);}else{for(int i=0;i<8;i++){//箭头型的led跟随音乐的节奏一起闪烁digitalWrite(led[i],1);}}tone(tonepin,tune1[x]); //音调if(bright==0||bright==255){f =  -f;}bright+=f;for(int i=0;i<3;i++){//小三角型led灯跟随音乐的节拍一起呼吸analogWrite(huxi[k%3],bright);}delay(400*durt1[x]);//节拍进行延时if(k<45){digitalWrite(led[k%8],0);digitalWrite(led[(k+1)%8],0);}else{for(int i=0;i<8;i++){digitalWrite(led[i],0);}}delay(100*durt1[x]); //这里用来根据节拍调节延时,500这个指数可以自己调整,在该音乐中,我发现用500比较合适。noTone(tonepin);}
}

3.这是我们的呼吸三位数码管(数字跑的时间会加快,以及在666和888会进行变速的呼吸)

#define dw digitalWrite
#define uint unsigned int
uint data[][10]={
{1,2,3,7,4,5,0},//0
{2,3,0},//1
{1,2,4,5,6,0},//2
{1,2,3,4,6,0},//3
{2,3,7,6,0},//4
{1,7,6,3,4,0},//5
{1,7,6,3,4,5,0},//6
{1,2,3,0},//7
{1,2,3,4,5,6,7,0},//8
{1,7,6,2,3,4,0}//9
};
bool flag = true;
uint p = 0;
//点亮一位数字
void ledstart(uint n,uint k)
{if(k%3==0){dw(9,1),dw(10,0),dw(11,0);}else if(k%3==1){dw(9,0),dw(10,1),dw(11,0);}else{dw(9,0),dw(10,0),dw(11,1);}for(uint i = 0;i<9;i++) //初始化数码管dw(i,1);for(uint i = 0;data[n][i]!=0;i++)dw(data[n][i],0);
}
void setup()
{for(uint i = 0;i<12;i++){pinMode(i,OUTPUT);dw(i,1);}
}
void loop()
{dw(11,1);for(uint p = 0;p<9;p++){for(uint i = 0;i<9;i++){for(uint j = 0;j<9;j++){if(p==6 && i==6 && j==6)//当数码管显示666时进行呼吸{ledstart(p,11);ledstart(i,9);ledstart(j,10); //dw(11,0);int kk = 0;for(int b=0;b<50;b++){for (int a=0;a <= 255; a = a+kk){kk +=1;//呼吸加快,由弱变强analogWrite(11,a);analogWrite(10,a);analogWrite(9,a);delay(50);}//由强变弱for(int a = 255;a >= 0;a = a-kk){analogWrite(11,a);analogWrite(10,a);analogWrite(9,a);delay(50);}}}if(p==8&&i==8&&j==8){ //当数码管显示888时进行闪烁for(int d=0;d<30;d++){ledstart(p,11);ledstart(i,9);ledstart(j,10); dw(11,HIGH);dw(10,HIGH);dw(9,HIGH);delay(100);dw(11,LOW);dw(10,LOW);dw(9,LOW);delay(100); }}int q = 14;//变化的时间if((p>=6&&i>=6&&j>6)||p>=7){q = 3;//666之后加快变化}for(uint k = 0;k<q;k++){ledstart(p,11);delay(2);//个位ledstart(i,9);delay(2);//十位ledstart(j,10);delay(2);//个位}}}}}

4.最后放几张图怀念一下

Arduino小项目设计(蜂鸣器与呼吸流水灯结合,以及led点阵)相关推荐

  1. 八位流水灯的verilog代码_Arduino入门 第七节-彗星灯 呼吸流水灯

    在前面的课程中,我们学习了流水灯.呼吸灯的实现方法,本期课程我们将把呼吸灯和流水灯"组合"到一起,做一个"呼吸流水灯"的效果.呼吸流水灯,实际上就是" ...

  2. 微型计算机系统与接口流水灯,单片机的LED流水灯系统设计2.doc

    单片机的LED流水灯系统设计2 学号:0809111030 2010 - 2011学年 第2学期 <单片机应用技术> 课 程 设 计 报 告 题 目: 单片机的LED流水灯系统设计 专 业 ...

  3. Arduino笔记-呼吸流水灯

    目录 基本概念 代码及演示 基本概念 首先是Arduino上的基本概念: 带波浪线的引脚有模拟输出的功能,也就是对应 analogWrite 这个函数,这个函数有2个参数,一个参数是引脚号,第二个是一 ...

  4. 51单片机流水灯:控制LED亮暗顺序

    我这个是笨方法,就是根据需要LED位置,将二进制转化为16进制去控制其亮. 比如让LED灯按照从右往左数1,3,5,7,8,6,4,2的顺序依次亮,就根据二进制转16进制的表 表示出来即可,代码如下: ...

  5. Arduino程序设计(一) 流水灯+呼吸灯

    LED灯程序设计 前言 一.LED灯的程序设计1 -- 频闪灯 二.LED灯的程序设计2 -- 流水灯 三.LED灯的程序设计3 -- 呼吸灯 总结 参考文献 前言 本文主要介绍三种LED灯的程序设计 ...

  6. 蓝桥杯51单片机之利用中断同时控制流水灯、数码管、独立按键、蜂鸣器【单片机开发初学者有趣综合案例】

    文章目录 一.流水灯与数码管 二.独立按键.数码管.流水灯.蜂鸣器 一.流水灯与数码管 流水灯不断左移,通过外部中断0来控制数码管的显示. #include <reg52.h> #defi ...

  7. 基于Verilog-HDL实现会呼吸的流水灯

    本文之前写的结合基于Verilog实现呼吸灯以及至芯很久之前的视频,在腾讯课堂,免费的.实现了会呼吸的流水灯(纯粹感觉挺好玩的,工程以及实现的思路 关注公众号:果冻空间 回复:others-002 即 ...

  8. 51单片机小白零基础教程——点亮第一个小灯以及流水灯(附原理图、代码详细讲解)

    点亮第一个小灯以及流水灯 一.LED灯电路图分析 (1)LED灯的描述 (2)LED灯在电路图中的分析 (3)主控电路分析 二.如何利用Keil uVision4创建一个程序 三.Stc-isp烧录软 ...

  9. 流水灯verilog实验原理_流水灯实验

    前面的课程都是用arduino控制一个器件,要么亮,要么暗.在本课中,您将进行一个简单但有趣的实验 – 使用LED来创建流动的LED灯.顾名思义,这些流动的灯由连续八个LED连续点亮并逐渐变暗,就像流 ...

最新文章

  1. python:urllib2.URLError urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed
  2. hibernate课程 初探单表映射3-1 hibernate单表操作简介
  3. nssl1470-X【并查集,素数】
  4. oracle备份磁盘头,ASM 磁盘头信息备份
  5. 【OC底层】OC对象本质,如 isa, super-class
  6. 高价买的博客网站织梦模板
  7. oracle edit历史,OGG-00952---oracle goldengate无法purge历史表和mark表处理一例
  8. 关于React中状态保存的研究
  9. java+poodle漏洞修复_SSL3.0 POODLE漏洞修复方案
  10. QT--以共享的方式发布应用,QT依赖库
  11. 【写给以前的自己】python中,既生list何生tuple?简论学习数据结构(e.g.哈希化)对自己的提升
  12. SQL导入/导出Excel
  13. 源代码仓库选择-gitlab
  14. 树莓派安装vsftp过程中遇到的坑
  15. echarts 热力图(中国地图版)
  16. iOS 常见的URL Schemes
  17. 考研计算机时间安排表,2019计算机考研这份复习时间表让你自律
  18. 配流07—基于BPR函数的Frank Wolfe算法
  19. 阿里天池“水果店小系统”的python实现
  20. 寒江独钓 Windows内核安全编程

热门文章

  1. 使用 Powerapps 过程中解决过的问题 - 4 - 根据在搜索框中输入文本自动对数据源中不同的字段进行过滤和显示
  2. 2022-2028全球与中国语音生物识别市场现状及未来发展趋势
  3. K-均值聚类算法(Python,机器学习 ,绘图)
  4. CRMEB开源打通版,值得一试的免费商城
  5. 2022年全球市场脱脂小麦胚芽粉总体规模、主要生产商、主要地区、产品和应用细分研究报告
  6. 抖音反编译:android反编译之最新版本抖音(v7.7.0)安卓版反编译教程
  7. Mandelbrot命令行实现
  8. 基于STM32的移动视频监控系统
  9. 无线网dhcp服务器租期,缺省情况下,DHCP服务器分配IP地址的租期为()。
  10. Hbase慢请求常规排查流程