wz10105031 发表于 2014-6-18 15:23:48

为什么我的都是000000呢?

黄金情 发表于 2014-8-30 00:54:37

发现这个帖子内一个错误处,两处地方说的不太一样。pulseIn()函数的返回值单位两处是不同的。
第一处:“比如第一条是196377,第二条是206748。他们对应的单位是微秒,”
第二处:“pulseIn()会等待引脚变为HIGH,开始计时,再等待引脚变为LOW并停止计时。返回脉冲的长度,单位毫秒。”
请楼主抽时间更正下。

沧海一粟 发表于 2014-9-3 16:16:19

学习了,感谢!!!!

Black7 发表于 2014-10-14 09:08:31

路过,顶一把!!!!

Black7 发表于 2014-10-14 09:19:23

<一一巛 发表于 2013-3-5 10:12 static/image/common/back.gif
交作业

两位小数是怎么出来的?

小华盛顿 发表于 2014-10-15 10:35:28

timeout (可选):指定脉冲计数的等待时间,单位为微秒,默认值是1秒(unsigned long).设置这个有什么用呀?

oujz123 发表于 2014-10-29 21:54:48

弘毅 发表于 2013-3-12 19:52 static/image/common/back.gif
介个。。。。不知道一块板子同时处理两个按键的会不会有问题。。如果一个板子不行=.=那么。。两个板子

坐等大师攻克此等难题:lol

天天向上/tp 发表于 2015-1-8 19:13:11

好东西,谢谢分享!!!!!!

fengchuiyu1994 发表于 2015-2-25 10:30:42

已学习,标记下

yangh2961 发表于 2015-4-12 12:05:41

学习了,有用

Ultrady 发表于 2015-4-20 15:58:15

能不能用来做摩尔斯电码的译码器呢?
我是有个想法,两个固定点间的远程激光通信,用一个Arduino控制激光管照射另一个Arduino上的光电二极管得到开关量,用这个函数进行计时,长短不同的脉冲代表不同的字母或者其他数据,这样就可以达到千米远的通讯效果同时比采用大功率无线数传更省电,成本更低

专属神话 发表于 2015-4-27 22:51:40

哈哈。看过 。厉害。

pumpitup 发表于 2015-6-15 15:23:08

下面的代码应该跟LZ结果一样吧。(未测试)
int pin = 2;//定义引脚为D2
unsigned long duration;//定义duration变量为无符号长整数型变量

void setup()
{
Serial.begin(9600);//串口波特率为9600
pinMode(pin, INPUT); //设置引脚为输入模式
}

void loop()
{
//duration = pulseIn(pin, HIGH,60000000); //读取引脚上的高电平脉冲,最大脉冲时间间隔为60秒,并且把结果赋值给duration变量
//相当于以下
/////////////////////////////////////////////////////
while ( !digitalRead(pin) ) { }
duration = micros();
while ( digitalRead(pin) ) { }
duration = micros() - duration;
/////////////////////////////////////////////////////
Serial.println(duration); //通过串口输出duration变量
}

Valyrian 发表于 2016-2-16 10:26:28

请问Timer2库会对这个函数有影响吗?uno9引脚的pwm输出对它有影响吗?

degage 发表于 2016-4-8 15:34:30

D2,这个是中断口,应该是用中断完成的,精度和晶震一样,应该是读取定时器走的时间,

time=(TCNT1H<<8)+TCNT1L;   //读定时器走过的时间
页: 1 2 [3] 4
查看完整版本: Arduino入门教程--第二十一课--脉冲计时(看你按住开关有多久)