查看: 2673|回复: 2

以麒麟座开发板实现温湿度控制

[复制链接]
  • TA的每日心情
    奋斗
    2023-5-10 20:09
  • 签到天数: 1742 天

    连续签到: 1 天

    [LV.Master]伴坛终老

    发表于 2017-9-6 09:11:19 | 显示全部楼层 |阅读模式
    分享到:
    本帖最后由 jinglixixi 于 2017-9-6 09:59 编辑

         在实现OLED屏显示的基础上,配合SHT20温湿度传感器的使用,可对温湿度进行控制,其执行控制的效果如图1和图2所示。
    图片1.png
    1 开启继电器

    图片2.png
    2关断继电器

    由此要完成一个温湿度控制器,除开发板外还需要配置OLED屏、软按键及带光隔的继电器。
    其中软按键与MCU的连接关系为:
          1 -- PB14
          2 -- PB15
          3 -- PB12
          4 -- PB13
    软按键的初始化函数为:
    1. void KEY_Init(void)
    2. {
    3.         GPIO_InitTypeDef gpioInitStrcut;
    4.         RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);               
    5.         gpioInitStrcut.GPIO_Mode = GPIO_Mode_IPU;        
    6.         gpioInitStrcut.GPIO_Pin = GPIO_Pin_12 | GPIO_Pin_13|GPIO_Pin_14 | GPIO_Pin_15;
    复制代码
    使用软按键进行温湿度限值设置的程序如下:
             if (!GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_12)) n=n*10;  
             if (!GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_13)) OLED_ShowString(44,6,":OK",16);
             if (!GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_14)) n++;  
             if (!GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_15)) n--;  
             OLED_ShowNum(68,6,n,3,16);
    光隔继电器与MCU的连接关系为:
            Vin--PC13
          光隔继电器的初始化函数为:
    1. void JDQ_Init(void)
    2. {
    3.         GPIO_InitTypeDef gpioInitStrcut;
    4.         RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);        
    5.         gpioInitStrcut.GPIO_Mode = GPIO_Mode_Out_PP;
    6.         gpioInitStrcut.GPIO_Pin = GPIO_Pin_13;        
    7.         gpioInitStrcut.GPIO_Speed = GPIO_Speed_50MHz;        
    8.         GPIO_Init(GPIOC, &gpioInitStrcut);        
    9. }
    复制代码
    使用继电器进行温湿度控制的程序如下:
    1.                 if(tem>n)  //控制判别
    2.                 {
    3.                         OLED_ShowString(36,6,":ON",16);
    4.                         GPIO_WriteBit(GPIOC, GPIO_Pin_13,Bit_RESET);
    5.                 }
    6.                 else
    7.                 {
    8.                         OLED_ShowString(36,6,":OFF ",16);
    9.                         GPIO_WriteBit(GPIOC, GPIO_Pin_13,Bit_SET);
    10.                 }
    复制代码
    温湿度控制器的界面显示函数为:

    void jm()
    {      
            OLED_Clear();
            OLED_ShowCHinese(18,0,0);  
            OLED_ShowCHinese(36,0,1);  
            OLED_ShowCHinese(54,0,2);  
            OLED_ShowCHinese(72,0,3);  
            OLED_ShowCHinese(90,0,4);  
            OLED_ShowCHinese(0,2,0);   
            OLED_ShowCHinese(18,2,2);
            OLED_ShowString(36,2,":22",16);
            OLED_ShowCHinese(0,4,1);   
            OLED_ShowCHinese(18,4,2);
            OLED_ShowString(36,4,":33",16);
            OLED_ShowCHinese(0,6,8);   
            OLED_ShowCHinese(18,6,9);         
            OLED_ShowString(36,6,":",16);
    }


    温湿度的显示程序如下:
    1.                 SHT20_GetValue();
    2.                 tem=sht20Info.tempreture*10;
    3.                 hum=sht20Info.humidity*10;
    4.                 OLED_ShowNum(44,2,tem/10,2,16);
    5.                 OLED_ShowChar(60,2,'.',16);
    6.                 tem=tem%10;
    7.                 OLED_ShowNum(68,2,tem,1,16);
    8.                 OLED_ShowNum(44,4,hum/10,2,16);
    9.                 OLED_ShowChar(60,4,'.',16);
    10.                 hum=hum%10;
    11.                 OLED_ShowNum(68,4,hum,1,16);
    复制代码
    回复

    使用道具 举报

    该用户从未签到

    发表于 2017-9-6 09:24:38 | 显示全部楼层
    早呀早,早早早
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2023-5-10 20:09
  • 签到天数: 1742 天

    连续签到: 1 天

    [LV.Master]伴坛终老

     楼主| 发表于 2017-9-6 09:44:46 | 显示全部楼层
    ky123 发表于 2017-9-6 09:24
    早呀早,早早早

    早上好!     
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条



    手机版|小黑屋|与非网

    GMT+8, 2024-5-7 21:34 , Processed in 0.140663 second(s), 20 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.