標(biāo)題: 基于STM32F103空氣凈化器程序 PCB文件全開源 [打印本頁]

作者: Danie66    時(shí)間: 2019-7-3 12:41
標(biāo)題: 基于STM32F103空氣凈化器程序 PCB文件全開源
基于stm32f103rct6 芯片做的空氣凈化器?梢詼y溫濕度,CH2O,PWM控制風(fēng)扇,所有程序 原理圖開源供大家共享學(xué)習(xí)。 部分原理圖詳情下載。程序+PCB+原理圖開源

作者: Danie66    時(shí)間: 2019-7-3 12:43
共享 希望各位回復(fù)一下多多支持

Altium Designer畫的原理圖和PCB圖如下:(51hei附件中可下載工程文件)


單片機(jī)源程序如下:
  1. /*大膽呼吸*/
  2. #include "led.h"
  3. #include "delay.h"
  4. #include "sys.h"
  5. #include "usart.h"
  6. #include "lcd.h"
  7. #include "adc.h"
  8. #include "dht11.h"
  9. #include "pwm.h"
  10. #include "ms1100.h"

  11. // ADC1轉(zhuǎn)換的電壓值通過MDA方式傳到SRAM
  12. extern __IO uint16_t ADC_ConvertedValue;

  13. // 局部變量,用于保存轉(zhuǎn)換計(jì)算后的電壓值
  14. extern float TVOC3,CH2O1,vola;
  15. float temp;//pwm風(fēng)扇等級

  16. int level;
  17. void Display(void);

  18. int main(void)
  19. {
  20.         u8 x=0;
  21.         u8 lcd_id[12];                        //存放LCD ID字符串
  22.         u16 adcx;
  23.         u8 temperature;              
  24.         u8 humidity;

  25.         TIM1_PWM_Init(800,0);//不分頻。PWM頻率=72000/(899+1)=80Khz
  26.         Adc_Init();                                  //ADC初始化
  27.         delay_init();                     //延時(shí)函數(shù)初始化          
  28.         uart_init(9600);                 //串口初始化為9600
  29.         //LED_Init();                                  //初始化與LED連接的硬件接口
  30.         LCD_Init();       



  31.               /*     pwm控速     */
  32.         /*         if(TVOC3>=0.000   &&  TVOC3<=0.618)
  33.                 {
  34.               TIM_SetCompare1(TIM1,630);    //驅(qū)動輸出電壓

  35.                 }

  36.                 else if (TVOC3>0.618  &&  TVOC3<=1.273)
  37.                 {
  38.               TIM_SetCompare1(TIM1,650);    //驅(qū)動輸出電壓
  39.                 }
  40.      
  41.         else if (TVOC3>1.273  &&  TVOC3<=1.819)
  42.         {
  43.              TIM_SetCompare1(TIM1,899);    //驅(qū)動輸出電壓
  44.          }
  45.        */



  46. //        TIM_SetCompare1(TIM1,670);    //驅(qū)動輸出電壓



  47.     //sprintf((char*)lcd_id,"%04X",0x8890);//lcddev.id);//將LCD ID打印到lcd_id數(shù)組。       
  48.         while(DHT11_Init())        //DHT11初始化       
  49.         {
  50.                 LCD_ShowString(30,130,200,16,16,"Ready!!!");
  51.                 delay_ms(200);
  52.                 LCD_Fill(30,130,239,130+16,WHITE);
  53.                 delay_ms(200);
  54.         }       
  55.        

  56.           while(1)
  57.         {               
  58.                 sprintf((char*)lcd_id,"%f",temp);//TVOC());
  59.                 switch(x)
  60.                 {
  61.                         case 0:LCD_Clear(WHITE);break;
  62.                 }

  63.                 DHT11_Read_Data(&temperature,&humidity);//讀取溫濕度值                                            
  64.                 LCD_ShowNum(160,100,temperature,2,16);        //顯示溫度                             
  65.                 LCD_ShowNum(140,70,humidity,2,16);                //顯示濕度                
  66.                 Display();

  67.                 adcx=Get_Adc_Average(ADC_Channel_14,10);   //采集端口ADC
  68.                 temp=(float)adcx*(3.3/4096);
  69.                 adcx=temp;
  70.                 TVOC(temp);//電壓值轉(zhuǎn)甲醛值,TVOC3
  71.     CH2O(temp);//電壓值轉(zhuǎn)CH20,  CH2O1
  72.                
  73.                
  74.                 LCD_ShowxNum(100,130,TVOC3,1,16,0);
  75.                 TVOC3-=(u16)TVOC3;
  76.                 TVOC3*=1000;
  77.                 LCD_ShowxNum(116,130,TVOC3,3,16,0X80);

  78.                 LCD_ShowxNum(100,160,CH2O1,1,16,0);
  79.                 CH2O1-=(u16)CH2O1;
  80.                 CH2O1*=1000;
  81.                 LCD_ShowxNum(116,160,CH2O1,3,16,0X80);


  82.     /*     pwm控速     */
  83.                 if(TVOC3<0.234)
  84.                 {
  85.                         TIM_SetCompare1(TIM1,0);        //驅(qū)動輸出電壓
  86.                 }                       
  87.                
  88.                 else if(TVOC3>=0.234   &&  TVOC3<=0.618)
  89.                 {
  90.                         TIM_SetCompare1(TIM1,500);    //驅(qū)動輸出電壓

  91.                 }

  92.                 else if(TVOC3>0.618  &&  TVOC3<=1.273)
  93.                 {
  94.                         TIM_SetCompare1(TIM1,700);    //驅(qū)動輸出電壓
  95.                 }
  96.      
  97.                 else if(TVOC3>1.273 )// &&  TVOC3<=1.819)
  98.                 {
  99.                         TIM_SetCompare1(TIM1,800);    //驅(qū)動輸出電壓
  100.                 }

  101.         



  102.             x++;
  103.                 if(x==12) x=0;
  104.                 LED0=!LED0;         
  105.                 delay_ms(1000);       
  106.         }
  107. }


  108. void Display(void)
  109. {
  110.         POINT_COLOR=RED;                         
  111.         LCD_ShowString(60,20,200,24,24,"Healthy Breathing");       
  112.         LCD_ShowString(60,70,200,16,16,"HUMIDITY:");
  113.         LCD_ShowString(160,70,200,16,16,"%");
  114.         LCD_ShowString(175,100,200,16,16," oC");
  115.         LCD_ShowString(60,100,200,16,16,"TEMPERATURE:");
  116.         LCD_ShowString(60,130,200,16,16,"TVOC:0.000 ppm");               
  117.         LCD_ShowString(60,160,200,16,16,"CH2O:0.000 ppm");
  118. //        LCD_ShowString(60,198,200,24,24,"DEGREE  :");
  119. }
