stc15f104实现触摸开关
想做个触摸打开,延时关断的小控制器
用普通的轻触开关似乎很难看,而且开关也不方便 固定,总不好把控制板放在外面吧?
想使用触摸的开关,网上搜索了好久没找到合适的,stc官方文档上有个电容感应开关
需要占用2个io,一个产生pwm信号,一个用于ad判断,另外还需要2个电阻2个二极管和1个电容。
感觉有点复杂了,尝试了一下,最后只用了一个io口,一个电阻和一个电容搞定了。
思路是这样的:
一个2M电阻接电源和IO口(我用了p3.3)
一个33p电容接IO口和地。
IO口接一根线到金属片什么的用来触摸。
p3.3置0先把电容的电放掉,然后置高阻态,这时候电源会通过电阻给电容充电,
时间常数2M*33p约66μs,使用定时器统计io口变成高电平的时间,
不用计时器的话担心受中断的影响,会有误差。
这个时间可能需要做平滑处理避免干扰。
开机的时候没有人触摸,记录下这个时候充电时间做为基准。
如果有人触摸,则充电时间加长,所以定时检测下这个充电时间,
发现充电时间比基准充电时间长很多(我用了2倍基准时间来比较),就可以认为是有人触摸了。
已经完工投入使用,目前看可靠性、抗干扰能力都可以满足要求。
void mw(){//主工作循环
unsigned int i;
static unsigned int cdsj=0,bzz;//充电时间,标准值
static unsigned char csh=10;//初始化计数
T2H=T2L=0;//计数器2计数值初始化为0
P3M1 |=0x8;//p3.3置开漏状态
P3M0 |=0x8;//
P3_3=0;//p3.3输出清0
delay(100);
P3M1 |=0x8;//p3.3置高阻状态
P3M0 &=0xf7;//
AUXR |= 0x10; //开始计数器2运行
P3_3=1;//p3.3输出为1,输入状态
IE1=0;//清外部中断1的状态
EX1=1;//打开外部中断1
while(EX1);//外部中断未执行完毕循环等待
i=cdsj>>3;
cdsj=cdsj-i+T2L;//平滑处理
if(csh){
csh--;
if(csh==0){//初始10次计数结束,取当前值为标准值
bzz=i+i;
};
return;
};
if(i>bzz){
此条件满足表明开关被触摸
};
}
stc15f104实现触摸开关相关推荐
- 弹簧触摸开关原理图_两种触摸开关电路
今天给大家介绍两种不同的触摸开关电路,不同的芯片可以设计不同的电路功能,也能设计相同的电路功能.下面两种电路一个是使用了4013芯片组成的触摸开关电路,另一个是使用了4011芯片组成的延时触摸开关电路 ...
- Mixly 触摸开关的使用
米斯齐 Mixly 触摸开关的使用 在本篇文章中小编将介绍用Mixly编程实现触摸开关灯. 一.米斯齐下载地址:http://mixly.org/bnu-maker/mixly-arduino-win ...
- 基于STM8S003f3的单键触摸开关制作
提示:设计资料在文章末尾有链接下载 功能需求: 1. 单按触摸按键关闭/开启连接的用电器电源 2. 双击触摸按键延时5分钟关闭连接的用电器电源 需求分析: 控制部分:单片机--要求引脚少,因为需要使用 ...
- 触摸开关芯片原理及功能特点
触摸开关,是随着科技进步的发展而研发出来的一种新兴产品,它是指应用触摸感应芯片原理设计的一种墙壁开关,是传统机械按键式墙壁开关的换代产品.能实现更智能化.操作更方便的触摸开关有传统开关不可比拟的优势, ...
- raspberry pi (10) 触摸开关传感器,超声波传感器,红外避障传感器
1.触摸开关传感器 #!/usr/bin/env python import RPi.GPIO as GPIOTouchPin = 11 Gpin = 12 Rpin = 13tmp = 0def s ...
- Android系统默认打开开发者选项中的TP触摸开关
在定制系统开发中,有时会遇到客户为了方便生产测试硬件主板,客户会提出生产测试软件需要默认打开开发者选项中的TP触摸开关,也就是show_touches和pointer_location 具体实现方法如 ...
- 智能家居Homekit系列一智能触摸开关
触摸开关,即通过触摸方式控制的墙壁开关,其感官场景如同我们的触屏手机,只需手指轻轻一点即可达到控制电器的目的,随着人们生活品质的提高,触摸开关将逐渐将换代传统机械按键开关. 触摸开关控制原理 触摸开关 ...
- 蓝牙开关android项目,Android平台手机蓝牙开关和触摸开关的制作方法
本发明涉及Android平台手机蓝牙开关和触摸开关. 背景技术: 在很多现场开关控制场合需要无线控制,加之传统的机械开关更易产生电弧.机械性能不稳定等,并且射频相对与蓝牙具有容易干扰的缺点,蓝牙采用的 ...
- Arduino UNO通过电容的直接检测实现简易触摸开关
Arduino 通过电容的直接检测实现简易触摸开关 Arduino除了接受数字端口的数字信号,唯一能检测的模拟物理量就是电压.任何模拟传感器的检测值几乎都是通过相关电路转化成电压值,再输入它的模拟端口 ...
最新文章
- 11月份西部数码.wang域名注册量及市场份额统计报告
- 你了解 Performance Timeline Level 2 吗?
- linux rpm 怎么解压缩,dpkg rpm apt yum 的常用指令 +linux 各种解压缩方法
- 汇编语言笔记17-使用BIOS进行键盘输入和磁盘读写
- Android的Menu状态动态设置方法onPrepareOptionsMenu(Menu menu) (转载)
- SpringMVC控制器接收不了PUT提交的参数的解决方案
- 中文通用百科知识图谱(CN-DBpedia)
- python中可通过()实现代码的复用_( )是可复用的,提供明确接口完成特定功能的程序代码块。...
- 销售软件服务器设置,销售软件服务器
- 广西科技大学计算机考研,广西科技大学研究生院
- 统计 GitHub 评分、收录有意思的 README,GitHub 热点速览
- 程序员必备神卡!仅500张,价值万元0.8折抢!4个月小白变大牛!(送机械键盘)
- 冲刺周期一--站立会议05
- sql 结果相加_SQL联结语句
- 阅读PDF乱码问题简便解决方法教程
- POJO类toString()方法
- Odoo12功能增强模块
- 新计算机的word无法输入文字,Win10专业版系统为什么不能给电脑Word输入中文汉字...
- XML DOM摘要五(XPath)
- Linux“挂载”是什么意思