本设计的硬件构成:
STM32F103C8T6单片机最小系统板+时钟晶振电路+复位电路(上电自复位,手动复位),LCD1602显示屏电路,独立按键电路,ULN2003步进电机驱动电路,蓝牙模块,语音识别模块,总电源供电电路;
功能介绍:
1.LCD1602液晶显示当前风扇等级,语音控制状态,摇头状态;
2.共设置有4个按键,按键1为摇头开关键;按键2为语音识别功能的开关键;按键3为风扇挡位上调键;按键4为风扇挡位下调键;
3.可通过蓝牙模块,在手机APP上对风扇状态进行监控和控制;
4.可通过语音识别模块,用户说出相应语音,实现对风扇的语音控制(演示视频有详细的演示过程);
主要物料清单及型号:
显示屏:LCD1602-5V;
单片机:STM32F103C8T6;
蓝牙模块:JDY-31-SPP;
语音识别模块:LD3320;
步进电机驱动:ULN2003;
步进电机:28BYJ-48-5V
原理图:
PCB图
实物图1:
元器件清单:
关键字:STM32 单片机
引用地址:
基于STM32单片机的摇头风扇设计
推荐阅读最新更新时间:2024-11-02 11:01
基于单片机的智能太阳能路灯控制系统的设计方案
摘要:随着世界能源危机日益严重,利用太阳能成为解决能源问题的一大途径,在此背景下开发智能太阳能路灯意义重大。本文介绍了智能太阳能路灯系统的组成及工作原理,采用LPC935 单片机作为主控制器,结合密封铅酸蓄电池充电专用芯片UC3906,实现了对密封铅酸蓄电池最佳充电所需的全部控制和检测功能,延长了系统的使用寿命。通过热释电红外、微波双鉴传感器技术及以无线通讯技术,实现了红外微波探测、相邻路灯间的无线通讯以及主副灯的智能化切换,达到了节能减排的效果。 随着科学技术的迅速发展,世界能源危机日益严重,利用常规能源已不能适应世界经济快速增长的需要,开发和利用新能源越来越引起各国的重视。太阳能源本身的安全可靠、无噪声、无污染和可再
[工业控制]
51单片机的ISP下载电路设计
51单片机可以通过ISP下载方式烧写程序,常用的工具为USB/TTL,常用的芯片有MAX232、CH340G等。下面介绍以CH340G芯片设计的ISP下载电路。 1.51单片机程序下载原理 51单片机程序烧写接口为RXD和TXD,即UART口,这两个接口是通信口,配合不同的芯片可以实现不同的通讯方式。如果连接MAX232即可实现232通信,如果连接MAX3082即可实现RS485通讯。下载程序正是通过这两个接口来实现的。下载方式如下图所示。单片机的RXD和TXD要与USB/TTL设备的TXD和RXD交叉连接才能实现下载。 2.CH340G芯片介绍 CH340是一个USB总线的转接芯片,实现USB转串口、USB转IrDA红外
[单片机]
电源意外关闭时MCU能否继续完成相应操作
对于主电源掉电后需要继续工作一段时间来用于数据保存或者发出报警的产品,我们往往都能够看见产品PCB板上有大电容甚至是超级电容器的身影。大容量的电容虽然能延时系统掉电,使得系统在电源意外关闭时MCU能继续完成相应操作,而如果此时重新上电,却经常遇到系统无法启动的问题。那么这到底是怎么回事呢?遇到这种情况又该如何处理呢? 一、上电失败问题分析 1. 上电缓慢引起的启动失败 对于需要进行掉电保存或者掉电报警功能的产品,利用大容量电容缓慢放电的特性来实现这一功能往往是很多工程师的选择,以便系统在外部电源掉电的情况下,依靠电容的储能来维持系统需要的重要数据保存及安全关闭的时间。此外,在不需要掉电保存数据的系统中,为了防止电源纹波、电源
[模拟电子]
STM32 DMA详细说明
DMA部分我用到的相对简单,当然,可能这是新东西,我暂时还用不到它的复杂功能吧。下面用问答的形式表达我的思路。 DMA有什么用? 直接存储器存取用来提供在外设和存储器之间或者存储器和存储器之间的高速数据传输。无须CPU的干预,通过DMA数据可以快速地移动。这就节省了CPU的资源来做其他操作。 有多少个DMA资源? 有两个DMA控制器,DMA1有7个通道,DMA2有5个通道。 数据从什么地方送到什么地方? 外设到SRAM(I2C/UART等获取数据并送入SRAM); SRAM的两个区域之间; 外设到外设(ADC读取数据后送到TIM1控制其产生不同的PWM占空比); SRAM到外设(SRAM中预先保存的数据送入DAC产生各种波形);
[单片机]
单片机编程中的while循环语句
在我们单片机C语言编程的时候,每个程序我们都会固定的加一句while(1),这条语句就可以起到死循环的作用。对于while语句来说,他的一般形式是: While (表达式) { 循环体语句; } 在C语言里,通常表达式符合条件,我们叫做真,不符合条件,叫做假。比如前边i 30000,当i等于0的时候,那这个条件成立,就是真,如果i大于30000的时候,条件不成立,叫做假。 while(表达式)这个括号里的表达式,为真的时候,就会执行循环体语句,当为假的时候,就不执行。在这里先不举例,后边遇到时再详细说明。 还有另外一种情况,就是我们C语言里边,除了表达式外,还有常数,习惯上,我们非0
[单片机]
51单片机定时器T0的使用1-中断法
/********************************************** 方法1:延时法 硬件:11.0592MHz晶振,STC89C52,RXD P1.0 TXD P1.1 波特率:9600 描述:T0用于定时,方式1,定时时间50ms,中断方式,定时时间到,TF1=1,利用模拟串口发送字符0x67 **********************************************/ #include reg52.h #define uchar unsigned char sbit P1_0 = 0x90; sbit P1_1 = 0x91; sbit P1_2 = 0x92; #de
[单片机]
51单片机STC89C54波特率以及双时钟探讨
最近公司老大让我尝试STC89C54单片机的最高波特率,经过一下午的尝试,基本可以搞清楚了。 在11.0592M的晶振下,若单片机工作在12T模式下(即一个机器周期为12个时钟周期),波特率最高可为57600.而若工作在6T模式下(即一个机器周期为6个时钟周期),则波特率最高可为115200. /*/ 在这里再简单介绍一下,如何实现12T和6T的转换,目前我只知道利用STC的下载软件可以修改,程序里的寄存器就不清楚了,估计改不了。设置过程见下图: 若想设置为双时钟6T模式,则可以选择6T,打开你选中的文件即可下载。 // 但要特别注意的是,6T和12T在交叉下载时,应烧写2次,即以前你的单片机是12T
[单片机]
STM32用IAR调试出现Error[Pe020]: identifier "FILE" is undefined 解决方法
这是在调试示例程序RTC中的Calendar时候遇到的问题,错误定位到PUTCHAR_PROTOTYPE处 解决办法: 需要在IAR的Options - General Options - Library Configuration里设置一下函数库,不然printf函数不对,将Library Configuration 中的Library 设置由 Normal 改为 Full 就可以了。
[单片机]