查看: 1755|回复: 2

【赚周年币】技术帖_基于LPC824 开发板的触摸式门禁控制

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

    连续签到: 1 天

    [LV.Master]伴坛终老

    发表于 2016-12-4 20:58:13 | 显示全部楼层 |阅读模式
    分享到:
    [size=18.018px]新得到了一个触摸传感器模块,欣喜之余决定将其用在门禁上。那这个模块有何特点呢?
    [size=18.018px]该模块的外观如图1所示,其共有3个引脚,其中2个是电源引脚,另一个则是信号输出端。该模块的供电范围为3-5V,加电后绿色LED灯就被点亮以指示电源的存在,当用手触摸时,SIG输出一个高电平;当手离开时,则输出低电平。
    [size=18.018px]
    [size=18.018px]1 触摸传感器模块

    [size=18.018px]根据上述特点,可替代开关或按键的,其不但手感好,也有利于延长输入器件的寿命,过很适合用来作门禁的信号输入。
    [size=18.018px]该触摸式门禁装置以LPC824开发板为核心,并配以OLED屏来显示门控状态,由外接的门磁来控制门的开合。
    [size=18.018px]门控状态如图2所示,所涉及的显示函数如下:
    1. void cd1()
    2. {   // 触摸式门禁
    3.         OLED_ShowCHinese(18,0,13);  
    4.         OLED_ShowCHinese(36,0,14);
    5.         OLED_ShowCHinese(54,0,15);  
    6.         OLED_ShowCHinese(72,0,16);  
    7.         OLED_ShowCHinese(90,0,17);   
    8. }
    9. void cd2()
    10. {   // 有人到访!
    11.         OLED_Clear();
    12.         cd1();
    13.         OLED_ShowCHinese(0,2,3);  
    14.         OLED_ShowCHinese(18,2,4);  
    15.         OLED_ShowCHinese(36,2,5);  
    16.         OLED_ShowCHinese(54,2,6);         
    17.         OLED_ShowCHinese(72,2,7);  
    18. }
    19. void cd3()
    20. {   // 朋友请进。
    21.         OLED_Clear();
    22.         cd1();
    23.         OLED_ShowCHinese(0,4,8);  
    24.         OLED_ShowCHinese(18,4,9);  
    25.         OLED_ShowCHinese(36,4,10);  
    26.         OLED_ShowCHinese(54,4,11);         
    27.         OLED_ShowCHinese(72,4,12);  
    28. }
    复制代码
    snap.jpg
    snap1.jpg
    2门控状态指示

    主函数的内容为:
    1. int main(void)
    2. {
    3.     uint32_t num=0;
    4.     GPIOInit();
    5.     GPIOSetDir(LPC_GPIO_PORT->PIN0, 6, 0);    // CM
    6.         GPIOSetDir(LPC_GPIO_PORT->PIN0, 16, 1);   // LED
    7.         OLED_Init();                         
    8.         OLED_Clear();
    9.         cd1();
    10.         GPIOSetBitValue(LPC_GPIO_PORT->PIN0, 16, 0 );
    11.     while(1)
    12.         {
    13.             if(GPIOGetPinValue(LPC_GPIO_PORT->PIN0,6))
    14.         {
    15.                    GPIOSetBitValue(LPC_GPIO_PORT->PIN0, 16,1 );
    16.             if(num%2==0) cd2();
    17.                     else  cd3();
    18.                     num++;
    19.         }
    20.                 else GPIOSetBitValue(LPC_GPIO_PORT->PIN0, 16,0 );
    21.                 Delay_1ms(1000);       
    22.         }
    23. }
    复制代码
    回复

    使用道具 举报

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

    连续签到: 1 天

    [LV.7]常住居民III

    发表于 2016-12-4 23:34:30 | 显示全部楼层
    谢谢分享                        
    回复 支持 反对

    使用道具 举报

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

    连续签到: 1 天

    [LV.Master]伴坛终老

     楼主| 发表于 2016-12-6 09:20:13 | 显示全部楼层
    多谢支持!
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

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



    手机版|小黑屋|与非网

    GMT+8, 2024-11-23 05:50 , Processed in 0.139380 second(s), 20 queries , MemCache On.

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

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.