基于STM32的自动浇花器设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

信电学院

电子信息工程专业CDIO三级项目项目设计说明书(2016/2017学年第二学期)

项目名称:基于STM32的自动浇花器设计

专业班级:

学生姓名:

学号:

指导教师:

设计成绩:

2017年7月13日

1、项目设计目的

以stm32单片机为核心,利用雨滴传感器及外围电路,完成花草周围湿度情况监测。要求通过雨滴传感器反馈的数据通过单片机处理进行实时控制。实现当湿度过低时,单片机自动控制外围电路水泵进行浇水,湿度高时停止浇水。然后将每一时刻的湿度情况通过串口显示在PC上。

2、项目设计正文

2.1设计要求

1、绘制电路原理图以及PCB图。

2、搭建实际硬件电路,实现功能。

3、确定元器件参数。

2.2电路设计

2.2.1 STM32单片机介绍

STM32系列基于专为要求高性能、低成本、低功耗的嵌入式应用专门设计的ARM Cortex-M3内核。按性能分成两个不同的系列:STM32F103―增强型‖系列和STM32F101―基本型‖系列。增强型系列时钟频率达到72MHz,是同类产品中性能最高的产品;基本型时钟频率为36MHz,以16位产品的价格得到比16位产品大幅提升的性能,是16位产品用户的最佳选择。两个系列都内置32K到128K的闪存,不同的是SRAM的最大容量和外设接口的组合。时钟频率72MHz时,从闪存执行代码,STM32功耗36mA,是32位市场上功耗最低的产品,相当于0.5mA/MHz。

单片机最小单元模块图,如2-1所示:

图2-1:单片机最小模块图

2.1.2 系统晶振电路设计

将STM32单片机上PD0和PD1连接到外部晶振电路上,系统选取的外部晶振为8MHz,外部晶振电路如图2-2所示:

图2-2 外部晶振电路

2.1.3 系统复位电路设计

将单片机的NRST引脚连接复位电路,复位电路如图2-3所示:

图2-3 复位电路

2.2.4 雨滴传感器模块

模块功能介绍:模块采用5V&9V&12V供电静态电流为5-12mA ,继电器负载能力为250V 10A(AC)~ 30V 10A(DC),接上电源,电源指示灯亮,感应板上没有水滴时,继电器不动作,开关指示灯灭,滴上一滴水,继电器吸合,启动相关设备,开关指示灯亮,擦掉上面的水滴,又恢复到原始状态。

模块供电:5V&9V&12V 静态电流:5-12mA

继电器负载能力:250V 10A(AC) 30V 10A(DC)

D0:是通过 LM393 芯片输出的TTL开关信号。

A0:传感器的模拟信号输出,可接到单片机上利用AD读取该值。

电位器:可以根据实际的应用需要改变阈值,配电位器调节灵敏度,控制在不同水份时,控制继电器的开启。

继电器开关输出说明:继电器线圈没有电压时,继电器没有吸合,公共端与常闭端接通,当有电压时,继电器吸合,公共端与常开端接通。

继电器接常开端电路接法:当继电器没有吸合时,公共端与常闭端接通,相当于开关断开,控制设备没电不工作。当继电器吸合时,公共端与常开端接通,相当于开关接通,设备有电工作。

继电器接常闭端电路接法:当继电器没有吸合时,公共端与常闭端接通,相当于开关闭合,电路接通,控制设备将有电工作。当继电器吸合时相当于开关断开,电路没电不工作。

功能介绍:接上5V 电源,电源指示灯亮,感应板上没有水滴时,DO 输出为高电平,开关指示灯灭,滴上一滴水,DO 输出为低电平,开关指示灯亮,刷掉上面的水滴,又恢复到,输出高电平状态。。。。AO 模拟输出,可以连接单片机的AD 口检测滴在上面的雨量大小。DO TTL 数字输出也可以连接单片机检测是否有雨

雨滴传感器单元模块图,如2-4所示:

图2-4二:雨滴传感器单元模块图

2.2.5稳压电源电路

直流稳压电源是常用的电子设备,它能保证在电网电压波动或负载发生变化时,输出稳定的电压。MC7805芯片,三端固定式集成稳压器将不稳定的直流电压转换成稳定的直流电压,REG1117-3.3芯片与电容进行滤波处理,使电路输出稳定的直流电压。

稳压电源电路模块图,如图2-5所示:

图2-5:稳压电源电路模块图

2.2.6系统下载器设计

系统的下载器电路,如图2-6所示:

图2-6:下载器电路

2.2.7系统电路原理图

1.系统电路原理图,如图五所示。

图2-7:数字电压表实际原理图

2.数字电压表实际电路PCB图,如图2-8所示。

图2-9:数字电压表实际PCB图

2.3程序设计

2.3.1 STM32内部ADC控制原理

STM32内部12位ADC是一种逐次逼近型模拟数字转换器。它有多达18个通道,可测量16个外部和2个内部信号源。各通道的A/D转换可以单次、连续、扫描或间断模

式执行。 ADC的结果可以左对齐或右对齐方式存储在16位数据寄存器中。模拟看门狗特性允许应用程序检测输入电压是否超出用户定义的高/低阀值。

ADC供电要求是2.4V - 3.6V

ADC使用若干个ADC_CLK周期对输入电压采样,采样周期数目可以通过ADC_SMPR1和ADC_SMPR1寄存器中的SMP[2:0]为更改每个通道可以分别用不同的时间采样总的转换时间如下计算:

Tconv = 采样时间 + 12.5个周期

例如:

当ADCCLK = 14MHz,采样时间为1.5周期

Tconv = 1.5 + 12.5 = 14周期 = 1us

以规则通道为例,一旦所选择的通道转换完成,转换结果将存放在ADC_DR寄存器中EOC(转换结束)标志将被置位,如果设置了EOCIE,则会产生中断。然后ADC将停止,直到下次启动。ADC的输入时钟不得超过14MHz,它是由PCLK2经分频产生,

2.3.2程序中ADC时钟设置如下:

RCC_ADCCLKConfig(RCC_PCLK2_Div6);

//设置ADC分频因子6 72M/6=12,ADC最大时间不能超过14M

根据本次设计的需求及原理,ADC采样的功能设置如下:

ADC_InitStructure.ADC_Mode=ADC_Mode_Independent;

ADC_InitStructure.ADC_ScanConvMode=DISABLE;

ADC_InitStructure.ADC_ContinuousConvMode=DISABLE;

ADC_InitStructure.ADC_ExternalTrigConv=ADC_ExternalTrigConv_None;

ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right;

ADC_InitStructure.ADC_NbrOfChannel= 1;

ADC_Init(ADC1,&ADC_InitStructure);

ADC_Cmd(ADC1, ENABLE);

ADC_ResetCalibration(ADC1);

while(ADC_GetResetCalibrationStatus(ADC1));

ADC_StartCalibration(ADC1);

while(ADC_GetCalibrationStatus(ADC1));

2.3.3获取AD值函数如下:

u16 Get_Adc(u8 ch)

{

ADC_RegularChannelConfig(ADC1,ch,1,ADC_SampleTime_239Cycles5);

ADC_SoftwareStartConvCmd(ADC1, ENABLE);

相关文档
最新文档