查看: 2480|回复: 9

[原创] 基于LPC824lite的温湿度设置与控制

[复制链接]
  • TA的每日心情
    奋斗
    2023-2-15 00:12
  • 签到天数: 969 天

    [LV.10]以坛为家III

    175

    主题

    2843

    帖子

    34

    金牌会员

    Rank: 6Rank: 6

    积分
    7094
    最后登录
    2023-4-20
    发表于 2016-11-5 09:17:53 | 显示全部楼层 |阅读模式
    在温湿度控制器的设计中,除了LPC823lite之外,还离不开OLED屏、温湿度传感器和继电器的配合。当温湿度传感器获取温湿度的数值后,需要与设定值相比较来确定继电器的开与合,这里就介绍一下实现温湿度设置与控制的方法。
    鉴于DHT11的温、湿度变换范围不是很大,故可以用2个键来实现限值的设置,并由开发板上的USER键来选取数值,以WAKEUP键来进行确认。
    OLED屏的使用方法参见网址:
    在控制处理方面,为了减少继电器对LPC823lite开发板的干扰,特选取了带光隔的继电器模块,这样继电器的输入信号及电源由开发板提供,输出端的电源可由外部电源来单独提供,从而减少了彼此的影响。
    温度控制的程序如下,湿度控制与之相仿,运行的效果如图1和图2所示。
    1. int main(void)
    2. {   uint32_t number, temp, num=0,s=0,i;   
    3.     GPIOInit();
    4.         GPIOSetDir(LPC_GPIO_PORT->PIN0, 20, 1);  //clk
    5.         GPIOSetDir(LPC_GPIO_PORT->PIN0, 21, 1);  //dat
    6.         GPIOSetDir(LPC_GPIO_PORT->PIN0, 22, 1);  //继电器控制
    7.         GPIOSetDir(LPC_GPIO_PORT->PIN0, 1, 0);   //KEY_ USER
    8.         GPIOSetDir(LPC_GPIO_PORT->PIN0, 4, 0);   //KEY_ WAKEUP
    9.     GPIOSetBitValue(LPC_GPIO_PORT->PIN0, 22, 1 );
    10.         OLED_Init();                        
    11.         OLED_Clear();
    12.         cd();
    13.         i=1;
    14.         num=0;
    15.         while(i>0)   // 设置限值及控制
    16.         {
    17.           if(GPIOGetPinValue(LPC_GPIO_PORT->PIN0, 1)==0)  // USER  +
    18.           {        
    19.         while(GPIOGetPinValue(LPC_GPIO_PORT->PIN0, 1)==0);                        
    20.                 num++;  // 限值
    21.                 OLED_ShowNum(112,2,num,2,16);   
    22.           }
    23.                
    24.           if(GPIOGetPinValue(LPC_GPIO_PORT->PIN0, 4)==0)  // WAKEUP Y
    25.           {
    26.                   while(GPIOGetPinValue(LPC_GPIO_PORT->PIN0, 4)==0);               
    27.           i=0;
    28.                   OLED_ShowString(44,6,"OFF",16);
    29.           }
    30.         }
    31.         s=20;  //  模拟温度采集值
    32.         while(1)
    33.         {
    34.              if(s>num)  
    35.                  {
    36.                              GPIOSetBitValue(LPC_GPIO_PORT->PIN0, 22, 1 );   // on/off
    37.                              OLED_ShowString(44,6,"OFF",16);
    38.                          }
    39.                          else
    40.                          {
    41.                                  GPIOSetBitValue(LPC_GPIO_PORT->PIN0, 22, 0 );
    42.                                  OLED_ShowString(44,6,"ON ",16);
    43.                          }
    44.                           Delay_1ms(500);
    45.               //  读取温湿度值以便进行控制
    46.     }
    47. }             // end of main
    复制代码
    图片2.png
    1 温度低于限值时(继电器接通)
    图片1.png
    2 温度达到限值时(继电器断开)


    回复

    使用道具 举报

  • TA的每日心情
    无聊
    2021-12-16 11:07
  • 签到天数: 10 天

    [LV.3]偶尔看看II

    4

    主题

    66

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    241
    最后登录
    2021-12-16
    发表于 2016-11-5 09:22:21 | 显示全部楼层
    速度很快啊楼主
    哎...今天够累的,签到来了~
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2017-2-16 10:29
  • 签到天数: 41 天

    [LV.5]常住居民I

    3

    主题

    216

    帖子

    0

    高级会员

    Rank: 4

    积分
    539
    最后登录
    2017-10-11
    发表于 2016-11-5 10:44:20 | 显示全部楼层
    嗯!不错!模拟一下应用
    开开好心情!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2023-2-15 00:12
  • 签到天数: 969 天

    [LV.10]以坛为家III

    175

    主题

    2843

    帖子

    34

    金牌会员

    Rank: 6Rank: 6

    积分
    7094
    最后登录
    2023-4-20
     楼主| 发表于 2016-11-5 10:44:40 | 显示全部楼层
    zimeng 发表于 2016-11-5 09:22
    速度很快啊楼主

    还差温湿度传感器的程序移植呢。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2018-6-28 17:04
  • 签到天数: 285 天

    [LV.8]以坛为家I

    1

    主题

    428

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    1577
    最后登录
    2018-6-28
    发表于 2016-11-6 17:04:15 | 显示全部楼层
    看起来不错~~~~~~~~~~

    NXP.JPG 与非.JPG
    哎...今天够累的,签到来了~
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    郁闷
    2022-4-4 11:28
  • 签到天数: 351 天

    [LV.8]以坛为家I

    141

    主题

    8054

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    5740
    最后登录
    2022-4-4
    发表于 2016-11-6 18:40:02 | 显示全部楼层
    楼主,你的继电器是多少A的
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2023-2-15 00:12
  • 签到天数: 969 天

    [LV.10]以坛为家III

    175

    主题

    2843

    帖子

    34

    金牌会员

    Rank: 6Rank: 6

    积分
    7094
    最后登录
    2023-4-20
     楼主| 发表于 2016-11-7 09:01:14 | 显示全部楼层
    wambob 发表于 2016-11-6 18:40
    楼主,你的继电器是多少A的

    250VAC 10A      
    30VDC   10A
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    擦汗
    2017-10-15 13:16
  • 签到天数: 191 天

    [LV.7]常住居民III

    11

    主题

    664

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    1722
    最后登录
    2017-10-15
    发表于 2016-12-24 23:02:18 | 显示全部楼层
    楼主,为什么我下载的资料包不是这种编程风格的?
    GPIOSetDir(LPC_GPIO_PORT->PIN0, 20, 1);  //clk
            GPIOSetDir(LPC_GPIO_PORT->PIN0, 21, 1);  //dat
            GPIOSetDir(LPC_GPIO_PORT->PIN0, 22, 1);  //继电器控制
            GPIOSetDir(LPC_GPIO_PORT->PIN0, 1, 0);   //KEY_ USER
            GPIOSetDir(LPC_GPIO_PORT->PIN0, 4, 0);   //KEY_ WAKEUP
        GPIOSetBitValue(LPC_GPIO_PORT->PIN0, 22, 1 );


    压缩包里解压出来的例程很难看懂,不知她怎么驱动IO口的方向和电平的,,像你这样的就易懂很多了,,能发你下的资料给我吗?谢谢,LPC824Lite板子的
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2023-2-15 00:12
  • 签到天数: 969 天

    [LV.10]以坛为家III

    175

    主题

    2843

    帖子

    34

    金牌会员

    Rank: 6Rank: 6

    积分
    7094
    最后登录
    2023-4-20
     楼主| 发表于 2016-12-25 10:44:18 | 显示全部楼层
    jackten 发表于 2016-12-24 23:02
    楼主,为什么我下载的资料包不是这种编程风格的?
    GPIOSetDir(LPC_GPIO_PORT->PIN0, 20, 1);  //clk
           ...

    参见前一个回复吧。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    2017-1-24 08:47
  • 签到天数: 49 天

    [LV.5]常住居民I

    0

    主题

    524

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    1267
    最后登录
    2017-4-19
    发表于 2016-12-26 11:30:39 | 显示全部楼层
    厉害                        
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

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

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2024-5-8 08:35 , Processed in 0.149305 second(s), 28 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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