20141120 【 Arduino - 电平时间测量(pulseIn) 】 用pulseIn函数测量按键时电平高低时间
来源:互联网 发布:php 二进制打印出来 编辑:程序博客网 时间:2024/05/16 07:39
利用 Arduino 自带函数 pulseIn() 测量按键按下时,
维持高电平的时间。(模拟引脚只有0和1两种值,抖动怎么办?我也不知道它怎么处理抖动的。。。)
线路图可以参考下图。
测了一下,最短维持时间小于 40ms(我的手速)。
也就是以后监控按键时,两次检测时间必须小于 40ms。
【10ms应该没问题,但是间隔太长。。】
【1ms的话,又不知道抖动时间有没有可能大于它,以后再测吧!!!】
介绍一下pulseIn()函数
pulseIn()函数用来读取一个引脚的脉冲(HIGH或LOW)。例如,如果value是HIGH,pulseIn()会等待引脚变为HIGH,开始计时,再等待引脚变为LOW并停止计时。返回脉冲的长度,单位毫秒。如果在指定的时间内无脉冲函数返回。
计时范围从10微秒至3分钟。(1秒=1000毫秒=1000000微秒)
语法:
pulseIn(pin, value)
pulseIn(pin, value, timeout)
参数:
pin:你要进行脉冲计时的引脚号(int)。
value:要读取的脉冲类型,HIGH或LOW(int)。
timeout (可选):指定脉冲计数的等待时间,单位为微秒,默认值是1秒(unsigned long)
#define ulunsigned longconst int pin = 7;const ul MAXHT = 3*1000*1000;ul ht;void setup(){pinMode(pin, INPUT);Serial.begin( 9600 );}void loop(){Serial.print("\n\n START:\t");ul ht = pulseIn(pin, HIGH, MAXHT);show_smu( ht );}void show_smu(ul t){int us = t%1000;t /= 1000;int ms = t%1000;t /= 1000;Serial.print( t );Serial.print("s ");Serial.print( ms );Serial.print("ms ");Serial.print( us );Serial.print("us\n");}
0 0
- 20141120 【 Arduino - 电平时间测量(pulseIn) 】 用pulseIn函数测量按键时电平高低时间
- arduino与pulseIn
- MSP430 测量输入电平
- Arduino数字电路中的高低电平~~~
- arduino的超声波测距和pulseIn()函数的使用说明
- opencv时间测量函数
- 测量函数的运行时间
- 选择排序时间测量程序(时间测量函数clock())
- 测量程序运行时间的几个函数
- 测量程序运行时间的几个函数
- opencv中测量运行时间的函数
- opencv中测量运行时间的函数
- opencv中测量运行时间的函数
- opencv中测量运行时间的函数
- opencv中测量运行时间的函数
- opencv中测量运行时间的函数
- opencv中测量运行时间的函数
- CUDA内核运行时间的测量函数
- 如何带好团队
- iOS 中 Touch ID得用法
- 数据结构之共享栈(堆存储)
- 从何说起
- CardView Layer-List
- 20141120 【 Arduino - 电平时间测量(pulseIn) 】 用pulseIn函数测量按键时电平高低时间
- jquery jqPlot API 中文使用教程(非常强大的图表工具)
- POSIX 线程详解(一)
- iOS访问Webservice(Java服务器)和(.net服务器)
- 《实体解析与信息质量》 - 序言
- CodeForces 484D Kindergarten
- 【转】C# 怎么给选项卡 添加图标
- 数据结构之无向网邻接矩阵最短路径FLOYD算法—摘抄自《大话数据结构》
- Apache Struts远程命令执行漏洞、开放式式重定向漏洞