毕业设计| STM32F103全彩FFT音乐频谱+LED年历闹钟显示
大家好,我是写代码的篮球球痴,今天在后台看到有人想找毕业设计的点子。
然后我今天刚好看到一个不错的点子,给大家分享
看今天分享的毕设是来自点-凡自制的FTF音乐频谱制作,先来看展示效果:
——视频出处:B站点-凡
工作原理
上面演示的音乐频谱工作原理:
通过电脑,手机等外部设备3.5mm耳机孔,输出音频信号,然后经过继电器模块的音源选择后,继电器模块的输出分为两路:一路给有源音响播放音乐;一路经过音频信号调理电路,输入到STM32单片机的引脚进行采样和AD转换后,由程序进行FFT变换,并将FFT变换结果的幅值谱显示在LED全彩显示屏上。
语音播放模块用于播放闹钟语音报时及闹铃音乐。默认情况下继电器模块选择外界设备的音源,当闹钟时间到时,继电器动作切换为语音模块音源。
硬件构成
1)STM32F103核心板
2)全彩LED显示屏单元板 P4 64*32 (16扫,75接口)满足此条件的LED屏都行,大家可以上某宝买
3)DS3231模块
4)双路继电器模块
5)DY-SV5W语音模块
6)按键模块(自制)
7)音频调理电路(自制)
8)若干个3.5mm音频母座,一条3.5mm公对公音频线
9)16P的牛角座及其16P的灰排线
10)能够提供3A左右的5V直流电源一个,可以是开关电源或电源适配器
另外,由于LED显示屏的内部芯片是5V逻辑电平为了确保单片机与LED显示屏通信正常建议增加两块八路3.3V转5V的电平转换模块,确保电平匹配通信正常。
IO接口连接
IO口的连接看程序中的宏定义即可,这里说一下LED显示屏75接口的定义:
由于LED显示屏是64*32的,75接口的ABCD是行选信号输入,因此最多只能选择16行,而LED显示屏是32行的,因此这里分为两个16行的上下半屏同时进行动态扫描,因此RGB数据也分为上下半屏,DR1表示上半屏的红色数据串行输入,DR2表示下半屏的红色数据串行输入,其他的类似。CLK是移位脉冲,LED屏一共有64列,因此每显示一行都需要移入64次的数据,并且上下半屏的RGB数据需要同时移入,因为每次行选中的是上下半屏各一行。LAT是用于锁存数据,这样数据移位时,不会改变锁存器的输出。OE是使能输入,当OE低电平时打开整个屏幕的显示,OE高电平时关闭整个屏幕的显示。利用OE就可以很方便的通过PWM控制整体亮度,以及消除鬼影。
自制模块
下图是按键模块的原理图:
图中IO连接只是一个示例,大家可以自己定义。
接下来就是焊接。
按键模块实物
电脑或手机耳机孔输出的音频信号是交流小信号,信号的振幅较小,而STM32单片机AD转换能够转换的信号是0V~3.3V的直流信号,因此音频信号需要经过音频信号调理电路抬升电平并且进行一定程度的放大,才能输入到STM32单片机的引脚进行采样和AD转换。
音频调理电路
因此利用可以作为运放使用的耳放TDA1308,使它工作在单电源供电3.3V模式下的反相比例放大,通过R1和R2分压向同相输入端提供直流偏置电压,将音频信号的电平抬升1.65V,这样输出的音频信号就是在1.65V电平基准上做摆幅的直流信号了。这里只取左右声道的其中一个声道进行采样,并且根据傅里叶变换的原理,信号反相并不影响其幅值谱,只对相位谱有影响,而我们显示的音乐频谱是幅值谱,所以不影响显示的正确性。当然也可以将电路做成反相加法电路,将左右声道合成为一路输出。
黄色框选中的即音频信号调理模块
接下来是各模块的焊接,最终的电路板整体:
程序源码
项目程序源码及语音模块资料,可以在“嵌入式Linux公众号”回复:音乐频谱,获取。
main.c代码:
/*********哔哩哔哩 点-凡*********/#include "Include.h"
/*** @brief 主函数* @param 无 * @retval 无*/
int main(void)
{ LED_GPIO_Config();Key_GPIO_Config();Alarm_Clock_GPIO_Config(); EXTI_BUSY_Config();I2C_DS3231_Init();I2C_WaitDs3231StandbyState();ADCx_Init();DMAx_Init();FFT_Init(); Calendar_init();BASIC_TIM_Init(); GENERAL_TIM3_Init();GENERAL_TIM4_Init(); while(1){ Task_10ms(&Task_run);Task_30ms(&Task_run);Task_40ms(&Task_run);Task_100ms(&Task_run);Task_1s(&Task_run); }
}
/*******END OF FILE*******/
有关FFT算法部分的程序,建议参考:第四章快速傅立叶变换(FFT) - 百度文库 (baidu.com)
本项目是点-凡的原创文章,感兴趣的同学可以到csdn或B站搜索点-凡。原文链接:
https://blog.csdn.net/u011504434/article/details/119296746
推荐阅读:
专辑|Linux文章汇总
专辑|程序人生
专辑|C语言
我的知识小密圈
关注公众号,后台回复「1024」获取学习资料网盘链接。
欢迎点赞,关注,转发,在看,您的每一次鼓励,我都将铭记于心~
毕业设计| STM32F103全彩FFT音乐频谱+LED年历闹钟显示相关推荐
- STM32F103+全彩LED显示屏+万年历闹钟+FFT音频频谱制作
目录 1.硬件总体框图 2.材料准备 3.IO口的连接 4.自制的模块 5.源程序及其相关模块资料 6.最终效果演示 1.硬件总体框图 工作原理:电脑,手机等外部设备3.5mm耳机孔输出音频信号,经过 ...
- STM32F4 FFT 音乐频谱 不要太easy!
在数字信号处理当中,我们最常用的就是卷积和离散傅里叶变换(DFT).可以证明卷积.相关.谱分析.滤波等都可以转化为离散傅里叶变换来实现.大学学了信号和系统.数字信号处理对于傅里叶变换有了更深的理解. ...
- STM32F103+FFT+OLED25664的音乐频谱制作分享(继续干货)
前言:之前,笔者设计并制作了一个简单的FFT音乐频谱,并且分享了制作过程.本文是在原来的基础上做了一些修改. 效果演示:https://www.bilibili.com/video/av4791553 ...
- stm32f103+FFT+OLED的音乐频谱制作(只需三步即可)
效果演示:FFT音乐频谱DIY STM32+OLED_哔哩哔哩_bilibili 制作过程: 1.准备材料: stm32f103核心板 1块 OLED12864显示屏 1块(SPI接口) 声音检测传感 ...
- 距离传感器控制灯泡代码_生迪全彩智能 LED 灯泡体验评测
市面上大多数智能灯具无外乎智能控制,冷暖标准区间的简单调光,仅仅满足我们日常照明之外,似乎用处不多.如果有一款能在自己房间制造多彩氛围的灯泡就好了. 这次有幸体验到了华为智能家居生态链产品生迪全彩智能 ...
- 基于STM32单片机三色全彩RGB LED灯控制系统 原理图PCB程序设计
硬件电路的设计 (末尾附文件) 系统硬件系统分析设计 系统功能设计 本系统由STM32F103C8T6单片机核心板.RGB灯驱动.按键组成. 1.系统实时驱动RGB灯进行显示不同颜色,颜色调整可以通过 ...
- 联诚发(LCF)P4全彩LED“环绕显示”震撼耀目贵阳夜空
文博会落幕还未走远,联诚发(LCF)P4表贴屏精彩又现.昨夜,联诚发(LCF)九块P4全彩LED超清显示屏联袂照亮贵州贵阳的夜空.这是"贵州天策丽文化传媒有限公司"同联诚发(LCF ...
- led户外全彩显示屏有哪几种型号?户外显示屏的价格是多少
在户外广告和信息传递领域,LED户外全彩显示屏因其高亮度.高对比度和可靠性而备受青睐.本文将介绍LED户外全彩显示屏的几种常见型号,并对它们的价格范围进行详细分析. 常见户外全彩显示屏型号 P2.5. ...
- 联诚发(LCF)全彩LED显示屏,炫彩耀世界
随着联诚(LCF)发技术的不断进步,服务逐渐的升级,联诚发(LCF)在国内.国际市场上赢得了更高的商誉和良好的口碑.历经十一年的发展,联诚发品牌已成功进入106 个国家和地区.拥有30 多个国内销售分 ...
最新文章
- oracle直查和call哪个更快,让oracle跑的更快1读书笔记二
- 使用EF操作Oracle数据库小计
- python网络编程——实现简单聊天
- subsequence 1(牛客多校第五场记忆化搜索+组合数学)
- mysql数据库引擎InnoDB和MyISAM
- angular js 使用pdf.js_胶水(框架) Stencil.js
- mysql io 100_MySQL服务器 IO 100%的案例分析
- 解决eclipse乱码问题
- 【读书笔记】商业自传-PayPal程序员-硅谷钢铁侠-埃隆·马斯克,SpaceX CEO、特斯拉公司CEO、太阳城公司董事会主席。
- 华东师范大学《模式识别与机器学习》试题
- 操作系统进程同步之吸烟者问题,C语言实现
- IT 认证考试--软考--(中级项目)嵌入式系统设计师1:嵌入式系统设计师介绍
- 使用java编写中国象棋(内含源代码)
- 教授专栏13 | 陈雷:数据科学助力AI落地
- 第5期-通过飞卢小说网爬取小说
- unicode和字符串之间的转换有两种方式
- 【无标题】前端电子签名的canvas画板
- 中国土地市场网信息爬取--requests+Selenium多线程爬取
- Android 加密压缩文件
- php获取优酷剧集方法,优酷获取剧集例程源码