网站推广话术与技巧,无锡网站制作哪里有,微信公众号是什么平台,wordpress 主题备份大家好#xff0c;我是写代码的篮球球痴#xff0c;今天在后台看到有人想找毕业设计的点子。然后我今天刚好看到一个不错的点子#xff0c;给大家分享看今天分享的毕设是来自点-凡自制的FTF音乐频谱制作#xff0c;先来看展示效果#xff1a;——视频出处#xff1a;B站点… 大家好我是写代码的篮球球痴今天在后台看到有人想找毕业设计的点子。然后我今天刚好看到一个不错的点子给大家分享看今天分享的毕设是来自点-凡自制的FTF音乐频谱制作先来看展示效果——视频出处B站点-凡工作原理上面演示的音乐频谱工作原理通过电脑手机等外部设备3.5mm耳机孔输出音频信号然后经过继电器模块的音源选择后继电器模块的输出分为两路一路给有源音响播放音乐一路经过音频信号调理电路输入到STM32单片机的引脚进行采样和AD转换后由程序进行FFT变换并将FFT变换结果的幅值谱显示在LED全彩显示屏上。语音播放模块用于播放闹钟语音报时及闹铃音乐。默认情况下继电器模块选择外界设备的音源当闹钟时间到时继电器动作切换为语音模块音源。硬件构成1STM32F103核心板 2全彩LED显示屏单元板 P4 64*32 (16扫75接口)满足此条件的LED屏都行大家可以上某宝买3DS3231模块4双路继电器模块5DY-SV5W语音模块6按键模块自制7音频调理电路自制8若干个3.5mm音频母座一条3.5mm公对公音频线916P的牛角座及其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」获取学习资料网盘链接。欢迎点赞关注转发在看您的每一次鼓励我都将铭记于心~