復(fù)制代碼

所有資料51hei提供下載:
最新pcb.zip (961.51 KB, 下載次數(shù): 212)
最終程序522晚.7z (572.93 KB, 下載次數(shù): 210)


作者: janson    時(shí)間: 2019-7-4 00:03
威武大神
作者: 月明強(qiáng)    時(shí)間: 2019-7-4 09:21
請教下 這個(gè)LCD 是什么型號的屏幕
作者: xzsxiao213    時(shí)間: 2019-7-4 11:38
不錯(cuò),值得參考
作者: Danie66    時(shí)間: 2019-7-8 15:25
月明強(qiáng) 發(fā)表于 2019-7-4 09:21
請教下 這個(gè)LCD 是什么型號的屏幕

2.8英寸TFT
作者: 黑科技丶    時(shí)間: 2019-8-12 12:20
多謝樓主分享,請問用stc89能否代替
作者: qxdqx    時(shí)間: 2019-8-17 20:19
多謝分享!也要學(xué)習(xí)一下.
作者: q1292471382    時(shí)間: 2019-10-9 10:08
請問樓主有實(shí)物展示嗎,可以指導(dǎo)一下嗎
作者: yuriiigic    時(shí)間: 2020-1-7 13:56
想問一下做不做實(shí)物哇
作者: liyongan_1985    時(shí)間: 2020-1-15 21:31
有點(diǎn)小問題請教一下:
(1)程序的keil是那個(gè)版本的?
(2)原理圖及PCB的器件清單可以分享一下嗎?從圖中有些器件看不出來,自己想手工焊接學(xué)習(xí)一下。
(3)圖中呢個(gè)引腳控制的風(fēng)扇?看不出來。
作者: vikkkk    時(shí)間: 2020-10-30 17:27
樓主可以發(fā)下實(shí)物圖嘛  謝謝
作者: 我是你哥    時(shí)間: 2020-11-1 08:00
dzltlgq 發(fā)表于 2020-10-27 16:17
求家用空氣凈化器原理圖和程序,有酬謝,QQ391445456

你都是

需要啥功能,可定制qq3135279158
作者: 6998    時(shí)間: 2020-11-9 23:29
為什么pcb圖打不開啊,你用哪個(gè)版本的AD

作者: Jacy_蘇    時(shí)間: 2020-11-10 09:19
Danie66 發(fā)表于 2019-7-3 12:43
共享 希望各位回復(fù)一下多多支持

Altium Designer畫的原理圖和PCB圖如下:(51hei附件中可下載工程文件)

學(xué)到了
作者: tonyjiang216    時(shí)間: 2021-11-1 10:41
非常感謝分享!下載學(xué)習(xí)下!




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1