历史上的今天
今天是:2025年08月12日(星期二)
2020年08月12日 | 基于stm32精英版的温控风扇源码
2020-08-12 来源:51hei
用stm32F103ZET6精英版,温度传感器是DS18B20,1602液晶显示屏,利用温度来控制转速,液晶显示屏显示实时转速,也可手动调节转速。(采用pi控制)
电路原理图如下:
单片机源程序如下:
#include "delay.h"
#include "key.h"
#include "sys.h"
#include "timer.h"
#include "lcd1602.h"
#include "encoder.h"
#include "control.h"
#include "usart.h"
#include "usart3.h"
#include "hc05.h"
#include "string.h"
#include "usmart.h"
#include "ds18b20.h"
u8 w=0;
int k=0;
extern int real;
vu8 key=0;
u8 reclen=0;
extern int temperature;
int main(void)
{
delay_init();
LCD_GPIO_Configuration();
LCD1602_Init();
KEY_Init();//按键初始化;
ENCODER_Init();
TIM2_Int_Init(19999,35);
TIM3_PWM_Init(7199,0); //不分频。PWM频率=72000000/900=80Khz
DS18B20_Init();
//usmart_dev.init(72); //初始化USMART
delay_ms(5000); //等待蓝牙模块上电稳定
LCDshowNum(0,0,"EV:",SpeedSet);
LCDshowNum(0,1,"RV:", real);
LCDshowTNum(9,1,"T:",temperature);
// while(HC05_Init()) //初始化ATK-HC05模块
//{
// delay_ms(500);
// }
// delay_ms(100);
// USART3_RX_STA=0;
while(1)
{
delay_ms(200);
temperature=(int)DS18B20_Get_Temp();
LCDshowNum(0,0,"EV:",SpeedSet);
LCDshowNum(0,1,"RV:", real);
LCDshowTNum(9,1,"T:",temperature);
key=KEY_Scan(0);
switch(key)
{
case KEY0_PRES:
SpeedSet+=100;
k++;
LCDshowNum(0,0,"EV:",SpeedSet);
break;
case KEY1_PRES:
SpeedSet-=100;
k++;
LCDshowNum(0,0,"EV:",SpeedSet);
break;
default:break;
}
if(k==0&&temperature>270)
{
SpeedSet=2200;
LCDshowNum(0,0,"EV:",SpeedSet);
}
if(k==0&&temperature<270&&temperature>250)
{
SpeedSet=2100;
LCDshowNum(0,0,"EV:",SpeedSet);
}
if(k==0&&temperature<250&&temperature>200&&temperature==200&&temperature==250)
{
SpeedSet=2000;
LCDshowNum(0,0,"EV:",SpeedSet);
}
if(k==0&&temperature<200)
{
SpeedSet=1800;
LCDshowNum(0,0,"EV:",SpeedSet);
}
}
}
史海拾趣
|
#include <reg52.h>#include <intrins.h>#define uchar unsigned char#define uint unsigned int uchar key_vaul=1;uchar code DSY_CODE[]={ 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8 ...… 查看全部问答> |
|
帮忙调试一下vivi在Device Emulator 下的错误 Vivi一直有错 编译正确了 可是老是报一个错 the emulation layer does not support the functionality that is being accessed 因为课程的要求所以只能在Device Emulator下运行 我QQ 447607418 一直在线 跪谢… 查看全部问答> |
|
HANDLE handle=CreateFile(_T(\"TTT1:\"),GENERIC_READ|GENERIC_WRITE,0, NULL,OPEN_EXISTING,0,NULL); ASSERT(handle); if (handle == INVALID_HANDLE_VALUE) // cannot open the drive { MessageBox(NULL,_T(\"CreateFile失败\"),_T(\"titl ...… 查看全部问答> |
|
wince .net.4.2 系统定制时在哪里选择 TrueType 字体,谢谢 系统定制时 help文档说“WinCE4.0 支持光栅字体和TrueType字体技术,但在特定系统中只能使用一种类型的字体,而且是在设计系统时决定的” 请问TrueType字体在哪里选择确定,如何确定? 如果不选择,默认的字体是否是光栅字体? 谢谢各位。 … 查看全部问答> |
|
在EVC下的帮助文档里,明明是说支持LoadCursor()及DestroyCursor()等函数的,可是在编译程序时总说: \'DestroyCursor\' : undeclared identifier \'LoadCursor\' : undeclared identifier 我的代码: & ...… 查看全部问答> |
|
代做-设-计-(430/51/上位机软件) 1.硬件相关(主要使用msp430和51)控制类,温度采集类,串口通讯类,热表类,一卡通产品 类,rf射频卡类,无线通讯类。 ...… 查看全部问答> |
|
从事asp.net的工作几年了,加入过好多技术交流群,这些群里,看到群主解答问题总是那么热心,很多的菜鸟却总是问些不经过大脑的问题,甚至有的连问题都问不清楚,给他教个上十遍却还是一个不会 于是本人今天开通了自己的技术交流群 ...… 查看全部问答> |




