找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 6388|回复: 15
收起左侧

基于STM32F103空气净化器程序 PCB文件全开源

  [复制链接]
ID:566416 发表于 2019-7-3 12:41 | 显示全部楼层 |阅读模式
基于stm32f103rct6 芯片做的空气净化器。可以测温湿度,CH2O,PWM控制风扇,所有程序 原理图开源供大家共享学习。 1.png 2.png 3.png 部分原理图详情下载。程序+PCB+原理图开源
回复

使用道具 举报

ID:566416 发表于 2019-7-3 12:43 | 显示全部楼层
共享 希望各位回复一下多多支持

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

单片机源程序如下:
  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)

评分

参与人数 1黑币 +15 收起 理由
luliang02003 + 15

查看全部评分

回复

使用道具 举报

ID:221675 发表于 2019-7-4 00:03 | 显示全部楼层
威武大神
回复

使用道具 举报

ID:575603 发表于 2019-7-4 09:21 | 显示全部楼层
请教下 这个LCD 是什么型号的屏幕
回复

使用道具 举报

ID:419801 发表于 2019-7-4 11:38 | 显示全部楼层
不错,值得参考
回复

使用道具 举报

ID:566416 发表于 2019-7-8 15:25 | 显示全部楼层
月明强 发表于 2019-7-4 09:21
请教下 这个LCD 是什么型号的屏幕

2.8英寸TFT
回复

使用道具 举报

ID:599339 发表于 2019-8-12 12:20 | 显示全部楼层
多谢楼主分享,请问用stc89能否代替
回复

使用道具 举报

ID:140183 发表于 2019-8-17 20:19 | 显示全部楼层
多谢分享!也要学习一下.
回复

使用道具 举报

ID:409924 发表于 2019-10-9 10:08 | 显示全部楼层
请问楼主有实物展示吗,可以指导一下吗
回复

使用道具 举报

ID:682842 发表于 2020-1-7 13:56 | 显示全部楼层
想问一下做不做实物哇
回复

使用道具 举报

ID:295874 发表于 2020-1-15 21:31 | 显示全部楼层
有点小问题请教一下:
(1)程序的keil是那个版本的?
(2)原理图及PCB的器件清单可以分享一下吗?从图中有些器件看不出来,自己想手工焊接学习一下。
(3)图中呢个引脚控制的风扇?看不出来。
回复

使用道具 举报

ID:833354 发表于 2020-10-30 17:27 | 显示全部楼层
楼主可以发下实物图嘛  谢谢
回复

使用道具 举报

ID:267429 发表于 2020-11-1 08:00 来自手机 | 显示全部楼层
dzltlgq 发表于 2020-10-27 16:17
求家用空气净化器原理图和程序,有酬谢,QQ391445456

你都是

需要啥功能,可定制qq3135279158
回复

使用道具 举报

ID:676437 发表于 2020-11-9 23:29 | 显示全部楼层
为什么pcb图打不开啊,你用哪个版本的AD
回复

使用道具 举报

ID:748033 发表于 2020-11-10 09:19 | 显示全部楼层
Danie66 发表于 2019-7-3 12:43
共享 希望各位回复一下多多支持

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

学到了
回复

使用道具 举报

ID:730993 发表于 2021-11-1 10:41 | 显示全部楼层
非常感谢分享!下载学习下!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表