技能梳理21@stm32+oled+声音强度检测+舵机
检测声音强度,显示大概的分贝数在oled上,不同强度下舵机转不同的角度
1、项目简介
2、实现逻辑
#通过STM32的adc检测大概声音强度
#在oled上显示声音强度
#舵机根据声音大小转动
3、应用场景
#益智小玩具(听到声音自动转头的小猫模型)
4、核心代码梳理
int main(void)
{/* USER CODE BEGIN 1 */uint32_t clk;uint8_t pwm;/* USER CODE END 1 *//* MCU Configuration--------------------------------------------------------*//* Reset of all peripherals, Initializes the Flash interface and the Systick. */HAL_Init();/* USER CODE BEGIN Init *//* USER CODE END Init *//* Configure the system clock */SystemClock_Config();/* USER CODE BEGIN SysInit *//* USER CODE END SysInit *//* Initialize all configured peripherals */MX_GPIO_Init();MX_I2C1_Init();MX_ADC1_Init();MX_TIM1_Init();/* USER CODE BEGIN 2 */OLED_Init(); //初始化OLEDOLED_Clear();OLED_ShowString(0,3,"SOUND: . DB",16);// OLED_ShowNum(52,3,123,3,16);
// OLED_ShowNum(88,3,13,2,16);HAL_ADC_Start_IT(&hadc1);HAL_TIM_PWM_Start(&htim1, TIM_CHANNEL_1);__HAL_TIM_SET_COMPARE(&htim1, TIM_CHANNEL_1, 90);HAL_Delay(500);/* USER CODE END 2 *//* Infinite loop *//* USER CODE BEGIN WHILE */while (1){/* USER CODE END WHILE *//* USER CODE BEGIN 3 */HAL_Delay(2);HAL_ADC_Start_IT(&hadc1);if(clk%250 == 0){HAL_GPIO_TogglePin(GPIOC, LED_Pin);db = 0;for(uint8_t i=0; i<50; i++){db += (ADC_temp[i]/10);}db = db/5;if(DB < 30)DB = db*0.5;if(DB<40)DB = db*1.5;else if(DB < 50)DB = db*1.5;else DB = db*2;DB = DB*1.5;if((DB >= 0) && (DB <= 200)){intDB = (int)DB;float DB_tmp = DB - intDB;DB_tmp *= 100;decDB = DB_tmp;OLED_ShowNum(52,3,intDB,3,16);OLED_ShowNum(88,3,decDB,2,16);if(DB >= 60){if(pwm < 110){for(uint8_t i=0; i<30; i++){pwm = 90 + i;__HAL_TIM_SET_COMPARE(&htim1, TIM_CHANNEL_1, pwm);HAL_Delay(8);//2400/30=8}HAL_Delay(5000);}}else{if(pwm > 100){for(uint8_t i=0; i<30; i++){pwm = 120-i;__HAL_TIM_SET_COMPARE(&htim1, TIM_CHANNEL_1, pwm);HAL_Delay(8);//1000/25=4}}}}}clk++;}/* USER CODE END 3 */
}
5、部分参考资料
无
6、注意事项
#舵机选360度的
#声音检测模块是现成的,不过不是特别准,而且感觉只对某个频率范围内的声音有检测
完整可运行项目地址
技能梳理21@stm32+oled+声音强度检测+舵机相关推荐
- 技能梳理7@stm32+OLED+flash掉电保存+按键
学校违纪分数记录,按键,1.3寸OLED显示,数据掉电保存 1.项目简介 2.实现逻辑 #如上图为显示屏显示内容 #三个物理按键,一个是选择对哪一项进行控制,两个是加减对应项的分数 #控制范围±10, ...
- 技能梳理37@stm32+按键+光耦+锁存+串行转并行+继电器
技能梳理37@stm32+按键+光耦+锁存+串行转并行+继电器 1.项目简介 2.实现逻辑 3.应用场景 #主从机有线控制 #开关操作 4.核心代码梳理 //根据按下的按键执行相应的操作 void h ...
- 技能梳理20@stm32+ESP8266+onenet+dht11+mq2+led+风扇+oled
F103C8T6 ESP8266和ONENET通信 DHT11测温湿度 MQ-2测烟雾浓度 LED模拟室内灯 温湿度和烟雾超标,蜂鸣器报警,风扇转动:OLED显示数据:数据传输onenet,控制LED ...
- 技能梳理15@stm32+lora(sx1276)+oled+ds18b20+土壤湿度传感器+按键+蜂鸣器+电路板
从机采集温湿度及超标报警并显示在oled屏幕上,按下按键通过lora模块传输给主机,主机再也显示在其搭载的屏幕上 1.项目简介 2.实现逻辑 #从机实现对温湿度数据的检测 #从机将数据显示到oled上 ...
- 技能梳理14@stm32+esp8266+ds18b20+红外传感器+烟雾传感器+CO传感器+蜂鸣器
画板子,有至少8个io口(分别连ds18b20.红外传感器.烟雾传感器.CO传感器,后面3个传感器都是检测到就发高电平),2个串口,1个蜂鸣器,nbiot用的YED-C724 核心板(AIR724) ...
- 技能梳理28@在oled上控制一条狗的奔跑
先上效果视频 [单片机控制显示屏上狗跑-哔哩哔哩] 修狗奔跑 使用的主控是stm32,逻辑是通过检测滑动变阻器的电阻(类似无级控制),不断切换oled的图片,主要手够快哈哈,就可以实现类似视频的效果, ...
- python 声音强度检测_python检测音频中的静音
#-*- coding: utf-8 -*- importosimportwavefrom time importsleepimportnumpy as np SUCCESS=0 FAIL= 1 #需 ...
- 技能梳理18@stm32+柔性墨水屏+薄膜按键+二维码
薄膜压力按键控制mos开关,切换给柔性墨水屏vcc供电方式,单片机控制vcc切换图像,其中有可以扫描的二维码 1.项目简介 2.实现逻辑 #有两个薄膜按键,一个控制墨水屏供电方式(其实就是一个继电器) ...
- python 声音强度检测_怎样表达一段语音的强度(响度)?
我希望通过一段语音分析语音的强度(响度). 因为是工科狗而非理科狗,且对于音频信号分析是外行,只简单看了下FFT,所以对于自己分析语音强度的方法没有安全感.希望这方面的高手能够指导下.非常感谢!!! ...
最新文章
- 让Updatepanel中的控件触发整个页面Postback
- python没用_大部分Python资料都没有说到的重点-用实战教你解决问题的思路
- Azure App Service 健康检查正式发布
- mysql 毫秒比较_MYSQL的毫秒级时间比较问题
- 虚拟服务器新建桌面池,VMware vSphere 服务器虚拟化之二十三 桌面虚拟化之建立手动虚拟桌面池...
- 德国精品软件 Throttle 网络加速软件
- jQuery - slice( start, [end] ) Method
- centos安装apache+mysql_CentOS7安装apache+mysql+php环境
- 三星固态优化软件.samsung magician 中文下载地址
- 网易云音乐评论加密解析
- 苹果计算机远程控制软件,向日葵远程控制软件iPhone手机远程控制电脑
- 如何写一份风投喜欢的商业计划书?【转载】
- 怎么设置计算机桌面一键关机,图文详解如何设置电脑定时开关机
- 过犹不及,别再在编程中高射炮打蚊子
- OpenJudge -6047 :分蛋糕
- 纯css实现刻度尺列表样式
- CorelDRAW2022订阅版本最新更新内容
- 在线展示pdf和word并且不能显示下载和打印按钮
- JAVA强制类型转换常见错误
- ZJUer必备之西塘自助游攻略…