想做个触摸打开,延时关断的小控制器

用普通的轻触开关似乎很难看,而且开关也不方便 固定,总不好把控制板放在外面吧?

想使用触摸的开关,网上搜索了好久没找到合适的,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实现触摸开关相关推荐

  1. 弹簧触摸开关原理图_两种触摸开关电路

    今天给大家介绍两种不同的触摸开关电路,不同的芯片可以设计不同的电路功能,也能设计相同的电路功能.下面两种电路一个是使用了4013芯片组成的触摸开关电路,另一个是使用了4011芯片组成的延时触摸开关电路 ...

  2. Mixly 触摸开关的使用

    米斯齐 Mixly 触摸开关的使用 在本篇文章中小编将介绍用Mixly编程实现触摸开关灯. 一.米斯齐下载地址:http://mixly.org/bnu-maker/mixly-arduino-win ...

  3. 基于STM8S003f3的单键触摸开关制作

    提示:设计资料在文章末尾有链接下载 功能需求: 1. 单按触摸按键关闭/开启连接的用电器电源 2. 双击触摸按键延时5分钟关闭连接的用电器电源 需求分析: 控制部分:单片机--要求引脚少,因为需要使用 ...

  4. 触摸开关芯片原理及功能特点

    触摸开关,是随着科技进步的发展而研发出来的一种新兴产品,它是指应用触摸感应芯片原理设计的一种墙壁开关,是传统机械按键式墙壁开关的换代产品.能实现更智能化.操作更方便的触摸开关有传统开关不可比拟的优势, ...

  5. raspberry pi (10) 触摸开关传感器,超声波传感器,红外避障传感器

    1.触摸开关传感器 #!/usr/bin/env python import RPi.GPIO as GPIOTouchPin = 11 Gpin = 12 Rpin = 13tmp = 0def s ...

  6. Android系统默认打开开发者选项中的TP触摸开关

    在定制系统开发中,有时会遇到客户为了方便生产测试硬件主板,客户会提出生产测试软件需要默认打开开发者选项中的TP触摸开关,也就是show_touches和pointer_location 具体实现方法如 ...

  7. 智能家居Homekit系列一智能触摸开关

    触摸开关,即通过触摸方式控制的墙壁开关,其感官场景如同我们的触屏手机,只需手指轻轻一点即可达到控制电器的目的,随着人们生活品质的提高,触摸开关将逐渐将换代传统机械按键开关. 触摸开关控制原理 触摸开关 ...

  8. 蓝牙开关android项目,Android平台手机蓝牙开关和触摸开关的制作方法

    本发明涉及Android平台手机蓝牙开关和触摸开关. 背景技术: 在很多现场开关控制场合需要无线控制,加之传统的机械开关更易产生电弧.机械性能不稳定等,并且射频相对与蓝牙具有容易干扰的缺点,蓝牙采用的 ...

  9. Arduino UNO通过电容的直接检测实现简易触摸开关

    Arduino 通过电容的直接检测实现简易触摸开关 Arduino除了接受数字端口的数字信号,唯一能检测的模拟物理量就是电压.任何模拟传感器的检测值几乎都是通过相关电路转化成电压值,再输入它的模拟端口 ...

最新文章

  1. 11月份西部数码.wang域名注册量及市场份额统计报告
  2. 你了解 Performance Timeline Level 2 吗?
  3. linux rpm 怎么解压缩,dpkg rpm apt yum 的常用指令 +linux 各种解压缩方法
  4. 汇编语言笔记17-使用BIOS进行键盘输入和磁盘读写
  5. Android的Menu状态动态设置方法onPrepareOptionsMenu(Menu menu) (转载)
  6. SpringMVC控制器接收不了PUT提交的参数的解决方案
  7. 中文通用百科知识图谱(CN-DBpedia)
  8. python中可通过()实现代码的复用_(  )是可复用的,提供明确接口完成特定功能的程序代码块。...
  9. 销售软件服务器设置,销售软件服务器
  10. 广西科技大学计算机考研,广西科技大学研究生院
  11. 统计 GitHub 评分、收录有意思的 README,GitHub 热点速览
  12. 程序员必备神卡!仅500张,价值万元0.8折抢!4个月小白变大牛!(送机械键盘)
  13. 冲刺周期一--站立会议05
  14. sql 结果相加_SQL联结语句
  15. 阅读PDF乱码问题简便解决方法教程
  16. POJO类toString()方法
  17. Odoo12功能增强模块
  18. 新计算机的word无法输入文字,Win10专业版系统为什么不能给电脑Word输入中文汉字...
  19. XML DOM摘要五(XPath)
  20. Linux“挂载”是什么意思

热门文章

  1. linux常用命令-1备份压缩
  2. 驾驶证记12分处理办法
  3. 我理解的数据库系统的三级模式与两层映像
  4. win7计划任务有进程无界面
  5. 什么是跨域?怎么解决跨域
  6. 有哪些比较好的海外IP代理是比较推荐的
  7. 徐福记:曾经的糖果大王,再难重回巅峰
  8. 【Linux】文件的压缩和解压
  9. python环境变量怎么删除_python环境变量怎么改
  10. MACD指标找起爆点位置