标题: 基于STM32F103空气净化器程序 PCB文件全开源 [打印本页]

作者: Danie66    时间: 2019-7-3 12:41
标题: 基于STM32F103空气净化器程序 PCB文件全开源
基于stm32f103rct6 芯片做的空气净化器。可以测温湿度,CH2O,PWM控制风扇,所有程序 原理图开源供大家共享学习。 部分原理图详情下载。程序+PCB+原理图开源

作者: Danie66    时间: 2019-7-3 12:43
共享 希望各位回复一下多多支持

Altium Designer画的原理图和PCB图如下:(51hei附件中可下载工程文件)


单片机源程序如下:
  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转换的电压值通过MDA方式传到SRAM
  12. extern __IO uint16_t ADC_ConvertedValue;

  13. // 局部变量,用于保存转换计算后的电压值
  14. extern float TVOC3,CH2O1,vola;
  15. float temp;//pwm风扇等级

  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();                     //延时函数初始化          
  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);    //驱动输出电压

  35.                 }

  36.                 else if (TVOC3>0.618  &&  TVOC3<=1.273)
  37.                 {
  38.               TIM_SetCompare1(TIM1,650);    //驱动输出电压
  39.                 }
  40.      
  41.         else if (TVOC3>1.273  &&  TVOC3<=1.819)
  42.         {
  43.              TIM_SetCompare1(TIM1,899);    //驱动输出电压
  44.          }
  45.        */



  46. //        TIM_SetCompare1(TIM1,670);    //驱动输出电压



  47.     //sprintf((char*)lcd_id,"%04X",0x8890);//lcddev.id);//将LCD ID打印到lcd_id数组。       
  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);//电压值转甲醛值,TVOC3
  71.     CH2O(temp);//电压值转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);        //驱动输出电压
  86.                 }                       
  87.                
  88.                 else if(TVOC3>=0.234   &&  TVOC3<=0.618)
  89.                 {
  90.                         TIM_SetCompare1(TIM1,500);    //驱动输出电压

  91.                 }

  92.                 else if(TVOC3>0.618  &&  TVOC3<=1.273)
  93.                 {
  94.                         TIM_SetCompare1(TIM1,700);    //驱动输出电压
  95.                 }
  96.      
  97.                 else if(TVOC3>1.273 )// &&  TVOC3<=1.819)
  98.                 {
  99.                         TIM_SetCompare1(TIM1,800);    //驱动输出电压
  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. }
复制代码

所有资料51hei提供下载:
最新pcb.zip (961.51 KB, 下载次数: 212)
最终程序522晚.7z (572.93 KB, 下载次数: 210)


作者: janson    时间: 2019-7-4 00:03
威武大神
作者: 月明强    时间: 2019-7-4 09:21
请教下 这个LCD 是什么型号的屏幕
作者: xzsxiao213    时间: 2019-7-4 11:38
不错,值得参考
作者: Danie66    时间: 2019-7-8 15:25
月明强 发表于 2019-7-4 09:21
请教下 这个LCD 是什么型号的屏幕

2.8英寸TFT
作者: 黑科技丶    时间: 2019-8-12 12:20
多谢楼主分享,请问用stc89能否代替
作者: qxdqx    时间: 2019-8-17 20:19
多谢分享!也要学习一下.
作者: q1292471382    时间: 2019-10-9 10:08
请问楼主有实物展示吗,可以指导一下吗
作者: yuriiigic    时间: 2020-1-7 13:56
想问一下做不做实物哇
作者: liyongan_1985    时间: 2020-1-15 21:31
有点小问题请教一下:
(1)程序的keil是那个版本的?
(2)原理图及PCB的器件清单可以分享一下吗?从图中有些器件看不出来,自己想手工焊接学习一下。
(3)图中呢个引脚控制的风扇?看不出来。
作者: vikkkk    时间: 2020-10-30 17:27
楼主可以发下实物图嘛  谢谢
作者: 我是你哥    时间: 2020-11-1 08:00
dzltlgq 发表于 2020-10-27 16:17
求家用空气净化器原理图和程序,有酬谢,QQ391445456

你都是

需要啥功能,可定制qq3135279158
作者: 6998    时间: 2020-11-9 23:29
为什么pcb图打不开啊,你用哪个版本的AD

作者: Jacy_苏    时间: 2020-11-10 09:19
Danie66 发表于 2019-7-3 12:43
共享 希望各位回复一下多多支持

Altium Designer画的原理图和PCB图如下:(51hei附件中可下载工程文件)

学到了
作者: tonyjiang216    时间: 2021-11-1 10:41
非常感谢分享!下载学习下!




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1