標(biāo)題:
基于stm32F103的溫度以及光照控制系統(tǒng)(代碼+PCB)
[打印本頁]
作者:
X-Z-X
時(shí)間:
2021-5-23 19:17
標(biāo)題:
基于stm32F103的溫度以及光照控制系統(tǒng)(代碼+PCB)
歡迎交流學(xué)習(xí)
電路原理圖如下:
電路圖.png
(92.16 KB, 下載次數(shù): 44)
下載附件
2021-5-23 19:17 上傳
單片機(jī)源程序如下:
#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(); //延時(shí)函數(shù)初始化
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
//設(shè)置中斷優(yōu)先級(jí)分組為組2:2位搶占優(yōu)先級(jí),2位響應(yīng)優(yōu)先級(jí)
//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;//得到此次接收到的數(shù)據(jù)長(zhǎng)度
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)
}
}
復(fù)制代碼
所有資料51hei提供下載:
電子系統(tǒng)制作.7z
(228.45 KB, 下載次數(shù): 88)
2021-5-23 23:08 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
作者:
hai4096500
時(shí)間:
2022-1-10 08:03
代碼是全的,拿過來參考看看
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1