标题:
基于stm32F103的温度以及光照控制系统(代码+PCB)
[打印本页]
作者:
X-Z-X
时间:
2021-5-23 19:17
标题:
基于stm32F103的温度以及光照控制系统(代码+PCB)
欢迎交流学习
电路原理图如下:
电路图.png
(92.16 KB, 下载次数: 44)
下载附件
2021-5-23 19:17 上传
单片机源程序如下:
#include "led.h"
#include "delay.h"
#include "key.h"
#include "sys.h"
#include "lcd.h"
#include "usart.h"
#include "adc.h"
#include "pid.h"
#include "pid2.h"
#include "timer.h"
#include "math.h"
int main(void)
{
u16 adcLihgt = 0,len = 0;
u16 adcHeat = 0, value = 0,value2 = 0;
float Speed = 0,Speed2 = 0;
PID_init();
PID2_init();
delay_init(); //延时函数初始化
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
//设置中断优先级分组为组2:2位抢占优先级,2位响应优先级
//LED_Init(); //LED端口初始化
Adc_Init(); //ADC初始化
TIM1_PWM_Init(999,71); //不分频。PWM频率=72000000/9000=8Khz
uart_init(115200); //串口初始化为115200
TIM_SetCompare1(TIM1,150);
TIM_SetCompare4(TIM1,250);
while(1)
{
adcLihgt = Get_Adc_Average(ADC_Channel_6,10);
adcHeat = Get_Adc_Average(ADC_Channel_5,10);
Speed = PID_realize((float)adcLihgt);
Speed2 = PID2_realize((float)adcHeat);
TIM_SetCompare1(TIM1,(int)(Speed+0.5));//Speed
TIM_SetCompare4(TIM1,(int)(Speed2+0.5));
if(USART_RX_STA&0x8000)
{
len=USART_RX_STA&0x3fff;//得到此次接收到的数据长度
value = USART_RX_BUF[5];
value = value<<8;
value = value|USART_RX_BUF[4];
if (value < 15532)
aim = (float)(358.3*pow(value,0.32)+0.5);
value2 = USART_RX_BUF[1];
value2 = value2<<8;
value2 = value2|USART_RX_BUF[0];
if (value2 < 15532)
aim2 = (float)(110*pow(value2,0.7)+0.5);
USART_RX_STA=0;
}
printf("n2.val=%d\xff\xff\xff" ,(int)(pow(adcHeat/110,1.43)+2.5));//温度
printf("n3.val=%d\xff\xff\xff" ,(int)pow(adcLihgt/358.3,3.125));//光照度 pow(adcLihgt/358.3,3.125)
}
}
复制代码
所有资料51hei提供下载:
电子系统制作.7z
(228.45 KB, 下载次数: 88)
2021-5-23 23:08 上传
点击文件名下载附件
下载积分: 黑币 -5
作者:
hai4096500
时间:
2022-1-10 08:03
代码是全的,拿过来参考看看
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1