站内搜索
发作品签到
专业版

触控密码锁体

工程标签

846
0
0
4

简介

裸机控制之-触控密码锁体 1.通过采集电池电压进行预警电池电量 2.通过触控灵敏度的配置实现万物皆可触控 3.通过设定不同的密码组合实现密码为我所用,为他人所用,永久性密码及临时密码

简介:裸机控制之-触控密码锁体 1.通过采集电池电压进行预警电池电量 2.通过触控灵敏度的配置实现万物皆可触控 3.通过设定不同的密码组合实现密码为我所用,为他人所用,永久性密码及临时密码
星火计划2024

开源协议

CC BY-ND 4.0

(未经作者授权,禁止转载)
创建时间:2024-04-30 21:03:12更新时间:2024-06-03 15:42:11

描述

项目说明

触控按键实现无需物理接触的交互方式,增强了用户体验。

改善并取代传统的机械式按键,是遥控器、智能家居设备,相应工业设备上很给力的帮手

开源协议

CC BY_ND 4.0

嘉立创这么好的活动

支持开源

项目相关功能

用单片机实现

1.电池电量的检测

2.触摸按键取代机械按键

3.直流马达驱动

4.固定密码及临时密码的使用切换

项目属性

智能触控密码锁

首次参加,感谢嘉立创的活动

项目进度

开始进行原理图设计,

采用嘉立创EDA,第一部分触控密码已经完成,

第二部分进行中,增加刷卡

设计原理

一:用单片机本身自带的 ADC 功能来实现供电电池电量的采集

低于设定的电量时进行报警提示(当ADC分辨率要求不是特别高时,可以直接用单片机内部的12位ADC进行采集,本次选用的是STC最新出的型号STC8h64TL单片机)

二:触摸按键实现

2-1 :读取初始的触控值及触控后的值

2-2:根据差值调整触控区间,同时根据实际设计的PCB板进行相应灵敏度调节

三:驱动直流马达

3-1:本次设计采用电机驱动专用芯片tl118s,方便应用及减少PCB空间

3-2:用单片机本身自带的PWM功能,进行直流马达的调速

四:设计固定密码及临时密码

用单片机自身的EEPROM,实现设定密码的存储,同时断电后,密码仍然会保存完好

单片机本身的AD采集功能----采集电池电量

触控按键----取代原始机械按键(当有手指触摸按键时,会改变按键的电容值。单片机通过检测电容值的变化来判断按键是否被触摸。)

触控阀值检测--没有触控时阀值,触控后阀值,根据差值设定对应的灵敏度,然后进行去抖,中断执行相应的结果显示

 

软件说明

 

整体框架,先进行触控按键值判定--时时监测电池电量--根据设定的不同功能进行状态切换

void main(void)
{
P_SW2 |= 0x80;//允许访问扩展寄存器xsfr
IRCDB = 0x10;     //IRCDB设置减小,增加内部高速振荡器去抖
EA = 1;//允许全局中断
EAXSFR();/* 扩展寄存器访问使能 */
Timer0_Init();
GPIO_config();
UART_config();
ADC_config();
Touch_Init();
while (1)
{
// SetWakeUpTime(50);    // 与开关锁时间有关
Touch_Scan();
/**********************************************/
Show_Vol(); //显示电池的电压
/**********************************************/
handle_key_function();   //状态机切换
/**********************************************/
 
}
}

 

触摸按键部分:

void Touch_Init(void)
{
u8 i;
  TSRT = 0x00;   //没有LED分时扫描
TSCHEN1 = 0xff;//TK0~TK7
TSCHEN2 = 0x0f;//TK8~TK12 1111 
TSCFG1  = (7<<4) + 3;//开关电容工作频率 = fosc/(2*(TSCFG1[6:4]+1)), 放电时间(系统时钟周期数) 0(125) 1(250) 2(500) 3(1000) 4(2000) 5(2500) 6(5000) 7(7500) 最小3
TSCFG2  = 2;//配置触摸按键控制器的内部参考电压(AVCC的分压比), 0(1/4)  1(1/2)  2(5/8)  3(3/4)
// TSCTRL = (1<<7) + (1<<6) +3; //开始扫描, B7: TSGO,  B6: SINGLE,  B5: TSWAIT, B4: TSWUCS, B3: TSDCEN, B2: TSWUEN, B1 B0: TSSAMP
TSCTRL =0xa0; //0xa0
//B7:TSGO=1使能触摸按键 1000 0100
//B6:SINGLE=1单次扫描模式、=0自动重复扫描
//B5:TSWAIT=1完成一轮扫描后、TSIF 被硬件置 1,此时触摸按键控制器会暂停扫描,直到 TSIF 标志位被清 0后才开始下一轮的扫描
//B4:TSWUCS=0使用内部32K晶振
//B3:TSDCEN=0不使能16位比较器
//B2:TSWUEN=1使能低功耗唤醒功能
//B1B0:TSSAMP=11单次按键扫描4次
  TSWUTC = 50;
IE2 |= 0x80;//允许触摸按键中断
 
for(i=0; i<12; i++)
    {
TK_differ[i] = fazhi[i];  //设置初始差值
TK_lowest[i] = fazhi[i]*3;//设置初始下限值, 检测下限 = 阈值*3
TK_counter[i] = 0;
Zero_Sub_Cnt[i] = 0;
Zero_Add_Cnt[i] = 0;
    }
    tpFlag = 0;
    JudgeFlag = 0;
    read_cnt=0;
    TK_TimeOut = 0;
    B_Zero_Flag = 1;
    ChannelSet = ((u16)TSCHEN2 << 8) | TSCHEN1;
    ScanFreq = 10; //设置有效触摸按键持续检测时间
}
此部分初始化触摸按键的设置,注意唤醒的时间寄存器 TSWUTC ,此选择关系到功耗问题
 最主要的内容为功能切换部分,用状态机的部分进行设置。
void handle_key_function(void)

实物展示

如附件

设计注意事项

1.触控阀值的设定2.触控灵敏度的设定

 

其他

后续会增加刷卡部分,指纹部分,人脸认证部分,一路向前学习

设计图

未生成预览图,请在编辑器重新保存一次

BOM

暂无BOM

3D模型

序号文件名称下载次数
暂无数据

附件

序号文件名称下载次数
1
微信图片_20240528130003.jpg
14
2
WeChat_20240528125859.mp4
4
3
0525
11
4
面板-改版.epanm
4
5
工程链接.txt
15
克隆工程
添加到专辑
0
0
分享
侵权投诉

工程成员

知识产权声明&复刻说明

本项目为开源硬件项目,其相关的知识产权归创作者所有。创作者在本平台上传该硬件项目仅供平台用户用于学习交流及研究,不包括任何商业性使用,请勿用于商业售卖或其他盈利性的用途;如您认为本项目涉嫌侵犯了您的相关权益,请点击上方“侵权投诉”按钮,我们将按照嘉立创《侵权投诉与申诉规则》进行处理。

请在进行项目复刻时自行验证电路的可行性,并自行辨别该项目是否对您适用。您对复刻项目的任何后果负责,无论何种情况,本平台将不对您在复刻项目时,遇到的任何因开源项目电路设计问题所导致的直接、间接等损害负责。

评论

全部评论(1
按时间排序|按热度排序
粉丝0|获赞0
相关工程
暂无相关工程

底部导航